From 882015bc6dc97b65ddcfa7691412322a991df901 Mon Sep 17 00:00:00 2001 From: yan Date: Thu, 17 Nov 2011 15:45:33 -0600 Subject: [PATCH] Initial commit. --- .gitignore | 3 + README.md | 40 + bash_aliases | 94 + bash_options | 26 + bash_profile | 11 + gitconfig | 91 + inputrc | 1 + irbrc | 16 + osx | 158 + vim/.gitignore | 5 + vim/.gitmodules | 3 + vim/.netrwhist | 7 + vim/after/plugin/snipMate.vim | 24 + vim/autoload/AnsiEsc.vim | 848 ++ vim/autoload/EasyMotion.vim | 573 ++ vim/autoload/conque_term.vim | 1508 +++ vim/autoload/conque_term/conque.py | 1152 +++ vim/autoload/conque_term/conque_globals.py | 315 + vim/autoload/conque_term/conque_screen.py | 233 + vim/autoload/conque_term/conque_sole.py | 458 + .../conque_term/conque_sole_communicator.py | 183 + .../conque_term/conque_sole_shared_memory.py | 210 + .../conque_term/conque_sole_subprocess.py | 762 ++ .../conque_term/conque_sole_wrapper.py | 278 + vim/autoload/conque_term/conque_subprocess.py | 198 + vim/autoload/conque_term/conque_win32_util.py | 448 + vim/autoload/csapprox.vim | 810 ++ vim/autoload/csapprox/common.vim | 46 + vim/autoload/csapprox/per_component.vim | 66 + vim/autoload/delimitMate.vim | 586 ++ vim/autoload/pathogen.vim | 230 + vim/autoload/railmoon/ctags_util.vim | 40 + vim/autoload/railmoon/id.vim | 115 + vim/autoload/railmoon/oscan.debug | 8305 +++++++++++++++++ vim/autoload/railmoon/oscan.vim | 724 ++ .../railmoon/oscan/extractor/buffers.vim | 73 + .../railmoon/oscan/extractor/changes.vim | 54 + .../railmoon/oscan/extractor/ctags.vim | 137 + .../railmoon/oscan/extractor/ctags/cpp.vim | 153 + .../railmoon/oscan/extractor/ctags/html.vim | 42 + .../railmoon/oscan/extractor/ctags/python.vim | 91 + .../railmoon/oscan/extractor/ctags/vim.vim | 43 + .../extractor/definition_declaration.vim | 121 + .../railmoon/oscan/extractor/file.vim | 31 + .../railmoon/oscan/extractor/files.vim | 86 + .../railmoon/oscan/extractor/marks.vim | 86 + .../oscan/extractor/multiline_search.vim | 123 + .../railmoon/oscan/extractor/paste.vim | 69 + vim/autoload/railmoon/oscan/extractor/sco.vim | 138 + .../railmoon/oscan/extractor/search.vim | 85 + .../oscan/extractor/search_in_scope.vim | 19 + .../oscan/extractor/search_in_windows.vim | 41 + .../oscan/extractor/search_on_screen.vim | 19 + .../railmoon/oscan/extractor/taglist.vim | 34 + .../oscan/extractor/taglist_by_ooo.vim | 11 + .../oscan/extractor/taglist_by_type.vim | 39 + .../oscan/extractor/taglist_under_cursor.vim | 54 + .../railmoon/oscan/extractor/util.vim | 74 + .../railmoon/oscan/extractor/vims.vim | 84 + .../railmoon/oscan/extractor/windows.vim | 79 + vim/autoload/railmoon/oscan/record.vim | 138 + .../railmoon/oscan/record_browser.vim | 132 + vim/autoload/railmoon/trace.vim | 45 + vim/autoload/railmoon/unit_test.vim | 69 + vim/autoload/railmoon/widget.vim | 21 + vim/autoload/railmoon/widget/base.vim | 571 ++ vim/autoload/railmoon/widget/canvas.vim | 82 + .../railmoon/widget/edit_line_window.vim | 207 + .../railmoon/widget/selection_window.vim | 408 + vim/autoload/railmoon/widget/window.vim | 167 + vim/autoload/rails.vim | 4685 ++++++++++ vim/autoload/ruby_debugger.vim | 1979 ++++ vim/autoload/ruby_focused_unit_test.vim | 174 + vim/autoload/rubycomplete.vim | 801 ++ vim/autoload/snipMate.vim | 392 + vim/autoload/syntastic.vim | 194 + vim/autoload/tcomment.vim | 576 ++ vim/bin/ruby_debugger.rb | 140 + vim/bundle/showmarks/autoload/showmarks.vim | 351 + vim/bundle/showmarks/plugin/showmarks.vim | 73 + vim/bundle/vim-fugitive | 1 + vim/colors/.bashrc | 101 + vim/colors/adrian.vim | 97 + vim/colors/aiseered.vim | 37 + vim/colors/aqua.vim | 44 + vim/colors/astronaut.vim | 164 + vim/colors/asu1dark.vim | 59 + vim/colors/automation.vim | 59 + vim/colors/autumn.vim | 88 + vim/colors/autumn2.vim | 69 + vim/colors/autumnleaf.vim | 154 + vim/colors/baycomb.vim | 319 + vim/colors/billw.vim | 99 + vim/colors/biogoo.vim | 115 + vim/colors/black_angus.vim | 115 + vim/colors/blackbeauty.vim | 66 + vim/colors/blackdust.vim | 62 + vim/colors/blacksea.vim | 32 + vim/colors/blue.vim | 41 + vim/colors/bluegreen.vim | 52 + vim/colors/blugrine.vim | 42 + vim/colors/bmichaelsen.vim | 55 + vim/colors/bog.vim | 87 + vim/colors/borland.vim | 60 + vim/colors/breeze.vim | 70 + vim/colors/brookstream.vim | 83 + vim/colors/brown.vim | 32 + vim/colors/buttercream.vim | 59 + vim/colors/bw.vim | 55 + vim/colors/c.vim | 32 + vim/colors/calmar256-light.vim | 247 + vim/colors/camo.vim | 76 + vim/colors/candy.vim | 78 + vim/colors/candycode.vim | 174 + vim/colors/caramel.vim | 67 + vim/colors/chela_light.vim | 110 + vim/colors/chlordane.vim | 78 + vim/colors/chocolateliquor.vim | 36 + vim/colors/clarity.vim | 52 + vim/colors/cleanphp.vim | 81 + vim/colors/coffee.vim | 60 + vim/colors/colorer.vim | 79 + vim/colors/colorscheme_template.vim | 88 + vim/colors/cool.vim | 82 + vim/colors/dante.vim | 83 + vim/colors/dark-ruby.vim | 291 + vim/colors/darkblack.vim | 60 + vim/colors/darkblue2.vim | 105 + vim/colors/darkdot.vim | 80 + vim/colors/darkocean.vim | 52 + vim/colors/darkslategray.vim | 117 + vim/colors/darkspectrum.vim | 130 + vim/colors/darktango.vim | 75 + vim/colors/dawn.vim | 78 + vim/colors/delek.vim | 57 + vim/colors/denim.vim | 141 + vim/colors/desert.vim | 105 + vim/colors/desert256.vim | 338 + vim/colors/desertEx.vim | 98 + vim/colors/desertedocean.vim | 115 + vim/colors/dusk.vim | 71 + vim/colors/dw_blue.vim | 66 + vim/colors/dw_cyan.vim | 66 + vim/colors/dw_green.vim | 66 + vim/colors/dw_orange.vim | 66 + vim/colors/dw_purple.vim | 66 + vim/colors/dw_red.vim | 66 + vim/colors/dw_yellow.vim | 66 + vim/colors/earendel.vim | 159 + vim/colors/earth.vim | 69 + vim/colors/eclipse.vim | 92 + vim/colors/edo_sea.vim | 69 + vim/colors/ekvoli.vim | 105 + vim/colors/emacs.vim | 63 + vim/colors/fine_blue.vim | 79 + vim/colors/fnaqevan.vim | 67 + vim/colors/fog.vim | 170 + vim/colors/freya.vim | 79 + vim/colors/fruit.vim | 69 + vim/colors/gobo.vim | 27 + vim/colors/golden.vim | 70 + vim/colors/gor.vim | 47 + vim/colors/gothic.vim | 42 + vim/colors/greyblue.vim | 75 + vim/colors/habiLight.vim | 138 + vim/colors/hhazure.vim | 83 + vim/colors/hhdblue.vim | 233 + vim/colors/hhdcyan.vim | 233 + vim/colors/hhdgray.vim | 233 + vim/colors/hhdgreen.vim | 233 + vim/colors/hhdmagenta.vim | 233 + vim/colors/hhdred.vim | 234 + vim/colors/hhdyellow.vim | 235 + vim/colors/hhorange.vim | 82 + vim/colors/hhpink.vim | 85 + vim/colors/hhspring.vim | 83 + vim/colors/hhteal.vim | 83 + vim/colors/hhviolet.vim | 83 + vim/colors/ibmedit.vim | 60 + vim/colors/impact.vim | 66 + vim/colors/inkpot.vim | 212 + vim/colors/ir_black.vim | 212 + vim/colors/ironman.vim | 133 + vim/colors/jammy.vim | 111 + vim/colors/jhdark.vim | 72 + vim/colors/jhlight.vim | 80 + vim/colors/leo.vim | 115 + vim/colors/less.vim | 54 + vim/colors/lettuce.vim | 215 + vim/colors/lilac.vim | 75 + vim/colors/lingodirector.vim | 44 + vim/colors/manxome.vim | 47 + vim/colors/marklar.vim | 174 + vim/colors/mars.vim | 142 + vim/colors/martin_krischik.vim | 397 + vim/colors/matrix.vim | 80 + vim/colors/metacosm.vim | 147 + vim/colors/midnight.vim | 102 + vim/colors/midnight2.vim | 102 + vim/colors/mod_tcsoft.vim | 68 + vim/colors/molokai.vim | 211 + vim/colors/moria.vim | 247 + vim/colors/motus.vim | 66 + vim/colors/navajo-night.vim | 119 + vim/colors/navajo.vim | 65 + vim/colors/nedit.vim | 26 + vim/colors/nedit2.vim | 29 + vim/colors/neon.vim | 70 + vim/colors/neverness.vim | 116 + vim/colors/night.vim | 79 + vim/colors/nightshimmer.vim | 111 + vim/colors/nightwish.vim | 59 + vim/colors/no_quarter.vim | 123 + vim/colors/northsky.vim | 70 + vim/colors/nuvola.vim | 107 + vim/colors/oceanblack.vim | 115 + vim/colors/oceandeep.vim | 140 + vim/colors/oceanlight.vim | 105 + vim/colors/olive.vim | 119 + vim/colors/papayawhip.vim | 31 + vim/colors/peaksea.vim | 597 ++ vim/colors/potts.vim | 53 + vim/colors/print_bw.vim | 65 + vim/colors/professional.vim | 62 + vim/colors/ps_color.vim | 538 ++ vim/colors/psql.vim | 1182 +++ vim/colors/putty.vim | 82 + vim/colors/pyte.vim | 92 + vim/colors/python.vim | 104 + vim/colors/railscasts.vim | 96 + vim/colors/rdark.vim | 159 + vim/colors/redblack.vim | 62 + vim/colors/relaxedgreen.vim | 112 + vim/colors/reloaded.vim | 444 + vim/colors/revolutions.vim | 75 + vim/colors/robinhood.vim | 103 + vim/colors/sand.vim | 30 + vim/colors/satori.vim | 47 + vim/colors/scite.vim | 48 + vim/colors/sea.vim | 69 + vim/colors/sean.vim | 83 + vim/colors/seashell.vim | 32 + vim/colors/sf.vim | 76 + vim/colors/sienna.vim | 150 + vim/colors/simpleandfriendly.vim | 56 + vim/colors/softblue.vim | 45 + vim/colors/soso.vim | 67 + vim/colors/spring.vim | 71 + vim/colors/synic.vim | 81 + vim/colors/tabula.vim | 620 ++ vim/colors/tango.vim | 78 + vim/colors/tango2.vim | 62 + vim/colors/taqua.vim | 85 + vim/colors/tcsoft.vim | 62 + vim/colors/thegoodluck.vim | 58 + vim/colors/tibet.vim | 101 + vim/colors/tolerable.vim | 43 + vim/colors/tomatosoup.vim | 80 + vim/colors/toothpik.vim | 45 + vim/colors/torte.vim | 51 + vim/colors/transparent.vim | 97 + vim/colors/turbo.vim | 68 + vim/colors/two2tango.vim | 101 + vim/colors/umber-green.vim | 89 + vim/colors/vc.vim | 24 + vim/colors/vcbc.vim | 31 + vim/colors/vibrantink.vim | 68 + vim/colors/vividchalk.vim | 172 + vim/colors/white.vim | 62 + vim/colors/whitedust.vim | 62 + vim/colors/wintersday.vim | 60 + vim/colors/wombat.vim | 51 + vim/colors/wuye.vim | 83 + vim/colors/xemacs.vim | 46 + vim/colors/xian.vim | 50 + vim/colors/xoria256.vim | 173 + vim/colors/xterm16.vim | 811 ++ vim/colors/zenburn.vim | 351 + vim/compiler/eruby.vim | 40 + vim/compiler/ruby.vim | 67 + vim/compiler/rubyunit.vim | 34 + vim/doc/AnsiEsc.txt | 134 + vim/doc/CSApprox.txt | 619 ++ vim/doc/EasyGrep.txt | 547 ++ vim/doc/IndentAnything.txt | 184 + vim/doc/NERD_commenter.txt | 991 ++ vim/doc/NERD_tree.txt | 1199 +++ vim/doc/bufexplorer.txt | 502 + vim/doc/conque_term.txt | 646 ++ vim/doc/delimitMate.txt | 818 ++ vim/doc/ft-gitcommit-plugin.txt | 5 + vim/doc/greplace.txt | 161 + vim/doc/imaps.txt | 116 + vim/doc/matchit.txt | 406 + vim/doc/ragtag.txt | 82 + vim/doc/rails.txt | 1134 +++ vim/doc/ruby_debugger.txt | 338 + vim/doc/snipMate.txt | 279 + vim/doc/supertab.txt | 307 + vim/doc/surround.txt | 218 + vim/doc/syntastic.txt | 313 + vim/doc/tComment.txt | 208 + vim/doc/taglist.txt | 1501 +++ vim/doc/vcscommand.txt | 819 ++ vim/doc/vmp.txt | 43 + vim/doc/xterm16.txt | 519 + vim/ftdetect/cucumber.vim | 2 + vim/ftdetect/git.vim | 18 + vim/ftdetect/haml.vim | 2 + vim/ftdetect/less.vim | 2 + vim/ftdetect/ruby.vim | 26 + vim/ftdetect/sinatra.vim | 9 + vim/ftplugin/cucumber.vim | 125 + vim/ftplugin/eruby.vim | 103 + vim/ftplugin/git.vim | 34 + vim/ftplugin/gitcommit.vim | 68 + vim/ftplugin/gitconfig.vim | 15 + vim/ftplugin/gitrebase.vim | 41 + vim/ftplugin/gitsendemail.vim | 6 + vim/ftplugin/haml.vim | 66 + vim/ftplugin/html/sparkup.py | 1087 +++ vim/ftplugin/html/sparkup.vim | 74 + vim/ftplugin/html_autoclosetag.vim | 72 + vim/ftplugin/ruby.vim | 262 + vim/ftplugin/ruby_indent_settings.vim | 2 + vim/ftplugin/sass.vim | 18 + vim/ftplugin/xml.vim | 1 + vim/indent/IndentAnything_html.vim | 35 + vim/indent/cucumber.vim | 40 + vim/indent/eruby.vim | 80 + vim/indent/gitconfig.vim | 35 + vim/indent/haml.vim | 73 + vim/indent/ruby.vim | 121 + vim/indent/sass.vim | 39 + vim/macros/rails.vim | 10 + vim/nerdtree_plugin/exec_menuitem.vim | 41 + vim/nerdtree_plugin/fs_menu.vim | 196 + vim/plugin/AnsiEscPlugin.vim | 30 + vim/plugin/CSApprox.vim | 900 ++ vim/plugin/ColorSchemeMenuMaker.vim | 466 + vim/plugin/ColorSchemes.vim | 486 + vim/plugin/EasyMotion.vim | 73 + vim/plugin/FindInNERDTree.vim | 61 + vim/plugin/IndentAnything.vim | 675 ++ vim/plugin/IndexedSearch.vim | 352 + vim/plugin/NERD_commenter.vim | 3132 +++++++ vim/plugin/NERD_tree.vim | 4123 ++++++++ vim/plugin/autotag.vim | 205 + vim/plugin/bufexplorer.vim | 1140 +++ vim/plugin/camelcasemotion.vim | 449 + vim/plugin/cecutil.vim | 536 ++ vim/plugin/color_sample_pack.vim | 166 + vim/plugin/conque_term.vim | 216 + vim/plugin/delimitMate.vim | 434 + vim/plugin/endwise.vim | 132 + vim/plugin/git-grep.vim | 42 + vim/plugin/greplace.vim | 310 + vim/plugin/lusty-explorer.vim | 2377 +++++ vim/plugin/lusty-juggler.vim | 1143 +++ vim/plugin/markdown-preview.css | 44 + vim/plugin/matchit.vim | 812 ++ vim/plugin/pastie.vim | 537 ++ vim/plugin/peepopen.vim | 44 + vim/plugin/ragtag.vim | 486 + vim/plugin/rails.vim | 340 + vim/plugin/repeat.vim | 72 + vim/plugin/ruby_focused_unit_test.vim | 182 + vim/plugin/rubytest.vim | 293 + vim/plugin/snipMate.vim | 226 + vim/plugin/surround.vim | 630 ++ vim/plugin/syntastic.vim | 333 + vim/plugin/tComment.vim | 385 + vim/plugin/taglist.vim | 4546 +++++++++ vim/plugin/themes.vim | 191 + .../vim-markdown-preview/kramdown/COPYING | 24 + .../kramdown/compatibility.rb | 34 + .../kramdown/converter.rb | 42 + .../kramdown/converter/base.rb | 111 + .../kramdown/converter/html.rb | 391 + .../kramdown/converter/kramdown.rb | 398 + .../kramdown/converter/latex.rb | 553 ++ .../vim-markdown-preview/kramdown/document.rb | 166 + .../vim-markdown-preview/kramdown/error.rb | 27 + .../vim-markdown-preview/kramdown/kramdown.rb | 23 + .../vim-markdown-preview/kramdown/options.rb | 283 + .../vim-markdown-preview/kramdown/parser.rb | 39 + .../kramdown/parser/base.rb | 94 + .../kramdown/parser/html.rb | 482 + .../kramdown/parser/kramdown.rb | 303 + .../kramdown/parser/kramdown/abbreviation.rb | 65 + .../parser/kramdown/attribute_list.rb | 105 + .../kramdown/parser/kramdown/autolink.rb | 47 + .../kramdown/parser/kramdown/blank_line.rb | 43 + .../kramdown/parser/kramdown/blockquote.rb | 42 + .../kramdown/parser/kramdown/codeblock.rb | 58 + .../kramdown/parser/kramdown/codespan.rb | 57 + .../kramdown/parser/kramdown/emphasis.rb | 70 + .../kramdown/parser/kramdown/eob.rb | 39 + .../kramdown/parser/kramdown/escaped_chars.rb | 38 + .../kramdown/parser/kramdown/extension.rb | 102 + .../kramdown/parser/kramdown/footnote.rb | 73 + .../kramdown/parser/kramdown/header.rb | 66 + .../parser/kramdown/horizontal_rule.rb | 39 + .../kramdown/parser/kramdown/html.rb | 173 + .../kramdown/parser/kramdown/html_entity.rb | 38 + .../kramdown/parser/kramdown/line_break.rb | 38 + .../kramdown/parser/kramdown/link.rb | 156 + .../kramdown/parser/kramdown/list.rb | 232 + .../kramdown/parser/kramdown/math.rb | 53 + .../kramdown/parser/kramdown/paragraph.rb | 44 + .../kramdown/parser/kramdown/smart_quotes.rb | 214 + .../kramdown/parser/kramdown/table.rb | 126 + .../parser/kramdown/typographic_symbol.rb | 52 + .../vim-markdown-preview/kramdown/utils.rb | 36 + .../kramdown/utils/entities.rb | 338 + .../kramdown/utils/html.rb | 72 + .../vim-markdown-preview/kramdown/version.rb | 28 + .../stylesheets/github.css | 44 + .../stylesheets/safari-reader.css | 487 + .../stylesheets/simple-print.css | 50 + vim/plugin/vmp.vim | 96 + vim/rgb.txt | 752 ++ vim/ruby/fuzzy_file_finder.rb | 354 + vim/ruby/fuzzy_file_finder.rb.backup | 353 + vim/snippets/.gitignore | 16 + vim/snippets/Rakefile | 76 + vim/snippets/_/apache.snippet | 14 + vim/snippets/_/bsd.snippet | 25 + vim/snippets/_/date/date + time.snippet | 1 + vim/snippets/_/date/date.snippet | 1 + vim/snippets/_/dox.snippet | 5 + vim/snippets/_/fold.snippet | 3 + vim/snippets/_/gpl.snippet | 15 + vim/snippets/_/lorem.snippet | 4 + vim/snippets/_/modeline.snippet | 1 + vim/snippets/ant/skel/basic.snippet | 29 + vim/snippets/archive/_.snippets | 7 + vim/snippets/archive/c.snippets | 90 + vim/snippets/archive/cpp.snippets | 30 + vim/snippets/archive/html.snippets | 192 + vim/snippets/archive/java.snippets | 78 + vim/snippets/archive/javascript.snippets | 74 + vim/snippets/archive/objc.snippets | 189 + vim/snippets/archive/perl.snippets | 91 + vim/snippets/archive/php.snippets | 216 + vim/snippets/archive/python.snippets | 72 + vim/snippets/archive/ruby.snippets | 445 + vim/snippets/archive/sh.snippets | 28 + vim/snippets/archive/snippet.snippets | 7 + vim/snippets/archive/tex.snippets | 115 + vim/snippets/archive/vim.snippets | 32 + vim/snippets/c/cl.snippet | 7 + vim/snippets/c/def.snippet | 3 + vim/snippets/c/do.snippet | 3 + vim/snippets/c/el.snippet | 3 + vim/snippets/c/for.snippet | 3 + vim/snippets/c/forr.snippet | 3 + vim/snippets/c/fpf.snippet | 1 + vim/snippets/c/fun.snippet | 4 + vim/snippets/c/if.snippet | 3 + vim/snippets/c/inc/inc.snippet | 1 + vim/snippets/c/inc/inc_global.snippet | 1 + vim/snippets/c/main.snippet | 4 + vim/snippets/c/map.snippet | 1 + vim/snippets/c/ns.snippet | 3 + vim/snippets/c/once.snippet | 6 + vim/snippets/c/pr.snippet | 1 + vim/snippets/c/readfile.snippet | 7 + vim/snippets/c/st.snippet | 3 + vim/snippets/c/t.snippet | 1 + vim/snippets/c/td.snippet | 1 + vim/snippets/c/tds.snippet | 3 + vim/snippets/c/vector.snippet | 1 + vim/snippets/c/wh.snippet | 3 + vim/snippets/cmake/bin.snippet | 1 + vim/snippets/cmake/cmake.snippet | 16 + vim/snippets/cmake/dep.snippet | 3 + vim/snippets/cmake/find.snippet | 1 + vim/snippets/cmake/glob.snippet | 1 + vim/snippets/cmake/include.snippet | 3 + vim/snippets/cmake/lib.snippet | 3 + vim/snippets/cmake/link.snippet | 3 + vim/snippets/cmake/props.snippet | 4 + vim/snippets/cmake/set.snippet | 1 + vim/snippets/cmake/subdir.snippet | 1 + vim/snippets/css/!.snippet | 1 + vim/snippets/css/#.snippet | 3 + vim/snippets/css/background/all.snippet | 1 + .../css/background/attachment.snippet | 1 + vim/snippets/css/background/color.snippet | 1 + .../css/background/color_name.snippet | 1 + vim/snippets/css/background/color_rgb.snippet | 1 + .../css/background/color_transparent.snippet | 1 + .../css/background/image_none.snippet | 1 + vim/snippets/css/background/image_url.snippet | 1 + vim/snippets/css/background/position.snippet | 1 + vim/snippets/css/background/repeat.snippet | 1 + vim/snippets/css/border/basic.snippet | 1 + vim/snippets/css/border/color.snippet | 1 + vim/snippets/css/border/style.snippet | 1 + vim/snippets/css/border/width.snippet | 1 + vim/snippets/css/borderb/basic.snippet | 1 + vim/snippets/css/borderb/color.snippet | 1 + vim/snippets/css/borderb/style.snippet | 1 + vim/snippets/css/borderb/width.snippet | 1 + vim/snippets/css/borderl/basic.snippet | 1 + vim/snippets/css/borderl/color.snippet | 1 + vim/snippets/css/borderl/style.snippet | 1 + vim/snippets/css/borderl/width.snippet | 1 + vim/snippets/css/borderr/basic.snippet | 1 + vim/snippets/css/borderr/color.snippet | 1 + vim/snippets/css/borderr/style.snippet | 1 + vim/snippets/css/borderr/width.snippet | 1 + vim/snippets/css/bordert/basic.snippet | 1 + vim/snippets/css/bordert/color.snippet | 1 + vim/snippets/css/bordert/style.snippet | 1 + vim/snippets/css/bordert/width.snippet | 1 + vim/snippets/css/cl.snippet | 3 + vim/snippets/css/clear.snippet | 1 + vim/snippets/css/color.snippet | 1 + vim/snippets/css/colorn.snippet | 1 + vim/snippets/css/colorr.snippet | 1 + vim/snippets/css/cursor.snippet | 1 + vim/snippets/css/cursuru.snippet | 1 + vim/snippets/css/direction.snippet | 1 + vim/snippets/css/display/block.snippet | 1 + vim/snippets/css/display/common.snippet | 1 + vim/snippets/css/display/inline.snippet | 1 + vim/snippets/css/display/table.snippet | 1 + vim/snippets/css/float.snippet | 1 + vim/snippets/css/font/all.snippet | 1 + vim/snippets/css/font/family.snippet | 1 + vim/snippets/css/font/size.snippet | 1 + vim/snippets/css/font/size_font.snippet | 1 + vim/snippets/css/font/style.snippet | 1 + vim/snippets/css/font/variant.snippet | 1 + vim/snippets/css/font/weight.snippet | 1 + vim/snippets/css/i.snippet | 1 + vim/snippets/css/letter.snippet | 1 + vim/snippets/css/letterem.snippet | 1 + vim/snippets/css/letterpx.snippet | 1 + vim/snippets/css/list-style/image.snippet | 1 + vim/snippets/css/list-style/position.snippet | 1 + .../css/list-style/type_asian.snippet | 1 + .../css/list-style/type_marker.snippet | 1 + .../css/list-style/type_numeric.snippet | 1 + .../css/list-style/type_other.snippet | 1 + .../list-style/type_position_image.snippet | 1 + .../list-style/type_roman_alpha_greek.snippet | 1 + vim/snippets/css/margin.snippet | 1 + vim/snippets/css/marginb.snippet | 1 + vim/snippets/css/marginl.snippet | 1 + vim/snippets/css/margino/T_R_B_L.snippet | 1 + vim/snippets/css/margino/V_H.snippet | 1 + vim/snippets/css/margino/all.snippet | 1 + vim/snippets/css/margino/bottom.snippet | 1 + vim/snippets/css/margino/left.snippet | 1 + vim/snippets/css/margino/right.snippet | 1 + vim/snippets/css/margino/top.snippet | 1 + vim/snippets/css/marginr.snippet | 1 + vim/snippets/css/margint.snippet | 1 + vim/snippets/css/marker/offset_auto.snippet | 1 + vim/snippets/css/marker/offset_length.snippet | 1 + vim/snippets/css/opacity.snippet | 3 + vim/snippets/css/overflow.snippet | 1 + vim/snippets/css/padding.snippet | 1 + vim/snippets/css/paddingb.snippet | 1 + vim/snippets/css/paddingl.snippet | 1 + vim/snippets/css/paddingo/T_R_B_L.snippet | 1 + vim/snippets/css/paddingo/V_H.snippet | 1 + vim/snippets/css/paddingo/all.snippet | 1 + vim/snippets/css/paddingo/bottom.snippet | 1 + vim/snippets/css/paddingo/left.snippet | 1 + vim/snippets/css/paddingo/right.snippet | 1 + vim/snippets/css/paddingo/top.snippet | 1 + vim/snippets/css/paddingr.snippet | 1 + vim/snippets/css/paddingt.snippet | 1 + vim/snippets/css/position.snippet | 1 + vim/snippets/css/scrollbar.snippet | 8 + vim/snippets/css/tag.snippet | 3 + vim/snippets/css/text/align.snippet | 1 + vim/snippets/css/text/decoration.snippet | 1 + vim/snippets/css/text/indent.snippet | 1 + vim/snippets/css/text/shadow_hex.snippet | 1 + vim/snippets/css/text/shadow_none.snippet | 1 + vim/snippets/css/text/shadow_rgb.snippet | 1 + vim/snippets/css/text/transform.snippet | 1 + vim/snippets/css/text/transform_none.snippet | 1 + vim/snippets/css/url.snippet | 1 + vim/snippets/css/vertical.snippet | 1 + vim/snippets/css/visibility.snippet | 1 + vim/snippets/css/white.snippet | 1 + vim/snippets/css/word/spacing_length.snippet | 1 + vim/snippets/css/word/spacing_normal.snippet | 1 + vim/snippets/css/z.snippet | 1 + vim/snippets/cucumber/a.snippet | 1 + vim/snippets/cucumber/aa.snippet | 1 + vim/snippets/cucumber/b.snippet | 2 + vim/snippets/cucumber/e.snippet | 2 + vim/snippets/cucumber/f.snippet | 2 + vim/snippets/cucumber/feat.snippet | 5 + vim/snippets/cucumber/feature.snippet | 5 + vim/snippets/cucumber/g/given.snippet | 2 + vim/snippets/cucumber/g/given_regexp.snippet | 3 + vim/snippets/cucumber/iwt.snippet | 1 + vim/snippets/cucumber/s.snippet | 1 + .../cucumber/scen/scenario_with_js.snippet | 3 + .../cucumber/scen/scenario_without_js.snippet | 3 + vim/snippets/cucumber/so.snippet | 1 + vim/snippets/cucumber/steps | 23 + vim/snippets/cucumber/sti.snippet | 1 + vim/snippets/cucumber/t.snippet | 1 + vim/snippets/cucumber/w.snippet | 1 + vim/snippets/django-html/#.snippet | 1 + vim/snippets/django-html/%%.snippet | 3 + vim/snippets/django-html/%.snippet | 1 + vim/snippets/django-html/add.snippet | 1 + vim/snippets/django-html/autoescape.snippet | 3 + vim/snippets/django-html/block.snippet | 3 + vim/snippets/django-html/center.snippet | 1 + vim/snippets/django-html/comment.snippet | 3 + vim/snippets/django-html/cut.snippet | 1 + vim/snippets/django-html/cycle.snippet | 1 + vim/snippets/django-html/date.snippet | 1 + vim/snippets/django-html/debug.snippet | 1 + vim/snippets/django-html/default.snippet | 1 + .../django-html/defaultifnone.snippet | 1 + vim/snippets/django-html/dictsort.snippet | 1 + vim/snippets/django-html/dictsortrev.snippet | 1 + vim/snippets/django-html/divisibleby.snippet | 1 + vim/snippets/django-html/else.snippet | 2 + vim/snippets/django-html/empty.snippet | 2 + vim/snippets/django-html/extends.snippet | 1 + vim/snippets/django-html/filter.snippet | 3 + vim/snippets/django-html/firstof.snippet | 1 + vim/snippets/django-html/floatformat.snippet | 1 + vim/snippets/django-html/for.snippet | 3 + vim/snippets/django-html/getdigit.snippet | 1 + vim/snippets/django-html/if.snippet | 3 + vim/snippets/django-html/ifchanged.snippet | 3 + vim/snippets/django-html/ifequal.snippet | 3 + vim/snippets/django-html/ifnotequal.snippet | 3 + vim/snippets/django-html/include.snippet | 1 + vim/snippets/django-html/join.snippet | 1 + vim/snippets/django-html/lengthis.snippet | 1 + vim/snippets/django-html/load.snippet | 1 + vim/snippets/django-html/now.snippet | 1 + vim/snippets/django-html/pluralize.snippet | 1 + vim/snippets/django-html/regroup.snippet | 1 + vim/snippets/django-html/removetags.snippet | 1 + vim/snippets/django-html/slice.snippet | 1 + vim/snippets/django-html/spaceless.snippet | 3 + vim/snippets/django-html/ssi.snippet | 1 + vim/snippets/django-html/stringformat.snippet | 1 + .../templatetag/closeblock.snippet | 1 + .../templatetag/closevariable.snippet | 1 + .../django-html/templatetag/openblock.snippet | 1 + .../templatetag/openvariable.snippet | 1 + vim/snippets/django-html/time.snippet | 1 + vim/snippets/django-html/trans.snippet | 1 + .../django-html/truncatewords.snippet | 1 + .../django-html/truncatewordshtml.snippet | 1 + vim/snippets/django-html/url.snippet | 1 + vim/snippets/django-html/urlizetrunc.snippet | 1 + vim/snippets/django-html/widthratio.snippet | 1 + vim/snippets/django-html/with.snippet | 1 + vim/snippets/django-html/wordwrap.snippet | 1 + vim/snippets/django-html/{.snippet | 1 + vim/snippets/django/auto.snippet | 1 + vim/snippets/django/bool.snippet | 1 + vim/snippets/django/char.snippet | 1 + vim/snippets/django/comma.snippet | 1 + vim/snippets/django/date.snippet | 1 + vim/snippets/django/datetime.snippet | 1 + vim/snippets/django/decimal.snippet | 1 + vim/snippets/django/email.snippet | 1 + vim/snippets/django/file.snippet | 1 + vim/snippets/django/filepath.snippet | 1 + vim/snippets/django/fk.snippet | 1 + vim/snippets/django/float.snippet | 1 + vim/snippets/django/form.snippet | 3 + vim/snippets/django/image.snippet | 1 + vim/snippets/django/int.snippet | 1 + vim/snippets/django/ip.snippet | 1 + vim/snippets/django/manytomany.snippet | 1 + vim/snippets/django/model.snippet | 16 + vim/snippets/django/modeladmin.snippet | 4 + vim/snippets/django/nullbool.snippet | 1 + vim/snippets/django/onetoone.snippet | 1 + vim/snippets/django/posint.snippet | 1 + vim/snippets/django/possmallint.snippet | 1 + vim/snippets/django/rendertores.snippet | 4 + vim/snippets/django/sendmail.snippet | 1 + vim/snippets/django/slug.snippet | 1 + vim/snippets/django/smallint.snippet | 1 + vim/snippets/django/stackedinline.snippet | 2 + vim/snippets/django/tabularinline.snippet | 2 + vim/snippets/django/text.snippet | 1 + vim/snippets/django/time.snippet | 1 + vim/snippets/django/url.snippet | 1 + vim/snippets/django/xml.snippet | 1 + vim/snippets/eruby-rails/%-.snippet | 1 + vim/snippets/eruby-rails/%.snippet | 1 + vim/snippets/eruby-rails/%=-.snippet | 1 + vim/snippets/eruby-rails/%=.snippet | 1 + vim/snippets/eruby-rails/%h.snippet | 1 + vim/snippets/eruby-rails/conf.snippet | 3 + vim/snippets/eruby-rails/cs.snippet | 1 + vim/snippets/eruby-rails/ct.snippet | 1 + vim/snippets/eruby-rails/e.snippet | 1 + vim/snippets/eruby-rails/eend.snippet | 1 + vim/snippets/eruby-rails/end.snippet | 2 + vim/snippets/eruby-rails/er.snippet | 1 + vim/snippets/eruby-rails/ff.snippet | 3 + vim/snippets/eruby-rails/ffcb.snippet | 1 + vim/snippets/eruby-rails/ffe.snippet | 4 + vim/snippets/eruby-rails/ffff.snippet | 1 + vim/snippets/eruby-rails/ffhf.snippet | 1 + vim/snippets/eruby-rails/ffl.snippet | 1 + vim/snippets/eruby-rails/ffpf.snippet | 1 + vim/snippets/eruby-rails/ffrb.snippet | 1 + vim/snippets/eruby-rails/ffs.snippet | 1 + vim/snippets/eruby-rails/ffta.snippet | 1 + vim/snippets/eruby-rails/fftf.snippet | 1 + vim/snippets/eruby-rails/fields.snippet | 3 + vim/snippets/eruby-rails/for.snippet | 3 + vim/snippets/eruby-rails/ft.snippet | 3 + vim/snippets/eruby-rails/fta.snippet | 3 + vim/snippets/eruby-rails/i18.snippet | 1 + vim/snippets/eruby-rails/it.snippet | 1 + vim/snippets/eruby-rails/jit.snippet | 1 + vim/snippets/eruby-rails/jsit.snippet | 1 + vim/snippets/eruby-rails/jt.snippet | 5 + vim/snippets/eruby-rails/lia.snippet | 1 + vim/snippets/eruby-rails/liai.snippet | 1 + vim/snippets/eruby-rails/lic.snippet | 1 + vim/snippets/eruby-rails/lica.snippet | 1 + vim/snippets/eruby-rails/licai.snippet | 1 + vim/snippets/eruby-rails/lim.snippet | 1 + vim/snippets/eruby-rails/linp.snippet | 1 + vim/snippets/eruby-rails/linpp.snippet | 1 + vim/snippets/eruby-rails/lip.snippet | 1 + vim/snippets/eruby-rails/lipp.snippet | 1 + vim/snippets/eruby-rails/lt.snippet | 1 + vim/snippets/eruby-rails/ltr.snippet | 1 + vim/snippets/eruby-rails/ofcfs.snippet | 1 + vim/snippets/eruby-rails/rf.snippet | 1 + vim/snippets/eruby-rails/rp.snippet | 1 + vim/snippets/eruby-rails/rt.snippet | 1 + vim/snippets/eruby-rails/sbtr.snippet | 1 + .../eruby-rails/sff/sff.multi.snippet | 6 + .../eruby-rails/sff/sff.simple.snippet | 4 + vim/snippets/eruby-rails/slt.snippet | 1 + vim/snippets/eruby-rails/sslt.snippet | 1 + vim/snippets/eruby-rails/st.snippet | 1 + vim/snippets/eruby/e.snippet | 1 + vim/snippets/eruby/else.snippet | 1 + vim/snippets/eruby/end.snippet | 1 + vim/snippets/eruby/er.snippet | 1 + vim/snippets/eruby/if.snippet | 3 + vim/snippets/eruby/ife.snippet | 4 + vim/snippets/eruby/p.snippet | 3 + vim/snippets/eruby/unless.snippet | 3 + vim/snippets/eruby/unlesse.snippet | 4 + vim/snippets/falcon/class.snippet | 3 + vim/snippets/falcon/elif.snippet | 2 + vim/snippets/falcon/forin.snippet | 3 + vim/snippets/falcon/forto.snippet | 3 + vim/snippets/falcon/fun.snippet | 3 + vim/snippets/falcon/if.snippet | 3 + vim/snippets/falcon/ife.snippet | 5 + vim/snippets/falcon/imp.snippet | 1 + vim/snippets/falcon/while.snippet | 3 + vim/snippets/falcon/while.snippet!.snippet | 1 + vim/snippets/haml-html/p.snippet | 2 + vim/snippets/haml/conf.snippet | 3 + vim/snippets/haml/cs.snippet | 1 + vim/snippets/haml/ff.snippet | 2 + vim/snippets/haml/ffcb.snippet | 1 + vim/snippets/haml/ffe.snippet | 3 + vim/snippets/haml/ffff.snippet | 1 + vim/snippets/haml/ffhf.snippet | 1 + vim/snippets/haml/ffl.snippet | 1 + vim/snippets/haml/ffpf.snippet | 1 + vim/snippets/haml/ffrb.snippet | 1 + vim/snippets/haml/ffs.snippet | 1 + vim/snippets/haml/ffta.snippet | 1 + vim/snippets/haml/fftf.snippet | 1 + vim/snippets/haml/fields.snippet | 2 + vim/snippets/haml/for.snippet | 2 + vim/snippets/haml/ft.snippet | 2 + vim/snippets/haml/if.snippet | 2 + vim/snippets/haml/ife.snippet | 3 + vim/snippets/haml/it.snippet | 1 + vim/snippets/haml/jit.snippet | 1 + vim/snippets/haml/jsit.snippet | 1 + vim/snippets/haml/lia.snippet | 1 + vim/snippets/haml/liai.snippet | 1 + vim/snippets/haml/lic.snippet | 1 + vim/snippets/haml/lica.snippet | 1 + vim/snippets/haml/licai.snippet | 1 + vim/snippets/haml/lim.snippet | 1 + vim/snippets/haml/linp.snippet | 1 + vim/snippets/haml/linpp.snippet | 1 + vim/snippets/haml/lip.snippet | 1 + vim/snippets/haml/lipp.snippet | 1 + vim/snippets/haml/lt.snippet | 1 + vim/snippets/haml/ofcfs.snippet | 1 + vim/snippets/haml/rf.snippet | 1 + vim/snippets/haml/rp.snippet | 1 + vim/snippets/haml/rt.snippet | 1 + vim/snippets/haml/slt.snippet | 1 + vim/snippets/haml/sslt.snippet | 1 + vim/snippets/haml/st.snippet | 1 + vim/snippets/haml/unless.snippet | 3 + vim/snippets/haml/unlesse.snippet | 4 + vim/snippets/html.snippets | 6 + vim/snippets/html/ah.snippet | 1 + vim/snippets/html/base.snippet | 1 + vim/snippets/html/body.snippet | 3 + vim/snippets/html/break.snippet | 1 + vim/snippets/html/css.snippet | 1 + vim/snippets/html/div.snippet | 3 + vim/snippets/html/doctype.snippet | 1 + .../html/doctype/HTML 4.01 Strict.snippet | 2 + .../doctype/HTML 4.01 Transitional.snippet | 2 + vim/snippets/html/doctype/HTML 5.snippet | 2 + .../html/doctype/XHTML 1.0 Frameset.snippet | 2 + .../html/doctype/XHTML 1.0 Strict.snippet | 2 + .../doctype/XHTML 1.0 Transitional.snippet | 2 + vim/snippets/html/doctype/XHTML 1.1.snippet | 2 + vim/snippets/html/form.snippet | 5 + vim/snippets/html/h1.snippet | 1 + vim/snippets/html/h2.snippet | 1 + vim/snippets/html/h3.snippet | 1 + vim/snippets/html/head.snippet | 5 + vim/snippets/html/href.snippet | 1 + vim/snippets/html/ifie.snippet | 1 + vim/snippets/html/img.snippet | 1 + vim/snippets/html/input.snippet | 1 + vim/snippets/html/inputl.snippet | 2 + vim/snippets/html/label.snippet | 1 + vim/snippets/html/li.snippet | 1 + vim/snippets/html/link.snippet | 1 + vim/snippets/html/mailto.snippet | 1 + vim/snippets/html/meta.snippet | 1 + vim/snippets/html/movie.snippet | 12 + vim/snippets/html/ol.snippet | 4 + vim/snippets/html/option.snippet | 1 + vim/snippets/html/p.snippet | 3 + vim/snippets/html/php.snippet | 1 + .../html/script/include_script.snippet | 1 + .../html/script/inline_script.snippet | 5 + vim/snippets/html/select.snippet | 3 + vim/snippets/html/skel/HTML 4 Strict.snippet | 15 + vim/snippets/html/skel/HTML 5.snippet | 17 + .../html/skel/XHTML 1.0 Strict.snippet | 15 + vim/snippets/html/skel/basic.snippet | 13 + .../html/skel/basic_with_meta.snippet | 15 + vim/snippets/html/skel/html5.snippet | 28 + vim/snippets/html/span.snippet | 1 + vim/snippets/html/style.snippet | 3 + vim/snippets/html/t.snippet | 3 + vim/snippets/html/table/basic.snippet | 3 + vim/snippets/html/table/hardcore.snippet | 9 + vim/snippets/html/textarea.snippet | 1 + vim/snippets/html/ti.snippet | 1 + vim/snippets/html/tt.snippet | 1 + vim/snippets/html/ul.snippet | 4 + .../java/class/basic+constructor+main.snippet | 17 + .../java/class/basic+constructor.snippet | 14 + vim/snippets/java/class/basic.snippet | 14 + vim/snippets/java/for.snippet | 3 + vim/snippets/java/gs.snippet | 9 + vim/snippets/java/if.snippet | 3 + vim/snippets/java/ife.snippet | 4 + vim/snippets/java/log.snippet | 1 + vim/snippets/java/m.snippet | 8 + vim/snippets/javascript-jquery/add.snippet | 1 + .../javascript-jquery/addClass.snippet | 1 + vim/snippets/javascript-jquery/after.snippet | 1 + vim/snippets/javascript-jquery/ajax.snippet | 18 + .../javascript-jquery/ajaxerror.snippet | 4 + .../javascript-jquery/ajaxget.snippet | 3 + .../javascript-jquery/ajaxgetif.snippet | 3 + .../javascript-jquery/ajaxpost.snippet | 5 + .../javascript-jquery/ajaxsend.snippet | 4 + .../javascript-jquery/ajaxsetup.snippet | 18 + .../javascript-jquery/ajaxstart.snippet | 4 + .../javascript-jquery/ajaxstop.snippet | 4 + .../javascript-jquery/ajaxsuccess.snippet | 4 + .../javascript-jquery/animate.snippet | 1 + vim/snippets/javascript-jquery/append.snippet | 1 + .../javascript-jquery/appendTo.snippet | 1 + vim/snippets/javascript-jquery/attr.snippet | 1 + vim/snippets/javascript-jquery/attrm.snippet | 1 + vim/snippets/javascript-jquery/before.snippet | 1 + vim/snippets/javascript-jquery/bind.snippet | 3 + vim/snippets/javascript-jquery/blur.snippet | 3 + vim/snippets/javascript-jquery/change.snippet | 3 + .../javascript-jquery/children.snippet | 1 + vim/snippets/javascript-jquery/click.snippet | 3 + vim/snippets/javascript-jquery/clone.snippet | 1 + .../javascript-jquery/contains.snippet | 1 + vim/snippets/javascript-jquery/css.snippet | 1 + vim/snippets/javascript-jquery/cssm.snippet | 1 + .../javascript-jquery/dblclick.snippet | 3 + vim/snippets/javascript-jquery/each.snippet | 3 + vim/snippets/javascript-jquery/el.snippet | 1 + vim/snippets/javascript-jquery/eltrim.snippet | 1 + vim/snippets/javascript-jquery/end.snippet | 1 + vim/snippets/javascript-jquery/error.snippet | 3 + vim/snippets/javascript-jquery/fadein.snippet | 1 + .../javascript-jquery/fadeinc.snippet | 3 + .../javascript-jquery/fadeout.snippet | 1 + .../javascript-jquery/fadeoutc.snippet | 3 + vim/snippets/javascript-jquery/fadeto.snippet | 1 + .../javascript-jquery/fadetoc.snippet | 3 + vim/snippets/javascript-jquery/filter.snippet | 1 + vim/snippets/javascript-jquery/find.snippet | 1 + vim/snippets/javascript-jquery/focus.snippet | 3 + vim/snippets/javascript-jquery/get.snippet | 1 + .../javascript-jquery/getjson.snippet | 5 + .../javascript-jquery/getscript.snippet | 3 + vim/snippets/javascript-jquery/height.snippet | 1 + vim/snippets/javascript-jquery/hide.snippet | 1 + vim/snippets/javascript-jquery/hidec.snippet | 3 + vim/snippets/javascript-jquery/hover.snippet | 5 + vim/snippets/javascript-jquery/html.snippet | 1 + .../javascript-jquery/insertAfter.snippet | 1 + .../javascript-jquery/insertBefore.snippet | 1 + vim/snippets/javascript-jquery/is.snippet | 1 + vim/snippets/javascript-jquery/jj.snippet | 1 + vim/snippets/javascript-jquery/load.snippet | 3 + vim/snippets/javascript-jquery/loadf.snippet | 3 + vim/snippets/javascript-jquery/loadif.snippet | 3 + vim/snippets/javascript-jquery/mdown.snippet | 3 + vim/snippets/javascript-jquery/mmove.snippet | 3 + vim/snippets/javascript-jquery/mout.snippet | 3 + vim/snippets/javascript-jquery/mover.snippet | 3 + vim/snippets/javascript-jquery/mup.snippet | 3 + vim/snippets/javascript-jquery/next.snippet | 1 + vim/snippets/javascript-jquery/not.snippet | 1 + vim/snippets/javascript-jquery/one.snippet | 3 + vim/snippets/javascript-jquery/parent.snippet | 1 + .../javascript-jquery/parents.snippet | 1 + vim/snippets/javascript-jquery/plugin.snippet | 28 + .../javascript-jquery/prepend.snippet | 1 + .../javascript-jquery/prependto.snippet | 1 + vim/snippets/javascript-jquery/prev.snippet | 1 + vim/snippets/javascript-jquery/ready.snippet | 3 + vim/snippets/javascript-jquery/remove.snippet | 1 + .../javascript-jquery/removeattr.snippet | 1 + .../javascript-jquery/removeclass.snippet | 1 + vim/snippets/javascript-jquery/reset.snippet | 3 + vim/snippets/javascript-jquery/resize.snippet | 3 + vim/snippets/javascript-jquery/scroll.snippet | 3 + vim/snippets/javascript-jquery/sdown.snippet | 1 + vim/snippets/javascript-jquery/sdownc.snippet | 3 + vim/snippets/javascript-jquery/sdupc.snippet | 3 + vim/snippets/javascript-jquery/select.snippet | 3 + vim/snippets/javascript-jquery/show.snippet | 1 + vim/snippets/javascript-jquery/showc.snippet | 3 + vim/snippets/javascript-jquery/sib.snippet | 1 + vim/snippets/javascript-jquery/size.snippet | 1 + .../javascript-jquery/stoggle.snippet | 1 + vim/snippets/javascript-jquery/submit.snippet | 3 + vim/snippets/javascript-jquery/sup.snippet | 1 + vim/snippets/javascript-jquery/text.snippet | 1 + vim/snippets/javascript-jquery/this.snippet | 1 + vim/snippets/javascript-jquery/tog.snippet | 6 + .../javascript-jquery/togclass.snippet | 1 + vim/snippets/javascript-jquery/togsh.snippet | 1 + vim/snippets/javascript-jquery/trig.snippet | 1 + vim/snippets/javascript-jquery/unbind.snippet | 1 + vim/snippets/javascript-jquery/val.snippet | 1 + vim/snippets/javascript-jquery/width.snippet | 1 + vim/snippets/javascript-jquery/wrap.snippet | 1 + vim/snippets/javascript/a.snippet | 1 + vim/snippets/javascript/anon.snippet | 3 + vim/snippets/javascript/as.snippet | 1 + vim/snippets/javascript/ea.snippet | 3 + vim/snippets/javascript/for.snippet | 3 + vim/snippets/javascript/fun.snippet | 3 + vim/snippets/javascript/if.snippet | 3 + vim/snippets/javascript/ife.snippet | 4 + vim/snippets/javascript/iff.snippet | 3 + vim/snippets/javascript/l.snippet | 1 + vim/snippets/javascript/log.snippet | 1 + vim/snippets/javascript/met.snippet | 3 + vim/snippets/javascript/pe.snippet | 3 + vim/snippets/javascript/pf.snippet | 3 + vim/snippets/javascript/proto.snippet | 3 + vim/snippets/javascript/t.snippet | 1 + vim/snippets/javascript/timeout.snippet | 1 + vim/snippets/jinja.snippets | 8 + vim/snippets/jinja/block.snippet | 3 + vim/snippets/jinja/else.snippet | 2 + vim/snippets/jinja/extends.snippet | 1 + vim/snippets/jinja/for.snippet | 3 + vim/snippets/jinja/if.snippet | 3 + vim/snippets/jinja/include.snippet | 1 + vim/snippets/markdown.snippets | 51 + vim/snippets/objc/I.snippet | 6 + vim/snippets/objc/Imp.snippet | 1 + vim/snippets/objc/alloc.snippet | 1 + vim/snippets/objc/array.snippet | 1 + vim/snippets/objc/bez.snippet | 1 + vim/snippets/objc/cat.snippet | 6 + vim/snippets/objc/cati.snippet | 3 + vim/snippets/objc/cli.snippet | 5 + vim/snippets/objc/dict.snippet | 1 + vim/snippets/objc/forarray.snippet | 7 + vim/snippets/objc/log.snippet | 1 + vim/snippets/objc/m/class method.snippet | 4 + vim/snippets/objc/m/method.snippet | 4 + vim/snippets/objc/objacc.snippet | 11 + vim/snippets/objc/objc.snippet | 14 + vim/snippets/objc/prop.snippet | 1 + vim/snippets/objc/rel.snippet | 1 + vim/snippets/objc/ret.snippet | 1 + vim/snippets/objc/sel.snippet | 1 + vim/snippets/objc/sm.snippet | 5 + vim/snippets/objc/syn.snippet | 1 + vim/snippets/php-cake/actas.snippet | 3 + vim/snippets/php-cake/addc.snippet | 1 + vim/snippets/php-cake/aftdel.snippet | 3 + vim/snippets/php-cake/aftfin.snippet | 3 + vim/snippets/php-cake/aftfind.snippet | 3 + vim/snippets/php-cake/aftsave.snippet | 3 + vim/snippets/php-cake/aftss.snippet | 4 + vim/snippets/php-cake/aftsse.snippet | 4 + vim/snippets/php-cake/befdel.snippet | 3 + vim/snippets/php-cake/beffil.snippet | 3 + vim/snippets/php-cake/beffind.snippet | 3 + vim/snippets/php-cake/befren.snippet | 3 + vim/snippets/php-cake/befsave.snippet | 3 + vim/snippets/php-cake/befsca.snippet | 4 + vim/snippets/php-cake/befval.snippet | 3 + vim/snippets/php-cake/bt.snippet | 3 + vim/snippets/php-cake/cbefdel.snippet | 3 + vim/snippets/php-cake/cfg.snippet | 1 + vim/snippets/php-cake/cfl.snippet | 1 + vim/snippets/php-cake/cinit.snippet | 4 + vim/snippets/php-cake/cri.snippet | 1 + vim/snippets/php-cake/dat.snippet | 1 + vim/snippets/php-cake/dbg.snippet | 1 + vim/snippets/php-cake/dela.snippet | 1 + vim/snippets/php-cake/ele.snippet | 1 + vim/snippets/php-cake/fchk.snippet | 1 + vim/snippets/php-cake/fcre.snippet | 1 + vim/snippets/php-cake/fend.snippet | 1 + vim/snippets/php-cake/ferr.snippet | 1 + vim/snippets/php-cake/ffil.snippet | 1 + vim/snippets/php-cake/fhid.snippet | 1 + vim/snippets/php-cake/finp.snippet | 1 + vim/snippets/php-cake/flbl.snippet | 1 + vim/snippets/php-cake/fpwd.snippet | 1 + vim/snippets/php-cake/frad.snippet | 1 + vim/snippets/php-cake/fsel.snippet | 1 + vim/snippets/php-cake/fsub.snippet | 1 + vim/snippets/php-cake/fsubimg.snippet | 1 + vim/snippets/php-cake/ftarea.snippet | 1 + vim/snippets/php-cake/ftxt.snippet | 1 + vim/snippets/php-cake/getc.snippet | 1 + vim/snippets/php-cake/habtm.snippet | 3 + vim/snippets/php-cake/hm.snippet | 3 + vim/snippets/php-cake/ho.snippet | 3 + vim/snippets/php-cake/imp.snippet | 1 + .../php-cake/inflector/camelize.snippet | 1 + .../php-cake/inflector/classify.snippet | 1 + .../php-cake/inflector/humanize.snippet | 1 + .../php-cake/inflector/pluralize.snippet | 1 + .../php-cake/inflector/singularize.snippet | 1 + vim/snippets/php-cake/inflector/slug.snippet | 1 + .../php-cake/inflector/tabelize.snippet | 1 + .../php-cake/inflector/underscore.snippet | 1 + .../php-cake/inflector/variable.snippet | 1 + vim/snippets/php-cake/lay.snippet | 1 + vim/snippets/php-cake/lay=.snippet | 1 + vim/snippets/php-cake/lia.snippet | 1 + vim/snippets/php-cake/lic.snippet | 1 + vim/snippets/php-cake/lica.snippet | 1 + vim/snippets/php-cake/lin.snippet | 1 + vim/snippets/php-cake/matom.snippet | 1 + vim/snippets/php-cake/mdel.snippet | 1 + vim/snippets/php-cake/mdesc.snippet | 1 + vim/snippets/php-cake/mfind.snippet | 1 + vim/snippets/php-cake/mfinda.snippet | 1 + vim/snippets/php-cake/mfindb.snippet | 1 + vim/snippets/php-cake/mfindc.snippet | 1 + vim/snippets/php-cake/mfindf.snippet | 1 + vim/snippets/php-cake/mfindl.snippet | 1 + vim/snippets/php-cake/mfindn.snippet | 1 + vim/snippets/php-cake/mfindt.snippet | 1 + vim/snippets/php-cake/micon.snippet | 1 + vim/snippets/php-cake/mid.snippet | 1 + vim/snippets/php-cake/mifsave.snippet | 5 + vim/snippets/php-cake/mkeyw.snippet | 1 + vim/snippets/php-cake/mrem.snippet | 1 + vim/snippets/php-cake/mrss.snippet | 1 + vim/snippets/php-cake/msave.snippet | 1 + vim/snippets/php-cake/msavef.snippet | 1 + vim/snippets/php-cake/mupa.snippet | 1 + vim/snippets/php-cake/newbeh.snippet | 3 + vim/snippets/php-cake/newcom.snippet | 4 + vim/snippets/php-cake/newcon.snippet | 3 + vim/snippets/php-cake/newhel.snippet | 3 + vim/snippets/php-cake/newmod.snippet | 3 + vim/snippets/php-cake/onerr.snippet | 3 + vim/snippets/php-cake/par.snippet | 1 + vim/snippets/php-cake/pr.snippet | 1 + vim/snippets/php-cake/pt=.snippet | 1 + vim/snippets/php-cake/ran.snippet | 1 + vim/snippets/php-cake/rbe.snippet | 1 + vim/snippets/php-cake/rbl.snippet | 1 + vim/snippets/php-cake/rbo.snippet | 1 + vim/snippets/php-cake/rcc.snippet | 1 + vim/snippets/php-cake/rco.snippet | 1 + vim/snippets/php-cake/rcu.snippet | 1 + vim/snippets/php-cake/rda.snippet | 1 + vim/snippets/php-cake/rde.snippet | 1 + vim/snippets/php-cake/rea.snippet | 1 + vim/snippets/php-cake/rec.snippet | 1 + vim/snippets/php-cake/reca.snippet | 1 + vim/snippets/php-cake/redir.snippet | 1 + vim/snippets/php-cake/rem.snippet | 1 + vim/snippets/php-cake/ren.snippet | 1 + vim/snippets/php-cake/req.snippet | 1 + vim/snippets/php-cake/rex.snippet | 1 + vim/snippets/php-cake/rfi.snippet | 1 + vim/snippets/php-cake/rin.snippet | 1 + vim/snippets/php-cake/rip.snippet | 1 + vim/snippets/php-cake/rma.snippet | 1 + vim/snippets/php-cake/rmi.snippet | 1 + vim/snippets/php-cake/rmo.snippet | 1 + vim/snippets/php-cake/rmu.snippet | 1 + vim/snippets/php-cake/rnu.snippet | 1 + vim/snippets/php-cake/rph.snippet | 1 + vim/snippets/php-cake/rpo.snippet | 1 + vim/snippets/php-cake/rra.snippet | 1 + vim/snippets/php-cake/rssn.snippet | 1 + vim/snippets/php-cake/rti.snippet | 1 + vim/snippets/php-cake/rur.snippet | 1 + vim/snippets/php-cake/scaerr.snippet | 4 + vim/snippets/php-cake/scf.snippet | 1 + vim/snippets/php-cake/see.snippet | 1 + vim/snippets/php-cake/sef.snippet | 1 + vim/snippets/php-cake/ser.snippet | 1 + vim/snippets/php-cake/set.snippet | 1 + vim/snippets/php-cake/sfl.snippet | 1 + vim/snippets/php-cake/ssc.snippet | 1 + vim/snippets/php-cake/ssd.snippet | 1 + vim/snippets/php-cake/ssde.snippet | 1 + vim/snippets/php-cake/sse.snippet | 1 + vim/snippets/php-cake/ssf.snippet | 1 + vim/snippets/php-cake/ssr.snippet | 1 + vim/snippets/php-cake/ssw.snippet | 1 + vim/snippets/php-cake/tfl.snippet | 1 + vim/snippets/php-cake/use.snippet | 1 + vim/snippets/php-cake/val.snippet | 9 + vim/snippets/php-cake/vcfl.snippet | 1 + vim/snippets/php-cake/vsfl.snippet | 1 + vim/snippets/php-cake/vtfl.snippet | 1 + vim/snippets/php-zend/assert.snippet | 1 + vim/snippets/php-zend/boolcol.snippet | 1 + vim/snippets/php-zend/clac.snippet | 20 + vim/snippets/php-zend/flash.snippet | 1 + vim/snippets/php-zend/getconf.snippet | 1 + vim/snippets/php-zend/input.snippet | 4 + vim/snippets/php-zend/inputarr.snippet | 6 + vim/snippets/php-zend/intcol.snippet | 1 + vim/snippets/php-zend/lib.snippet | 5 + vim/snippets/php-zend/model.snippet | 32 + vim/snippets/php-zend/navi.snippet | 1 + vim/snippets/php-zend/route.snippet | 1 + vim/snippets/php-zend/rp.snippet | 2 + vim/snippets/php-zend/strcol.snippet | 1 + vim/snippets/php/$.snippet | 1 + vim/snippets/php/$a.snippet | 1 + vim/snippets/php/$m.snippet | 1 + vim/snippets/php/a.snippet | 1 + vim/snippets/php/ar.snippet | 1 + vim/snippets/php/array.snippet | 1 + vim/snippets/php/case.snippet | 3 + vim/snippets/php/class.snippet | 11 + vim/snippets/php/classe.snippet | 12 + vim/snippets/php/def.snippet | 1 + vim/snippets/php/defd.snippet | 1 + vim/snippets/php/do.snippet | 3 + vim/snippets/php/doc_cp.snippet | 6 + vim/snippets/php/doc_f.snippet | 8 + vim/snippets/php/doc_h.snippet | 10 + vim/snippets/php/doc_i.snippet | 8 + vim/snippets/php/each.snippet | 1 + vim/snippets/php/eachk.snippet | 1 + vim/snippets/php/ec.snippet | 1 + vim/snippets/php/else.snippet | 3 + vim/snippets/php/elseif.snippet | 3 + vim/snippets/php/for.snippet | 3 + .../php/fore/key-value-template.snippet | 4 + vim/snippets/php/fore/key-value.snippet | 5 + vim/snippets/php/fore/value-template.snippet | 4 + vim/snippets/php/fore/value.snippet | 5 + vim/snippets/php/foreach.snippet | 3 + vim/snippets/php/foreachk.snippet | 3 + vim/snippets/php/fun.snippet | 4 + vim/snippets/php/get.snippet | 1 + vim/snippets/php/globals.snippet | 1 + vim/snippets/php/if.snippet | 3 + vim/snippets/php/ife.snippet | 4 + vim/snippets/php/inc.snippet | 1 + vim/snippets/php/inc1.snippet | 1 + vim/snippets/php/k.snippet | 1 + vim/snippets/php/ks.snippet | 1 + vim/snippets/php/log.snippet | 1 + vim/snippets/php/m.snippet | 1 + vim/snippets/php/php.snippet | 3 + vim/snippets/php/phpc.snippet | 1 + vim/snippets/php/phpin.snippet | 1 + vim/snippets/php/phpo.snippet | 1 + vim/snippets/php/post.snippet | 1 + vim/snippets/php/req.snippet | 2 + vim/snippets/php/req1.snippet | 1 + vim/snippets/php/request.snippet | 1 + vim/snippets/php/session.snippet | 1 + vim/snippets/php/sfun.snippet | 4 + vim/snippets/php/switch.snippet | 9 + vim/snippets/php/t.snippet | 1 + vim/snippets/php/ta.snippet | 1 + vim/snippets/php/throw.snippet | 1 + vim/snippets/php/tm.snippet | 1 + vim/snippets/php/try.snippet | 6 + vim/snippets/php/var.snippet | 1 + vim/snippets/php/wh.snippet | 3 + vim/snippets/php/while.snippet | 1 + vim/snippets/po/msg.snippet | 2 + vim/snippets/progress/alert.snippet | 1 + vim/snippets/progress/char.snippet | 1 + vim/snippets/progress/dec.snippet | 1 + vim/snippets/progress/defbuf.snippet | 1 + vim/snippets/progress/defvar.snippet | 1 + vim/snippets/progress/do.snippet | 3 + vim/snippets/progress/err.snippet | 1 + vim/snippets/progress/ff.snippet | 2 + vim/snippets/progress/if.snippet | 3 + vim/snippets/progress/ini.snippet | 1 + vim/snippets/progress/input.snippet | 1 + vim/snippets/progress/int.snippet | 1 + vim/snippets/progress/log.snippet | 1 + vim/snippets/progress/ne.snippet | 1 + vim/snippets/progress/nl.snippet | 1 + vim/snippets/progress/nle.snippet | 1 + vim/snippets/progress/nu.snippet | 1 + vim/snippets/progress/output.snippet | 1 + vim/snippets/progress/proc.snippet | 11 + vim/snippets/progress/sep.snippet | 1 + vim/snippets/python/#!.snippet | 2 + vim/snippets/python/class.snippet | 2 + vim/snippets/python/class/basic.snippet | 2 + vim/snippets/python/class/exception.snippet | 1 + vim/snippets/python/class/with_init.snippet | 3 + vim/snippets/python/def.snippet | 2 + vim/snippets/python/for.snippet | 2 + vim/snippets/python/from.snippet | 1 + vim/snippets/python/get.snippet | 2 + vim/snippets/python/if.snippet | 2 + vim/snippets/python/ife.snippet | 4 + vim/snippets/python/ifmain.snippet | 2 + vim/snippets/python/import.snippet | 1 + vim/snippets/python/init.snippet | 2 + vim/snippets/python/set.snippet | 2 + vim/snippets/python/try.snippet | 4 + vim/snippets/rst.snippets | 16 + vim/snippets/rst/-.snippet | 3 + vim/snippets/rst/_.snippet | 2 + vim/snippets/ruby-factorygirl/fac.snippet | 1 + vim/snippets/ruby-factorygirl/faca.snippet | 1 + vim/snippets/ruby-factorygirl/facb.snippet | 1 + vim/snippets/ruby-factorygirl/facc.snippet | 1 + vim/snippets/ruby-factorygirl/facd.snippet | 4 + vim/snippets/ruby-factorygirl/facn.snippet | 1 + vim/snippets/ruby-factorygirl/facs.snippet | 4 + vim/snippets/ruby-machinist/bluep.snippet | 3 + vim/snippets/ruby-machinist/mm_ma.snippet | 1 + vim/snippets/ruby-machinist/mmn.snippet | 1 + vim/snippets/ruby-machinist/mp.snippet | 1 + vim/snippets/ruby-machinist/mp_ma.snippet | 1 + vim/snippets/ruby-machinist/mpn.snippet | 1 + vim/snippets/ruby-machinist/plan.snippet | 1 + vim/snippets/ruby-machinist/sham.snippet | 3 + vim/snippets/ruby-rails-rjs/hide.snippet | 1 + vim/snippets/ruby-rails-rjs/ins.snippet | 1 + vim/snippets/ruby-rails-rjs/rep.snippet | 1 + vim/snippets/ruby-rails-rjs/reph.snippet | 1 + vim/snippets/ruby-rails-rjs/show.snippet | 1 + vim/snippets/ruby-rails-rjs/tog.snippet | 1 + vim/snippets/ruby-rails-rjs/vis.snippet | 1 + vim/snippets/ruby-rails/ac.snippet | 1 + vim/snippets/ruby-rails/anaf.snippet | 1 + vim/snippets/ruby-rails/art.snippet | 1 + vim/snippets/ruby-rails/artnp.snippet | 1 + vim/snippets/ruby-rails/artnpp.snippet | 1 + vim/snippets/ruby-rails/artp.snippet | 1 + vim/snippets/ruby-rails/artpp.snippet | 1 + vim/snippets/ruby-rails/asd.snippet | 3 + vim/snippets/ruby-rails/asnd.snippet | 3 + vim/snippets/ruby-rails/asre.snippet | 1 + vim/snippets/ruby-rails/asrj.snippet | 1 + vim/snippets/ruby-rails/ass.snippet | 1 + vim/snippets/ruby-rails/bc.snippet | 1 + vim/snippets/ruby-rails/bf.snippet | 1 + vim/snippets/ruby-rails/bt.snippet | 1 + vim/snippets/ruby-rails/cr.snippet | 1 + vim/snippets/ruby-rails/crw.snippet | 1 + vim/snippets/ruby-rails/cw.snippet | 1 + vim/snippets/ruby-rails/defcreate.snippet | 14 + vim/snippets/ruby-rails/defdestroy.snippet | 9 + vim/snippets/ruby-rails/defedit.snippet | 3 + vim/snippets/ruby-rails/defindex.snippet | 8 + vim/snippets/ruby-rails/defnew.snippet | 8 + vim/snippets/ruby-rails/defshow.snippet | 8 + vim/snippets/ruby-rails/defupdate.snippet | 14 + vim/snippets/ruby-rails/fina.snippet | 1 + vim/snippets/ruby-rails/finf.snippet | 1 + vim/snippets/ruby-rails/fini.snippet | 1 + vim/snippets/ruby-rails/finl.snippet | 1 + vim/snippets/ruby-rails/flash.snippet | 1 + vim/snippets/ruby-rails/habtm.snippet | 1 + vim/snippets/ruby-rails/hm.snippet | 1 + vim/snippets/ruby-rails/hmd.snippet | 1 + vim/snippets/ruby-rails/hmt.snippet | 1 + vim/snippets/ruby-rails/ho.snippet | 1 + vim/snippets/ruby-rails/i18.snippet | 1 + vim/snippets/ruby-rails/ist.snippet | 1 + vim/snippets/ruby-rails/log.snippet | 1 + vim/snippets/ruby-rails/logd.snippet | 1 + vim/snippets/ruby-rails/loge.snippet | 1 + vim/snippets/ruby-rails/logf.snippet | 1 + vim/snippets/ruby-rails/logi.snippet | 1 + vim/snippets/ruby-rails/logw.snippet | 1 + vim/snippets/ruby-rails/mac.snippet | 1 + vim/snippets/ruby-rails/mapc.snippet | 1 + vim/snippets/ruby-rails/mapca.snippet | 1 + vim/snippets/ruby-rails/mapr.snippet | 1 + vim/snippets/ruby-rails/maprs.snippet | 1 + vim/snippets/ruby-rails/mapwo.snippet | 3 + vim/snippets/ruby-rails/mbs.snippet | 1 + vim/snippets/ruby-rails/mcc.snippet | 1 + vim/snippets/ruby-rails/mccc.snippet | 1 + vim/snippets/ruby-rails/mcht.snippet | 3 + vim/snippets/ruby-rails/mcol.snippet | 1 + vim/snippets/ruby-rails/mct.snippet | 3 + vim/snippets/ruby-rails/migration.snippet | 8 + vim/snippets/ruby-rails/mp.snippet | 1 + vim/snippets/ruby-rails/mrc.snippet | 1 + vim/snippets/ruby-rails/mrmc.snippet | 1 + vim/snippets/ruby-rails/mrnc.snippet | 1 + vim/snippets/ruby-rails/mrw.snippet | 1 + vim/snippets/ruby-rails/mtab.snippet | 3 + vim/snippets/ruby-rails/nc.snippet | 1 + vim/snippets/ruby-rails/ncl.snippet | 1 + vim/snippets/ruby-rails/pa.snippet | 1 + vim/snippets/ruby-rails/ra.snippet | 1 + vim/snippets/ruby-rails/ral.snippet | 1 + vim/snippets/ruby-rails/rest.snippet | 6 + vim/snippets/ruby-rails/rf.snippet | 1 + vim/snippets/ruby-rails/rfu.snippet | 1 + vim/snippets/ruby-rails/ri.snippet | 1 + vim/snippets/ruby-rails/ril.snippet | 1 + vim/snippets/ruby-rails/rit.snippet | 1 + vim/snippets/ruby-rails/rjson.snippet | 1 + vim/snippets/ruby-rails/rl.snippet | 1 + vim/snippets/ruby-rails/rn.snippet | 1 + vim/snippets/ruby-rails/rns.snippet | 1 + vim/snippets/ruby-rails/rp.snippet | 1 + vim/snippets/ruby-rails/rpc.snippet | 1 + vim/snippets/ruby-rails/rpl.snippet | 1 + vim/snippets/ruby-rails/rpo.snippet | 1 + vim/snippets/ruby-rails/rps.snippet | 1 + vim/snippets/ruby-rails/rt.snippet | 1 + vim/snippets/ruby-rails/rtl.snippet | 1 + vim/snippets/ruby-rails/rtlt.snippet | 1 + vim/snippets/ruby-rails/rts.snippet | 1 + vim/snippets/ruby-rails/ru.snippet | 3 + vim/snippets/ruby-rails/rxml.snippet | 1 + vim/snippets/ruby-rails/sha1.snippet | 1 + vim/snippets/ruby-rails/sweeper.snippet | 15 + vim/snippets/ruby-rails/tcb.snippet | 2 + vim/snippets/ruby-rails/tcbi.snippet | 2 + vim/snippets/ruby-rails/tcd.snippet | 2 + vim/snippets/ruby-rails/tcda.snippet | 2 + vim/snippets/ruby-rails/tcdt.snippet | 2 + vim/snippets/ruby-rails/tcf.snippet | 2 + vim/snippets/ruby-rails/tch.snippet | 2 + vim/snippets/ruby-rails/tci.snippet | 2 + vim/snippets/ruby-rails/tcl.snippet | 2 + vim/snippets/ruby-rails/tcr.snippet | 2 + vim/snippets/ruby-rails/tcs.snippet | 2 + vim/snippets/ruby-rails/tct.snippet | 2 + vim/snippets/ruby-rails/tcti.snippet | 2 + vim/snippets/ruby-rails/tcts.snippet | 2 + vim/snippets/ruby-rails/tctss.snippet | 2 + vim/snippets/ruby-rails/test.snippet | 3 + vim/snippets/ruby-rails/trc.snippet | 1 + vim/snippets/ruby-rails/tre.snippet | 2 + vim/snippets/ruby-rails/tref.snippet | 1 + vim/snippets/ruby-rails/va.snippet | 1 + vim/snippets/ruby-rails/vao.snippet | 1 + vim/snippets/ruby-rails/vc.snippet | 1 + vim/snippets/ruby-rails/ve.snippet | 1 + vim/snippets/ruby-rails/vf.snippet | 1 + vim/snippets/ruby-rails/vi.snippet | 1 + vim/snippets/ruby-rails/vl.snippet | 1 + vim/snippets/ruby-rails/vn.snippet | 1 + vim/snippets/ruby-rails/vp.snippet | 1 + vim/snippets/ruby-rails/vpo.snippet | 1 + vim/snippets/ruby-rails/vu.snippet | 1 + vim/snippets/ruby-rails/wants.snippet | 1 + vim/snippets/ruby-rails/xdelete.snippet | 1 + vim/snippets/ruby-rails/xget.snippet | 1 + vim/snippets/ruby-rails/xpost.snippet | 1 + vim/snippets/ruby-rails/xput.snippet | 1 + vim/snippets/ruby-rspec/Given.snippet | 3 + vim/snippets/ruby-rspec/Then.snippet | 3 + vim/snippets/ruby-rspec/When.snippet | 3 + vim/snippets/ruby-rspec/aft.snippet | 3 + vim/snippets/ruby-rspec/annot.snippet | 1 + vim/snippets/ruby-rspec/anr.snippet | 1 + vim/snippets/ruby-rspec/anra.snippet | 1 + vim/snippets/ruby-rspec/anrb.snippet | 1 + vim/snippets/ruby-rspec/ant.snippet | 1 + vim/snippets/ruby-rspec/any.snippet | 1 + vim/snippets/ruby-rspec/atl.snippet | 1 + vim/snippets/ruby-rspec/atm.snippet | 1 + vim/snippets/ruby-rspec/bef.snippet | 3 + vim/snippets/ruby-rspec/befi.snippet | 1 + vim/snippets/ruby-rspec/cap.snippet | 1 + vim/snippets/ruby-rspec/conn.snippet | 1 + vim/snippets/ruby-rspec/cont.snippet | 3 + vim/snippets/ruby-rspec/des.snippet | 3 + vim/snippets/ruby-rspec/desc.snippet | 5 + vim/snippets/ruby-rspec/desrc.snippet | 3 + vim/snippets/ruby-rspec/dess.snippet | 3 + vim/snippets/ruby-rspec/dest.snippet | 3 + vim/snippets/ruby-rspec/dests.snippet | 3 + vim/snippets/ruby-rspec/ex.snippet | 1 + vim/snippets/ruby-rspec/isbl.snippet | 1 + vim/snippets/ruby-rspec/it.snippet | 3 + vim/snippets/ruby-rspec/it.snippet.orig | 8 + vim/snippets/ruby-rspec/itb.snippet | 1 + vim/snippets/ruby-rspec/iti.snippet | 1 + vim/snippets/ruby-rspec/its.snippet | 3 + vim/snippets/ruby-rspec/itsh.snippet | 3 + vim/snippets/ruby-rspec/let.snippet | 1 + vim/snippets/ruby-rspec/mat.snippet | 24 + vim/snippets/ruby-rspec/mm.snippet | 1 + vim/snippets/ruby-rspec/moc.snippet | 2 + vim/snippets/ruby-rspec/mocw.snippet | 3 + vim/snippets/ruby-rspec/on.snippet | 1 + vim/snippets/ruby-rspec/pshc.snippet | 1 + vim/snippets/ruby-rspec/resh.snippet | 1 + vim/snippets/ruby-rspec/sce.snippet | 3 + vim/snippets/ruby-rspec/sef.snippet | 3 + vim/snippets/ruby-rspec/sh.snippet | 2 + vim/snippets/ruby-rspec/shanaf.snippet | 1 + vim/snippets/ruby-rspec/shb.snippet | 2 + vim/snippets/ruby-rspec/shbc.snippet | 2 + vim/snippets/ruby-rspec/shbio.snippet | 2 + vim/snippets/ruby-rspec/shbko.snippet | 2 + vim/snippets/ruby-rspec/shbr.snippet | 2 + vim/snippets/ruby-rspec/shbs.snippet | 2 + vim/snippets/ruby-rspec/shc.snippet | 3 + vim/snippets/ruby-rspec/shdm.snippet | 2 + vim/snippets/ruby-rspec/she.snippet | 2 + vim/snippets/ruby-rspec/sheq.snippet | 2 + vim/snippets/ruby-rspec/shh.snippet | 2 + vim/snippets/ruby-rspec/shhal.snippet | 2 + vim/snippets/ruby-rspec/shham.snippet | 2 + vim/snippets/ruby-rspec/shhr.snippet | 2 + vim/snippets/ruby-rspec/shn.snippet | 2 + vim/snippets/ruby-rspec/shnb.snippet | 2 + vim/snippets/ruby-rspec/shnbc.snippet | 2 + vim/snippets/ruby-rspec/shnbio.snippet | 2 + vim/snippets/ruby-rspec/shnbko.snippet | 2 + vim/snippets/ruby-rspec/shnbr.snippet | 2 + vim/snippets/ruby-rspec/shnbs.snippet | 2 + vim/snippets/ruby-rspec/shnc.snippet | 3 + vim/snippets/ruby-rspec/shne.snippet | 2 + vim/snippets/ruby-rspec/shneq.snippet | 2 + vim/snippets/ruby-rspec/shnm.snippet | 2 + vim/snippets/ruby-rspec/shnp.snippet | 1 + vim/snippets/ruby-rspec/shnr.snippet | 2 + vim/snippets/ruby-rspec/shnre.snippet | 2 + vim/snippets/ruby-rspec/shnredt.snippet | 2 + vim/snippets/ruby-rspec/shnrt.snippet | 2 + vim/snippets/ruby-rspec/shns.snippet | 2 + vim/snippets/ruby-rspec/shnt.snippet | 2 + vim/snippets/ruby-rspec/shp.snippet | 1 + vim/snippets/ruby-rspec/shr.snippet | 2 + vim/snippets/ruby-rspec/shre.snippet | 2 + vim/snippets/ruby-rspec/shredt.snippet | 2 + vim/snippets/ruby-rspec/shrt.snippet | 2 + vim/snippets/ruby-rspec/shs.snippet | 2 + vim/snippets/ruby-rspec/sht.snippet | 2 + vim/snippets/ruby-rspec/shtemp.snippet | 2 + vim/snippets/ruby-rspec/shvp.snippet | 1 + vim/snippets/ruby-rspec/spec.snippet | 5 + vim/snippets/ruby-rspec/st.snippet | 1 + vim/snippets/ruby-rspec/sub.snippet | 1 + vim/snippets/ruby-rspec/tw.snippet | 1 + vim/snippets/ruby-rspec/wia.snippet | 2 + vim/snippets/ruby-shoulda/context.snippet | 5 + vim/snippets/ruby-shoulda/samao.snippet | 1 + vim/snippets/ruby-shoulda/savf.snippet | 1 + vim/snippets/ruby-shoulda/sbt.snippet | 1 + vim/snippets/ruby-shoulda/selal.snippet | 1 + vim/snippets/ruby-shoulda/seli.snippet | 1 + vim/snippets/ruby-shoulda/selir.snippet | 1 + vim/snippets/ruby-shoulda/setup.snippet | 3 + vim/snippets/ruby-shoulda/sevir.snippet | 1 + vim/snippets/ruby-shoulda/shabtm.snippet | 1 + vim/snippets/ruby-shoulda/shcm.snippet | 1 + vim/snippets/ruby-shoulda/shdc.snippet | 1 + vim/snippets/ruby-shoulda/shi.snippet | 1 + vim/snippets/ruby-shoulda/shim.snippet | 1 + vim/snippets/ruby-shoulda/shm.snippet | 1 + vim/snippets/ruby-shoulda/shns.snippet | 1 + vim/snippets/ruby-shoulda/sho.snippet | 1 + vim/snippets/ruby-shoulda/shroa.snippet | 1 + vim/snippets/ruby-shoulda/snamao.snippet | 1 + vim/snippets/ruby-shoulda/snavf.snippet | 1 + vim/snippets/ruby-shoulda/svao.snippet | 1 + vim/snippets/ruby-shoulda/svno.snippet | 1 + vim/snippets/ruby-shoulda/svp.snippet | 1 + vim/snippets/ruby-shoulda/svpo.snippet | 1 + vim/snippets/ruby-shoulda/svuo.snippet | 1 + vim/snippets/ruby/#!.snippet | 2 + vim/snippets/ruby/#.snippet | 1 + vim/snippets/ruby/Md.snippet | 1 + vim/snippets/ruby/Ml.snippet | 1 + vim/snippets/ruby/Pn.snippet | 1 + vim/snippets/ruby/Yd-.snippet | 1 + vim/snippets/ruby/Yd.snippet | 1 + vim/snippets/ruby/Yl-.snippet | 1 + vim/snippets/ruby/Yl.snippet | 1 + vim/snippets/ruby/am.snippet | 1 + vim/snippets/ruby/anr.snippet | 1 + vim/snippets/ruby/as.snippet | 1 + vim/snippets/ruby/asam.snippet | 1 + vim/snippets/ruby/asb.snippet | 1 + vim/snippets/ruby/asc.snippet | 1 + vim/snippets/ruby/ascd.snippet | 1 + vim/snippets/ruby/ase.snippet | 1 + vim/snippets/ruby/asem.snippet | 1 + vim/snippets/ruby/asf.snippet | 1 + vim/snippets/ruby/asfa.snippet | 1 + vim/snippets/ruby/asi.snippet | 1 + vim/snippets/ruby/asid.snippet | 1 + vim/snippets/ruby/asie.snippet | 1 + vim/snippets/ruby/asio.snippet | 1 + vim/snippets/ruby/asko.snippet | 1 + vim/snippets/ruby/asm.snippet | 1 + vim/snippets/ruby/asn.snippet | 1 + vim/snippets/ruby/asncd.snippet | 1 + vim/snippets/ruby/asne.snippet | 1 + vim/snippets/ruby/asnem.snippet | 1 + vim/snippets/ruby/asni.snippet | 1 + vim/snippets/ruby/asnid.snippet | 1 + vim/snippets/ruby/asnie.snippet | 1 + vim/snippets/ruby/asnm.snippet | 1 + vim/snippets/ruby/asnn.snippet | 1 + vim/snippets/ruby/asnp.snippet | 1 + vim/snippets/ruby/asnr.snippet | 1 + vim/snippets/ruby/asnrt.snippet | 1 + vim/snippets/ruby/asns.snippet | 1 + vim/snippets/ruby/asnse.snippet | 1 + vim/snippets/ruby/asnt.snippet | 1 + vim/snippets/ruby/aso.snippet | 1 + vim/snippets/ruby/asp.snippet | 1 + vim/snippets/ruby/aspe.snippet | 1 + vim/snippets/ruby/aspne.snippet | 1 + vim/snippets/ruby/asr.snippet | 1 + vim/snippets/ruby/asrko.snippet | 1 + vim/snippets/ruby/asrm.snippet | 1 + vim/snippets/ruby/asrt.snippet | 1 + vim/snippets/ruby/ass.snippet | 1 + vim/snippets/ruby/asse.snippet | 1 + vim/snippets/ruby/ast.snippet | 1 + vim/snippets/ruby/astr.snippet | 1 + vim/snippets/ruby/begin.snippet | 6 + vim/snippets/ruby/begine.snippet | 8 + vim/snippets/ruby/bm.snippet | 4 + vim/snippets/ruby/case.snippet | 5 + vim/snippets/ruby/cla/class ... end.snippet | 3 + .../cla/class ... initialize ... end.snippet | 5 + vim/snippets/ruby/class.snippet | 3 + vim/snippets/ruby/classe.snippet | 1 + vim/snippets/ruby/col.snippet | 1 + vim/snippets/ruby/coldo.snippet | 4 + vim/snippets/ruby/deec.snippet | 1 + vim/snippets/ruby/def.snippet | 3 + vim/snippets/ruby/defi.snippet | 3 + vim/snippets/ruby/defmm.snippet | 3 + vim/snippets/ruby/defs.snippet | 3 + vim/snippets/ruby/deft.snippet | 3 + .../ruby/del/delete_if do ... end.snippet | 3 + .../ruby/del/delete_if { ... }.snippet | 2 + vim/snippets/ruby/delt.snippit | 1 + .../ruby/det/detect do ... end.snippet | 3 + vim/snippets/ruby/det/detect { ... }.snippet | 2 + vim/snippets/ruby/detect.snippet | 1 + vim/snippets/ruby/detecto.snippet | 3 + vim/snippets/ruby/dglob.snippet | 1 + vim/snippets/ruby/do.snippet | 3 + vim/snippets/ruby/dop.snippet | 3 + vim/snippets/ruby/ea.snippet | 1 + vim/snippets/ruby/ea/each do ... end.snippet | 3 + vim/snippets/ruby/ea/each { ... }.snippet | 1 + .../ea/each_with_index do ... end.snippet | 4 + .../ruby/ea/each_with_index { ... }.snippet | 1 + vim/snippets/ruby/eab.snippet | 2 + vim/snippets/ruby/eac.snippet | 2 + vim/snippets/ruby/each.snippet | 3 + vim/snippets/ruby/each_with_index.snippet | 1 + vim/snippets/ruby/each_with_indexo.snippet | 4 + vim/snippets/ruby/eacho.snippet | 3 + vim/snippets/ruby/eado.snippet | 3 + vim/snippets/ruby/eai.snippet | 2 + vim/snippets/ruby/eak.snippet | 2 + vim/snippets/ruby/eap.snippet | 2 + vim/snippets/ruby/eav.snippet | 2 + vim/snippets/ruby/eawi.snippet | 1 + vim/snippets/ruby/eawido.snippet | 4 + vim/snippets/ruby/elsif.snippet | 2 + vim/snippets/ruby/fileeach.snippet | 1 + vim/snippets/ruby/fopen.snippet | 2 + vim/snippets/ruby/fread.snippet | 1 + vim/snippets/ruby/fwrite.snippet | 2 + vim/snippets/ruby/gem.snippet | 2 + vim/snippets/ruby/http_get.snippet | 2 + vim/snippets/ruby/http_post.snippet | 2 + vim/snippets/ruby/if.snippet | 3 + vim/snippets/ruby/ife.snippet | 5 + vim/snippets/ruby/init.snippet | 3 + vim/snippets/ruby/inj.snippet | 1 + .../ruby/inj/inject do ... end.snippet | 3 + vim/snippets/ruby/inj/inject { ... }.snippet | 1 + vim/snippets/ruby/injdo.snippet | 3 + vim/snippets/ruby/inject.snippet | 1 + vim/snippets/ruby/injecto.snippet | 3 + vim/snippets/ruby/ip.snippet | 1 + vim/snippets/ruby/log.snippet | 1 + vim/snippets/ruby/map.snippet | 1 + vim/snippets/ruby/map/map { ... }.snippet | 1 + vim/snippets/ruby/map/mapd do ... end.snippet | 3 + vim/snippets/ruby/mapdo.snippet | 3 + vim/snippets/ruby/mapo.snippet | 3 + vim/snippets/ruby/mod.snippet | 3 + .../module ... ClassMethods ... end.snippet | 13 + vim/snippets/ruby/mod/module ... end.snippet | 3 + vim/snippets/ruby/module.snippet | 3 + vim/snippets/ruby/nam.snippet | 3 + vim/snippets/ruby/ope.snippet | 1 + vim/snippets/ruby/pathhere.snippet | 1 + vim/snippets/ruby/r.snippet | 1 + .../ruby/rej/reject do ... end.snippet | 3 + vim/snippets/ruby/rej/reject { ... }.snippet | 2 + vim/snippets/ruby/reject.snippet | 1 + vim/snippets/ruby/rejecto.snippet | 3 + vim/snippets/ruby/rep.snippet | 1 + vim/snippets/ruby/report.snippet | 1 + vim/snippets/ruby/req.snippet | 1 + vim/snippets/ruby/reqf.snippet | 2 + vim/snippets/ruby/rw.snippet | 1 + .../ruby/sel/select do ... end.snippet | 3 + vim/snippets/ruby/sel/select { ... }.snippet | 2 + vim/snippets/ruby/select.snippet | 1 + vim/snippets/ruby/selecto.snippet | 3 + vim/snippets/ruby/sinc.snippet | 1 + vim/snippets/ruby/sor/sort do ... end.snippet | 3 + vim/snippets/ruby/sor/sort { ... }.snippet | 1 + vim/snippets/ruby/sort.snippet | 1 + vim/snippets/ruby/sorto.snippet | 3 + vim/snippets/ruby/tas.snippet | 4 + vim/snippets/ruby/task.snippet | 4 + vim/snippets/ruby/tc.snippet | 9 + vim/snippets/ruby/unless.snippet | 3 + vim/snippets/ruby/unlesse.snippet | 4 + vim/snippets/ruby/until.snippet | 3 + vim/snippets/ruby/w.snippet | 1 + vim/snippets/ruby/when.snippet | 2 + vim/snippets/ruby/while.snippet | 3 + vim/snippets/ruby/xmlr.snippet | 1 + vim/snippets/ruby/xpa.snippet | 3 + vim/snippets/ruby/zip.snippet | 1 + vim/snippets/sh/#!.snippet | 1 + vim/snippets/sh/$#.snippet | 6 + vim/snippets/sh/arr.snippet | 0 vim/snippets/sh/arr/keyed.snippet | 4 + vim/snippets/sh/arr/list.snippet | 1 + vim/snippets/sh/case.snippet | 4 + vim/snippets/sh/date.snippet | 1 + vim/snippets/sh/elif.snippet | 2 + vim/snippets/sh/for/c-style.snippet | 4 + vim/snippets/sh/for/index-loop.snippet | 4 + vim/snippets/sh/for/list.snippet | 3 + vim/snippets/sh/for/numargs.snippet | 5 + vim/snippets/sh/for/times-sequence.snippet | 4 + vim/snippets/sh/fore.snippet | 4 + vim/snippets/sh/fun.snippet | 3 + vim/snippets/sh/gt.snippet | 5 + vim/snippets/sh/if.snippet | 3 + vim/snippets/sh/ifdir.snippet | 1 + vim/snippets/sh/ife.snippet | 5 + vim/snippets/sh/iffile.snippet | 4 + vim/snippets/sh/ifroot.snippet | 7 + vim/snippets/sh/lt.snippet | 5 + vim/snippets/sh/sh.snippet | 8 + vim/snippets/sh/usage.snippet | 5 + vim/snippets/sh/while.snippet | 3 + vim/snippets/sh/yesno/longer.snippet | 5 + vim/snippets/sh/yesno/simple.snippet | 6 + vim/snippets/sinatra/get.snippet | 3 + vim/snippets/sql/add.snippet | 1 + vim/snippets/sql/col.snippet | 1 + vim/snippets/sql/create.snippet | 5 + vim/snippets/sql/drop.snippet | 1 + vim/snippets/sql/index.snippet | 1 + vim/snippets/sql/last4.snippet | 4 + vim/snippets/sql/rename.snippet | 1 + vim/snippets/sshconfig/host.snippet | 3 + vim/snippets/support_functions.vim | 127 + vim/snippets/vim/au.snippet | 1 + vim/snippets/vim/com.snippet | 1 + vim/snippets/vim/func.snippet | 8 + vim/snippets/vim/if.snippet | 3 + vim/snippets/vim/ife.snippet | 4 + vim/snippets/vim/log.snippet | 1 + vim/snippets/vim/try.snippet | 4 + vim/snippets/xslt/call.snippet | 3 + vim/snippets/xslt/choose.snippet | 7 + vim/snippets/xslt/mat.snippet | 3 + vim/snippets/xslt/out.snippet | 1 + vim/snippets/xslt/param.snippet | 1 + vim/snippets/xslt/sty.snippet | 3 + vim/snippets/xslt/tem.snippet | 3 + vim/snippets/xslt/value.snippet | 1 + vim/snippets/xslt/var.snippet | 3 + vim/snippets/xslt/wparam.snippet | 1 + vim/snippets/xslt/xdec.snippet | 2 + vim/snippets/zend/assert.snippet | 1 + vim/snippets/zend/boolcol.snippet | 1 + vim/snippets/zend/clac.snippet | 20 + vim/snippets/zend/flash.snippet | 1 + vim/snippets/zend/getconf.snippet | 1 + vim/snippets/zend/input.snippet | 4 + vim/snippets/zend/inputarr.snippet | 6 + vim/snippets/zend/intcol.snippet | 1 + vim/snippets/zend/lib.snippet | 5 + vim/snippets/zend/model.snippet | 32 + vim/snippets/zend/navi.snippet | 1 + vim/snippets/zend/route.snippet | 1 + vim/snippets/zend/rp.snippet | 2 + vim/snippets/zend/strcol.snippet | 1 + vim/syntax/conque_term.vim | 113 + vim/syntax/cucumber.vim | 100 + vim/syntax/cvsannotate.vim | 45 + vim/syntax/eruby.vim | 76 + vim/syntax/git-diff.vim | 8 + vim/syntax/git-log.vim | 3 + vim/syntax/git-status.vim | 18 + vim/syntax/git.vim | 67 + vim/syntax/gitannotate.vim | 44 + vim/syntax/gitcommit.vim | 65 + vim/syntax/gitconfig.vim | 37 + vim/syntax/gitrebase.vim | 31 + vim/syntax/gitsendemail.vim | 19 + vim/syntax/haml.vim | 91 + vim/syntax/hgannotate.vim | 40 + vim/syntax/less.vim | 305 + vim/syntax/ruby.vim | 369 + vim/syntax/sass.vim | 56 + vim/syntax/svkannotate.vim | 42 + vim/syntax/svnannotate.vim | 40 + vim/syntax/vcscommit.vim | 31 + vim/syntax_checkers/c.vim | 119 + vim/syntax_checkers/coffee.vim | 27 + vim/syntax_checkers/cpp.vim | 94 + vim/syntax_checkers/css.vim | 34 + vim/syntax_checkers/cucumber.vim | 27 + vim/syntax_checkers/cuda.vim | 40 + vim/syntax_checkers/docbk.vim | 29 + vim/syntax_checkers/eruby.vim | 33 + vim/syntax_checkers/go.vim | 27 + vim/syntax_checkers/haml.vim | 26 + vim/syntax_checkers/haskell.vim | 34 + vim/syntax_checkers/html.vim | 55 + vim/syntax_checkers/javascript.vim | 92 + vim/syntax_checkers/less.vim | 37 + vim/syntax_checkers/lua.vim | 62 + vim/syntax_checkers/matlab.vim | 34 + vim/syntax_checkers/perl.vim | 35 + vim/syntax_checkers/php.vim | 36 + vim/syntax_checkers/puppet.vim | 38 + vim/syntax_checkers/python.vim | 35 + vim/syntax_checkers/ruby.vim | 32 + vim/syntax_checkers/sass.vim | 64 + vim/syntax_checkers/sh.vim | 52 + vim/syntax_checkers/tcl.vim | 28 + vim/syntax_checkers/tex.vim | 26 + vim/syntax_checkers/vala.vim | 56 + vim/syntax_checkers/xhtml.vim | 53 + vim/syntax_checkers/xml.vim | 37 + vim/syntax_checkers/xslt.vim | 38 + vim/tmp/ruby_debugger | 1 + vim/tmp/ruby_debugger_log | 16 + vim/tmp/ruby_debugger_output | 34 + vimrc | 362 + 1819 files changed, 111625 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 bash_aliases create mode 100644 bash_options create mode 100755 bash_profile create mode 100644 gitconfig create mode 100644 inputrc create mode 100644 irbrc create mode 100755 osx create mode 100644 vim/.gitignore create mode 100644 vim/.gitmodules create mode 100644 vim/.netrwhist create mode 100644 vim/after/plugin/snipMate.vim create mode 100644 vim/autoload/AnsiEsc.vim create mode 100755 vim/autoload/EasyMotion.vim create mode 100644 vim/autoload/conque_term.vim create mode 100644 vim/autoload/conque_term/conque.py create mode 100644 vim/autoload/conque_term/conque_globals.py create mode 100644 vim/autoload/conque_term/conque_screen.py create mode 100644 vim/autoload/conque_term/conque_sole.py create mode 100644 vim/autoload/conque_term/conque_sole_communicator.py create mode 100644 vim/autoload/conque_term/conque_sole_shared_memory.py create mode 100644 vim/autoload/conque_term/conque_sole_subprocess.py create mode 100644 vim/autoload/conque_term/conque_sole_wrapper.py create mode 100644 vim/autoload/conque_term/conque_subprocess.py create mode 100644 vim/autoload/conque_term/conque_win32_util.py create mode 100644 vim/autoload/csapprox.vim create mode 100644 vim/autoload/csapprox/common.vim create mode 100644 vim/autoload/csapprox/per_component.vim create mode 100644 vim/autoload/delimitMate.vim create mode 100644 vim/autoload/pathogen.vim create mode 100755 vim/autoload/railmoon/ctags_util.vim create mode 100755 vim/autoload/railmoon/id.vim create mode 100644 vim/autoload/railmoon/oscan.debug create mode 100755 vim/autoload/railmoon/oscan.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/buffers.vim create mode 100644 vim/autoload/railmoon/oscan/extractor/changes.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/ctags.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/ctags/cpp.vim create mode 100644 vim/autoload/railmoon/oscan/extractor/ctags/html.vim create mode 100644 vim/autoload/railmoon/oscan/extractor/ctags/python.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/ctags/vim.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/definition_declaration.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/file.vim create mode 100644 vim/autoload/railmoon/oscan/extractor/files.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/marks.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/multiline_search.vim create mode 100644 vim/autoload/railmoon/oscan/extractor/paste.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/sco.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/search.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/search_in_scope.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/search_in_windows.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/search_on_screen.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/taglist.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/taglist_by_ooo.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/taglist_by_type.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/taglist_under_cursor.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/util.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/vims.vim create mode 100755 vim/autoload/railmoon/oscan/extractor/windows.vim create mode 100755 vim/autoload/railmoon/oscan/record.vim create mode 100755 vim/autoload/railmoon/oscan/record_browser.vim create mode 100755 vim/autoload/railmoon/trace.vim create mode 100755 vim/autoload/railmoon/unit_test.vim create mode 100755 vim/autoload/railmoon/widget.vim create mode 100755 vim/autoload/railmoon/widget/base.vim create mode 100755 vim/autoload/railmoon/widget/canvas.vim create mode 100755 vim/autoload/railmoon/widget/edit_line_window.vim create mode 100755 vim/autoload/railmoon/widget/selection_window.vim create mode 100755 vim/autoload/railmoon/widget/window.vim create mode 100755 vim/autoload/rails.vim create mode 100644 vim/autoload/ruby_debugger.vim create mode 100644 vim/autoload/ruby_focused_unit_test.vim create mode 100644 vim/autoload/rubycomplete.vim create mode 100644 vim/autoload/snipMate.vim create mode 100755 vim/autoload/syntastic.vim create mode 100644 vim/autoload/tcomment.vim create mode 100644 vim/bin/ruby_debugger.rb create mode 100644 vim/bundle/showmarks/autoload/showmarks.vim create mode 100644 vim/bundle/showmarks/plugin/showmarks.vim create mode 160000 vim/bundle/vim-fugitive create mode 100644 vim/colors/.bashrc create mode 100644 vim/colors/adrian.vim create mode 100644 vim/colors/aiseered.vim create mode 100644 vim/colors/aqua.vim create mode 100644 vim/colors/astronaut.vim create mode 100644 vim/colors/asu1dark.vim create mode 100644 vim/colors/automation.vim create mode 100644 vim/colors/autumn.vim create mode 100644 vim/colors/autumn2.vim create mode 100644 vim/colors/autumnleaf.vim create mode 100644 vim/colors/baycomb.vim create mode 100644 vim/colors/billw.vim create mode 100644 vim/colors/biogoo.vim create mode 100644 vim/colors/black_angus.vim create mode 100644 vim/colors/blackbeauty.vim create mode 100644 vim/colors/blackdust.vim create mode 100644 vim/colors/blacksea.vim create mode 100644 vim/colors/blue.vim create mode 100644 vim/colors/bluegreen.vim create mode 100644 vim/colors/blugrine.vim create mode 100644 vim/colors/bmichaelsen.vim create mode 100644 vim/colors/bog.vim create mode 100644 vim/colors/borland.vim create mode 100644 vim/colors/breeze.vim create mode 100644 vim/colors/brookstream.vim create mode 100644 vim/colors/brown.vim create mode 100644 vim/colors/buttercream.vim create mode 100644 vim/colors/bw.vim create mode 100644 vim/colors/c.vim create mode 100644 vim/colors/calmar256-light.vim create mode 100644 vim/colors/camo.vim create mode 100644 vim/colors/candy.vim create mode 100644 vim/colors/candycode.vim create mode 100644 vim/colors/caramel.vim create mode 100644 vim/colors/chela_light.vim create mode 100644 vim/colors/chlordane.vim create mode 100644 vim/colors/chocolateliquor.vim create mode 100644 vim/colors/clarity.vim create mode 100644 vim/colors/cleanphp.vim create mode 100644 vim/colors/coffee.vim create mode 100644 vim/colors/colorer.vim create mode 100644 vim/colors/colorscheme_template.vim create mode 100644 vim/colors/cool.vim create mode 100644 vim/colors/dante.vim create mode 100644 vim/colors/dark-ruby.vim create mode 100644 vim/colors/darkblack.vim create mode 100644 vim/colors/darkblue2.vim create mode 100644 vim/colors/darkdot.vim create mode 100644 vim/colors/darkocean.vim create mode 100644 vim/colors/darkslategray.vim create mode 100644 vim/colors/darkspectrum.vim create mode 100644 vim/colors/darktango.vim create mode 100644 vim/colors/dawn.vim create mode 100644 vim/colors/delek.vim create mode 100644 vim/colors/denim.vim create mode 100644 vim/colors/desert.vim create mode 100644 vim/colors/desert256.vim create mode 100644 vim/colors/desertEx.vim create mode 100644 vim/colors/desertedocean.vim create mode 100644 vim/colors/dusk.vim create mode 100644 vim/colors/dw_blue.vim create mode 100644 vim/colors/dw_cyan.vim create mode 100644 vim/colors/dw_green.vim create mode 100644 vim/colors/dw_orange.vim create mode 100644 vim/colors/dw_purple.vim create mode 100644 vim/colors/dw_red.vim create mode 100644 vim/colors/dw_yellow.vim create mode 100644 vim/colors/earendel.vim create mode 100644 vim/colors/earth.vim create mode 100644 vim/colors/eclipse.vim create mode 100644 vim/colors/edo_sea.vim create mode 100644 vim/colors/ekvoli.vim create mode 100644 vim/colors/emacs.vim create mode 100644 vim/colors/fine_blue.vim create mode 100644 vim/colors/fnaqevan.vim create mode 100644 vim/colors/fog.vim create mode 100644 vim/colors/freya.vim create mode 100644 vim/colors/fruit.vim create mode 100644 vim/colors/gobo.vim create mode 100644 vim/colors/golden.vim create mode 100644 vim/colors/gor.vim create mode 100644 vim/colors/gothic.vim create mode 100644 vim/colors/greyblue.vim create mode 100644 vim/colors/habiLight.vim create mode 100644 vim/colors/hhazure.vim create mode 100644 vim/colors/hhdblue.vim create mode 100644 vim/colors/hhdcyan.vim create mode 100644 vim/colors/hhdgray.vim create mode 100644 vim/colors/hhdgreen.vim create mode 100644 vim/colors/hhdmagenta.vim create mode 100644 vim/colors/hhdred.vim create mode 100644 vim/colors/hhdyellow.vim create mode 100644 vim/colors/hhorange.vim create mode 100644 vim/colors/hhpink.vim create mode 100644 vim/colors/hhspring.vim create mode 100644 vim/colors/hhteal.vim create mode 100644 vim/colors/hhviolet.vim create mode 100644 vim/colors/ibmedit.vim create mode 100644 vim/colors/impact.vim create mode 100644 vim/colors/inkpot.vim create mode 100644 vim/colors/ir_black.vim create mode 100644 vim/colors/ironman.vim create mode 100644 vim/colors/jammy.vim create mode 100644 vim/colors/jhdark.vim create mode 100644 vim/colors/jhlight.vim create mode 100644 vim/colors/leo.vim create mode 100644 vim/colors/less.vim create mode 100644 vim/colors/lettuce.vim create mode 100644 vim/colors/lilac.vim create mode 100644 vim/colors/lingodirector.vim create mode 100644 vim/colors/manxome.vim create mode 100644 vim/colors/marklar.vim create mode 100644 vim/colors/mars.vim create mode 100644 vim/colors/martin_krischik.vim create mode 100644 vim/colors/matrix.vim create mode 100644 vim/colors/metacosm.vim create mode 100644 vim/colors/midnight.vim create mode 100644 vim/colors/midnight2.vim create mode 100644 vim/colors/mod_tcsoft.vim create mode 100644 vim/colors/molokai.vim create mode 100644 vim/colors/moria.vim create mode 100644 vim/colors/motus.vim create mode 100644 vim/colors/navajo-night.vim create mode 100644 vim/colors/navajo.vim create mode 100644 vim/colors/nedit.vim create mode 100644 vim/colors/nedit2.vim create mode 100644 vim/colors/neon.vim create mode 100644 vim/colors/neverness.vim create mode 100644 vim/colors/night.vim create mode 100644 vim/colors/nightshimmer.vim create mode 100644 vim/colors/nightwish.vim create mode 100644 vim/colors/no_quarter.vim create mode 100644 vim/colors/northsky.vim create mode 100644 vim/colors/nuvola.vim create mode 100644 vim/colors/oceanblack.vim create mode 100644 vim/colors/oceandeep.vim create mode 100644 vim/colors/oceanlight.vim create mode 100644 vim/colors/olive.vim create mode 100644 vim/colors/papayawhip.vim create mode 100644 vim/colors/peaksea.vim create mode 100644 vim/colors/potts.vim create mode 100644 vim/colors/print_bw.vim create mode 100644 vim/colors/professional.vim create mode 100644 vim/colors/ps_color.vim create mode 100644 vim/colors/psql.vim create mode 100644 vim/colors/putty.vim create mode 100644 vim/colors/pyte.vim create mode 100644 vim/colors/python.vim create mode 100644 vim/colors/railscasts.vim create mode 100644 vim/colors/rdark.vim create mode 100644 vim/colors/redblack.vim create mode 100644 vim/colors/relaxedgreen.vim create mode 100644 vim/colors/reloaded.vim create mode 100644 vim/colors/revolutions.vim create mode 100644 vim/colors/robinhood.vim create mode 100644 vim/colors/sand.vim create mode 100644 vim/colors/satori.vim create mode 100644 vim/colors/scite.vim create mode 100644 vim/colors/sea.vim create mode 100644 vim/colors/sean.vim create mode 100644 vim/colors/seashell.vim create mode 100644 vim/colors/sf.vim create mode 100644 vim/colors/sienna.vim create mode 100644 vim/colors/simpleandfriendly.vim create mode 100644 vim/colors/softblue.vim create mode 100644 vim/colors/soso.vim create mode 100644 vim/colors/spring.vim create mode 100644 vim/colors/synic.vim create mode 100644 vim/colors/tabula.vim create mode 100644 vim/colors/tango.vim create mode 100644 vim/colors/tango2.vim create mode 100644 vim/colors/taqua.vim create mode 100644 vim/colors/tcsoft.vim create mode 100644 vim/colors/thegoodluck.vim create mode 100644 vim/colors/tibet.vim create mode 100644 vim/colors/tolerable.vim create mode 100644 vim/colors/tomatosoup.vim create mode 100644 vim/colors/toothpik.vim create mode 100644 vim/colors/torte.vim create mode 100644 vim/colors/transparent.vim create mode 100644 vim/colors/turbo.vim create mode 100644 vim/colors/two2tango.vim create mode 100644 vim/colors/umber-green.vim create mode 100644 vim/colors/vc.vim create mode 100644 vim/colors/vcbc.vim create mode 100644 vim/colors/vibrantink.vim create mode 100644 vim/colors/vividchalk.vim create mode 100644 vim/colors/white.vim create mode 100644 vim/colors/whitedust.vim create mode 100644 vim/colors/wintersday.vim create mode 100644 vim/colors/wombat.vim create mode 100644 vim/colors/wuye.vim create mode 100644 vim/colors/xemacs.vim create mode 100644 vim/colors/xian.vim create mode 100644 vim/colors/xoria256.vim create mode 100644 vim/colors/xterm16.vim create mode 100644 vim/colors/zenburn.vim create mode 100644 vim/compiler/eruby.vim create mode 100644 vim/compiler/ruby.vim create mode 100644 vim/compiler/rubyunit.vim create mode 100644 vim/doc/AnsiEsc.txt create mode 100644 vim/doc/CSApprox.txt create mode 100644 vim/doc/EasyGrep.txt create mode 100644 vim/doc/IndentAnything.txt create mode 100644 vim/doc/NERD_commenter.txt create mode 100644 vim/doc/NERD_tree.txt create mode 100644 vim/doc/bufexplorer.txt create mode 100644 vim/doc/conque_term.txt create mode 100644 vim/doc/delimitMate.txt create mode 100644 vim/doc/ft-gitcommit-plugin.txt create mode 100644 vim/doc/greplace.txt create mode 100644 vim/doc/imaps.txt create mode 100644 vim/doc/matchit.txt create mode 100644 vim/doc/ragtag.txt create mode 100755 vim/doc/rails.txt create mode 100644 vim/doc/ruby_debugger.txt create mode 100644 vim/doc/snipMate.txt create mode 100644 vim/doc/supertab.txt create mode 100644 vim/doc/surround.txt create mode 100755 vim/doc/syntastic.txt create mode 100644 vim/doc/tComment.txt create mode 100644 vim/doc/taglist.txt create mode 100755 vim/doc/vcscommand.txt create mode 100755 vim/doc/vmp.txt create mode 100644 vim/doc/xterm16.txt create mode 100644 vim/ftdetect/cucumber.vim create mode 100644 vim/ftdetect/git.vim create mode 100644 vim/ftdetect/haml.vim create mode 100644 vim/ftdetect/less.vim create mode 100644 vim/ftdetect/ruby.vim create mode 100644 vim/ftdetect/sinatra.vim create mode 100644 vim/ftplugin/cucumber.vim create mode 100644 vim/ftplugin/eruby.vim create mode 100644 vim/ftplugin/git.vim create mode 100644 vim/ftplugin/gitcommit.vim create mode 100644 vim/ftplugin/gitconfig.vim create mode 100644 vim/ftplugin/gitrebase.vim create mode 100644 vim/ftplugin/gitsendemail.vim create mode 100644 vim/ftplugin/haml.vim create mode 100755 vim/ftplugin/html/sparkup.py create mode 100755 vim/ftplugin/html/sparkup.vim create mode 100644 vim/ftplugin/html_autoclosetag.vim create mode 100644 vim/ftplugin/ruby.vim create mode 100644 vim/ftplugin/ruby_indent_settings.vim create mode 100644 vim/ftplugin/sass.vim create mode 100644 vim/ftplugin/xml.vim create mode 100644 vim/indent/IndentAnything_html.vim create mode 100644 vim/indent/cucumber.vim create mode 100644 vim/indent/eruby.vim create mode 100644 vim/indent/gitconfig.vim create mode 100644 vim/indent/haml.vim create mode 100644 vim/indent/ruby.vim create mode 100644 vim/indent/sass.vim create mode 100644 vim/macros/rails.vim create mode 100755 vim/nerdtree_plugin/exec_menuitem.vim create mode 100755 vim/nerdtree_plugin/fs_menu.vim create mode 100644 vim/plugin/AnsiEscPlugin.vim create mode 100644 vim/plugin/CSApprox.vim create mode 100644 vim/plugin/ColorSchemeMenuMaker.vim create mode 100644 vim/plugin/ColorSchemes.vim create mode 100755 vim/plugin/EasyMotion.vim create mode 100644 vim/plugin/FindInNERDTree.vim create mode 100644 vim/plugin/IndentAnything.vim create mode 100644 vim/plugin/IndexedSearch.vim create mode 100644 vim/plugin/NERD_commenter.vim create mode 100755 vim/plugin/NERD_tree.vim create mode 100644 vim/plugin/autotag.vim create mode 100644 vim/plugin/bufexplorer.vim create mode 100644 vim/plugin/camelcasemotion.vim create mode 100644 vim/plugin/cecutil.vim create mode 100644 vim/plugin/color_sample_pack.vim create mode 100644 vim/plugin/conque_term.vim create mode 100644 vim/plugin/delimitMate.vim create mode 100644 vim/plugin/endwise.vim create mode 100644 vim/plugin/git-grep.vim create mode 100755 vim/plugin/greplace.vim create mode 100755 vim/plugin/lusty-explorer.vim create mode 100644 vim/plugin/lusty-juggler.vim create mode 100755 vim/plugin/markdown-preview.css create mode 100755 vim/plugin/matchit.vim create mode 100644 vim/plugin/pastie.vim create mode 100644 vim/plugin/peepopen.vim create mode 100644 vim/plugin/ragtag.vim create mode 100755 vim/plugin/rails.vim create mode 100644 vim/plugin/repeat.vim create mode 100644 vim/plugin/ruby_focused_unit_test.vim create mode 100644 vim/plugin/rubytest.vim create mode 100644 vim/plugin/snipMate.vim create mode 100644 vim/plugin/surround.vim create mode 100755 vim/plugin/syntastic.vim create mode 100644 vim/plugin/tComment.vim create mode 100644 vim/plugin/taglist.vim create mode 100644 vim/plugin/themes.vim create mode 100755 vim/plugin/vim-markdown-preview/kramdown/COPYING create mode 100755 vim/plugin/vim-markdown-preview/kramdown/compatibility.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/converter.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/converter/base.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/converter/html.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/converter/kramdown.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/converter/latex.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/document.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/error.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/kramdown.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/options.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/base.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/html.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/abbreviation.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/attribute_list.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/autolink.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/blank_line.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/blockquote.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/codeblock.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/codespan.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/emphasis.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/eob.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/escaped_chars.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/extension.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/footnote.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/header.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/horizontal_rule.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/html.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/html_entity.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/line_break.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/link.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/list.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/math.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/paragraph.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/smart_quotes.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/table.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/parser/kramdown/typographic_symbol.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/utils.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/utils/entities.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/utils/html.rb create mode 100755 vim/plugin/vim-markdown-preview/kramdown/version.rb create mode 100755 vim/plugin/vim-markdown-preview/stylesheets/github.css create mode 100755 vim/plugin/vim-markdown-preview/stylesheets/safari-reader.css create mode 100755 vim/plugin/vim-markdown-preview/stylesheets/simple-print.css create mode 100755 vim/plugin/vmp.vim create mode 100644 vim/rgb.txt create mode 100644 vim/ruby/fuzzy_file_finder.rb create mode 100644 vim/ruby/fuzzy_file_finder.rb.backup create mode 100644 vim/snippets/.gitignore create mode 100755 vim/snippets/Rakefile create mode 100755 vim/snippets/_/apache.snippet create mode 100755 vim/snippets/_/bsd.snippet create mode 100755 vim/snippets/_/date/date + time.snippet create mode 100755 vim/snippets/_/date/date.snippet create mode 100755 vim/snippets/_/dox.snippet create mode 100755 vim/snippets/_/fold.snippet create mode 100755 vim/snippets/_/gpl.snippet create mode 100755 vim/snippets/_/lorem.snippet create mode 100755 vim/snippets/_/modeline.snippet create mode 100644 vim/snippets/ant/skel/basic.snippet create mode 100755 vim/snippets/archive/_.snippets create mode 100755 vim/snippets/archive/c.snippets create mode 100755 vim/snippets/archive/cpp.snippets create mode 100755 vim/snippets/archive/html.snippets create mode 100755 vim/snippets/archive/java.snippets create mode 100755 vim/snippets/archive/javascript.snippets create mode 100755 vim/snippets/archive/objc.snippets create mode 100755 vim/snippets/archive/perl.snippets create mode 100755 vim/snippets/archive/php.snippets create mode 100755 vim/snippets/archive/python.snippets create mode 100755 vim/snippets/archive/ruby.snippets create mode 100755 vim/snippets/archive/sh.snippets create mode 100755 vim/snippets/archive/snippet.snippets create mode 100755 vim/snippets/archive/tex.snippets create mode 100755 vim/snippets/archive/vim.snippets create mode 100755 vim/snippets/c/cl.snippet create mode 100755 vim/snippets/c/def.snippet create mode 100755 vim/snippets/c/do.snippet create mode 100755 vim/snippets/c/el.snippet create mode 100755 vim/snippets/c/for.snippet create mode 100755 vim/snippets/c/forr.snippet create mode 100755 vim/snippets/c/fpf.snippet create mode 100755 vim/snippets/c/fun.snippet create mode 100755 vim/snippets/c/if.snippet create mode 100755 vim/snippets/c/inc/inc.snippet create mode 100755 vim/snippets/c/inc/inc_global.snippet create mode 100755 vim/snippets/c/main.snippet create mode 100755 vim/snippets/c/map.snippet create mode 100755 vim/snippets/c/ns.snippet create mode 100755 vim/snippets/c/once.snippet create mode 100755 vim/snippets/c/pr.snippet create mode 100755 vim/snippets/c/readfile.snippet create mode 100755 vim/snippets/c/st.snippet create mode 100755 vim/snippets/c/t.snippet create mode 100755 vim/snippets/c/td.snippet create mode 100755 vim/snippets/c/tds.snippet create mode 100755 vim/snippets/c/vector.snippet create mode 100755 vim/snippets/c/wh.snippet create mode 100755 vim/snippets/cmake/bin.snippet create mode 100755 vim/snippets/cmake/cmake.snippet create mode 100755 vim/snippets/cmake/dep.snippet create mode 100755 vim/snippets/cmake/find.snippet create mode 100755 vim/snippets/cmake/glob.snippet create mode 100755 vim/snippets/cmake/include.snippet create mode 100755 vim/snippets/cmake/lib.snippet create mode 100755 vim/snippets/cmake/link.snippet create mode 100755 vim/snippets/cmake/props.snippet create mode 100755 vim/snippets/cmake/set.snippet create mode 100755 vim/snippets/cmake/subdir.snippet create mode 100755 vim/snippets/css/!.snippet create mode 100755 vim/snippets/css/#.snippet create mode 100755 vim/snippets/css/background/all.snippet create mode 100755 vim/snippets/css/background/attachment.snippet create mode 100755 vim/snippets/css/background/color.snippet create mode 100755 vim/snippets/css/background/color_name.snippet create mode 100755 vim/snippets/css/background/color_rgb.snippet create mode 100755 vim/snippets/css/background/color_transparent.snippet create mode 100755 vim/snippets/css/background/image_none.snippet create mode 100755 vim/snippets/css/background/image_url.snippet create mode 100755 vim/snippets/css/background/position.snippet create mode 100755 vim/snippets/css/background/repeat.snippet create mode 100755 vim/snippets/css/border/basic.snippet create mode 100755 vim/snippets/css/border/color.snippet create mode 100755 vim/snippets/css/border/style.snippet create mode 100755 vim/snippets/css/border/width.snippet create mode 100755 vim/snippets/css/borderb/basic.snippet create mode 100755 vim/snippets/css/borderb/color.snippet create mode 100755 vim/snippets/css/borderb/style.snippet create mode 100755 vim/snippets/css/borderb/width.snippet create mode 100755 vim/snippets/css/borderl/basic.snippet create mode 100755 vim/snippets/css/borderl/color.snippet create mode 100755 vim/snippets/css/borderl/style.snippet create mode 100755 vim/snippets/css/borderl/width.snippet create mode 100755 vim/snippets/css/borderr/basic.snippet create mode 100755 vim/snippets/css/borderr/color.snippet create mode 100755 vim/snippets/css/borderr/style.snippet create mode 100755 vim/snippets/css/borderr/width.snippet create mode 100755 vim/snippets/css/bordert/basic.snippet create mode 100755 vim/snippets/css/bordert/color.snippet create mode 100755 vim/snippets/css/bordert/style.snippet create mode 100755 vim/snippets/css/bordert/width.snippet create mode 100755 vim/snippets/css/cl.snippet create mode 100755 vim/snippets/css/clear.snippet create mode 100755 vim/snippets/css/color.snippet create mode 100755 vim/snippets/css/colorn.snippet create mode 100755 vim/snippets/css/colorr.snippet create mode 100755 vim/snippets/css/cursor.snippet create mode 100755 vim/snippets/css/cursuru.snippet create mode 100755 vim/snippets/css/direction.snippet create mode 100755 vim/snippets/css/display/block.snippet create mode 100755 vim/snippets/css/display/common.snippet create mode 100755 vim/snippets/css/display/inline.snippet create mode 100755 vim/snippets/css/display/table.snippet create mode 100755 vim/snippets/css/float.snippet create mode 100755 vim/snippets/css/font/all.snippet create mode 100755 vim/snippets/css/font/family.snippet create mode 100755 vim/snippets/css/font/size.snippet create mode 100755 vim/snippets/css/font/size_font.snippet create mode 100755 vim/snippets/css/font/style.snippet create mode 100755 vim/snippets/css/font/variant.snippet create mode 100755 vim/snippets/css/font/weight.snippet create mode 100755 vim/snippets/css/i.snippet create mode 100755 vim/snippets/css/letter.snippet create mode 100755 vim/snippets/css/letterem.snippet create mode 100755 vim/snippets/css/letterpx.snippet create mode 100755 vim/snippets/css/list-style/image.snippet create mode 100755 vim/snippets/css/list-style/position.snippet create mode 100755 vim/snippets/css/list-style/type_asian.snippet create mode 100755 vim/snippets/css/list-style/type_marker.snippet create mode 100755 vim/snippets/css/list-style/type_numeric.snippet create mode 100755 vim/snippets/css/list-style/type_other.snippet create mode 100755 vim/snippets/css/list-style/type_position_image.snippet create mode 100755 vim/snippets/css/list-style/type_roman_alpha_greek.snippet create mode 100755 vim/snippets/css/margin.snippet create mode 100755 vim/snippets/css/marginb.snippet create mode 100755 vim/snippets/css/marginl.snippet create mode 100755 vim/snippets/css/margino/T_R_B_L.snippet create mode 100755 vim/snippets/css/margino/V_H.snippet create mode 100755 vim/snippets/css/margino/all.snippet create mode 100755 vim/snippets/css/margino/bottom.snippet create mode 100755 vim/snippets/css/margino/left.snippet create mode 100755 vim/snippets/css/margino/right.snippet create mode 100755 vim/snippets/css/margino/top.snippet create mode 100755 vim/snippets/css/marginr.snippet create mode 100755 vim/snippets/css/margint.snippet create mode 100755 vim/snippets/css/marker/offset_auto.snippet create mode 100755 vim/snippets/css/marker/offset_length.snippet create mode 100755 vim/snippets/css/opacity.snippet create mode 100755 vim/snippets/css/overflow.snippet create mode 100755 vim/snippets/css/padding.snippet create mode 100755 vim/snippets/css/paddingb.snippet create mode 100755 vim/snippets/css/paddingl.snippet create mode 100755 vim/snippets/css/paddingo/T_R_B_L.snippet create mode 100755 vim/snippets/css/paddingo/V_H.snippet create mode 100755 vim/snippets/css/paddingo/all.snippet create mode 100755 vim/snippets/css/paddingo/bottom.snippet create mode 100755 vim/snippets/css/paddingo/left.snippet create mode 100755 vim/snippets/css/paddingo/right.snippet create mode 100755 vim/snippets/css/paddingo/top.snippet create mode 100755 vim/snippets/css/paddingr.snippet create mode 100755 vim/snippets/css/paddingt.snippet create mode 100755 vim/snippets/css/position.snippet create mode 100755 vim/snippets/css/scrollbar.snippet create mode 100755 vim/snippets/css/tag.snippet create mode 100755 vim/snippets/css/text/align.snippet create mode 100755 vim/snippets/css/text/decoration.snippet create mode 100755 vim/snippets/css/text/indent.snippet create mode 100755 vim/snippets/css/text/shadow_hex.snippet create mode 100755 vim/snippets/css/text/shadow_none.snippet create mode 100755 vim/snippets/css/text/shadow_rgb.snippet create mode 100755 vim/snippets/css/text/transform.snippet create mode 100755 vim/snippets/css/text/transform_none.snippet create mode 100755 vim/snippets/css/url.snippet create mode 100755 vim/snippets/css/vertical.snippet create mode 100755 vim/snippets/css/visibility.snippet create mode 100755 vim/snippets/css/white.snippet create mode 100755 vim/snippets/css/word/spacing_length.snippet create mode 100755 vim/snippets/css/word/spacing_normal.snippet create mode 100755 vim/snippets/css/z.snippet create mode 100755 vim/snippets/cucumber/a.snippet create mode 100755 vim/snippets/cucumber/aa.snippet create mode 100755 vim/snippets/cucumber/b.snippet create mode 100755 vim/snippets/cucumber/e.snippet create mode 100755 vim/snippets/cucumber/f.snippet create mode 100755 vim/snippets/cucumber/feat.snippet create mode 100755 vim/snippets/cucumber/feature.snippet create mode 100755 vim/snippets/cucumber/g/given.snippet create mode 100755 vim/snippets/cucumber/g/given_regexp.snippet create mode 100755 vim/snippets/cucumber/iwt.snippet create mode 100755 vim/snippets/cucumber/s.snippet create mode 100755 vim/snippets/cucumber/scen/scenario_with_js.snippet create mode 100755 vim/snippets/cucumber/scen/scenario_without_js.snippet create mode 100755 vim/snippets/cucumber/so.snippet create mode 100755 vim/snippets/cucumber/steps create mode 100755 vim/snippets/cucumber/sti.snippet create mode 100755 vim/snippets/cucumber/t.snippet create mode 100755 vim/snippets/cucumber/w.snippet create mode 100755 vim/snippets/django-html/#.snippet create mode 100755 vim/snippets/django-html/%%.snippet create mode 100755 vim/snippets/django-html/%.snippet create mode 100755 vim/snippets/django-html/add.snippet create mode 100755 vim/snippets/django-html/autoescape.snippet create mode 100755 vim/snippets/django-html/block.snippet create mode 100755 vim/snippets/django-html/center.snippet create mode 100755 vim/snippets/django-html/comment.snippet create mode 100755 vim/snippets/django-html/cut.snippet create mode 100755 vim/snippets/django-html/cycle.snippet create mode 100755 vim/snippets/django-html/date.snippet create mode 100755 vim/snippets/django-html/debug.snippet create mode 100755 vim/snippets/django-html/default.snippet create mode 100755 vim/snippets/django-html/defaultifnone.snippet create mode 100755 vim/snippets/django-html/dictsort.snippet create mode 100755 vim/snippets/django-html/dictsortrev.snippet create mode 100755 vim/snippets/django-html/divisibleby.snippet create mode 100755 vim/snippets/django-html/else.snippet create mode 100755 vim/snippets/django-html/empty.snippet create mode 100755 vim/snippets/django-html/extends.snippet create mode 100755 vim/snippets/django-html/filter.snippet create mode 100755 vim/snippets/django-html/firstof.snippet create mode 100755 vim/snippets/django-html/floatformat.snippet create mode 100755 vim/snippets/django-html/for.snippet create mode 100755 vim/snippets/django-html/getdigit.snippet create mode 100755 vim/snippets/django-html/if.snippet create mode 100755 vim/snippets/django-html/ifchanged.snippet create mode 100755 vim/snippets/django-html/ifequal.snippet create mode 100755 vim/snippets/django-html/ifnotequal.snippet create mode 100755 vim/snippets/django-html/include.snippet create mode 100755 vim/snippets/django-html/join.snippet create mode 100755 vim/snippets/django-html/lengthis.snippet create mode 100755 vim/snippets/django-html/load.snippet create mode 100755 vim/snippets/django-html/now.snippet create mode 100755 vim/snippets/django-html/pluralize.snippet create mode 100755 vim/snippets/django-html/regroup.snippet create mode 100755 vim/snippets/django-html/removetags.snippet create mode 100755 vim/snippets/django-html/slice.snippet create mode 100755 vim/snippets/django-html/spaceless.snippet create mode 100755 vim/snippets/django-html/ssi.snippet create mode 100755 vim/snippets/django-html/stringformat.snippet create mode 100755 vim/snippets/django-html/templatetag/closeblock.snippet create mode 100755 vim/snippets/django-html/templatetag/closevariable.snippet create mode 100755 vim/snippets/django-html/templatetag/openblock.snippet create mode 100755 vim/snippets/django-html/templatetag/openvariable.snippet create mode 100755 vim/snippets/django-html/time.snippet create mode 100755 vim/snippets/django-html/trans.snippet create mode 100755 vim/snippets/django-html/truncatewords.snippet create mode 100755 vim/snippets/django-html/truncatewordshtml.snippet create mode 100755 vim/snippets/django-html/url.snippet create mode 100755 vim/snippets/django-html/urlizetrunc.snippet create mode 100755 vim/snippets/django-html/widthratio.snippet create mode 100755 vim/snippets/django-html/with.snippet create mode 100755 vim/snippets/django-html/wordwrap.snippet create mode 100755 vim/snippets/django-html/{.snippet create mode 100755 vim/snippets/django/auto.snippet create mode 100755 vim/snippets/django/bool.snippet create mode 100755 vim/snippets/django/char.snippet create mode 100755 vim/snippets/django/comma.snippet create mode 100755 vim/snippets/django/date.snippet create mode 100755 vim/snippets/django/datetime.snippet create mode 100755 vim/snippets/django/decimal.snippet create mode 100755 vim/snippets/django/email.snippet create mode 100755 vim/snippets/django/file.snippet create mode 100755 vim/snippets/django/filepath.snippet create mode 100755 vim/snippets/django/fk.snippet create mode 100755 vim/snippets/django/float.snippet create mode 100755 vim/snippets/django/form.snippet create mode 100755 vim/snippets/django/image.snippet create mode 100755 vim/snippets/django/int.snippet create mode 100755 vim/snippets/django/ip.snippet create mode 100755 vim/snippets/django/manytomany.snippet create mode 100755 vim/snippets/django/model.snippet create mode 100755 vim/snippets/django/modeladmin.snippet create mode 100755 vim/snippets/django/nullbool.snippet create mode 100755 vim/snippets/django/onetoone.snippet create mode 100755 vim/snippets/django/posint.snippet create mode 100755 vim/snippets/django/possmallint.snippet create mode 100755 vim/snippets/django/rendertores.snippet create mode 100755 vim/snippets/django/sendmail.snippet create mode 100755 vim/snippets/django/slug.snippet create mode 100755 vim/snippets/django/smallint.snippet create mode 100755 vim/snippets/django/stackedinline.snippet create mode 100755 vim/snippets/django/tabularinline.snippet create mode 100755 vim/snippets/django/text.snippet create mode 100755 vim/snippets/django/time.snippet create mode 100755 vim/snippets/django/url.snippet create mode 100755 vim/snippets/django/xml.snippet create mode 100755 vim/snippets/eruby-rails/%-.snippet create mode 100755 vim/snippets/eruby-rails/%.snippet create mode 100755 vim/snippets/eruby-rails/%=-.snippet create mode 100755 vim/snippets/eruby-rails/%=.snippet create mode 100755 vim/snippets/eruby-rails/%h.snippet create mode 100755 vim/snippets/eruby-rails/conf.snippet create mode 100755 vim/snippets/eruby-rails/cs.snippet create mode 100755 vim/snippets/eruby-rails/ct.snippet create mode 100755 vim/snippets/eruby-rails/e.snippet create mode 100755 vim/snippets/eruby-rails/eend.snippet create mode 100755 vim/snippets/eruby-rails/end.snippet create mode 100755 vim/snippets/eruby-rails/er.snippet create mode 100755 vim/snippets/eruby-rails/ff.snippet create mode 100755 vim/snippets/eruby-rails/ffcb.snippet create mode 100755 vim/snippets/eruby-rails/ffe.snippet create mode 100755 vim/snippets/eruby-rails/ffff.snippet create mode 100755 vim/snippets/eruby-rails/ffhf.snippet create mode 100755 vim/snippets/eruby-rails/ffl.snippet create mode 100755 vim/snippets/eruby-rails/ffpf.snippet create mode 100755 vim/snippets/eruby-rails/ffrb.snippet create mode 100755 vim/snippets/eruby-rails/ffs.snippet create mode 100755 vim/snippets/eruby-rails/ffta.snippet create mode 100755 vim/snippets/eruby-rails/fftf.snippet create mode 100755 vim/snippets/eruby-rails/fields.snippet create mode 100755 vim/snippets/eruby-rails/for.snippet create mode 100755 vim/snippets/eruby-rails/ft.snippet create mode 100755 vim/snippets/eruby-rails/fta.snippet create mode 100755 vim/snippets/eruby-rails/i18.snippet create mode 100755 vim/snippets/eruby-rails/it.snippet create mode 100755 vim/snippets/eruby-rails/jit.snippet create mode 100755 vim/snippets/eruby-rails/jsit.snippet create mode 100755 vim/snippets/eruby-rails/jt.snippet create mode 100755 vim/snippets/eruby-rails/lia.snippet create mode 100755 vim/snippets/eruby-rails/liai.snippet create mode 100755 vim/snippets/eruby-rails/lic.snippet create mode 100755 vim/snippets/eruby-rails/lica.snippet create mode 100755 vim/snippets/eruby-rails/licai.snippet create mode 100755 vim/snippets/eruby-rails/lim.snippet create mode 100755 vim/snippets/eruby-rails/linp.snippet create mode 100755 vim/snippets/eruby-rails/linpp.snippet create mode 100755 vim/snippets/eruby-rails/lip.snippet create mode 100755 vim/snippets/eruby-rails/lipp.snippet create mode 100755 vim/snippets/eruby-rails/lt.snippet create mode 100755 vim/snippets/eruby-rails/ltr.snippet create mode 100755 vim/snippets/eruby-rails/ofcfs.snippet create mode 100755 vim/snippets/eruby-rails/rf.snippet create mode 100755 vim/snippets/eruby-rails/rp.snippet create mode 100755 vim/snippets/eruby-rails/rt.snippet create mode 100755 vim/snippets/eruby-rails/sbtr.snippet create mode 100755 vim/snippets/eruby-rails/sff/sff.multi.snippet create mode 100755 vim/snippets/eruby-rails/sff/sff.simple.snippet create mode 100755 vim/snippets/eruby-rails/slt.snippet create mode 100755 vim/snippets/eruby-rails/sslt.snippet create mode 100755 vim/snippets/eruby-rails/st.snippet create mode 100755 vim/snippets/eruby/e.snippet create mode 100755 vim/snippets/eruby/else.snippet create mode 100755 vim/snippets/eruby/end.snippet create mode 100755 vim/snippets/eruby/er.snippet create mode 100755 vim/snippets/eruby/if.snippet create mode 100755 vim/snippets/eruby/ife.snippet create mode 100755 vim/snippets/eruby/p.snippet create mode 100755 vim/snippets/eruby/unless.snippet create mode 100755 vim/snippets/eruby/unlesse.snippet create mode 100755 vim/snippets/falcon/class.snippet create mode 100755 vim/snippets/falcon/elif.snippet create mode 100755 vim/snippets/falcon/forin.snippet create mode 100755 vim/snippets/falcon/forto.snippet create mode 100755 vim/snippets/falcon/fun.snippet create mode 100755 vim/snippets/falcon/if.snippet create mode 100755 vim/snippets/falcon/ife.snippet create mode 100755 vim/snippets/falcon/imp.snippet create mode 100755 vim/snippets/falcon/while.snippet create mode 100755 vim/snippets/falcon/while.snippet!.snippet create mode 100755 vim/snippets/haml-html/p.snippet create mode 100755 vim/snippets/haml/conf.snippet create mode 100755 vim/snippets/haml/cs.snippet create mode 100755 vim/snippets/haml/ff.snippet create mode 100755 vim/snippets/haml/ffcb.snippet create mode 100755 vim/snippets/haml/ffe.snippet create mode 100755 vim/snippets/haml/ffff.snippet create mode 100755 vim/snippets/haml/ffhf.snippet create mode 100755 vim/snippets/haml/ffl.snippet create mode 100755 vim/snippets/haml/ffpf.snippet create mode 100755 vim/snippets/haml/ffrb.snippet create mode 100755 vim/snippets/haml/ffs.snippet create mode 100755 vim/snippets/haml/ffta.snippet create mode 100755 vim/snippets/haml/fftf.snippet create mode 100755 vim/snippets/haml/fields.snippet create mode 100755 vim/snippets/haml/for.snippet create mode 100755 vim/snippets/haml/ft.snippet create mode 100755 vim/snippets/haml/if.snippet create mode 100755 vim/snippets/haml/ife.snippet create mode 100755 vim/snippets/haml/it.snippet create mode 100755 vim/snippets/haml/jit.snippet create mode 100755 vim/snippets/haml/jsit.snippet create mode 100755 vim/snippets/haml/lia.snippet create mode 100755 vim/snippets/haml/liai.snippet create mode 100755 vim/snippets/haml/lic.snippet create mode 100755 vim/snippets/haml/lica.snippet create mode 100755 vim/snippets/haml/licai.snippet create mode 100755 vim/snippets/haml/lim.snippet create mode 100755 vim/snippets/haml/linp.snippet create mode 100755 vim/snippets/haml/linpp.snippet create mode 100755 vim/snippets/haml/lip.snippet create mode 100755 vim/snippets/haml/lipp.snippet create mode 100755 vim/snippets/haml/lt.snippet create mode 100755 vim/snippets/haml/ofcfs.snippet create mode 100755 vim/snippets/haml/rf.snippet create mode 100755 vim/snippets/haml/rp.snippet create mode 100755 vim/snippets/haml/rt.snippet create mode 100755 vim/snippets/haml/slt.snippet create mode 100755 vim/snippets/haml/sslt.snippet create mode 100755 vim/snippets/haml/st.snippet create mode 100755 vim/snippets/haml/unless.snippet create mode 100755 vim/snippets/haml/unlesse.snippet create mode 100755 vim/snippets/html.snippets create mode 100755 vim/snippets/html/ah.snippet create mode 100755 vim/snippets/html/base.snippet create mode 100755 vim/snippets/html/body.snippet create mode 100755 vim/snippets/html/break.snippet create mode 100755 vim/snippets/html/css.snippet create mode 100755 vim/snippets/html/div.snippet create mode 100644 vim/snippets/html/doctype.snippet create mode 100755 vim/snippets/html/doctype/HTML 4.01 Strict.snippet create mode 100755 vim/snippets/html/doctype/HTML 4.01 Transitional.snippet create mode 100755 vim/snippets/html/doctype/HTML 5.snippet create mode 100755 vim/snippets/html/doctype/XHTML 1.0 Frameset.snippet create mode 100755 vim/snippets/html/doctype/XHTML 1.0 Strict.snippet create mode 100755 vim/snippets/html/doctype/XHTML 1.0 Transitional.snippet create mode 100755 vim/snippets/html/doctype/XHTML 1.1.snippet create mode 100755 vim/snippets/html/form.snippet create mode 100755 vim/snippets/html/h1.snippet create mode 100755 vim/snippets/html/h2.snippet create mode 100755 vim/snippets/html/h3.snippet create mode 100755 vim/snippets/html/head.snippet create mode 100644 vim/snippets/html/href.snippet create mode 100755 vim/snippets/html/ifie.snippet create mode 100755 vim/snippets/html/img.snippet create mode 100755 vim/snippets/html/input.snippet create mode 100755 vim/snippets/html/inputl.snippet create mode 100755 vim/snippets/html/label.snippet create mode 100755 vim/snippets/html/li.snippet create mode 100755 vim/snippets/html/link.snippet create mode 100755 vim/snippets/html/mailto.snippet create mode 100755 vim/snippets/html/meta.snippet create mode 100755 vim/snippets/html/movie.snippet create mode 100755 vim/snippets/html/ol.snippet create mode 100755 vim/snippets/html/option.snippet create mode 100755 vim/snippets/html/p.snippet create mode 100755 vim/snippets/html/php.snippet create mode 100755 vim/snippets/html/script/include_script.snippet create mode 100755 vim/snippets/html/script/inline_script.snippet create mode 100755 vim/snippets/html/select.snippet create mode 100755 vim/snippets/html/skel/HTML 4 Strict.snippet create mode 100755 vim/snippets/html/skel/HTML 5.snippet create mode 100755 vim/snippets/html/skel/XHTML 1.0 Strict.snippet create mode 100644 vim/snippets/html/skel/basic.snippet create mode 100644 vim/snippets/html/skel/basic_with_meta.snippet create mode 100755 vim/snippets/html/skel/html5.snippet create mode 100755 vim/snippets/html/span.snippet create mode 100755 vim/snippets/html/style.snippet create mode 100755 vim/snippets/html/t.snippet create mode 100755 vim/snippets/html/table/basic.snippet create mode 100755 vim/snippets/html/table/hardcore.snippet create mode 100755 vim/snippets/html/textarea.snippet create mode 100755 vim/snippets/html/ti.snippet create mode 100755 vim/snippets/html/tt.snippet create mode 100755 vim/snippets/html/ul.snippet create mode 100755 vim/snippets/java/class/basic+constructor+main.snippet create mode 100755 vim/snippets/java/class/basic+constructor.snippet create mode 100755 vim/snippets/java/class/basic.snippet create mode 100755 vim/snippets/java/for.snippet create mode 100755 vim/snippets/java/gs.snippet create mode 100755 vim/snippets/java/if.snippet create mode 100755 vim/snippets/java/ife.snippet create mode 100755 vim/snippets/java/log.snippet create mode 100755 vim/snippets/java/m.snippet create mode 100755 vim/snippets/javascript-jquery/add.snippet create mode 100755 vim/snippets/javascript-jquery/addClass.snippet create mode 100755 vim/snippets/javascript-jquery/after.snippet create mode 100755 vim/snippets/javascript-jquery/ajax.snippet create mode 100755 vim/snippets/javascript-jquery/ajaxerror.snippet create mode 100755 vim/snippets/javascript-jquery/ajaxget.snippet create mode 100755 vim/snippets/javascript-jquery/ajaxgetif.snippet create mode 100755 vim/snippets/javascript-jquery/ajaxpost.snippet create mode 100755 vim/snippets/javascript-jquery/ajaxsend.snippet create mode 100755 vim/snippets/javascript-jquery/ajaxsetup.snippet create mode 100755 vim/snippets/javascript-jquery/ajaxstart.snippet create mode 100755 vim/snippets/javascript-jquery/ajaxstop.snippet create mode 100755 vim/snippets/javascript-jquery/ajaxsuccess.snippet create mode 100755 vim/snippets/javascript-jquery/animate.snippet create mode 100755 vim/snippets/javascript-jquery/append.snippet create mode 100755 vim/snippets/javascript-jquery/appendTo.snippet create mode 100755 vim/snippets/javascript-jquery/attr.snippet create mode 100755 vim/snippets/javascript-jquery/attrm.snippet create mode 100755 vim/snippets/javascript-jquery/before.snippet create mode 100755 vim/snippets/javascript-jquery/bind.snippet create mode 100755 vim/snippets/javascript-jquery/blur.snippet create mode 100755 vim/snippets/javascript-jquery/change.snippet create mode 100755 vim/snippets/javascript-jquery/children.snippet create mode 100755 vim/snippets/javascript-jquery/click.snippet create mode 100755 vim/snippets/javascript-jquery/clone.snippet create mode 100755 vim/snippets/javascript-jquery/contains.snippet create mode 100755 vim/snippets/javascript-jquery/css.snippet create mode 100755 vim/snippets/javascript-jquery/cssm.snippet create mode 100755 vim/snippets/javascript-jquery/dblclick.snippet create mode 100755 vim/snippets/javascript-jquery/each.snippet create mode 100755 vim/snippets/javascript-jquery/el.snippet create mode 100755 vim/snippets/javascript-jquery/eltrim.snippet create mode 100755 vim/snippets/javascript-jquery/end.snippet create mode 100755 vim/snippets/javascript-jquery/error.snippet create mode 100755 vim/snippets/javascript-jquery/fadein.snippet create mode 100755 vim/snippets/javascript-jquery/fadeinc.snippet create mode 100755 vim/snippets/javascript-jquery/fadeout.snippet create mode 100755 vim/snippets/javascript-jquery/fadeoutc.snippet create mode 100755 vim/snippets/javascript-jquery/fadeto.snippet create mode 100755 vim/snippets/javascript-jquery/fadetoc.snippet create mode 100755 vim/snippets/javascript-jquery/filter.snippet create mode 100755 vim/snippets/javascript-jquery/find.snippet create mode 100755 vim/snippets/javascript-jquery/focus.snippet create mode 100755 vim/snippets/javascript-jquery/get.snippet create mode 100755 vim/snippets/javascript-jquery/getjson.snippet create mode 100755 vim/snippets/javascript-jquery/getscript.snippet create mode 100755 vim/snippets/javascript-jquery/height.snippet create mode 100755 vim/snippets/javascript-jquery/hide.snippet create mode 100755 vim/snippets/javascript-jquery/hidec.snippet create mode 100755 vim/snippets/javascript-jquery/hover.snippet create mode 100755 vim/snippets/javascript-jquery/html.snippet create mode 100755 vim/snippets/javascript-jquery/insertAfter.snippet create mode 100755 vim/snippets/javascript-jquery/insertBefore.snippet create mode 100755 vim/snippets/javascript-jquery/is.snippet create mode 100755 vim/snippets/javascript-jquery/jj.snippet create mode 100755 vim/snippets/javascript-jquery/load.snippet create mode 100755 vim/snippets/javascript-jquery/loadf.snippet create mode 100755 vim/snippets/javascript-jquery/loadif.snippet create mode 100755 vim/snippets/javascript-jquery/mdown.snippet create mode 100755 vim/snippets/javascript-jquery/mmove.snippet create mode 100755 vim/snippets/javascript-jquery/mout.snippet create mode 100755 vim/snippets/javascript-jquery/mover.snippet create mode 100755 vim/snippets/javascript-jquery/mup.snippet create mode 100755 vim/snippets/javascript-jquery/next.snippet create mode 100755 vim/snippets/javascript-jquery/not.snippet create mode 100755 vim/snippets/javascript-jquery/one.snippet create mode 100755 vim/snippets/javascript-jquery/parent.snippet create mode 100755 vim/snippets/javascript-jquery/parents.snippet create mode 100755 vim/snippets/javascript-jquery/plugin.snippet create mode 100755 vim/snippets/javascript-jquery/prepend.snippet create mode 100755 vim/snippets/javascript-jquery/prependto.snippet create mode 100755 vim/snippets/javascript-jquery/prev.snippet create mode 100755 vim/snippets/javascript-jquery/ready.snippet create mode 100755 vim/snippets/javascript-jquery/remove.snippet create mode 100755 vim/snippets/javascript-jquery/removeattr.snippet create mode 100755 vim/snippets/javascript-jquery/removeclass.snippet create mode 100755 vim/snippets/javascript-jquery/reset.snippet create mode 100755 vim/snippets/javascript-jquery/resize.snippet create mode 100755 vim/snippets/javascript-jquery/scroll.snippet create mode 100755 vim/snippets/javascript-jquery/sdown.snippet create mode 100755 vim/snippets/javascript-jquery/sdownc.snippet create mode 100755 vim/snippets/javascript-jquery/sdupc.snippet create mode 100755 vim/snippets/javascript-jquery/select.snippet create mode 100755 vim/snippets/javascript-jquery/show.snippet create mode 100755 vim/snippets/javascript-jquery/showc.snippet create mode 100755 vim/snippets/javascript-jquery/sib.snippet create mode 100755 vim/snippets/javascript-jquery/size.snippet create mode 100755 vim/snippets/javascript-jquery/stoggle.snippet create mode 100755 vim/snippets/javascript-jquery/submit.snippet create mode 100755 vim/snippets/javascript-jquery/sup.snippet create mode 100755 vim/snippets/javascript-jquery/text.snippet create mode 100755 vim/snippets/javascript-jquery/this.snippet create mode 100755 vim/snippets/javascript-jquery/tog.snippet create mode 100755 vim/snippets/javascript-jquery/togclass.snippet create mode 100755 vim/snippets/javascript-jquery/togsh.snippet create mode 100755 vim/snippets/javascript-jquery/trig.snippet create mode 100755 vim/snippets/javascript-jquery/unbind.snippet create mode 100755 vim/snippets/javascript-jquery/val.snippet create mode 100755 vim/snippets/javascript-jquery/width.snippet create mode 100755 vim/snippets/javascript-jquery/wrap.snippet create mode 100755 vim/snippets/javascript/a.snippet create mode 100755 vim/snippets/javascript/anon.snippet create mode 100755 vim/snippets/javascript/as.snippet create mode 100755 vim/snippets/javascript/ea.snippet create mode 100755 vim/snippets/javascript/for.snippet create mode 100755 vim/snippets/javascript/fun.snippet create mode 100755 vim/snippets/javascript/if.snippet create mode 100755 vim/snippets/javascript/ife.snippet create mode 100755 vim/snippets/javascript/iff.snippet create mode 100755 vim/snippets/javascript/l.snippet create mode 100755 vim/snippets/javascript/log.snippet create mode 100755 vim/snippets/javascript/met.snippet create mode 100755 vim/snippets/javascript/pe.snippet create mode 100755 vim/snippets/javascript/pf.snippet create mode 100755 vim/snippets/javascript/proto.snippet create mode 100755 vim/snippets/javascript/t.snippet create mode 100755 vim/snippets/javascript/timeout.snippet create mode 100755 vim/snippets/jinja.snippets create mode 100755 vim/snippets/jinja/block.snippet create mode 100755 vim/snippets/jinja/else.snippet create mode 100755 vim/snippets/jinja/extends.snippet create mode 100755 vim/snippets/jinja/for.snippet create mode 100755 vim/snippets/jinja/if.snippet create mode 100755 vim/snippets/jinja/include.snippet create mode 100755 vim/snippets/markdown.snippets create mode 100755 vim/snippets/objc/I.snippet create mode 100755 vim/snippets/objc/Imp.snippet create mode 100755 vim/snippets/objc/alloc.snippet create mode 100755 vim/snippets/objc/array.snippet create mode 100755 vim/snippets/objc/bez.snippet create mode 100755 vim/snippets/objc/cat.snippet create mode 100755 vim/snippets/objc/cati.snippet create mode 100755 vim/snippets/objc/cli.snippet create mode 100755 vim/snippets/objc/dict.snippet create mode 100755 vim/snippets/objc/forarray.snippet create mode 100755 vim/snippets/objc/log.snippet create mode 100755 vim/snippets/objc/m/class method.snippet create mode 100755 vim/snippets/objc/m/method.snippet create mode 100755 vim/snippets/objc/objacc.snippet create mode 100755 vim/snippets/objc/objc.snippet create mode 100755 vim/snippets/objc/prop.snippet create mode 100755 vim/snippets/objc/rel.snippet create mode 100755 vim/snippets/objc/ret.snippet create mode 100755 vim/snippets/objc/sel.snippet create mode 100755 vim/snippets/objc/sm.snippet create mode 100755 vim/snippets/objc/syn.snippet create mode 100755 vim/snippets/php-cake/actas.snippet create mode 100755 vim/snippets/php-cake/addc.snippet create mode 100755 vim/snippets/php-cake/aftdel.snippet create mode 100755 vim/snippets/php-cake/aftfin.snippet create mode 100755 vim/snippets/php-cake/aftfind.snippet create mode 100755 vim/snippets/php-cake/aftsave.snippet create mode 100755 vim/snippets/php-cake/aftss.snippet create mode 100755 vim/snippets/php-cake/aftsse.snippet create mode 100755 vim/snippets/php-cake/befdel.snippet create mode 100755 vim/snippets/php-cake/beffil.snippet create mode 100755 vim/snippets/php-cake/beffind.snippet create mode 100755 vim/snippets/php-cake/befren.snippet create mode 100755 vim/snippets/php-cake/befsave.snippet create mode 100755 vim/snippets/php-cake/befsca.snippet create mode 100755 vim/snippets/php-cake/befval.snippet create mode 100755 vim/snippets/php-cake/bt.snippet create mode 100755 vim/snippets/php-cake/cbefdel.snippet create mode 100755 vim/snippets/php-cake/cfg.snippet create mode 100755 vim/snippets/php-cake/cfl.snippet create mode 100755 vim/snippets/php-cake/cinit.snippet create mode 100755 vim/snippets/php-cake/cri.snippet create mode 100755 vim/snippets/php-cake/dat.snippet create mode 100755 vim/snippets/php-cake/dbg.snippet create mode 100755 vim/snippets/php-cake/dela.snippet create mode 100755 vim/snippets/php-cake/ele.snippet create mode 100755 vim/snippets/php-cake/fchk.snippet create mode 100755 vim/snippets/php-cake/fcre.snippet create mode 100755 vim/snippets/php-cake/fend.snippet create mode 100755 vim/snippets/php-cake/ferr.snippet create mode 100755 vim/snippets/php-cake/ffil.snippet create mode 100755 vim/snippets/php-cake/fhid.snippet create mode 100755 vim/snippets/php-cake/finp.snippet create mode 100755 vim/snippets/php-cake/flbl.snippet create mode 100755 vim/snippets/php-cake/fpwd.snippet create mode 100755 vim/snippets/php-cake/frad.snippet create mode 100755 vim/snippets/php-cake/fsel.snippet create mode 100755 vim/snippets/php-cake/fsub.snippet create mode 100755 vim/snippets/php-cake/fsubimg.snippet create mode 100755 vim/snippets/php-cake/ftarea.snippet create mode 100755 vim/snippets/php-cake/ftxt.snippet create mode 100755 vim/snippets/php-cake/getc.snippet create mode 100755 vim/snippets/php-cake/habtm.snippet create mode 100755 vim/snippets/php-cake/hm.snippet create mode 100755 vim/snippets/php-cake/ho.snippet create mode 100755 vim/snippets/php-cake/imp.snippet create mode 100755 vim/snippets/php-cake/inflector/camelize.snippet create mode 100755 vim/snippets/php-cake/inflector/classify.snippet create mode 100755 vim/snippets/php-cake/inflector/humanize.snippet create mode 100755 vim/snippets/php-cake/inflector/pluralize.snippet create mode 100755 vim/snippets/php-cake/inflector/singularize.snippet create mode 100755 vim/snippets/php-cake/inflector/slug.snippet create mode 100755 vim/snippets/php-cake/inflector/tabelize.snippet create mode 100755 vim/snippets/php-cake/inflector/underscore.snippet create mode 100755 vim/snippets/php-cake/inflector/variable.snippet create mode 100755 vim/snippets/php-cake/lay.snippet create mode 100755 vim/snippets/php-cake/lay=.snippet create mode 100755 vim/snippets/php-cake/lia.snippet create mode 100755 vim/snippets/php-cake/lic.snippet create mode 100755 vim/snippets/php-cake/lica.snippet create mode 100755 vim/snippets/php-cake/lin.snippet create mode 100755 vim/snippets/php-cake/matom.snippet create mode 100755 vim/snippets/php-cake/mdel.snippet create mode 100755 vim/snippets/php-cake/mdesc.snippet create mode 100755 vim/snippets/php-cake/mfind.snippet create mode 100755 vim/snippets/php-cake/mfinda.snippet create mode 100755 vim/snippets/php-cake/mfindb.snippet create mode 100755 vim/snippets/php-cake/mfindc.snippet create mode 100755 vim/snippets/php-cake/mfindf.snippet create mode 100755 vim/snippets/php-cake/mfindl.snippet create mode 100755 vim/snippets/php-cake/mfindn.snippet create mode 100755 vim/snippets/php-cake/mfindt.snippet create mode 100755 vim/snippets/php-cake/micon.snippet create mode 100755 vim/snippets/php-cake/mid.snippet create mode 100755 vim/snippets/php-cake/mifsave.snippet create mode 100755 vim/snippets/php-cake/mkeyw.snippet create mode 100755 vim/snippets/php-cake/mrem.snippet create mode 100755 vim/snippets/php-cake/mrss.snippet create mode 100755 vim/snippets/php-cake/msave.snippet create mode 100755 vim/snippets/php-cake/msavef.snippet create mode 100755 vim/snippets/php-cake/mupa.snippet create mode 100755 vim/snippets/php-cake/newbeh.snippet create mode 100755 vim/snippets/php-cake/newcom.snippet create mode 100755 vim/snippets/php-cake/newcon.snippet create mode 100755 vim/snippets/php-cake/newhel.snippet create mode 100755 vim/snippets/php-cake/newmod.snippet create mode 100755 vim/snippets/php-cake/onerr.snippet create mode 100755 vim/snippets/php-cake/par.snippet create mode 100755 vim/snippets/php-cake/pr.snippet create mode 100755 vim/snippets/php-cake/pt=.snippet create mode 100755 vim/snippets/php-cake/ran.snippet create mode 100755 vim/snippets/php-cake/rbe.snippet create mode 100755 vim/snippets/php-cake/rbl.snippet create mode 100755 vim/snippets/php-cake/rbo.snippet create mode 100755 vim/snippets/php-cake/rcc.snippet create mode 100755 vim/snippets/php-cake/rco.snippet create mode 100755 vim/snippets/php-cake/rcu.snippet create mode 100755 vim/snippets/php-cake/rda.snippet create mode 100755 vim/snippets/php-cake/rde.snippet create mode 100755 vim/snippets/php-cake/rea.snippet create mode 100755 vim/snippets/php-cake/rec.snippet create mode 100755 vim/snippets/php-cake/reca.snippet create mode 100755 vim/snippets/php-cake/redir.snippet create mode 100755 vim/snippets/php-cake/rem.snippet create mode 100755 vim/snippets/php-cake/ren.snippet create mode 100755 vim/snippets/php-cake/req.snippet create mode 100755 vim/snippets/php-cake/rex.snippet create mode 100755 vim/snippets/php-cake/rfi.snippet create mode 100755 vim/snippets/php-cake/rin.snippet create mode 100755 vim/snippets/php-cake/rip.snippet create mode 100755 vim/snippets/php-cake/rma.snippet create mode 100755 vim/snippets/php-cake/rmi.snippet create mode 100755 vim/snippets/php-cake/rmo.snippet create mode 100755 vim/snippets/php-cake/rmu.snippet create mode 100755 vim/snippets/php-cake/rnu.snippet create mode 100755 vim/snippets/php-cake/rph.snippet create mode 100755 vim/snippets/php-cake/rpo.snippet create mode 100755 vim/snippets/php-cake/rra.snippet create mode 100755 vim/snippets/php-cake/rssn.snippet create mode 100755 vim/snippets/php-cake/rti.snippet create mode 100755 vim/snippets/php-cake/rur.snippet create mode 100755 vim/snippets/php-cake/scaerr.snippet create mode 100755 vim/snippets/php-cake/scf.snippet create mode 100755 vim/snippets/php-cake/see.snippet create mode 100755 vim/snippets/php-cake/sef.snippet create mode 100755 vim/snippets/php-cake/ser.snippet create mode 100755 vim/snippets/php-cake/set.snippet create mode 100755 vim/snippets/php-cake/sfl.snippet create mode 100755 vim/snippets/php-cake/ssc.snippet create mode 100755 vim/snippets/php-cake/ssd.snippet create mode 100755 vim/snippets/php-cake/ssde.snippet create mode 100755 vim/snippets/php-cake/sse.snippet create mode 100755 vim/snippets/php-cake/ssf.snippet create mode 100755 vim/snippets/php-cake/ssr.snippet create mode 100755 vim/snippets/php-cake/ssw.snippet create mode 100755 vim/snippets/php-cake/tfl.snippet create mode 100755 vim/snippets/php-cake/use.snippet create mode 100755 vim/snippets/php-cake/val.snippet create mode 100755 vim/snippets/php-cake/vcfl.snippet create mode 100755 vim/snippets/php-cake/vsfl.snippet create mode 100755 vim/snippets/php-cake/vtfl.snippet create mode 100755 vim/snippets/php-zend/assert.snippet create mode 100755 vim/snippets/php-zend/boolcol.snippet create mode 100755 vim/snippets/php-zend/clac.snippet create mode 100755 vim/snippets/php-zend/flash.snippet create mode 100755 vim/snippets/php-zend/getconf.snippet create mode 100755 vim/snippets/php-zend/input.snippet create mode 100755 vim/snippets/php-zend/inputarr.snippet create mode 100755 vim/snippets/php-zend/intcol.snippet create mode 100755 vim/snippets/php-zend/lib.snippet create mode 100755 vim/snippets/php-zend/model.snippet create mode 100755 vim/snippets/php-zend/navi.snippet create mode 100755 vim/snippets/php-zend/route.snippet create mode 100755 vim/snippets/php-zend/rp.snippet create mode 100755 vim/snippets/php-zend/strcol.snippet create mode 120000 vim/snippets/php/$.snippet create mode 100755 vim/snippets/php/$a.snippet create mode 100755 vim/snippets/php/$m.snippet create mode 100755 vim/snippets/php/a.snippet create mode 100755 vim/snippets/php/ar.snippet create mode 100755 vim/snippets/php/array.snippet create mode 100755 vim/snippets/php/case.snippet create mode 100755 vim/snippets/php/class.snippet create mode 100755 vim/snippets/php/classe.snippet create mode 100755 vim/snippets/php/def.snippet create mode 100755 vim/snippets/php/defd.snippet create mode 100755 vim/snippets/php/do.snippet create mode 100755 vim/snippets/php/doc_cp.snippet create mode 100755 vim/snippets/php/doc_f.snippet create mode 100755 vim/snippets/php/doc_h.snippet create mode 100755 vim/snippets/php/doc_i.snippet create mode 120000 vim/snippets/php/each.snippet create mode 120000 vim/snippets/php/eachk.snippet create mode 100755 vim/snippets/php/ec.snippet create mode 100755 vim/snippets/php/else.snippet create mode 100755 vim/snippets/php/elseif.snippet create mode 100755 vim/snippets/php/for.snippet create mode 100755 vim/snippets/php/fore/key-value-template.snippet create mode 100755 vim/snippets/php/fore/key-value.snippet create mode 100755 vim/snippets/php/fore/value-template.snippet create mode 100755 vim/snippets/php/fore/value.snippet create mode 100755 vim/snippets/php/foreach.snippet create mode 100755 vim/snippets/php/foreachk.snippet create mode 100755 vim/snippets/php/fun.snippet create mode 100755 vim/snippets/php/get.snippet create mode 100755 vim/snippets/php/globals.snippet create mode 100755 vim/snippets/php/if.snippet create mode 100755 vim/snippets/php/ife.snippet create mode 100755 vim/snippets/php/inc.snippet create mode 100755 vim/snippets/php/inc1.snippet create mode 100755 vim/snippets/php/k.snippet create mode 100755 vim/snippets/php/ks.snippet create mode 100755 vim/snippets/php/log.snippet create mode 100755 vim/snippets/php/m.snippet create mode 100755 vim/snippets/php/php.snippet create mode 100755 vim/snippets/php/phpc.snippet create mode 100755 vim/snippets/php/phpin.snippet create mode 100755 vim/snippets/php/phpo.snippet create mode 100755 vim/snippets/php/post.snippet create mode 100755 vim/snippets/php/req.snippet create mode 100755 vim/snippets/php/req1.snippet create mode 100755 vim/snippets/php/request.snippet create mode 100755 vim/snippets/php/session.snippet create mode 100755 vim/snippets/php/sfun.snippet create mode 100755 vim/snippets/php/switch.snippet create mode 100755 vim/snippets/php/t.snippet create mode 100755 vim/snippets/php/ta.snippet create mode 100755 vim/snippets/php/throw.snippet create mode 100755 vim/snippets/php/tm.snippet create mode 100755 vim/snippets/php/try.snippet create mode 100755 vim/snippets/php/var.snippet create mode 100755 vim/snippets/php/wh.snippet create mode 120000 vim/snippets/php/while.snippet create mode 100755 vim/snippets/po/msg.snippet create mode 100755 vim/snippets/progress/alert.snippet create mode 100755 vim/snippets/progress/char.snippet create mode 100755 vim/snippets/progress/dec.snippet create mode 100755 vim/snippets/progress/defbuf.snippet create mode 100755 vim/snippets/progress/defvar.snippet create mode 100755 vim/snippets/progress/do.snippet create mode 100755 vim/snippets/progress/err.snippet create mode 100755 vim/snippets/progress/ff.snippet create mode 100755 vim/snippets/progress/if.snippet create mode 100755 vim/snippets/progress/ini.snippet create mode 100755 vim/snippets/progress/input.snippet create mode 100755 vim/snippets/progress/int.snippet create mode 100755 vim/snippets/progress/log.snippet create mode 100755 vim/snippets/progress/ne.snippet create mode 100755 vim/snippets/progress/nl.snippet create mode 100755 vim/snippets/progress/nle.snippet create mode 100755 vim/snippets/progress/nu.snippet create mode 100755 vim/snippets/progress/output.snippet create mode 100755 vim/snippets/progress/proc.snippet create mode 100755 vim/snippets/progress/sep.snippet create mode 100755 vim/snippets/python/#!.snippet create mode 100755 vim/snippets/python/class.snippet create mode 100755 vim/snippets/python/class/basic.snippet create mode 100755 vim/snippets/python/class/exception.snippet create mode 100755 vim/snippets/python/class/with_init.snippet create mode 100755 vim/snippets/python/def.snippet create mode 100755 vim/snippets/python/for.snippet create mode 100755 vim/snippets/python/from.snippet create mode 100755 vim/snippets/python/get.snippet create mode 100755 vim/snippets/python/if.snippet create mode 100755 vim/snippets/python/ife.snippet create mode 100755 vim/snippets/python/ifmain.snippet create mode 100755 vim/snippets/python/import.snippet create mode 100755 vim/snippets/python/init.snippet create mode 100755 vim/snippets/python/set.snippet create mode 100755 vim/snippets/python/try.snippet create mode 100755 vim/snippets/rst.snippets create mode 100755 vim/snippets/rst/-.snippet create mode 100755 vim/snippets/rst/_.snippet create mode 100755 vim/snippets/ruby-factorygirl/fac.snippet create mode 100755 vim/snippets/ruby-factorygirl/faca.snippet create mode 100755 vim/snippets/ruby-factorygirl/facb.snippet create mode 100755 vim/snippets/ruby-factorygirl/facc.snippet create mode 100755 vim/snippets/ruby-factorygirl/facd.snippet create mode 100755 vim/snippets/ruby-factorygirl/facn.snippet create mode 100755 vim/snippets/ruby-factorygirl/facs.snippet create mode 100755 vim/snippets/ruby-machinist/bluep.snippet create mode 100755 vim/snippets/ruby-machinist/mm_ma.snippet create mode 100755 vim/snippets/ruby-machinist/mmn.snippet create mode 100755 vim/snippets/ruby-machinist/mp.snippet create mode 100755 vim/snippets/ruby-machinist/mp_ma.snippet create mode 100755 vim/snippets/ruby-machinist/mpn.snippet create mode 100755 vim/snippets/ruby-machinist/plan.snippet create mode 100755 vim/snippets/ruby-machinist/sham.snippet create mode 100755 vim/snippets/ruby-rails-rjs/hide.snippet create mode 100755 vim/snippets/ruby-rails-rjs/ins.snippet create mode 100755 vim/snippets/ruby-rails-rjs/rep.snippet create mode 100755 vim/snippets/ruby-rails-rjs/reph.snippet create mode 100755 vim/snippets/ruby-rails-rjs/show.snippet create mode 100755 vim/snippets/ruby-rails-rjs/tog.snippet create mode 100755 vim/snippets/ruby-rails-rjs/vis.snippet create mode 100755 vim/snippets/ruby-rails/ac.snippet create mode 100755 vim/snippets/ruby-rails/anaf.snippet create mode 100755 vim/snippets/ruby-rails/art.snippet create mode 100755 vim/snippets/ruby-rails/artnp.snippet create mode 100755 vim/snippets/ruby-rails/artnpp.snippet create mode 100755 vim/snippets/ruby-rails/artp.snippet create mode 100755 vim/snippets/ruby-rails/artpp.snippet create mode 100755 vim/snippets/ruby-rails/asd.snippet create mode 100755 vim/snippets/ruby-rails/asnd.snippet create mode 100755 vim/snippets/ruby-rails/asre.snippet create mode 100755 vim/snippets/ruby-rails/asrj.snippet create mode 100755 vim/snippets/ruby-rails/ass.snippet create mode 100755 vim/snippets/ruby-rails/bc.snippet create mode 100755 vim/snippets/ruby-rails/bf.snippet create mode 100755 vim/snippets/ruby-rails/bt.snippet create mode 100755 vim/snippets/ruby-rails/cr.snippet create mode 100755 vim/snippets/ruby-rails/crw.snippet create mode 100755 vim/snippets/ruby-rails/cw.snippet create mode 100755 vim/snippets/ruby-rails/defcreate.snippet create mode 100755 vim/snippets/ruby-rails/defdestroy.snippet create mode 100755 vim/snippets/ruby-rails/defedit.snippet create mode 100755 vim/snippets/ruby-rails/defindex.snippet create mode 100755 vim/snippets/ruby-rails/defnew.snippet create mode 100755 vim/snippets/ruby-rails/defshow.snippet create mode 100755 vim/snippets/ruby-rails/defupdate.snippet create mode 100755 vim/snippets/ruby-rails/fina.snippet create mode 100755 vim/snippets/ruby-rails/finf.snippet create mode 100755 vim/snippets/ruby-rails/fini.snippet create mode 100755 vim/snippets/ruby-rails/finl.snippet create mode 100755 vim/snippets/ruby-rails/flash.snippet create mode 100755 vim/snippets/ruby-rails/habtm.snippet create mode 100755 vim/snippets/ruby-rails/hm.snippet create mode 100755 vim/snippets/ruby-rails/hmd.snippet create mode 100755 vim/snippets/ruby-rails/hmt.snippet create mode 100755 vim/snippets/ruby-rails/ho.snippet create mode 100755 vim/snippets/ruby-rails/i18.snippet create mode 100755 vim/snippets/ruby-rails/ist.snippet create mode 100755 vim/snippets/ruby-rails/log.snippet create mode 100755 vim/snippets/ruby-rails/logd.snippet create mode 100755 vim/snippets/ruby-rails/loge.snippet create mode 100755 vim/snippets/ruby-rails/logf.snippet create mode 100755 vim/snippets/ruby-rails/logi.snippet create mode 100755 vim/snippets/ruby-rails/logw.snippet create mode 100755 vim/snippets/ruby-rails/mac.snippet create mode 100755 vim/snippets/ruby-rails/mapc.snippet create mode 100755 vim/snippets/ruby-rails/mapca.snippet create mode 100755 vim/snippets/ruby-rails/mapr.snippet create mode 100755 vim/snippets/ruby-rails/maprs.snippet create mode 100755 vim/snippets/ruby-rails/mapwo.snippet create mode 100755 vim/snippets/ruby-rails/mbs.snippet create mode 100755 vim/snippets/ruby-rails/mcc.snippet create mode 100755 vim/snippets/ruby-rails/mccc.snippet create mode 100755 vim/snippets/ruby-rails/mcht.snippet create mode 100755 vim/snippets/ruby-rails/mcol.snippet create mode 100755 vim/snippets/ruby-rails/mct.snippet create mode 100755 vim/snippets/ruby-rails/migration.snippet create mode 100755 vim/snippets/ruby-rails/mp.snippet create mode 100755 vim/snippets/ruby-rails/mrc.snippet create mode 100755 vim/snippets/ruby-rails/mrmc.snippet create mode 100755 vim/snippets/ruby-rails/mrnc.snippet create mode 100755 vim/snippets/ruby-rails/mrw.snippet create mode 100755 vim/snippets/ruby-rails/mtab.snippet create mode 100755 vim/snippets/ruby-rails/nc.snippet create mode 100755 vim/snippets/ruby-rails/ncl.snippet create mode 100755 vim/snippets/ruby-rails/pa.snippet create mode 100755 vim/snippets/ruby-rails/ra.snippet create mode 100755 vim/snippets/ruby-rails/ral.snippet create mode 100755 vim/snippets/ruby-rails/rest.snippet create mode 100755 vim/snippets/ruby-rails/rf.snippet create mode 100755 vim/snippets/ruby-rails/rfu.snippet create mode 100755 vim/snippets/ruby-rails/ri.snippet create mode 100755 vim/snippets/ruby-rails/ril.snippet create mode 100755 vim/snippets/ruby-rails/rit.snippet create mode 100755 vim/snippets/ruby-rails/rjson.snippet create mode 100755 vim/snippets/ruby-rails/rl.snippet create mode 100755 vim/snippets/ruby-rails/rn.snippet create mode 100755 vim/snippets/ruby-rails/rns.snippet create mode 100755 vim/snippets/ruby-rails/rp.snippet create mode 100755 vim/snippets/ruby-rails/rpc.snippet create mode 100755 vim/snippets/ruby-rails/rpl.snippet create mode 100755 vim/snippets/ruby-rails/rpo.snippet create mode 100755 vim/snippets/ruby-rails/rps.snippet create mode 100755 vim/snippets/ruby-rails/rt.snippet create mode 100755 vim/snippets/ruby-rails/rtl.snippet create mode 100755 vim/snippets/ruby-rails/rtlt.snippet create mode 100755 vim/snippets/ruby-rails/rts.snippet create mode 100755 vim/snippets/ruby-rails/ru.snippet create mode 100755 vim/snippets/ruby-rails/rxml.snippet create mode 100755 vim/snippets/ruby-rails/sha1.snippet create mode 100755 vim/snippets/ruby-rails/sweeper.snippet create mode 100755 vim/snippets/ruby-rails/tcb.snippet create mode 100755 vim/snippets/ruby-rails/tcbi.snippet create mode 100755 vim/snippets/ruby-rails/tcd.snippet create mode 100755 vim/snippets/ruby-rails/tcda.snippet create mode 100755 vim/snippets/ruby-rails/tcdt.snippet create mode 100755 vim/snippets/ruby-rails/tcf.snippet create mode 100755 vim/snippets/ruby-rails/tch.snippet create mode 100755 vim/snippets/ruby-rails/tci.snippet create mode 100755 vim/snippets/ruby-rails/tcl.snippet create mode 100755 vim/snippets/ruby-rails/tcr.snippet create mode 100755 vim/snippets/ruby-rails/tcs.snippet create mode 100755 vim/snippets/ruby-rails/tct.snippet create mode 100755 vim/snippets/ruby-rails/tcti.snippet create mode 100755 vim/snippets/ruby-rails/tcts.snippet create mode 100755 vim/snippets/ruby-rails/tctss.snippet create mode 100755 vim/snippets/ruby-rails/test.snippet create mode 100755 vim/snippets/ruby-rails/trc.snippet create mode 100755 vim/snippets/ruby-rails/tre.snippet create mode 100755 vim/snippets/ruby-rails/tref.snippet create mode 100755 vim/snippets/ruby-rails/va.snippet create mode 100755 vim/snippets/ruby-rails/vao.snippet create mode 100755 vim/snippets/ruby-rails/vc.snippet create mode 100755 vim/snippets/ruby-rails/ve.snippet create mode 100755 vim/snippets/ruby-rails/vf.snippet create mode 100755 vim/snippets/ruby-rails/vi.snippet create mode 100755 vim/snippets/ruby-rails/vl.snippet create mode 100755 vim/snippets/ruby-rails/vn.snippet create mode 100755 vim/snippets/ruby-rails/vp.snippet create mode 100755 vim/snippets/ruby-rails/vpo.snippet create mode 100755 vim/snippets/ruby-rails/vu.snippet create mode 100755 vim/snippets/ruby-rails/wants.snippet create mode 100755 vim/snippets/ruby-rails/xdelete.snippet create mode 100755 vim/snippets/ruby-rails/xget.snippet create mode 100755 vim/snippets/ruby-rails/xpost.snippet create mode 100755 vim/snippets/ruby-rails/xput.snippet create mode 100755 vim/snippets/ruby-rspec/Given.snippet create mode 100755 vim/snippets/ruby-rspec/Then.snippet create mode 100755 vim/snippets/ruby-rspec/When.snippet create mode 100755 vim/snippets/ruby-rspec/aft.snippet create mode 100755 vim/snippets/ruby-rspec/annot.snippet create mode 100755 vim/snippets/ruby-rspec/anr.snippet create mode 100755 vim/snippets/ruby-rspec/anra.snippet create mode 100755 vim/snippets/ruby-rspec/anrb.snippet create mode 100755 vim/snippets/ruby-rspec/ant.snippet create mode 100755 vim/snippets/ruby-rspec/any.snippet create mode 100755 vim/snippets/ruby-rspec/atl.snippet create mode 100755 vim/snippets/ruby-rspec/atm.snippet create mode 100755 vim/snippets/ruby-rspec/bef.snippet create mode 100755 vim/snippets/ruby-rspec/befi.snippet create mode 100755 vim/snippets/ruby-rspec/cap.snippet create mode 100755 vim/snippets/ruby-rspec/conn.snippet create mode 100755 vim/snippets/ruby-rspec/cont.snippet create mode 100755 vim/snippets/ruby-rspec/des.snippet create mode 100755 vim/snippets/ruby-rspec/desc.snippet create mode 100755 vim/snippets/ruby-rspec/desrc.snippet create mode 100755 vim/snippets/ruby-rspec/dess.snippet create mode 100755 vim/snippets/ruby-rspec/dest.snippet create mode 100755 vim/snippets/ruby-rspec/dests.snippet create mode 100755 vim/snippets/ruby-rspec/ex.snippet create mode 100755 vim/snippets/ruby-rspec/isbl.snippet create mode 100755 vim/snippets/ruby-rspec/it.snippet create mode 100755 vim/snippets/ruby-rspec/it.snippet.orig create mode 100755 vim/snippets/ruby-rspec/itb.snippet create mode 100755 vim/snippets/ruby-rspec/iti.snippet create mode 100755 vim/snippets/ruby-rspec/its.snippet create mode 100755 vim/snippets/ruby-rspec/itsh.snippet create mode 100755 vim/snippets/ruby-rspec/let.snippet create mode 100755 vim/snippets/ruby-rspec/mat.snippet create mode 100755 vim/snippets/ruby-rspec/mm.snippet create mode 100755 vim/snippets/ruby-rspec/moc.snippet create mode 100755 vim/snippets/ruby-rspec/mocw.snippet create mode 100755 vim/snippets/ruby-rspec/on.snippet create mode 100755 vim/snippets/ruby-rspec/pshc.snippet create mode 100755 vim/snippets/ruby-rspec/resh.snippet create mode 100755 vim/snippets/ruby-rspec/sce.snippet create mode 100755 vim/snippets/ruby-rspec/sef.snippet create mode 100755 vim/snippets/ruby-rspec/sh.snippet create mode 100755 vim/snippets/ruby-rspec/shanaf.snippet create mode 100755 vim/snippets/ruby-rspec/shb.snippet create mode 100755 vim/snippets/ruby-rspec/shbc.snippet create mode 100755 vim/snippets/ruby-rspec/shbio.snippet create mode 100755 vim/snippets/ruby-rspec/shbko.snippet create mode 100755 vim/snippets/ruby-rspec/shbr.snippet create mode 100755 vim/snippets/ruby-rspec/shbs.snippet create mode 100755 vim/snippets/ruby-rspec/shc.snippet create mode 100755 vim/snippets/ruby-rspec/shdm.snippet create mode 100755 vim/snippets/ruby-rspec/she.snippet create mode 100755 vim/snippets/ruby-rspec/sheq.snippet create mode 100755 vim/snippets/ruby-rspec/shh.snippet create mode 100755 vim/snippets/ruby-rspec/shhal.snippet create mode 100755 vim/snippets/ruby-rspec/shham.snippet create mode 100755 vim/snippets/ruby-rspec/shhr.snippet create mode 100755 vim/snippets/ruby-rspec/shn.snippet create mode 100755 vim/snippets/ruby-rspec/shnb.snippet create mode 100755 vim/snippets/ruby-rspec/shnbc.snippet create mode 100755 vim/snippets/ruby-rspec/shnbio.snippet create mode 100755 vim/snippets/ruby-rspec/shnbko.snippet create mode 100755 vim/snippets/ruby-rspec/shnbr.snippet create mode 100755 vim/snippets/ruby-rspec/shnbs.snippet create mode 100755 vim/snippets/ruby-rspec/shnc.snippet create mode 100755 vim/snippets/ruby-rspec/shne.snippet create mode 100755 vim/snippets/ruby-rspec/shneq.snippet create mode 100755 vim/snippets/ruby-rspec/shnm.snippet create mode 100755 vim/snippets/ruby-rspec/shnp.snippet create mode 100755 vim/snippets/ruby-rspec/shnr.snippet create mode 100755 vim/snippets/ruby-rspec/shnre.snippet create mode 100755 vim/snippets/ruby-rspec/shnredt.snippet create mode 100755 vim/snippets/ruby-rspec/shnrt.snippet create mode 100755 vim/snippets/ruby-rspec/shns.snippet create mode 100755 vim/snippets/ruby-rspec/shnt.snippet create mode 100755 vim/snippets/ruby-rspec/shp.snippet create mode 100755 vim/snippets/ruby-rspec/shr.snippet create mode 100755 vim/snippets/ruby-rspec/shre.snippet create mode 100755 vim/snippets/ruby-rspec/shredt.snippet create mode 100755 vim/snippets/ruby-rspec/shrt.snippet create mode 100755 vim/snippets/ruby-rspec/shs.snippet create mode 100755 vim/snippets/ruby-rspec/sht.snippet create mode 100755 vim/snippets/ruby-rspec/shtemp.snippet create mode 100755 vim/snippets/ruby-rspec/shvp.snippet create mode 100755 vim/snippets/ruby-rspec/spec.snippet create mode 100755 vim/snippets/ruby-rspec/st.snippet create mode 100755 vim/snippets/ruby-rspec/sub.snippet create mode 100755 vim/snippets/ruby-rspec/tw.snippet create mode 100755 vim/snippets/ruby-rspec/wia.snippet create mode 100755 vim/snippets/ruby-shoulda/context.snippet create mode 100755 vim/snippets/ruby-shoulda/samao.snippet create mode 100755 vim/snippets/ruby-shoulda/savf.snippet create mode 100755 vim/snippets/ruby-shoulda/sbt.snippet create mode 100755 vim/snippets/ruby-shoulda/selal.snippet create mode 100755 vim/snippets/ruby-shoulda/seli.snippet create mode 100755 vim/snippets/ruby-shoulda/selir.snippet create mode 100755 vim/snippets/ruby-shoulda/setup.snippet create mode 100755 vim/snippets/ruby-shoulda/sevir.snippet create mode 100755 vim/snippets/ruby-shoulda/shabtm.snippet create mode 100755 vim/snippets/ruby-shoulda/shcm.snippet create mode 100755 vim/snippets/ruby-shoulda/shdc.snippet create mode 100755 vim/snippets/ruby-shoulda/shi.snippet create mode 100755 vim/snippets/ruby-shoulda/shim.snippet create mode 100755 vim/snippets/ruby-shoulda/shm.snippet create mode 100644 vim/snippets/ruby-shoulda/shns.snippet create mode 100755 vim/snippets/ruby-shoulda/sho.snippet create mode 100755 vim/snippets/ruby-shoulda/shroa.snippet create mode 100755 vim/snippets/ruby-shoulda/snamao.snippet create mode 100755 vim/snippets/ruby-shoulda/snavf.snippet create mode 100755 vim/snippets/ruby-shoulda/svao.snippet create mode 100755 vim/snippets/ruby-shoulda/svno.snippet create mode 100755 vim/snippets/ruby-shoulda/svp.snippet create mode 100755 vim/snippets/ruby-shoulda/svpo.snippet create mode 100755 vim/snippets/ruby-shoulda/svuo.snippet create mode 100755 vim/snippets/ruby/#!.snippet create mode 100755 vim/snippets/ruby/#.snippet create mode 100755 vim/snippets/ruby/Md.snippet create mode 100755 vim/snippets/ruby/Ml.snippet create mode 100755 vim/snippets/ruby/Pn.snippet create mode 100755 vim/snippets/ruby/Yd-.snippet create mode 100755 vim/snippets/ruby/Yd.snippet create mode 100755 vim/snippets/ruby/Yl-.snippet create mode 100755 vim/snippets/ruby/Yl.snippet create mode 100755 vim/snippets/ruby/am.snippet create mode 100644 vim/snippets/ruby/anr.snippet create mode 100755 vim/snippets/ruby/as.snippet create mode 100755 vim/snippets/ruby/asam.snippet create mode 100755 vim/snippets/ruby/asb.snippet create mode 100755 vim/snippets/ruby/asc.snippet create mode 100755 vim/snippets/ruby/ascd.snippet create mode 100755 vim/snippets/ruby/ase.snippet create mode 100755 vim/snippets/ruby/asem.snippet create mode 100755 vim/snippets/ruby/asf.snippet create mode 100755 vim/snippets/ruby/asfa.snippet create mode 100755 vim/snippets/ruby/asi.snippet create mode 100755 vim/snippets/ruby/asid.snippet create mode 100755 vim/snippets/ruby/asie.snippet create mode 100755 vim/snippets/ruby/asio.snippet create mode 100755 vim/snippets/ruby/asko.snippet create mode 100755 vim/snippets/ruby/asm.snippet create mode 100755 vim/snippets/ruby/asn.snippet create mode 100755 vim/snippets/ruby/asncd.snippet create mode 100755 vim/snippets/ruby/asne.snippet create mode 100755 vim/snippets/ruby/asnem.snippet create mode 100755 vim/snippets/ruby/asni.snippet create mode 100755 vim/snippets/ruby/asnid.snippet create mode 100755 vim/snippets/ruby/asnie.snippet create mode 100755 vim/snippets/ruby/asnm.snippet create mode 100755 vim/snippets/ruby/asnn.snippet create mode 100755 vim/snippets/ruby/asnp.snippet create mode 100755 vim/snippets/ruby/asnr.snippet create mode 100755 vim/snippets/ruby/asnrt.snippet create mode 100755 vim/snippets/ruby/asns.snippet create mode 100755 vim/snippets/ruby/asnse.snippet create mode 100755 vim/snippets/ruby/asnt.snippet create mode 100755 vim/snippets/ruby/aso.snippet create mode 100755 vim/snippets/ruby/asp.snippet create mode 100755 vim/snippets/ruby/aspe.snippet create mode 100755 vim/snippets/ruby/aspne.snippet create mode 100755 vim/snippets/ruby/asr.snippet create mode 100755 vim/snippets/ruby/asrko.snippet create mode 100755 vim/snippets/ruby/asrm.snippet create mode 100755 vim/snippets/ruby/asrt.snippet create mode 100644 vim/snippets/ruby/ass.snippet create mode 100755 vim/snippets/ruby/asse.snippet create mode 100755 vim/snippets/ruby/ast.snippet create mode 100755 vim/snippets/ruby/astr.snippet create mode 100755 vim/snippets/ruby/begin.snippet create mode 100755 vim/snippets/ruby/begine.snippet create mode 100755 vim/snippets/ruby/bm.snippet create mode 100755 vim/snippets/ruby/case.snippet create mode 100755 vim/snippets/ruby/cla/class ... end.snippet create mode 100755 vim/snippets/ruby/cla/class ... initialize ... end.snippet create mode 100755 vim/snippets/ruby/class.snippet create mode 100755 vim/snippets/ruby/classe.snippet create mode 100755 vim/snippets/ruby/col.snippet create mode 100755 vim/snippets/ruby/coldo.snippet create mode 100755 vim/snippets/ruby/deec.snippet create mode 100755 vim/snippets/ruby/def.snippet create mode 100755 vim/snippets/ruby/defi.snippet create mode 100755 vim/snippets/ruby/defmm.snippet create mode 100755 vim/snippets/ruby/defs.snippet create mode 100755 vim/snippets/ruby/deft.snippet create mode 100755 vim/snippets/ruby/del/delete_if do ... end.snippet create mode 100755 vim/snippets/ruby/del/delete_if { ... }.snippet create mode 100755 vim/snippets/ruby/delt.snippit create mode 100755 vim/snippets/ruby/det/detect do ... end.snippet create mode 100755 vim/snippets/ruby/det/detect { ... }.snippet create mode 100755 vim/snippets/ruby/detect.snippet create mode 100755 vim/snippets/ruby/detecto.snippet create mode 100755 vim/snippets/ruby/dglob.snippet create mode 100755 vim/snippets/ruby/do.snippet create mode 100755 vim/snippets/ruby/dop.snippet create mode 100755 vim/snippets/ruby/ea.snippet create mode 100755 vim/snippets/ruby/ea/each do ... end.snippet create mode 100755 vim/snippets/ruby/ea/each { ... }.snippet create mode 100755 vim/snippets/ruby/ea/each_with_index do ... end.snippet create mode 100755 vim/snippets/ruby/ea/each_with_index { ... }.snippet create mode 100755 vim/snippets/ruby/eab.snippet create mode 100755 vim/snippets/ruby/eac.snippet create mode 100755 vim/snippets/ruby/each.snippet create mode 100755 vim/snippets/ruby/each_with_index.snippet create mode 100755 vim/snippets/ruby/each_with_indexo.snippet create mode 100755 vim/snippets/ruby/eacho.snippet create mode 100755 vim/snippets/ruby/eado.snippet create mode 100755 vim/snippets/ruby/eai.snippet create mode 100755 vim/snippets/ruby/eak.snippet create mode 100755 vim/snippets/ruby/eap.snippet create mode 100755 vim/snippets/ruby/eav.snippet create mode 100755 vim/snippets/ruby/eawi.snippet create mode 100755 vim/snippets/ruby/eawido.snippet create mode 100755 vim/snippets/ruby/elsif.snippet create mode 100755 vim/snippets/ruby/fileeach.snippet create mode 100755 vim/snippets/ruby/fopen.snippet create mode 100755 vim/snippets/ruby/fread.snippet create mode 100755 vim/snippets/ruby/fwrite.snippet create mode 100755 vim/snippets/ruby/gem.snippet create mode 100755 vim/snippets/ruby/http_get.snippet create mode 100755 vim/snippets/ruby/http_post.snippet create mode 100755 vim/snippets/ruby/if.snippet create mode 100755 vim/snippets/ruby/ife.snippet create mode 100755 vim/snippets/ruby/init.snippet create mode 100755 vim/snippets/ruby/inj.snippet create mode 100755 vim/snippets/ruby/inj/inject do ... end.snippet create mode 100755 vim/snippets/ruby/inj/inject { ... }.snippet create mode 100755 vim/snippets/ruby/injdo.snippet create mode 100755 vim/snippets/ruby/inject.snippet create mode 100755 vim/snippets/ruby/injecto.snippet create mode 100755 vim/snippets/ruby/ip.snippet create mode 100755 vim/snippets/ruby/log.snippet create mode 100755 vim/snippets/ruby/map.snippet create mode 100755 vim/snippets/ruby/map/map { ... }.snippet create mode 100755 vim/snippets/ruby/map/mapd do ... end.snippet create mode 100755 vim/snippets/ruby/mapdo.snippet create mode 100755 vim/snippets/ruby/mapo.snippet create mode 100755 vim/snippets/ruby/mod.snippet create mode 100755 vim/snippets/ruby/mod/module ... ClassMethods ... end.snippet create mode 100755 vim/snippets/ruby/mod/module ... end.snippet create mode 100755 vim/snippets/ruby/module.snippet create mode 100755 vim/snippets/ruby/nam.snippet create mode 100755 vim/snippets/ruby/ope.snippet create mode 100755 vim/snippets/ruby/pathhere.snippet create mode 100755 vim/snippets/ruby/r.snippet create mode 100755 vim/snippets/ruby/rej/reject do ... end.snippet create mode 100755 vim/snippets/ruby/rej/reject { ... }.snippet create mode 100755 vim/snippets/ruby/reject.snippet create mode 100755 vim/snippets/ruby/rejecto.snippet create mode 100755 vim/snippets/ruby/rep.snippet create mode 100755 vim/snippets/ruby/report.snippet create mode 100755 vim/snippets/ruby/req.snippet create mode 100755 vim/snippets/ruby/reqf.snippet create mode 100755 vim/snippets/ruby/rw.snippet create mode 100755 vim/snippets/ruby/sel/select do ... end.snippet create mode 100755 vim/snippets/ruby/sel/select { ... }.snippet create mode 100755 vim/snippets/ruby/select.snippet create mode 100755 vim/snippets/ruby/selecto.snippet create mode 100755 vim/snippets/ruby/sinc.snippet create mode 100755 vim/snippets/ruby/sor/sort do ... end.snippet create mode 100755 vim/snippets/ruby/sor/sort { ... }.snippet create mode 100755 vim/snippets/ruby/sort.snippet create mode 100755 vim/snippets/ruby/sorto.snippet create mode 100755 vim/snippets/ruby/tas.snippet create mode 100755 vim/snippets/ruby/task.snippet create mode 100755 vim/snippets/ruby/tc.snippet create mode 100755 vim/snippets/ruby/unless.snippet create mode 100755 vim/snippets/ruby/unlesse.snippet create mode 100755 vim/snippets/ruby/until.snippet create mode 100755 vim/snippets/ruby/w.snippet create mode 100755 vim/snippets/ruby/when.snippet create mode 100755 vim/snippets/ruby/while.snippet create mode 100755 vim/snippets/ruby/xmlr.snippet create mode 100755 vim/snippets/ruby/xpa.snippet create mode 100755 vim/snippets/ruby/zip.snippet create mode 100755 vim/snippets/sh/#!.snippet create mode 100755 vim/snippets/sh/$#.snippet create mode 100755 vim/snippets/sh/arr.snippet create mode 100755 vim/snippets/sh/arr/keyed.snippet create mode 100755 vim/snippets/sh/arr/list.snippet create mode 100755 vim/snippets/sh/case.snippet create mode 100755 vim/snippets/sh/date.snippet create mode 100755 vim/snippets/sh/elif.snippet create mode 100755 vim/snippets/sh/for/c-style.snippet create mode 100755 vim/snippets/sh/for/index-loop.snippet create mode 100755 vim/snippets/sh/for/list.snippet create mode 100755 vim/snippets/sh/for/numargs.snippet create mode 100755 vim/snippets/sh/for/times-sequence.snippet create mode 100755 vim/snippets/sh/fore.snippet create mode 100755 vim/snippets/sh/fun.snippet create mode 100755 vim/snippets/sh/gt.snippet create mode 100755 vim/snippets/sh/if.snippet create mode 100755 vim/snippets/sh/ifdir.snippet create mode 100755 vim/snippets/sh/ife.snippet create mode 100755 vim/snippets/sh/iffile.snippet create mode 100755 vim/snippets/sh/ifroot.snippet create mode 100755 vim/snippets/sh/lt.snippet create mode 100755 vim/snippets/sh/sh.snippet create mode 100755 vim/snippets/sh/usage.snippet create mode 100755 vim/snippets/sh/while.snippet create mode 100755 vim/snippets/sh/yesno/longer.snippet create mode 100755 vim/snippets/sh/yesno/simple.snippet create mode 100755 vim/snippets/sinatra/get.snippet create mode 100755 vim/snippets/sql/add.snippet create mode 100755 vim/snippets/sql/col.snippet create mode 100755 vim/snippets/sql/create.snippet create mode 100755 vim/snippets/sql/drop.snippet create mode 100755 vim/snippets/sql/index.snippet create mode 100755 vim/snippets/sql/last4.snippet create mode 100755 vim/snippets/sql/rename.snippet create mode 100755 vim/snippets/sshconfig/host.snippet create mode 100755 vim/snippets/support_functions.vim create mode 100755 vim/snippets/vim/au.snippet create mode 100755 vim/snippets/vim/com.snippet create mode 100755 vim/snippets/vim/func.snippet create mode 100755 vim/snippets/vim/if.snippet create mode 100755 vim/snippets/vim/ife.snippet create mode 100755 vim/snippets/vim/log.snippet create mode 100755 vim/snippets/vim/try.snippet create mode 100755 vim/snippets/xslt/call.snippet create mode 100755 vim/snippets/xslt/choose.snippet create mode 100755 vim/snippets/xslt/mat.snippet create mode 100755 vim/snippets/xslt/out.snippet create mode 100755 vim/snippets/xslt/param.snippet create mode 100755 vim/snippets/xslt/sty.snippet create mode 100755 vim/snippets/xslt/tem.snippet create mode 100755 vim/snippets/xslt/value.snippet create mode 100755 vim/snippets/xslt/var.snippet create mode 100755 vim/snippets/xslt/wparam.snippet create mode 100755 vim/snippets/xslt/xdec.snippet create mode 100644 vim/snippets/zend/assert.snippet create mode 100644 vim/snippets/zend/boolcol.snippet create mode 100644 vim/snippets/zend/clac.snippet create mode 100644 vim/snippets/zend/flash.snippet create mode 100644 vim/snippets/zend/getconf.snippet create mode 100644 vim/snippets/zend/input.snippet create mode 100644 vim/snippets/zend/inputarr.snippet create mode 100644 vim/snippets/zend/intcol.snippet create mode 100644 vim/snippets/zend/lib.snippet create mode 100644 vim/snippets/zend/model.snippet create mode 100644 vim/snippets/zend/navi.snippet create mode 100644 vim/snippets/zend/route.snippet create mode 100644 vim/snippets/zend/rp.snippet create mode 100644 vim/snippets/zend/strcol.snippet create mode 100644 vim/syntax/conque_term.vim create mode 100644 vim/syntax/cucumber.vim create mode 100755 vim/syntax/cvsannotate.vim create mode 100644 vim/syntax/eruby.vim create mode 100644 vim/syntax/git-diff.vim create mode 100644 vim/syntax/git-log.vim create mode 100644 vim/syntax/git-status.vim create mode 100644 vim/syntax/git.vim create mode 100755 vim/syntax/gitannotate.vim create mode 100644 vim/syntax/gitcommit.vim create mode 100644 vim/syntax/gitconfig.vim create mode 100644 vim/syntax/gitrebase.vim create mode 100644 vim/syntax/gitsendemail.vim create mode 100644 vim/syntax/haml.vim create mode 100755 vim/syntax/hgannotate.vim create mode 100644 vim/syntax/less.vim create mode 100644 vim/syntax/ruby.vim create mode 100644 vim/syntax/sass.vim create mode 100755 vim/syntax/svkannotate.vim create mode 100755 vim/syntax/svnannotate.vim create mode 100755 vim/syntax/vcscommit.vim create mode 100755 vim/syntax_checkers/c.vim create mode 100755 vim/syntax_checkers/coffee.vim create mode 100755 vim/syntax_checkers/cpp.vim create mode 100755 vim/syntax_checkers/css.vim create mode 100755 vim/syntax_checkers/cucumber.vim create mode 100755 vim/syntax_checkers/cuda.vim create mode 100755 vim/syntax_checkers/docbk.vim create mode 100755 vim/syntax_checkers/eruby.vim create mode 100755 vim/syntax_checkers/go.vim create mode 100755 vim/syntax_checkers/haml.vim create mode 100755 vim/syntax_checkers/haskell.vim create mode 100755 vim/syntax_checkers/html.vim create mode 100755 vim/syntax_checkers/javascript.vim create mode 100755 vim/syntax_checkers/less.vim create mode 100755 vim/syntax_checkers/lua.vim create mode 100755 vim/syntax_checkers/matlab.vim create mode 100755 vim/syntax_checkers/perl.vim create mode 100755 vim/syntax_checkers/php.vim create mode 100755 vim/syntax_checkers/puppet.vim create mode 100755 vim/syntax_checkers/python.vim create mode 100755 vim/syntax_checkers/ruby.vim create mode 100755 vim/syntax_checkers/sass.vim create mode 100755 vim/syntax_checkers/sh.vim create mode 100755 vim/syntax_checkers/tcl.vim create mode 100755 vim/syntax_checkers/tex.vim create mode 100755 vim/syntax_checkers/vala.vim create mode 100755 vim/syntax_checkers/xhtml.vim create mode 100755 vim/syntax_checkers/xml.vim create mode 100755 vim/syntax_checkers/xslt.vim create mode 100644 vim/tmp/ruby_debugger create mode 100644 vim/tmp/ruby_debugger_log create mode 100644 vim/tmp/ruby_debugger_output create mode 100644 vimrc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6c399d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +vim/backups +*un~ diff --git a/README.md b/README.md new file mode 100644 index 0000000..5ea499c --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +Yan's Excellent Dotfiles! +==== + +To set these up as your own (careful, don't overwrite your bash_profile unintentionally!): + + git clone git://github.com/skwp/dotfiles ~/.dotfiles + + ln -s ~/.dotfiles/bash_profile ~/.bash_profile + . ~/.bash_profile + +Lots of things I do every day are done with +two or three character mnemonic aliases. Please +feel free to edit them: + + ae # alias edit + ar # alias reload + +To use the vim files: + + ln -s ~/.dotfiles/vimrc ~/.vimrc + ln -s ~/.dotfiles/vim ~/.vim + +The .vimrc is well commented and broken up by settings. I encourage you +to take a look and learn some of my handy aliases, or comment them out +if you don't like them, or make your own. + +Credits +=== +I can't take credit for all of this. The vim files are a combination of +work by tpope, scrooloose, and many hours of scouring blogs, vimscripts, +and other places for the cream of the crop of vim and bash awesomeness. + +TODO +=== +I started migrating to tpope's pathogen, but only a few plugins are +currently under vim/bundles. + +For more tips and tricks +=== +Follow my blog: [yan http://yanpritzker.com] diff --git a/bash_aliases b/bash_aliases new file mode 100644 index 0000000..4857d8b --- /dev/null +++ b/bash_aliases @@ -0,0 +1,94 @@ +# PS +alias psg="ps aux | grep $1" +alias psr='ps aux | grep ruby' + +# Moving around +alias ..='cd ..' +alias cdb='cd -' + +# Show human friendly numbers and colors +alias df='df -h' +alias ll='ls -alGh' +alias ls='ls -Gh' +alias du='du -h -d 1' + +# show me files matching "ls grep" +alias lsg='ll | grep' + +# Alias Editing +alias ae='vi ~/dev/config/bash_aliases' #alias edit +alias ar='. ~/dev/config/bash_aliases' #alias reload + +# Bash Options Editing +alias boe='vi ~/dev/config/bash_options' +alias bor='. ~/dev/config/bash_options' + + +# .bash_profile editing +alias bp='vi ~/.bash_profile' +alias br='. ~/.bash_profile' + +# Git Aliases +alias gs='git status' +alias gstsh='git stash' +alias gst='git stash' +alias gsh='git show' +alias gshw='git show' +alias gshow='git show' +alias gi='vi .gitignore' +alias gcm='git ci -m' +alias gcim='git ci -m' +alias gci='git ci' +alias gco='git co' +alias ga='git add -A' +alias gu='git unstage' +alias gm='git merge' +alias gms='git merge --squash' +alias gam='git amend' +alias gr='git rebase' +alias gra='git rebase --abort' +alias grc='git rebase --continue' +alias gbi='git rebase --interactive' +alias gl='git log' +alias glg='git log' +alias glog='git log' +alias co='git co' +alias gf='git fetch' +alias gfch='git fetch' +alias gd='git diff' +alias gb='git b' +alias gdc='git diff --cached' +alias gpub='grb publish' +alias gtr='grb track' +alias gpl='git pull' +alias gps='git push' +alias gpsh='git push' +alias gnb='git nb' # new branch aka checkout -b + +# Common bash functions +alias less='less -r' +alias tf='tail -f' +alias l='less' +alias lh='ls -alt | head' # see the last modified files +alias fn="find . -name" +alias screen='TERM=screen screen' + +# Zippin +alias gz='tar -zcvf' + +# Ruby +alias irb='pry' +alias c='script/console --irb=pry' +alias ms='mongrel_rails start' + +# Vim/ctags "mctags = make ctags" +alias mctags='/opt/local/bin/ctags -Rf ./tags *' + +alias ka9='killall -9' +alias k9='kill -9' + +# This trick makes sudo understand all my aliases +alias sudo='sudo ' + +# Gem install +alias sgi='sudo gem install --no-ri --no-rdoc' diff --git a/bash_options b/bash_options new file mode 100644 index 0000000..11811ab --- /dev/null +++ b/bash_options @@ -0,0 +1,26 @@ +# vi mode, of course +set -o vi + +# case-insensitive globbing (used in pathname expansion) +shopt -s nocaseglob + +# Add tab completion for SSH hostnames based on ~/.ssh/config, ignoring wildcards +[ -e "$HOME/.ssh/config" ] && complete -o "default" -o "nospace" -W "$(grep "^Host" ~/.ssh/config | grep -v "[?*]" | cut -d " " -f2)" scp sftp ssh + +# Colors the way I like em +export LSCOLORS=BxGxFxdxCxDxDxhbadBxBx + +# Larger bash history (allow 32k entries; default is 500) +export HISTSIZE=32768 +export HISTFILESIZE=$HISTSIZE +export HISTCONTROL=ignoredups + +# Make some commands not show up in history +export HISTIGNORE="ls:ls *" + +export EVENT_NOKQUEUE=1 +export COPY_EXTENDED_ATTRIBUTES_DISABLE=true +export COPYFILE_DISABLE=true + +# Prompt +export PS1='\[\033[01;34m\]\u:\[\033[01;32m\]\w\[\033[00;34m\]\[\033[01;32m\]\[\033[00m\]\[\033[01;33m\]$(__git_ps1)$ \[\033[00;37m\]' diff --git a/bash_profile b/bash_profile new file mode 100755 index 0000000..782f3d4 --- /dev/null +++ b/bash_profile @@ -0,0 +1,11 @@ +# Load secret stuff that I don't want to share with the world on github :) +if [ -e ~/.secrets ]; then + . ~/.secrets +fi + +# Load git completion +. ~/dev/bin/git-completion.bash + +# My aliases and options +. ~/dev/config/bash_aliases +. ~/dev/config/bash_options diff --git a/gitconfig b/gitconfig new file mode 100644 index 0000000..5c71ce5 --- /dev/null +++ b/gitconfig @@ -0,0 +1,91 @@ +[user] + name = yan + email = yan@pritzker.ws +[color] + ui = true +[color "branch"] + current = yellow reverse + local = yellow + remote = green +[color "diff"] + meta = yellow bold + frag = magenta bold + old = red bold + new = green bold +; [color "status"] +; added = green +; changed = yellow +; untracked = red +[alias] + d = diff # show unstaged changes + dc = diff --cached # show staged changes + last = diff HEAD^ # show last committed change + unstage = reset HEAD # remove files from index (tracking) + uncommit = reset --soft HEAD^ # go back before last commit, with files in uncommitted state + chunkyadd = add --patch # stage commits chunk by chunk + filelog = log -u # show changes to a file + amend = commit --amend + ammend = commit --amend + mt = mergetool #fire up the merge tool + + addall = !sh -c 'git add . && git add -u' + +# stashselective = !f(){ git add -A; git unstage $1; git ci -m "temp"; git stash; git uncommit; }; f + + # rebasing + rc = rebase --continue + rs = rebase --skip + + # save some typing for common commands + ci = commit + co = checkout + b = branch -v + r = remote -v + t = tag -n + + # create and switch to a new branch (mnemonic: "git new branch branchname...") + nb = checkout -b + + stat = status + s = status + + # stashing + ss = stash + sl = stash list + sa = stash apply + sd = stash drop + + # grab a change from a branch + cp = cherry-pick -x + + # move patch + + # nice logs + changes = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" --name-status + short = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" + changelog = log --pretty=format:\" * %s\" + shortnocolor = log --pretty=format:\"%h %cr %cn %s\" + + # svn helpers + svnr = svn rebase + svnd = svn dcommit + svnl = svn log --oneline --show-commit + + drop = !sh -c 'git add . && git stash && git stash drop' + grab = !sh -c 'git-grab.sh' +[gc] +# auto = 1 +[merge] + summary = true + verbosity = 1 +[apply] + whitespace = nowarn +[branch] + autosetupmerge = true +[push] + default = matching +[github] + user = skwp +[core] + autocrlf = false + editor = /usr/bin/vim diff --git a/inputrc b/inputrc new file mode 100644 index 0000000..b2cc9d6 --- /dev/null +++ b/inputrc @@ -0,0 +1 @@ +set editing-mode vi diff --git a/irbrc b/irbrc new file mode 100644 index 0000000..f11e0fb --- /dev/null +++ b/irbrc @@ -0,0 +1,16 @@ +require 'rubygems' +require 'wirble' +# require 'hirb' +# Hirb::View.enable + +# Wirble.init +# Wirble.colorize + +IRB.conf[:AUTO_INDENT]=true +# require 'irb/completion' +require 'irb/ext/save-history' + +IRB.conf[:SAVE_HISTORY] = 100 +IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-save-history" +IRB.conf[:PROMPT_MODE] = :SIMPLE + diff --git a/osx b/osx new file mode 100755 index 0000000..240d7eb --- /dev/null +++ b/osx @@ -0,0 +1,158 @@ +#!/bin/bash + +# Via https://raw.github.com/mathiasbynens/dotfiles/master/.osx + +# Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs) +defaults write NSGlobalDomain AppleKeyboardUIMode -int 3 + +# Enable subpixel font rendering on non-Apple LCDs +defaults write NSGlobalDomain AppleFontSmoothing -int 2 + +# Enable the 2D Dock +defaults write com.apple.dock no-glass -bool true + +# Automatically hide and show the Dock +defaults write com.apple.dock autohide -bool true + +# Make Dock icons of hidden applications translucent +defaults write com.apple.dock showhidden -bool true + +# Disable menu bar transparency +defaults write NSGlobalDomain AppleEnableMenuBarTransparency -bool false + +# Show remaining battery time; hide percentage +defaults write com.apple.menuextra.battery ShowPercent -string "NO" +defaults write com.apple.menuextra.battery ShowTime -string "YES" + +# Always show scrollbars +defaults write NSGlobalDomain AppleShowScrollBars -string "Always" + +# Allow quitting Finder via ⌘ + Q; doing so will also hide desktop icons +defaults write com.apple.finder QuitMenuItem -bool true + +# Show all filename extensions in Finder +defaults write NSGlobalDomain AppleShowAllExtensions -bool true + +# Expand save panel by default +defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true + +# Expand print panel by default +defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true + +# Disable the “Are you sure you want to open this application?†dialog +defaults write com.apple.LaunchServices LSQuarantine -bool false + +# Disable shadow in screenshots +defaults write com.apple.screencapture disable-shadow -bool true + +# Enable highlight hover effect for the grid view of a stack (Dock) +defaults write com.apple.dock mouse-over-hilte-stack -bool true + +# Enable spring loading for all Dock items +defaults write enable-spring-load-actions-on-all-items -bool true + +# Show indicator lights for open applications in the Dock +defaults write com.apple.dock show-process-indicators -bool true + +# Don’t animate opening applications from the Dock +defaults write com.apple.dock launchanim -bool false + +# Disable press-and-hold for keys in favor of key repeat +defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false + +# Set a blazingly fast keyboard repeat rate +defaults write NSGlobalDomain KeyRepeat -int 0 + +# Disable auto-correct +defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false + +# Disable window animations +defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false + +# Enable AirDrop over Ethernet and on unsupported Macs running Lion +defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true + +# Disable disk image verification +defaults write com.apple.frameworks.diskimages skip-verify -bool true +defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true +defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true + +# Automatically open a new Finder window when a volume is mounted +defaults write com.apple.frameworks.diskimages auto-open-ro-root -bool true +defaults write com.apple.frameworks.diskimages auto-open-rw-root -bool true + +# Display full POSIX path as Finder window title +defaults write com.apple.finder _FXShowPosixPathInTitle -bool true + +# Increase window resize speed for Cocoa applications +defaults write NSGlobalDomain NSWindowResizeTime -float 0.001 + +# Avoid creating .DS_Store files on network volumes +defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true + +# Disable the warning when changing a file extension +defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false + +# Show item info below desktop icons +/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist + +# Disable the warning before emptying the Trash +defaults write com.apple.finder WarnOnEmptyTrash -bool false + +# Empty Trash securely by default +# defaults write com.apple.finder EmptyTrashSecurely -bool false + +# Require password immediately after sleep or screen saver begins +# defaults write com.apple.screensaver askForPassword -int 1 +# defaults write com.apple.screensaver askForPasswordDelay -int 0 + +# Enable tap to click (Trackpad) +defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true + +# Map bottom right Trackpad corner to right-click +# defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2 +# defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true + +# Disable Safari’s thumbnail cache for History and Top Sites +defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2 + +# Enable Safari’s debug menu +defaults write com.apple.Safari IncludeInternalDebugMenu -bool true + +# Remove useless icons from Safari’s bookmarks bar +# defaults write com.apple.Safari ProxiesInBookmarksBar "()" + +# Only use UTF-8 in Terminal.app +defaults write com.apple.terminal StringEncodings -array 4 + +# Disable the Ping sidebar in iTunes +defaults write com.apple.iTunes disablePingSidebar -bool true + +# Disable all the other Ping stuff in iTunes +defaults write com.apple.iTunes disablePing -bool true + +# Disable send and reply animations in Mail.app +defaults write com.apple.Mail DisableReplyAnimations -bool true +defaults write com.apple.Mail DisableSendAnimations -bool true + +# Disable Resume system-wide +# defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false + +# Enable Dashboard dev mode (allows keeping widgets on the desktop) +defaults write com.apple.dashboard devmode -bool true + +# Reset Launchpad +# [ -e ~/Library/Application\ Support/Dock/*.db ] && rm ~/Library/Application\ Support/Dock/*.db + +# Show the ~/Library folder +chflags nohidden ~/Library + +# Disable local Time Machine backups +# hash tmutil &> /dev/null && sudo tmutil disablelocal + +# Remove Dropbox’s green checkmark icons in Finder.app +#file=/Applications/Dropbox.app/Contents/Resources/check.icns +#[ -e "$file" ] && mv -f "$file" "$file.bak" +#unset file + +# Kill affected applications diff --git a/vim/.gitignore b/vim/.gitignore new file mode 100644 index 0000000..d174999 --- /dev/null +++ b/vim/.gitignore @@ -0,0 +1,5 @@ +tags +*~ +*.swp +.VimballRecord +view diff --git a/vim/.gitmodules b/vim/.gitmodules new file mode 100644 index 0000000..7009d08 --- /dev/null +++ b/vim/.gitmodules @@ -0,0 +1,3 @@ +[submodule "snippets"] + path = snippets + url = git://github.com/scrooloose/snipmate-snippets.git diff --git a/vim/.netrwhist b/vim/.netrwhist new file mode 100644 index 0000000..939ebe9 --- /dev/null +++ b/vim/.netrwhist @@ -0,0 +1,7 @@ +let g:netrw_dirhistmax =10 +let g:netrw_dirhist_cnt =5 +let g:netrw_dirhist_1='/Users/yan/dev/cft/builder-tools/get-base-iso' +let g:netrw_dirhist_2='/Users/yan/dev/piglatin' +let g:netrw_dirhist_3='/Users/yan/dev/config/vim/autoload/conque_term' +let g:netrw_dirhist_4='/Users/yan/Documents/Vuze' +let g:netrw_dirhist_5='/Users/yan/dev/config' diff --git a/vim/after/plugin/snipMate.vim b/vim/after/plugin/snipMate.vim new file mode 100644 index 0000000..8b17103 --- /dev/null +++ b/vim/after/plugin/snipMate.vim @@ -0,0 +1,24 @@ +" These are the mappings for snipMate.vim. Putting it here ensures that it +" will be mapped after other plugins such as supertab.vim. +if exists('s:did_snips_mappings') || &cp || version < 700 + finish +endif +let s:did_snips_mappings = 1 + +ino =TriggerSnippet() +snor i=TriggerSnippet() +ino =ShowAvailableSnips() +snor b +snor ' b' +snor a +snor bi + +" By default load snippets in snippets_dir +if !exists("snippets_dir") + finish +endif + +call GetSnippets(snippets_dir, '_') " Get global snippets + +au FileType * if &ft != 'help' | call GetSnippets(snippets_dir, &ft) | endif +" vim:noet:sw=4:ts=4:ft=vim diff --git a/vim/autoload/AnsiEsc.vim b/vim/autoload/AnsiEsc.vim new file mode 100644 index 0000000..be4fa5e --- /dev/null +++ b/vim/autoload/AnsiEsc.vim @@ -0,0 +1,848 @@ +" AnsiEsc.vim: Uses syntax highlighting. A vim 7.0 plugin! +" Language: Text with ansi escape sequences +" Maintainer: Charles E. Campbell +" Version: 12 +" Date: Dec 13, 2010 +" +" Usage: :AnsiEsc +" +" Note: this plugin requires Vince Negri's conceal-ownsyntax patch +" See http://groups.google.com/group/vim_dev/web/vim-patches, Patch#14 +" +" GetLatestVimScripts: 302 1 :AutoInstall: AnsiEsc.vim +"redraw!|call DechoSep()|call inputsave()|call input("Press to continue")|call inputrestore() +" --------------------------------------------------------------------- +"DechoTabOn +" Load Once: {{{1 +if exists("g:loaded_AnsiEsc") + finish +endif +let g:loaded_AnsiEsc = "v12" +if v:version < 700 + echohl WarningMsg + echo "***warning*** this version of AnsiEsc needs vim 7.0" + echohl Normal + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +" --------------------------------------------------------------------- +" AnsiEsc#AnsiEsc: toggles ansi-escape code visualization {{{2 +fun! AnsiEsc#AnsiEsc(rebuild) +" call Dfunc("AnsiEsc#AnsiEsc(rebuild=".a:rebuild.")") + if a:rebuild +" call Decho("rebuilding AnsiEsc tables") + call AnsiEsc#AnsiEsc(0) + call AnsiEsc#AnsiEsc(0) +" call Dret("AnsiEsc#AnsiEsc") + return + endif + let bn= bufnr("%") + if !exists("s:AnsiEsc_enabled_{bn}") + let s:AnsiEsc_enabled_{bn}= 0 + endif + if s:AnsiEsc_enabled_{bn} + " disable AnsiEsc highlighting +" call Decho("disable AnsiEsc highlighting: s:AnsiEsc_ft_".bn."<".s:AnsiEsc_ft_{bn}."> bn#".bn) + if exists("g:colors_name")|let colorname= g:colors_name|endif + if exists("s:conckeep_{bufnr('%')}")|let &l:conc= s:conckeep_{bufnr('%')}|unlet s:conckeep_{bufnr('%')}|endif + if exists("s:colekeep_{bufnr('%')}")|let &l:cole= s:colekeep_{bufnr('%')}|unlet s:colekeep_{bufnr('%')}|endif + if exists("s:cocukeep_{bufnr('%')}")|let &l:cocu= s:cocukeep_{bufnr('%')}|unlet s:cocukeep_{bufnr('%')}|endif + hi! link ansiStop NONE + syn clear + hi clear + syn reset + exe "set ft=".s:AnsiEsc_ft_{bn} + if exists("colorname")|exe "colors ".colorname|endif + let s:AnsiEsc_enabled_{bn}= 0 + if has("gui_running") && has("menu") && &go =~ 'm' + " menu support + exe 'silent! unmenu '.g:DrChipTopLvlMenu.'AnsiEsc' + exe 'menu '.g:DrChipTopLvlMenu.'AnsiEsc.Start:AnsiEsc :AnsiEsc' + endif + let &l:hl= s:hlkeep_{bufnr("%")} +" call Dret("AnsiEsc#AnsiEsc") + return + else + let s:AnsiEsc_ft_{bn} = &ft + let s:AnsiEsc_enabled_{bn} = 1 +" call Decho("enable AnsiEsc highlighting: s:AnsiEsc_ft_".bn."<".s:AnsiEsc_ft_{bn}."> bn#".bn) + if has("gui_running") && has("menu") && &go =~ 'm' + " menu support + exe 'silent! unmenu '.g:DrChipTopLvlMenu.'AnsiEsc' + exe 'menu '.g:DrChipTopLvlMenu.'AnsiEsc.Stop:AnsiEsc :AnsiEsc' + endif + + " ----------------- + " Conceal Support: {{{2 + " ----------------- + if has("conceal") + if v:version < 703 + if &l:conc != 3 + let s:conckeep_{bufnr('%')}= &cole + setlocal conc=3 +" call Decho("l:conc=".&l:conc) + endif + else + if &l:cole != 3 || &l:cocu != "nv" + let s:colekeep_{bufnr('%')}= &l:cole + let s:cocukeep_{bufnr('%')}= &l:cocu + setlocal cole=3 cocu=nv +" call Decho("l:cole=".&l:cole." l:cocu=".&l:cocu) + endif + endif + endif + endif + + syn clear + + " suppress escaped sequences that don't involve colors (which may or may not be ansi-compliant) + if has("conceal") + syn match ansiSuppress conceal '\e\[[0-9;]*[^m]' + syn match ansiSuppress conceal '\e\[?\d*[^m]' + syn match ansiSuppress conceal '\b' + else + syn match ansiSuppress '\e\[[0-9;]*[^m]' + syn match ansiSuppress conceal '\e\[?\d*[^m]' + syn match ansiSuppress '\b' + endif + + " ------------------------------ + " Ansi Escape Sequence Handling: {{{2 + " ------------------------------ + syn region ansiNone start="\e\[[01;]m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiNone start="\e\[m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBlack start="\e\[;\=0\{0,2};\=30m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRed start="\e\[;\=0\{0,2};\=31m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiGreen start="\e\[;\=0\{0,2};\=32m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiYellow start="\e\[;\=0\{0,2};\=33m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlue start="\e\[;\=0\{0,2};\=34m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiMagenta start="\e\[;\=0\{0,2};\=35m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiCyan start="\e\[;\=0\{0,2};\=36m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiWhite start="\e\[;\=0\{0,2};\=37m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBlackBg start="\e\[;\=0\{0,2};\=\%(1;\)\=40\%(1;\)\=m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRedBg start="\e\[;\=0\{0,2};\=\%(1;\)\=41\%(1;\)\=m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiGreenBg start="\e\[;\=0\{0,2};\=\%(1;\)\=42\%(1;\)\=m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiYellowBg start="\e\[;\=0\{0,2};\=\%(1;\)\=43\%(1;\)\=m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlueBg start="\e\[;\=0\{0,2};\=\%(1;\)\=44\%(1;\)\=m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiMagentaBg start="\e\[;\=0\{0,2};\=\%(1;\)\=45\%(1;\)\=m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiCyanBg start="\e\[;\=0\{0,2};\=\%(1;\)\=46\%(1;\)\=m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiWhiteBg start="\e\[;\=0\{0,2};\=\%(1;\)\=47\%(1;\)\=m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBoldBlack start="\e\[;\=0\{0,2};\=\%(1;30\|30;1\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBoldRed start="\e\[;\=0\{0,2};\=\%(1;31\|31;1\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBoldGreen start="\e\[;\=0\{0,2};\=\%(1;32\|32;1\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBoldYellow start="\e\[;\=0\{0,2};\=\%(1;33\|33;1\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBoldBlue start="\e\[;\=0\{0,2};\=\%(1;34\|34;1\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBoldMagenta start="\e\[;\=0\{0,2};\=\%(1;35\|35;1\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBoldCyan start="\e\[;\=0\{0,2};\=\%(1;36\|36;1\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBoldWhite start="\e\[;\=0\{0,2};\=\%(1;37\|37;1\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiStandoutBlack start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(3;30\|30;3\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiStandoutRed start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(3;31\|31;3\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiStandoutGreen start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(3;32\|32;3\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiStandoutYellow start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(3;33\|33;3\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiStandoutBlue start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(3;34\|34;3\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiStandoutMagenta start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(3;35\|35;3\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiStandoutCyan start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(3;36\|36;3\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiStandoutWhite start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(3;37\|37;3\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiItalicBlack start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(2;30\|30;2\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiItalicRed start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(2;31\|31;2\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiItalicGreen start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(2;32\|32;2\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiItalicYellow start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(2;33\|33;2\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiItalicBlue start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(2;34\|34;2\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiItalicMagenta start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(2;35\|35;2\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiItalicCyan start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(2;36\|36;2\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiItalicWhite start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(2;37\|37;2\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiUnderlineBlack start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(4;30\|30;4\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiUnderlineRed start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(4;31\|31;4\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiUnderlineGreen start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(4;32\|32;4\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiUnderlineYellow start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(4;33\|33;4\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiUnderlineBlue start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(4;34\|34;4\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiUnderlineMagenta start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(4;35\|35;4\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiUnderlineCyan start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(4;36\|36;4\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiUnderlineWhite start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(4;37\|37;4\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBlinkBlack start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(5;30\|30;5\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlinkRed start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(5;31\|31;5\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlinkGreen start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(5;32\|32;5\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlinkYellow start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(5;33\|33;5\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlinkBlue start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(5;34\|34;5\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlinkMagenta start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(5;35\|35;5\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlinkCyan start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(5;36\|36;5\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlinkWhite start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(5;37\|37;5\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiRapidBlinkBlack start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(6;30\|30;6\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRapidBlinkRed start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(6;31\|31;6\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRapidBlinkGreen start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(6;32\|32;6\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRapidBlinkYellow start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(6;33\|33;6\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRapidBlinkBlue start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(6;34\|34;6\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRapidBlinkMagenta start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(6;35\|35;6\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRapidBlinkCyan start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(6;36\|36;6\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRapidBlinkWhite start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(6;37\|37;6\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiRVBlack start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(7;30\|30;7\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRVRed start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(7;31\|31;7\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRVGreen start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(7;32\|32;7\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRVYellow start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(7;33\|33;7\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRVBlue start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(7;34\|34;7\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRVMagenta start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(7;35\|35;7\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRVCyan start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(7;36\|36;7\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRVWhite start="\e\[;\=0\{0,2};\=\%(1;\)\=\%(7;37\|37;7\)m" end="\e\["me=e-2 contains=ansiConceal + + if has("conceal") + syn match ansiStop conceal "\e\[;\=0\{1,2}m" + syn match ansiStop conceal "\e\[K" + syn match ansiStop conceal "\e\[H" + syn match ansiStop conceal "\e\[2J" + else + syn match ansiStop "\e\[;\=0\{0,2}m" + syn match ansiStop "\e\[K" + syn match ansiStop "\e\[H" + syn match ansiStop "\e\[2J" + endif + + "syn match ansiIgnore conceal "\e\[\([56];3[0-9]\|3[0-9];[56]\)m" + "syn match ansiIgnore conceal "\e\[\([0-9]\+;\)\{2,}[0-9]\+m" + + " --------------------------------------------------------------------- + " Some Color Combinations: - can't do 'em all, the qty of highlighting groups is limited! {{{2 + " --------------------------------------------------------------------- + syn region ansiBlackBlack start="\e\[0\{0,2};\=\(30;40\|40;30\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRedBlack start="\e\[0\{0,2};\=\(31;40\|40;31\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiGreenBlack start="\e\[0\{0,2};\=\(32;40\|40;32\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiYellowBlack start="\e\[0\{0,2};\=\(33;40\|40;33\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlueBlack start="\e\[0\{0,2};\=\(34;40\|40;34\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiMagentaBlack start="\e\[0\{0,2};\=\(35;40\|40;35\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiCyanBlack start="\e\[0\{0,2};\=\(36;40\|40;36\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiWhiteBlack start="\e\[0\{0,2};\=\(37;40\|40;37\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBlackRed start="\e\[0\{0,2};\=\(30;41\|41;30\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRedRed start="\e\[0\{0,2};\=\(31;41\|41;31\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiGreenRed start="\e\[0\{0,2};\=\(32;41\|41;32\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiYellowRed start="\e\[0\{0,2};\=\(33;41\|41;33\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlueRed start="\e\[0\{0,2};\=\(34;41\|41;34\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiMagentaRed start="\e\[0\{0,2};\=\(35;41\|41;35\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiCyanRed start="\e\[0\{0,2};\=\(36;41\|41;36\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiWhiteRed start="\e\[0\{0,2};\=\(37;41\|41;37\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBlackGreen start="\e\[0\{0,2};\=\(30;42\|42;30\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRedGreen start="\e\[0\{0,2};\=\(31;42\|42;31\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiGreenGreen start="\e\[0\{0,2};\=\(32;42\|42;32\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiYellowGreen start="\e\[0\{0,2};\=\(33;42\|42;33\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlueGreen start="\e\[0\{0,2};\=\(34;42\|42;34\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiMagentaGreen start="\e\[0\{0,2};\=\(35;42\|42;35\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiCyanGreen start="\e\[0\{0,2};\=\(36;42\|42;36\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiWhiteGreen start="\e\[0\{0,2};\=\(37;42\|42;37\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBlackYellow start="\e\[0\{0,2};\=\(30;43\|43;30\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRedYellow start="\e\[0\{0,2};\=\(31;43\|43;31\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiGreenYellow start="\e\[0\{0,2};\=\(32;43\|43;32\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiYellowYellow start="\e\[0\{0,2};\=\(33;43\|43;33\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlueYellow start="\e\[0\{0,2};\=\(34;43\|43;34\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiMagentaYellow start="\e\[0\{0,2};\=\(35;43\|43;35\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiCyanYellow start="\e\[0\{0,2};\=\(36;43\|43;36\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiWhiteYellow start="\e\[0\{0,2};\=\(37;43\|43;37\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBlackBlue start="\e\[0\{0,2};\=\(30;44\|44;30\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRedBlue start="\e\[0\{0,2};\=\(31;44\|44;31\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiGreenBlue start="\e\[0\{0,2};\=\(32;44\|44;32\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiYellowBlue start="\e\[0\{0,2};\=\(33;44\|44;33\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlueBlue start="\e\[0\{0,2};\=\(34;44\|44;34\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiMagentaBlue start="\e\[0\{0,2};\=\(35;44\|44;35\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiCyanBlue start="\e\[0\{0,2};\=\(36;44\|44;36\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiWhiteBlue start="\e\[0\{0,2};\=\(37;44\|44;37\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBlackMagenta start="\e\[0\{0,2};\=\(30;45\|45;30\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRedMagenta start="\e\[0\{0,2};\=\(31;45\|45;31\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiGreenMagenta start="\e\[0\{0,2};\=\(32;45\|45;32\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiYellowMagenta start="\e\[0\{0,2};\=\(33;45\|45;33\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlueMagenta start="\e\[0\{0,2};\=\(34;45\|45;34\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiMagentaMagenta start="\e\[0\{0,2};\=\(35;45\|45;35\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiCyanMagenta start="\e\[0\{0,2};\=\(36;45\|45;36\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiWhiteMagenta start="\e\[0\{0,2};\=\(37;45\|45;37\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBlackCyan start="\e\[0\{0,2};\=\(30;46\|46;30\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRedCyan start="\e\[0\{0,2};\=\(31;46\|46;31\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiGreenCyan start="\e\[0\{0,2};\=\(32;46\|46;32\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiYellowCyan start="\e\[0\{0,2};\=\(33;46\|46;33\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlueCyan start="\e\[0\{0,2};\=\(34;46\|46;34\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiMagentaCyan start="\e\[0\{0,2};\=\(35;46\|46;35\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiCyanCyan start="\e\[0\{0,2};\=\(36;46\|46;36\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiWhiteCyan start="\e\[0\{0,2};\=\(37;46\|46;37\)m" end="\e\["me=e-2 contains=ansiConceal + + syn region ansiBlackWhite start="\e\[0\{0,2};\=\(30;47\|47;30\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiRedWhite start="\e\[0\{0,2};\=\(31;47\|47;31\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiGreenWhite start="\e\[0\{0,2};\=\(32;47\|47;32\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiYellowWhite start="\e\[0\{0,2};\=\(33;47\|47;33\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiBlueWhite start="\e\[0\{0,2};\=\(34;47\|47;34\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiMagentaWhite start="\e\[0\{0,2};\=\(35;47\|47;35\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiCyanWhite start="\e\[0\{0,2};\=\(36;47\|47;36\)m" end="\e\["me=e-2 contains=ansiConceal + syn region ansiWhiteWhite start="\e\[0\{0,2};\=\(37;47\|47;37\)m" end="\e\["me=e-2 contains=ansiConceal + + syn match ansiExtended "\e\[;\=\(0;\)\=[34]8;\(\d*;\)*\d*m" contains=ansiConceal + + if has("conceal") + syn match ansiConceal contained conceal "\e\[\(\d*;\)*\d*m" + else + syn match ansiConceal contained "\e\[\(\d*;\)*\d*m" + endif + + " ------------- + " Highlighting: {{{2 + " ------------- + if !has("conceal") + " -------------- + " ansiesc_ignore: {{{3 + " -------------- + hi def link ansiConceal Ignore + hi def link ansiSuppress Ignore + hi def link ansiIgnore ansiStop + hi def link ansiStop Ignore + hi def link ansiExtended Ignore + endif + let s:hlkeep_{bufnr("%")}= &l:hl + exe "setlocal hl=".substitute(&hl,'8:[^,]\{-},','8:Ignore,',"") + + " handle 3 or more element ansi escape sequences by building syntax and highlighting rules + " specific to the current file + call s:MultiElementHandler() + + hi ansiNone cterm=NONE gui=NONE + + if &t_Co == 8 || &t_Co == 256 + " --------------------- + " eight-color handling: {{{3 + " --------------------- +" call Decho("set up 8-color highlighting groups") + hi ansiBlack ctermfg=black guifg=black cterm=none gui=none + hi ansiRed ctermfg=red guifg=red cterm=none gui=none + hi ansiGreen ctermfg=green guifg=green cterm=none gui=none + hi ansiYellow ctermfg=yellow guifg=yellow cterm=none gui=none + hi ansiBlue ctermfg=blue guifg=blue cterm=none gui=none + hi ansiMagenta ctermfg=magenta guifg=magenta cterm=none gui=none + hi ansiCyan ctermfg=cyan guifg=cyan cterm=none gui=none + hi ansiWhite ctermfg=white guifg=white cterm=none gui=none + + hi ansiBlackBg ctermbg=black guibg=black cterm=none gui=none + hi ansiRedBg ctermbg=red guibg=red cterm=none gui=none + hi ansiGreenBg ctermbg=green guibg=green cterm=none gui=none + hi ansiYellowBg ctermbg=yellow guibg=yellow cterm=none gui=none + hi ansiBlueBg ctermbg=blue guibg=blue cterm=none gui=none + hi ansiMagentaBg ctermbg=magenta guibg=magenta cterm=none gui=none + hi ansiCyanBg ctermbg=cyan guibg=cyan cterm=none gui=none + hi ansiWhiteBg ctermbg=white guibg=white cterm=none gui=none + + hi ansiBoldBlack ctermfg=black guifg=black cterm=bold gui=bold + hi ansiBoldRed ctermfg=red guifg=red cterm=bold gui=bold + hi ansiBoldGreen ctermfg=green guifg=green cterm=bold gui=bold + hi ansiBoldYellow ctermfg=yellow guifg=yellow cterm=bold gui=bold + hi ansiBoldBlue ctermfg=blue guifg=blue cterm=bold gui=bold + hi ansiBoldMagenta ctermfg=magenta guifg=magenta cterm=bold gui=bold + hi ansiBoldCyan ctermfg=cyan guifg=cyan cterm=bold gui=bold + hi ansiBoldWhite ctermfg=white guifg=white cterm=bold gui=bold + + hi ansiStandoutBlack ctermfg=black guifg=black cterm=standout gui=standout + hi ansiStandoutRed ctermfg=red guifg=red cterm=standout gui=standout + hi ansiStandoutGreen ctermfg=green guifg=green cterm=standout gui=standout + hi ansiStandoutYellow ctermfg=yellow guifg=yellow cterm=standout gui=standout + hi ansiStandoutBlue ctermfg=blue guifg=blue cterm=standout gui=standout + hi ansiStandoutMagenta ctermfg=magenta guifg=magenta cterm=standout gui=standout + hi ansiStandoutCyan ctermfg=cyan guifg=cyan cterm=standout gui=standout + hi ansiStandoutWhite ctermfg=white guifg=white cterm=standout gui=standout + + hi ansiItalicBlack ctermfg=black guifg=black cterm=italic gui=italic + hi ansiItalicRed ctermfg=red guifg=red cterm=italic gui=italic + hi ansiItalicGreen ctermfg=green guifg=green cterm=italic gui=italic + hi ansiItalicYellow ctermfg=yellow guifg=yellow cterm=italic gui=italic + hi ansiItalicBlue ctermfg=blue guifg=blue cterm=italic gui=italic + hi ansiItalicMagenta ctermfg=magenta guifg=magenta cterm=italic gui=italic + hi ansiItalicCyan ctermfg=cyan guifg=cyan cterm=italic gui=italic + hi ansiItalicWhite ctermfg=white guifg=white cterm=italic gui=italic + + hi ansiUnderlineBlack ctermfg=black guifg=black cterm=underline gui=underline + hi ansiUnderlineRed ctermfg=red guifg=red cterm=underline gui=underline + hi ansiUnderlineGreen ctermfg=green guifg=green cterm=underline gui=underline + hi ansiUnderlineYellow ctermfg=yellow guifg=yellow cterm=underline gui=underline + hi ansiUnderlineBlue ctermfg=blue guifg=blue cterm=underline gui=underline + hi ansiUnderlineMagenta ctermfg=magenta guifg=magenta cterm=underline gui=underline + hi ansiUnderlineCyan ctermfg=cyan guifg=cyan cterm=underline gui=underline + hi ansiUnderlineWhite ctermfg=white guifg=white cterm=underline gui=underline + + hi ansiBlinkBlack ctermfg=black guifg=black cterm=standout gui=undercurl + hi ansiBlinkRed ctermfg=red guifg=red cterm=standout gui=undercurl + hi ansiBlinkGreen ctermfg=green guifg=green cterm=standout gui=undercurl + hi ansiBlinkYellow ctermfg=yellow guifg=yellow cterm=standout gui=undercurl + hi ansiBlinkBlue ctermfg=blue guifg=blue cterm=standout gui=undercurl + hi ansiBlinkMagenta ctermfg=magenta guifg=magenta cterm=standout gui=undercurl + hi ansiBlinkCyan ctermfg=cyan guifg=cyan cterm=standout gui=undercurl + hi ansiBlinkWhite ctermfg=white guifg=white cterm=standout gui=undercurl + + hi ansiRapidBlinkBlack ctermfg=black guifg=black cterm=standout gui=undercurl + hi ansiRapidBlinkRed ctermfg=red guifg=red cterm=standout gui=undercurl + hi ansiRapidBlinkGreen ctermfg=green guifg=green cterm=standout gui=undercurl + hi ansiRapidBlinkYellow ctermfg=yellow guifg=yellow cterm=standout gui=undercurl + hi ansiRapidBlinkBlue ctermfg=blue guifg=blue cterm=standout gui=undercurl + hi ansiRapidBlinkMagenta ctermfg=magenta guifg=magenta cterm=standout gui=undercurl + hi ansiRapidBlinkCyan ctermfg=cyan guifg=cyan cterm=standout gui=undercurl + hi ansiRapidBlinkWhite ctermfg=white guifg=white cterm=standout gui=undercurl + + hi ansiRVBlack ctermfg=black guifg=black cterm=reverse gui=reverse + hi ansiRVRed ctermfg=red guifg=red cterm=reverse gui=reverse + hi ansiRVGreen ctermfg=green guifg=green cterm=reverse gui=reverse + hi ansiRVYellow ctermfg=yellow guifg=yellow cterm=reverse gui=reverse + hi ansiRVBlue ctermfg=blue guifg=blue cterm=reverse gui=reverse + hi ansiRVMagenta ctermfg=magenta guifg=magenta cterm=reverse gui=reverse + hi ansiRVCyan ctermfg=cyan guifg=cyan cterm=reverse gui=reverse + hi ansiRVWhite ctermfg=white guifg=white cterm=reverse gui=reverse + + hi ansiBlackBlack ctermfg=black ctermbg=black guifg=Black guibg=Black cterm=none gui=none + hi ansiRedBlack ctermfg=red ctermbg=black guifg=Red guibg=Black cterm=none gui=none + hi ansiGreenBlack ctermfg=green ctermbg=black guifg=Green guibg=Black cterm=none gui=none + hi ansiYellowBlack ctermfg=yellow ctermbg=black guifg=Yellow guibg=Black cterm=none gui=none + hi ansiBlueBlack ctermfg=blue ctermbg=black guifg=Blue guibg=Black cterm=none gui=none + hi ansiMagentaBlack ctermfg=magenta ctermbg=black guifg=Magenta guibg=Black cterm=none gui=none + hi ansiCyanBlack ctermfg=cyan ctermbg=black guifg=Cyan guibg=Black cterm=none gui=none + hi ansiWhiteBlack ctermfg=white ctermbg=black guifg=White guibg=Black cterm=none gui=none + + hi ansiBlackRed ctermfg=black ctermbg=red guifg=Black guibg=Red cterm=none gui=none + hi ansiRedRed ctermfg=red ctermbg=red guifg=Red guibg=Red cterm=none gui=none + hi ansiGreenRed ctermfg=green ctermbg=red guifg=Green guibg=Red cterm=none gui=none + hi ansiYellowRed ctermfg=yellow ctermbg=red guifg=Yellow guibg=Red cterm=none gui=none + hi ansiBlueRed ctermfg=blue ctermbg=red guifg=Blue guibg=Red cterm=none gui=none + hi ansiMagentaRed ctermfg=magenta ctermbg=red guifg=Magenta guibg=Red cterm=none gui=none + hi ansiCyanRed ctermfg=cyan ctermbg=red guifg=Cyan guibg=Red cterm=none gui=none + hi ansiWhiteRed ctermfg=white ctermbg=red guifg=White guibg=Red cterm=none gui=none + + hi ansiBlackGreen ctermfg=black ctermbg=green guifg=Black guibg=Green cterm=none gui=none + hi ansiRedGreen ctermfg=red ctermbg=green guifg=Red guibg=Green cterm=none gui=none + hi ansiGreenGreen ctermfg=green ctermbg=green guifg=Green guibg=Green cterm=none gui=none + hi ansiYellowGreen ctermfg=yellow ctermbg=green guifg=Yellow guibg=Green cterm=none gui=none + hi ansiBlueGreen ctermfg=blue ctermbg=green guifg=Blue guibg=Green cterm=none gui=none + hi ansiMagentaGreen ctermfg=magenta ctermbg=green guifg=Magenta guibg=Green cterm=none gui=none + hi ansiCyanGreen ctermfg=cyan ctermbg=green guifg=Cyan guibg=Green cterm=none gui=none + hi ansiWhiteGreen ctermfg=white ctermbg=green guifg=White guibg=Green cterm=none gui=none + + hi ansiBlackYellow ctermfg=black ctermbg=yellow guifg=Black guibg=Yellow cterm=none gui=none + hi ansiRedYellow ctermfg=red ctermbg=yellow guifg=Red guibg=Yellow cterm=none gui=none + hi ansiGreenYellow ctermfg=green ctermbg=yellow guifg=Green guibg=Yellow cterm=none gui=none + hi ansiYellowYellow ctermfg=yellow ctermbg=yellow guifg=Yellow guibg=Yellow cterm=none gui=none + hi ansiBlueYellow ctermfg=blue ctermbg=yellow guifg=Blue guibg=Yellow cterm=none gui=none + hi ansiMagentaYellow ctermfg=magenta ctermbg=yellow guifg=Magenta guibg=Yellow cterm=none gui=none + hi ansiCyanYellow ctermfg=cyan ctermbg=yellow guifg=Cyan guibg=Yellow cterm=none gui=none + hi ansiWhiteYellow ctermfg=white ctermbg=yellow guifg=White guibg=Yellow cterm=none gui=none + + hi ansiBlackBlue ctermfg=black ctermbg=blue guifg=Black guibg=Blue cterm=none gui=none + hi ansiRedBlue ctermfg=red ctermbg=blue guifg=Red guibg=Blue cterm=none gui=none + hi ansiGreenBlue ctermfg=green ctermbg=blue guifg=Green guibg=Blue cterm=none gui=none + hi ansiYellowBlue ctermfg=yellow ctermbg=blue guifg=Yellow guibg=Blue cterm=none gui=none + hi ansiBlueBlue ctermfg=blue ctermbg=blue guifg=Blue guibg=Blue cterm=none gui=none + hi ansiMagentaBlue ctermfg=magenta ctermbg=blue guifg=Magenta guibg=Blue cterm=none gui=none + hi ansiCyanBlue ctermfg=cyan ctermbg=blue guifg=Cyan guibg=Blue cterm=none gui=none + hi ansiWhiteBlue ctermfg=white ctermbg=blue guifg=White guibg=Blue cterm=none gui=none + + hi ansiBlackMagenta ctermfg=black ctermbg=magenta guifg=Black guibg=Magenta cterm=none gui=none + hi ansiRedMagenta ctermfg=red ctermbg=magenta guifg=Red guibg=Magenta cterm=none gui=none + hi ansiGreenMagenta ctermfg=green ctermbg=magenta guifg=Green guibg=Magenta cterm=none gui=none + hi ansiYellowMagenta ctermfg=yellow ctermbg=magenta guifg=Yellow guibg=Magenta cterm=none gui=none + hi ansiBlueMagenta ctermfg=blue ctermbg=magenta guifg=Blue guibg=Magenta cterm=none gui=none + hi ansiMagentaMagenta ctermfg=magenta ctermbg=magenta guifg=Magenta guibg=Magenta cterm=none gui=none + hi ansiCyanMagenta ctermfg=cyan ctermbg=magenta guifg=Cyan guibg=Magenta cterm=none gui=none + hi ansiWhiteMagenta ctermfg=white ctermbg=magenta guifg=White guibg=Magenta cterm=none gui=none + + hi ansiBlackCyan ctermfg=black ctermbg=cyan guifg=Black guibg=Cyan cterm=none gui=none + hi ansiRedCyan ctermfg=red ctermbg=cyan guifg=Red guibg=Cyan cterm=none gui=none + hi ansiGreenCyan ctermfg=green ctermbg=cyan guifg=Green guibg=Cyan cterm=none gui=none + hi ansiYellowCyan ctermfg=yellow ctermbg=cyan guifg=Yellow guibg=Cyan cterm=none gui=none + hi ansiBlueCyan ctermfg=blue ctermbg=cyan guifg=Blue guibg=Cyan cterm=none gui=none + hi ansiMagentaCyan ctermfg=magenta ctermbg=cyan guifg=Magenta guibg=Cyan cterm=none gui=none + hi ansiCyanCyan ctermfg=cyan ctermbg=cyan guifg=Cyan guibg=Cyan cterm=none gui=none + hi ansiWhiteCyan ctermfg=white ctermbg=cyan guifg=White guibg=Cyan cterm=none gui=none + + hi ansiBlackWhite ctermfg=black ctermbg=white guifg=Black guibg=White cterm=none gui=none + hi ansiRedWhite ctermfg=red ctermbg=white guifg=Red guibg=White cterm=none gui=none + hi ansiGreenWhite ctermfg=green ctermbg=white guifg=Green guibg=White cterm=none gui=none + hi ansiYellowWhite ctermfg=yellow ctermbg=white guifg=Yellow guibg=White cterm=none gui=none + hi ansiBlueWhite ctermfg=blue ctermbg=white guifg=Blue guibg=White cterm=none gui=none + hi ansiMagentaWhite ctermfg=magenta ctermbg=white guifg=Magenta guibg=White cterm=none gui=none + hi ansiCyanWhite ctermfg=cyan ctermbg=white guifg=Cyan guibg=White cterm=none gui=none + hi ansiWhiteWhite ctermfg=white ctermbg=white guifg=White guibg=White cterm=none gui=none + + if v:version >= 700 && exists("&t_Co") && &t_Co == 256 && exists("g:ansiesc_256color") + " --------------------------- + " handle 256-color terminals: {{{3 + " --------------------------- +" call Decho("set up 256-color highlighting groups") + let icolor= 1 + while icolor < 256 + let jcolor= 1 + exe "hi ansiHL_".icolor."_0 ctermfg=".icolor + exe "hi ansiHL_0_".icolor." ctermbg=".icolor +" call Decho("exe hi ansiHL_".icolor." ctermfg=".icolor) + while jcolor < 256 + exe "hi ansiHL_".icolor."_".jcolor." ctermfg=".icolor." ctermbg=".jcolor +" call Decho("exe hi ansiHL_".icolor."_".jcolor." ctermfg=".icolor." ctermbg=".jcolor) + let jcolor= jcolor + 1 + endwhile + let icolor= icolor + 1 + endwhile + endif + + else + " ---------------------------------- + " not 8 or 256 color terminals (gui): {{{3 + " ---------------------------------- +" call Decho("set up gui highlighting groups") + hi ansiBlack ctermfg=black guifg=black cterm=none gui=none + hi ansiRed ctermfg=red guifg=red cterm=none gui=none + hi ansiGreen ctermfg=green guifg=green cterm=none gui=none + hi ansiYellow ctermfg=yellow guifg=yellow cterm=none gui=none + hi ansiBlue ctermfg=blue guifg=blue cterm=none gui=none + hi ansiMagenta ctermfg=magenta guifg=magenta cterm=none gui=none + hi ansiCyan ctermfg=cyan guifg=cyan cterm=none gui=none + hi ansiWhite ctermfg=white guifg=white cterm=none gui=none + + hi ansiBlackBg ctermbg=black guibg=black cterm=none gui=none + hi ansiRedBg ctermbg=red guibg=red cterm=none gui=none + hi ansiGreenBg ctermbg=green guibg=green cterm=none gui=none + hi ansiYellowBg ctermbg=yellow guibg=yellow cterm=none gui=none + hi ansiBlueBg ctermbg=blue guibg=blue cterm=none gui=none + hi ansiMagentaBg ctermbg=magenta guibg=magenta cterm=none gui=none + hi ansiCyanBg ctermbg=cyan guibg=cyan cterm=none gui=none + hi ansiWhiteBg ctermbg=white guibg=white cterm=none gui=none + + hi ansiBoldBlack ctermfg=black guifg=black cterm=bold gui=bold + hi ansiBoldRed ctermfg=red guifg=red cterm=bold gui=bold + hi ansiBoldGreen ctermfg=green guifg=green cterm=bold gui=bold + hi ansiBoldYellow ctermfg=yellow guifg=yellow cterm=bold gui=bold + hi ansiBoldBlue ctermfg=blue guifg=blue cterm=bold gui=bold + hi ansiBoldMagenta ctermfg=magenta guifg=magenta cterm=bold gui=bold + hi ansiBoldCyan ctermfg=cyan guifg=cyan cterm=bold gui=bold + hi ansiBoldWhite ctermfg=white guifg=white cterm=bold gui=bold + + hi ansiStandoutBlack ctermfg=black guifg=black cterm=standout gui=standout + hi ansiStandoutRed ctermfg=red guifg=red cterm=standout gui=standout + hi ansiStandoutGreen ctermfg=green guifg=green cterm=standout gui=standout + hi ansiStandoutYellow ctermfg=yellow guifg=yellow cterm=standout gui=standout + hi ansiStandoutBlue ctermfg=blue guifg=blue cterm=standout gui=standout + hi ansiStandoutMagenta ctermfg=magenta guifg=magenta cterm=standout gui=standout + hi ansiStandoutCyan ctermfg=cyan guifg=cyan cterm=standout gui=standout + hi ansiStandoutWhite ctermfg=white guifg=white cterm=standout gui=standout + + hi ansiItalicBlack ctermfg=black guifg=black cterm=italic gui=italic + hi ansiItalicRed ctermfg=red guifg=red cterm=italic gui=italic + hi ansiItalicGreen ctermfg=green guifg=green cterm=italic gui=italic + hi ansiItalicYellow ctermfg=yellow guifg=yellow cterm=italic gui=italic + hi ansiItalicBlue ctermfg=blue guifg=blue cterm=italic gui=italic + hi ansiItalicMagenta ctermfg=magenta guifg=magenta cterm=italic gui=italic + hi ansiItalicCyan ctermfg=cyan guifg=cyan cterm=italic gui=italic + hi ansiItalicWhite ctermfg=white guifg=white cterm=italic gui=italic + + hi ansiUnderlineBlack ctermfg=black guifg=black cterm=underline gui=underline + hi ansiUnderlineRed ctermfg=red guifg=red cterm=underline gui=underline + hi ansiUnderlineGreen ctermfg=green guifg=green cterm=underline gui=underline + hi ansiUnderlineYellow ctermfg=yellow guifg=yellow cterm=underline gui=underline + hi ansiUnderlineBlue ctermfg=blue guifg=blue cterm=underline gui=underline + hi ansiUnderlineMagenta ctermfg=magenta guifg=magenta cterm=underline gui=underline + hi ansiUnderlineCyan ctermfg=cyan guifg=cyan cterm=underline gui=underline + hi ansiUnderlineWhite ctermfg=white guifg=white cterm=underline gui=underline + + hi ansiBlinkBlack ctermfg=black guifg=black cterm=standout gui=undercurl + hi ansiBlinkRed ctermfg=red guifg=red cterm=standout gui=undercurl + hi ansiBlinkGreen ctermfg=green guifg=green cterm=standout gui=undercurl + hi ansiBlinkYellow ctermfg=yellow guifg=yellow cterm=standout gui=undercurl + hi ansiBlinkBlue ctermfg=blue guifg=blue cterm=standout gui=undercurl + hi ansiBlinkMagenta ctermfg=magenta guifg=magenta cterm=standout gui=undercurl + hi ansiBlinkCyan ctermfg=cyan guifg=cyan cterm=standout gui=undercurl + hi ansiBlinkWhite ctermfg=white guifg=white cterm=standout gui=undercurl + + hi ansiRapidBlinkBlack ctermfg=black guifg=black cterm=standout gui=undercurl + hi ansiRapidBlinkRed ctermfg=red guifg=red cterm=standout gui=undercurl + hi ansiRapidBlinkGreen ctermfg=green guifg=green cterm=standout gui=undercurl + hi ansiRapidBlinkYellow ctermfg=yellow guifg=yellow cterm=standout gui=undercurl + hi ansiRapidBlinkBlue ctermfg=blue guifg=blue cterm=standout gui=undercurl + hi ansiRapidBlinkMagenta ctermfg=magenta guifg=magenta cterm=standout gui=undercurl + hi ansiRapidBlinkCyan ctermfg=cyan guifg=cyan cterm=standout gui=undercurl + hi ansiRapidBlinkWhite ctermfg=white guifg=white cterm=standout gui=undercurl + + hi ansiRVBlack ctermfg=black guifg=black cterm=reverse gui=reverse + hi ansiRVRed ctermfg=red guifg=red cterm=reverse gui=reverse + hi ansiRVGreen ctermfg=green guifg=green cterm=reverse gui=reverse + hi ansiRVYellow ctermfg=yellow guifg=yellow cterm=reverse gui=reverse + hi ansiRVBlue ctermfg=blue guifg=blue cterm=reverse gui=reverse + hi ansiRVMagenta ctermfg=magenta guifg=magenta cterm=reverse gui=reverse + hi ansiRVCyan ctermfg=cyan guifg=cyan cterm=reverse gui=reverse + hi ansiRVWhite ctermfg=white guifg=white cterm=reverse gui=reverse + + hi ansiBlackBlack ctermfg=black ctermbg=black guifg=Black guibg=Black cterm=none gui=none + hi ansiRedBlack ctermfg=black ctermbg=black guifg=Black guibg=Black cterm=none gui=none + hi ansiRedBlack ctermfg=red ctermbg=black guifg=Red guibg=Black cterm=none gui=none + hi ansiGreenBlack ctermfg=green ctermbg=black guifg=Green guibg=Black cterm=none gui=none + hi ansiYellowBlack ctermfg=yellow ctermbg=black guifg=Yellow guibg=Black cterm=none gui=none + hi ansiBlueBlack ctermfg=blue ctermbg=black guifg=Blue guibg=Black cterm=none gui=none + hi ansiMagentaBlack ctermfg=magenta ctermbg=black guifg=Magenta guibg=Black cterm=none gui=none + hi ansiCyanBlack ctermfg=cyan ctermbg=black guifg=Cyan guibg=Black cterm=none gui=none + hi ansiWhiteBlack ctermfg=white ctermbg=black guifg=White guibg=Black cterm=none gui=none + + hi ansiBlackRed ctermfg=black ctermbg=red guifg=Black guibg=Red cterm=none gui=none + hi ansiRedRed ctermfg=red ctermbg=red guifg=Red guibg=Red cterm=none gui=none + hi ansiGreenRed ctermfg=green ctermbg=red guifg=Green guibg=Red cterm=none gui=none + hi ansiYellowRed ctermfg=yellow ctermbg=red guifg=Yellow guibg=Red cterm=none gui=none + hi ansiBlueRed ctermfg=blue ctermbg=red guifg=Blue guibg=Red cterm=none gui=none + hi ansiMagentaRed ctermfg=magenta ctermbg=red guifg=Magenta guibg=Red cterm=none gui=none + hi ansiCyanRed ctermfg=cyan ctermbg=red guifg=Cyan guibg=Red cterm=none gui=none + hi ansiWhiteRed ctermfg=white ctermbg=red guifg=White guibg=Red cterm=none gui=none + + hi ansiBlackGreen ctermfg=black ctermbg=green guifg=Black guibg=Green cterm=none gui=none + hi ansiRedGreen ctermfg=red ctermbg=green guifg=Red guibg=Green cterm=none gui=none + hi ansiGreenGreen ctermfg=green ctermbg=green guifg=Green guibg=Green cterm=none gui=none + hi ansiYellowGreen ctermfg=yellow ctermbg=green guifg=Yellow guibg=Green cterm=none gui=none + hi ansiBlueGreen ctermfg=blue ctermbg=green guifg=Blue guibg=Green cterm=none gui=none + hi ansiMagentaGreen ctermfg=magenta ctermbg=green guifg=Magenta guibg=Green cterm=none gui=none + hi ansiCyanGreen ctermfg=cyan ctermbg=green guifg=Cyan guibg=Green cterm=none gui=none + hi ansiWhiteGreen ctermfg=white ctermbg=green guifg=White guibg=Green cterm=none gui=none + + hi ansiBlackYellow ctermfg=black ctermbg=yellow guifg=Black guibg=Yellow cterm=none gui=none + hi ansiRedYellow ctermfg=red ctermbg=yellow guifg=Red guibg=Yellow cterm=none gui=none + hi ansiGreenYellow ctermfg=green ctermbg=yellow guifg=Green guibg=Yellow cterm=none gui=none + hi ansiYellowYellow ctermfg=yellow ctermbg=yellow guifg=Yellow guibg=Yellow cterm=none gui=none + hi ansiBlueYellow ctermfg=blue ctermbg=yellow guifg=Blue guibg=Yellow cterm=none gui=none + hi ansiMagentaYellow ctermfg=magenta ctermbg=yellow guifg=Magenta guibg=Yellow cterm=none gui=none + hi ansiCyanYellow ctermfg=cyan ctermbg=yellow guifg=Cyan guibg=Yellow cterm=none gui=none + hi ansiWhiteYellow ctermfg=white ctermbg=yellow guifg=White guibg=Yellow cterm=none gui=none + + hi ansiBlackBlue ctermfg=black ctermbg=blue guifg=Black guibg=Blue cterm=none gui=none + hi ansiRedBlue ctermfg=red ctermbg=blue guifg=Red guibg=Blue cterm=none gui=none + hi ansiGreenBlue ctermfg=green ctermbg=blue guifg=Green guibg=Blue cterm=none gui=none + hi ansiYellowBlue ctermfg=yellow ctermbg=blue guifg=Yellow guibg=Blue cterm=none gui=none + hi ansiBlueBlue ctermfg=blue ctermbg=blue guifg=Blue guibg=Blue cterm=none gui=none + hi ansiMagentaBlue ctermfg=magenta ctermbg=blue guifg=Magenta guibg=Blue cterm=none gui=none + hi ansiCyanBlue ctermfg=cyan ctermbg=blue guifg=Cyan guibg=Blue cterm=none gui=none + hi ansiWhiteBlue ctermfg=white ctermbg=blue guifg=White guibg=Blue cterm=none gui=none + + hi ansiBlackMagenta ctermfg=black ctermbg=magenta guifg=Black guibg=Magenta cterm=none gui=none + hi ansiRedMagenta ctermfg=red ctermbg=magenta guifg=Red guibg=Magenta cterm=none gui=none + hi ansiGreenMagenta ctermfg=green ctermbg=magenta guifg=Green guibg=Magenta cterm=none gui=none + hi ansiYellowMagenta ctermfg=yellow ctermbg=magenta guifg=Yellow guibg=Magenta cterm=none gui=none + hi ansiBlueMagenta ctermfg=blue ctermbg=magenta guifg=Blue guibg=Magenta cterm=none gui=none + hi ansiMagentaMagenta ctermfg=magenta ctermbg=magenta guifg=Magenta guibg=Magenta cterm=none gui=none + hi ansiCyanMagenta ctermfg=cyan ctermbg=magenta guifg=Cyan guibg=Magenta cterm=none gui=none + hi ansiWhiteMagenta ctermfg=white ctermbg=magenta guifg=White guibg=Magenta cterm=none gui=none + + hi ansiBlackCyan ctermfg=black ctermbg=cyan guifg=Black guibg=Cyan cterm=none gui=none + hi ansiRedCyan ctermfg=red ctermbg=cyan guifg=Red guibg=Cyan cterm=none gui=none + hi ansiGreenCyan ctermfg=green ctermbg=cyan guifg=Green guibg=Cyan cterm=none gui=none + hi ansiYellowCyan ctermfg=yellow ctermbg=cyan guifg=Yellow guibg=Cyan cterm=none gui=none + hi ansiBlueCyan ctermfg=blue ctermbg=cyan guifg=Blue guibg=Cyan cterm=none gui=none + hi ansiMagentaCyan ctermfg=magenta ctermbg=cyan guifg=Magenta guibg=Cyan cterm=none gui=none + hi ansiCyanCyan ctermfg=cyan ctermbg=cyan guifg=Cyan guibg=Cyan cterm=none gui=none + hi ansiWhiteCyan ctermfg=white ctermbg=cyan guifg=White guibg=Cyan cterm=none gui=none + + hi ansiBlackWhite ctermfg=black ctermbg=white guifg=Black guibg=White cterm=none gui=none + hi ansiRedWhite ctermfg=red ctermbg=white guifg=Red guibg=White cterm=none gui=none + hi ansiGreenWhite ctermfg=green ctermbg=white guifg=Green guibg=White cterm=none gui=none + hi ansiYellowWhite ctermfg=yellow ctermbg=white guifg=Yellow guibg=White cterm=none gui=none + hi ansiBlueWhite ctermfg=blue ctermbg=white guifg=Blue guibg=White cterm=none gui=none + hi ansiMagentaWhite ctermfg=magenta ctermbg=white guifg=Magenta guibg=White cterm=none gui=none + hi ansiCyanWhite ctermfg=cyan ctermbg=white guifg=Cyan guibg=White cterm=none gui=none + hi ansiWhiteWhite ctermfg=white ctermbg=white guifg=White guibg=White cterm=none gui=none + endif +" call Dret("AnsiEsc#AnsiEsc") +endfun + +" --------------------------------------------------------------------- +" s:MultiElementHandler: builds custom syntax highlighting for three or more element ansi escape sequences {{{2 +fun! s:MultiElementHandler() +" call Dfunc("s:MultiElementHandler()") + let curwp= SaveWinPosn(0) + keepj 1 + keepj norm! 0 + let mehcnt = 0 + let mehrules = [] + while search('\e\[;\=\d\+;\d\+;\d\+\(;\d\+\)*m','cW') + let curcol = col(".")+1 + call search('m','cW') + let mcol = col(".") + let ansiesc = strpart(getline("."),curcol,mcol - curcol) + let aecodes = split(ansiesc,'[;m]') +" call Decho("ansiesc<".ansiesc."> aecodes=".string(aecodes)) + let skip = 0 + let mod = "NONE," + let fg = "" + let bg = "" + + " if the ansiesc is + if index(mehrules,ansiesc) == -1 + let mehrules+= [ansiesc] + + for code in aecodes + + " handle multi-code sequences (38;5;color and 48;5;color) + if skip == 38 && code == 5 + " handling [38;5 + let skip= 385 +" call Decho(" 1: building code=".code." skip=".skip.": mod<".mod."> fg<".fg."> bg<".bg.">") + continue + elseif skip == 385 + " handling [38;5;... + if has("gui") && has("gui_running") + let fg= s:Ansi2Gui(code) + else + let fg= code + endif + let skip= 0 +" call Decho(" 2: building code=".code." skip=".skip.": mod<".mod."> fg<".fg."> bg<".bg.">") + continue + + elseif skip == 48 && code == 5 + " handling [48;5 + let skip= 485 +" call Decho(" 3: building code=".code." skip=".skip.": mod<".mod."> fg<".fg."> bg<".bg.">") + continue + elseif skip == 485 + " handling [48;5;... + if has("gui") && has("gui_running") + let bg= s:Ansi2Gui(code) + else + let bg= code + endif + let skip= 0 +" call Decho(" 4: building code=".code." skip=".skip.": mod<".mod."> fg<".fg."> bg<".bg.">") + continue + + else + let skip= 0 + endif + + " handle single-code sequences + if code == 1 + let mod=mod."bold," + elseif code == 2 + let mod=mod."italic," + elseif code == 3 + let mod=mod."standout," + elseif code == 4 + let mod=mod."underline," + elseif code == 5 || code == 6 + let mod=mod."undercurl," + elseif code == 7 + let mod=mod."reverse," + + elseif code == 30 + let fg= "black" + elseif code == 31 + let fg= "red" + elseif code == 32 + let fg= "green" + elseif code == 33 + let fg= "yellow" + elseif code == 34 + let fg= "blue" + elseif code == 35 + let fg= "magenta" + elseif code == 36 + let fg= "cyan" + elseif code == 37 + let fg= "white" + + elseif code == 40 + let bg= "black" + elseif code == 41 + let bg= "red" + elseif code == 42 + let bg= "green" + elseif code == 43 + let bg= "yellow" + elseif code == 44 + let bg= "blue" + elseif code == 45 + let bg= "magenta" + elseif code == 46 + let bg= "cyan" + elseif code == 47 + let bg= "white" + + elseif code == 38 + let skip= 38 + + elseif code == 48 + let skip= 48 + endif + +" call Decho(" 5: building code=".code." skip=".skip.": mod<".mod."> fg<".fg."> bg<".bg.">") + endfor + + " fixups + let mod= substitute(mod,',$','','') + + " build syntax-recognition rule + let mehcnt = mehcnt + 1 + let synrule = "syn region ansiMEH".mehcnt + let synrule = synrule.' start="\e\['.ansiesc.'"' + let synrule = synrule.' end="\e\["me=e-2' + let synrule = synrule." contains=ansiConceal" +" call Decho(" exe synrule: ".synrule) + exe synrule + + " build highlighting rule + let hirule= "hi ansiMEH".mehcnt + if has("gui") && has("gui_running") + let hirule=hirule." gui=".mod + if fg != ""| let hirule=hirule." guifg=".fg| endif + if bg != ""| let hirule=hirule." guibg=".bg| endif + else + let hirule=hirule." cterm=".mod + if fg != ""| let hirule=hirule." ctermfg=".fg| endif + if bg != ""| let hirule=hirule." ctermbg=".bg| endif + endif +" call Decho(" exe hirule: ".hirule) + exe hirule + endif + + endwhile + + call RestoreWinPosn(curwp) +" call Dret("s:MultiElementHandler") +endfun + +" --------------------------------------------------------------------- +" s:Ansi2Gui: converts an ansi-escape sequence (for 256-color xterms) {{{2 +" to an equivalent gui color +" colors 0- 15: +" colors 16-231: 6x6x6 color cube, code= 16+r*36+g*6+b with r,g,b each in [0,5] +" colors 232-255: grayscale ramp, code= 10*gray + 8 with gray in [0,23] (black,white left out) +fun! s:Ansi2Gui(code) +" call Dfunc("s:Ansi2Gui(code=)".a:code) + let guicolor= a:code + if a:code < 16 + let code2rgb = [ "black", "red3", "green3", "yellow3", "blue3", "magenta3", "cyan3", "gray70", "gray40", "red", "green", "yellow", "royalblue3", "magenta", "cyan", "white"] + let guicolor = code2rgb[a:code] + elseif a:code >= 232 + let code = a:code - 232 + let code = 10*code + 8 + let guicolor = printf("#%02x%02x%02x",code,code,code) + else + let code = a:code - 16 + let code2rgb = [43,85,128,170,213,255] + let r = code2rgb[code/36] + let g = code2rgb[(code%36)/6] + let b = code2rgb[code%6] + let guicolor = printf("#%02x%02x%02x",r,g,b) + endif +" call Dret("s:Ansi2Gui ".guicolor) + return guicolor +endfun + +" --------------------------------------------------------------------- +" Restore: {{{1 +let &cpo= s:keepcpo +unlet s:keepcpo + +" --------------------------------------------------------------------- +" Modelines: {{{1 +" vim: ts=12 fdm=marker diff --git a/vim/autoload/EasyMotion.vim b/vim/autoload/EasyMotion.vim new file mode 100755 index 0000000..7c79dd8 --- /dev/null +++ b/vim/autoload/EasyMotion.vim @@ -0,0 +1,573 @@ +" EasyMotion - Vim motions on speed! +" +" Author: Kim Silkebækken +" Source repository: https://github.com/Lokaltog/vim-easymotion + +" Default configuration functions {{{ + function! EasyMotion#InitOptions(options) " {{{ + for [key, value] in items(a:options) + if ! exists('g:EasyMotion_' . key) + exec 'let g:EasyMotion_' . key . ' = ' . string(value) + endif + endfor + endfunction " }}} + function! EasyMotion#InitHL(group, colors) " {{{ + let group_default = a:group . 'Default' + + " Prepare highlighting variables + let guihl = printf('guibg=%s guifg=%s gui=%s', a:colors.gui[0], a:colors.gui[1], a:colors.gui[2]) + if !exists('g:CSApprox_loaded') + let ctermhl = &t_Co == 256 + \ ? printf('ctermbg=%s ctermfg=%s cterm=%s', a:colors.cterm256[0], a:colors.cterm256[1], a:colors.cterm256[2]) + \ : printf('ctermbg=%s ctermfg=%s cterm=%s', a:colors.cterm[0], a:colors.cterm[1], a:colors.cterm[2]) + else + let ctermhl = '' + endif + + " Create default highlighting group + execute printf('hi default %s %s %s', group_default, guihl, ctermhl) + + " Check if the hl group exists + if hlexists(a:group) + redir => hlstatus | exec 'silent hi ' . a:group | redir END + + " Return if the group isn't cleared + if hlstatus !~ 'cleared' + return + endif + endif + + " No colors are defined for this group, link to defaults + execute printf('hi default link %s %s', a:group, group_default) + endfunction " }}} + function! EasyMotion#InitMappings(motions) "{{{ + for motion in keys(a:motions) + call EasyMotion#InitOptions({ 'mapping_' . motion : g:EasyMotion_leader_key . motion }) + endfor + + if g:EasyMotion_do_mapping + for [motion, fn] in items(a:motions) + if empty(g:EasyMotion_mapping_{motion}) + continue + endif + + silent exec 'nnoremap ' . g:EasyMotion_mapping_{motion} . ' :call EasyMotion#' . fn.name . '(0, ' . fn.dir . ')' + silent exec 'onoremap ' . g:EasyMotion_mapping_{motion} . ' :call EasyMotion#' . fn.name . '(0, ' . fn.dir . ')' + silent exec 'vnoremap ' . g:EasyMotion_mapping_{motion} . ' :call EasyMotion#' . fn.name . '(1, ' . fn.dir . ')' + endfor + endif + endfunction "}}} +" }}} +" Motion functions {{{ + function! EasyMotion#F(visualmode, direction) " {{{ + let char = s:GetSearchChar(a:visualmode) + + if empty(char) + return + endif + + let re = '\C' . escape(char, '.$^~') + + call s:EasyMotion(re, a:direction, a:visualmode ? visualmode() : '', mode(1)) + endfunction " }}} + function! EasyMotion#T(visualmode, direction) " {{{ + let char = s:GetSearchChar(a:visualmode) + + if empty(char) + return + endif + + if a:direction == 1 + let re = '\C' . escape(char, '.$^~') . '\zs.' + else + let re = '\C.' . escape(char, '.$^~') + endif + + call s:EasyMotion(re, a:direction, a:visualmode ? visualmode() : '', mode(1)) + endfunction " }}} + function! EasyMotion#WB(visualmode, direction) " {{{ + call s:EasyMotion('\(\<.\|^$\)', a:direction, a:visualmode ? visualmode() : '', '') + endfunction " }}} + function! EasyMotion#WBW(visualmode, direction) " {{{ + call s:EasyMotion('\(\(^\|\s\)\@<=\S\|^$\)', a:direction, a:visualmode ? visualmode() : '', '') + endfunction " }}} + function! EasyMotion#E(visualmode, direction) " {{{ + call s:EasyMotion('\(.\>\|^$\)', a:direction, a:visualmode ? visualmode() : '', mode(1)) + endfunction " }}} + function! EasyMotion#EW(visualmode, direction) " {{{ + call s:EasyMotion('\(\S\(\s\|$\)\|^$\)', a:direction, a:visualmode ? visualmode() : '', mode(1)) + endfunction " }}} + function! EasyMotion#JK(visualmode, direction) " {{{ + call s:EasyMotion('^\(\w\|\s*\zs\|$\)', a:direction, a:visualmode ? visualmode() : '', '') + endfunction " }}} + function! EasyMotion#Search(visualmode, direction) " {{{ + call s:EasyMotion(@/, a:direction, a:visualmode ? visualmode() : '', '') + endfunction " }}} +" }}} +" Helper functions {{{ + function! s:Message(message) " {{{ + echo 'EasyMotion: ' . a:message + endfunction " }}} + function! s:Prompt(message) " {{{ + echohl Question + echo a:message . ': ' + echohl None + endfunction " }}} + function! s:VarReset(var, ...) " {{{ + if ! exists('s:var_reset') + let s:var_reset = {} + endif + + let buf = bufname("") + + if a:0 == 0 && has_key(s:var_reset, a:var) + " Reset var to original value + call setbufvar(buf, a:var, s:var_reset[a:var]) + elseif a:0 == 1 + let new_value = a:0 == 1 ? a:1 : '' + + " Store original value + let s:var_reset[a:var] = getbufvar(buf, a:var) + + " Set new var value + call setbufvar(buf, a:var, new_value) + endif + endfunction " }}} + function! s:SetLines(lines, key) " {{{ + try + " Try to join changes with previous undo block + undojoin + catch + endtry + + for [line_num, line] in a:lines + call setline(line_num, line[a:key]) + endfor + endfunction " }}} + function! s:GetChar() " {{{ + let char = getchar() + + if char == 27 + " Escape key pressed + redraw + + call s:Message('Cancelled') + + return '' + endif + + return nr2char(char) + endfunction " }}} + function! s:GetSearchChar(visualmode) " {{{ + call s:Prompt('Search for character') + + let char = s:GetChar() + + " Check that we have an input char + if empty(char) + " Restore selection + if ! empty(a:visualmode) + silent exec 'normal! gv' + endif + + return '' + endif + + return char + endfunction " }}} +" }}} +" Grouping algorithms {{{ + let s:grouping_algorithms = { + \ 1: 'SCTree' + \ , 2: 'Original' + \ } + " Single-key/closest target priority tree {{{ + " This algorithm tries to assign one-key jumps to all the targets closest to the cursor. + " It works recursively and will work correctly with as few keys as two. + function! s:GroupingAlgorithmSCTree(targets, keys) + " Prepare variables for working + let targets_len = len(a:targets) + let keys_len = len(a:keys) + + let groups = {} + + let keys = reverse(copy(a:keys)) + + " Semi-recursively count targets {{{ + " We need to know exactly how many child nodes (targets) this branch will have + " in order to pass the correct amount of targets to the recursive function. + + " Prepare sorted target count list {{{ + " This is horrible, I know. But dicts aren't sorted in vim, so we need to + " work around that. That is done by having one sorted list with key counts, + " and a dict which connects the key with the keys_count list. + + let keys_count = [] + let keys_count_keys = {} + + let i = 0 + for key in keys + call add(keys_count, 0) + + let keys_count_keys[key] = i + + let i += 1 + endfor + " }}} + + let targets_left = targets_len + let level = 0 + let i = 0 + + while targets_left > 0 + " Calculate the amount of child nodes based on the current level + let childs_len = (level == 0 ? 1 : (keys_len - 1) ) + + for key in keys + " Add child node count to the keys_count array + let keys_count[keys_count_keys[key]] += childs_len + + " Subtract the child node count + let targets_left -= childs_len + + if targets_left <= 0 + " Subtract the targets left if we added too many too + " many child nodes to the key count + let keys_count[keys_count_keys[key]] += targets_left + + break + endif + + let i += 1 + endfor + + let level += 1 + endwhile + " }}} + " Create group tree {{{ + let i = 0 + let key = 0 + + call reverse(keys_count) + + for key_count in keys_count + if key_count > 1 + " We need to create a subgroup + " Recurse one level deeper + let groups[a:keys[key]] = s:GroupingAlgorithmSCTree(a:targets[i : i + key_count - 1], a:keys) + elseif key_count == 1 + " Assign single target key + let groups[a:keys[key]] = a:targets[i] + else + " No target + continue + endif + + let key += 1 + let i += key_count + endfor + " }}} + + " Finally! + return groups + endfunction + " }}} + " Original {{{ + function! s:GroupingAlgorithmOriginal(targets, keys) + " Split targets into groups (1 level) + let targets_len = len(a:targets) + let keys_len = len(a:keys) + + let groups = {} + + let i = 0 + let root_group = 0 + try + while root_group < targets_len + let groups[a:keys[root_group]] = {} + + for key in a:keys + let groups[a:keys[root_group]][key] = a:targets[i] + + let i += 1 + endfor + + let root_group += 1 + endwhile + catch | endtry + + " Flatten the group array + if len(groups) == 1 + let groups = groups[a:keys[0]] + endif + + return groups + endfunction + " }}} + " Coord/key dictionary creation {{{ + function! s:CreateCoordKeyDict(groups, ...) + " Dict structure: + " 1,2 : a + " 2,3 : b + let sort_list = [] + let coord_keys = {} + let group_key = a:0 == 1 ? a:1 : '' + + for [key, item] in items(a:groups) + let key = ( ! empty(group_key) ? group_key : key) + + if type(item) == 3 + " Destination coords + + " The key needs to be zero-padded in order to + " sort correctly + let dict_key = printf('%05d,%05d', item[0], item[1]) + let coord_keys[dict_key] = key + + " We need a sorting list to loop correctly in + " PromptUser, dicts are unsorted + call add(sort_list, dict_key) + else + " Item is a dict (has children) + let coord_key_dict = s:CreateCoordKeyDict(item, key) + + " Make sure to extend both the sort list and the + " coord key dict + call extend(sort_list, coord_key_dict[0]) + call extend(coord_keys, coord_key_dict[1]) + endif + + unlet item + endfor + + return [sort_list, coord_keys] + endfunction + " }}} +" }}} +" Core functions {{{ + function! s:PromptUser(groups) "{{{ + " If only one possible match, jump directly to it {{{ + let group_values = values(a:groups) + + if len(group_values) == 1 + redraw + + return group_values[0] + endif + " }}} + " Prepare marker lines {{{ + let lines = {} + let hl_coords = [] + let coord_key_dict = s:CreateCoordKeyDict(a:groups) + + for dict_key in sort(coord_key_dict[0]) + let target_key = coord_key_dict[1][dict_key] + let [line_num, col_num] = split(dict_key, ',') + + let line_num = str2nr(line_num) + let col_num = str2nr(col_num) + + " Add original line and marker line + if ! has_key(lines, line_num) + let current_line = getline(line_num) + + let lines[line_num] = { 'orig': current_line, 'marker': current_line, 'mb_compensation': 0 } + endif + + " Compensate for byte difference between marker + " character and target character + " + " This has to be done in order to match the correct + " column; \%c matches the byte column and not display + " column. + let target_char_len = strlen(matchstr(lines[line_num]['marker'], '\%' . col_num . 'c.')) + let target_key_len = strlen(target_key) + + " Solve multibyte issues by matching the byte column + " number instead of the visual column + let col_num -= lines[line_num]['mb_compensation'] + + if strlen(lines[line_num]['marker']) > 0 + " Substitute marker character if line length > 0 + let lines[line_num]['marker'] = substitute(lines[line_num]['marker'], '\%' . col_num . 'c.', target_key, '') + else + " Set the line to the marker character if the line is empty + let lines[line_num]['marker'] = target_key + endif + + " Add highlighting coordinates + call add(hl_coords, '\%' . line_num . 'l\%' . col_num . 'c') + + " Add marker/target lenght difference for multibyte + " compensation + let lines[line_num]['mb_compensation'] += (target_char_len - target_key_len) + endfor + + let lines_items = items(lines) + " }}} + " Highlight targets {{{ + let target_hl_id = matchadd(g:EasyMotion_hl_group_target, join(hl_coords, '\|'), 1) + " }}} + + try + " Set lines with markers + call s:SetLines(lines_items, 'marker') + + redraw + + " Get target character {{{ + call s:Prompt('Target key') + + let char = s:GetChar() + " }}} + finally + " Restore original lines + call s:SetLines(lines_items, 'orig') + + " Un-highlight targets {{{ + if exists('target_hl_id') + call matchdelete(target_hl_id) + endif + " }}} + + redraw + endtry + + " Check if we have an input char {{{ + if empty(char) + throw 'Cancelled' + endif + " }}} + " Check if the input char is valid {{{ + if ! has_key(a:groups, char) + throw 'Invalid target' + endif + " }}} + + let target = a:groups[char] + + if type(target) == 3 + " Return target coordinates + return target + else + " Prompt for new target character + return s:PromptUser(target) + endif + endfunction "}}} + function! s:EasyMotion(regexp, direction, visualmode, mode) " {{{ + let orig_pos = [line('.'), col('.')] + let targets = [] + + try + " Reset properties {{{ + call s:VarReset('&scrolloff', 0) + call s:VarReset('&modified', 0) + call s:VarReset('&modifiable', 1) + call s:VarReset('&readonly', 0) + call s:VarReset('&spell', 0) + call s:VarReset('&virtualedit', '') + " }}} + " Find motion targets {{{ + let search_direction = (a:direction == 1 ? 'b' : '') + let search_stopline = line(a:direction == 1 ? 'w0' : 'w$') + + while 1 + let pos = searchpos(a:regexp, search_direction, search_stopline) + + " Reached end of search range + if pos == [0, 0] + break + endif + + " Skip folded lines + if foldclosed(pos[0]) != -1 + continue + endif + + call add(targets, pos) + endwhile + + let targets_len = len(targets) + if targets_len == 0 + throw 'No matches' + endif + " }}} + + let GroupingFn = function('s:GroupingAlgorithm' . s:grouping_algorithms[g:EasyMotion_grouping]) + let groups = GroupingFn(targets, split(g:EasyMotion_keys, '\zs')) + + " Shade inactive source {{{ + if g:EasyMotion_do_shade + let shade_hl_pos = '\%' . orig_pos[0] . 'l\%'. orig_pos[1] .'c' + + if a:direction == 1 + " Backward + let shade_hl_re = '\%'. line('w0') .'l\_.*' . shade_hl_pos + else + " Forward + let shade_hl_re = shade_hl_pos . '\_.*\%'. line('w$') .'l' + endif + + let shade_hl_id = matchadd(g:EasyMotion_hl_group_shade, shade_hl_re, 0) + endif + " }}} + + " Prompt user for target group/character + let coords = s:PromptUser(groups) + + " Update selection {{{ + if ! empty(a:visualmode) + keepjumps call cursor(orig_pos[0], orig_pos[1]) + + exec 'normal! ' . a:visualmode + endif + " }}} + " Handle operator-pending mode {{{ + if a:mode == 'no' + " This mode requires that we eat one more + " character to the right if we're using + " a forward motion + if a:direction != 1 + let coords[1] += 1 + endif + endif + " }}} + + " Update cursor position + call cursor(orig_pos[0], orig_pos[1]) + mark ' + call cursor(coords[0], coords[1]) + + call s:Message('Jumping to [' . coords[0] . ', ' . coords[1] . ']') + catch + redraw + + " Show exception message + call s:Message(v:exception) + + " Restore original cursor position/selection {{{ + if ! empty(a:visualmode) + silent exec 'normal! gv' + else + keepjumps call cursor(orig_pos[0], orig_pos[1]) + endif + " }}} + finally + " Restore properties {{{ + call s:VarReset('&scrolloff') + call s:VarReset('&modified') + call s:VarReset('&modifiable') + call s:VarReset('&readonly') + call s:VarReset('&spell') + call s:VarReset('&virtualedit') + " }}} + " Remove shading {{{ + if g:EasyMotion_do_shade && exists('shade_hl_id') + call matchdelete(shade_hl_id) + endif + " }}} + endtry + endfunction " }}} +" }}} + +" vim: fdm=marker:noet:ts=4:sw=4:sts=4 diff --git a/vim/autoload/conque_term.vim b/vim/autoload/conque_term.vim new file mode 100644 index 0000000..607a876 --- /dev/null +++ b/vim/autoload/conque_term.vim @@ -0,0 +1,1508 @@ +" FILE: autoload/conque_term.vim {{{ +" AUTHOR: Nico Raffo +" WEBSITE: http://conque.googlecode.com +" MODIFIED: 2011-09-02 +" VERSION: 2.3, for Vim 7.0 +" LICENSE: +" Conque - Vim terminal/console emulator +" Copyright (C) 2009-2011 Nico Raffo +" +" 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. +" }}} + +" ********************************************************************************************************** +" **** GLOBAL INITIALIZATION ******************************************************************************* +" ********************************************************************************************************** + +" {{{ + +" load plugin file if it hasn't already been loaded (e.g. conque_term#foo() is used in .vimrc) +if !exists('g:ConqueTerm_Loaded') + runtime! plugin/conque_term.vim +endif + +" path to conque install directories +let s:scriptdir = expand(":h") . '/' +let s:scriptdirpy = expand(":h") . '/conque_term/' + +" global list of terminal instances +let s:term_obj = {'idx': 1, 'var': '', 'is_buffer': 1, 'active': 1, 'buffer_name': '', 'command': ''} +let g:ConqueTerm_Terminals = {} + +" global lists of registered functions +let s:hooks = { 'after_startup': [], 'buffer_enter': [], 'buffer_leave': [], 'after_keymap': [] } + +" required for session support +if g:ConqueTerm_SessionSupport == 1 + set sessionoptions+=globals + try + sil! let s:saved_terminals = eval(g:ConqueTerm_TerminalsString) + catch + let s:saved_terminals = {} + endtry +endif + +" more session support +let g:ConqueTerm_TerminalsString = '' + +" init terminal counter +let g:ConqueTerm_Idx = 0 + +" we clobber this value later +let s:save_updatetime = &updatetime + +" have we called the init() function yet? +let s:initialized = 0 + + +" }}} + +" ********************************************************************************************************** +" **** SYSTEM DETECTION ************************************************************************************ +" ********************************************************************************************************** + +" {{{ + +" Display various error messages +function! conque_term#fail(feature) " {{{ + + " create a new buffer + new + setlocal buftype=nofile + setlocal nonumber + setlocal foldcolumn=0 + setlocal wrap + setlocal noswapfile + + " missing vim features + if a:feature == 'python' + + call append('$', 'Conque ERROR: Python interface cannot be loaded') + call append('$', '') + + if !executable("python") + call append('$', 'Your version of Vim appears to be installed without the Python interface. In ') + call append('$', 'addition, you may need to install Python.') + else + call append('$', 'Your version of Vim appears to be installed without the Python interface.') + endif + + call append('$', '') + + if has('unix') == 1 + call append('$', "You are using a Unix-like operating system. Most, if not all, of the popular ") + call append('$', "Linux package managers have Python-enabled Vim available. For example ") + call append('$', "vim-gnome or vim-gtk on Ubuntu will get you everything you need.") + call append('$', "") + call append('$', "If you are compiling Vim from source, make sure you use the --enable-pythoninterp ") + call append('$', "configure option. You will also need to install Python and the Python headers.") + call append('$', "") + call append('$', "If you are using OS X, MacVim will give you Python support by default.") + else + call append('$', "You appear to be using Windows. The official Vim 7.3 installer available at ") + call append('$', "http://www.vim.org comes with the required Python interfaces. You will also ") + call append('$', "need to install Python 2.7 and/or Python 3.1, both available at http://www.python.org") + endif + + elseif a:feature == 'python_exe' + + call append('$', "Conque ERROR: Can't find Python executable") + call append('$', "") + call append('$', "Conque needs to know the full path to python.exe on Windows systems. By default, ") + call append('$', "Conque will check your system path as well as the most common installation path ") + call append('$', "C:\\PythonXX\\python.exe. To fix this error either:") + call append('$', "") + call append('$', "Set the g:ConqueTerm_PyExe option in your .vimrc. E.g.") + call append('$', " let g:ConqueTerm_PyExe = 'C:\Program Files\Python27\python.exe'") + call append('$', "") + call append('$', "Add the directory where you installed python to your system path. This isn't a bad ") + call append('$', "idea in general.") + + elseif a:feature == 'ctypes' + + call append('$', 'Conque ERROR: Python cannot load the ctypes module') + call append('$', "") + call append('$', "Conque requires the 'ctypes' python module. This has been a standard module since Python 2.5.") + call append('$', "") + call append('$', "The recommended fix is to make sure you're using the latest official GVim version 7.3, ") + call append('$', "and have at least one of the two compatible versions of Python installed, ") + call append('$', "2.7 or 3.1. You can download the GVim 7.3 installer from http://www.vim.org. You ") + call append('$', "can download the Python 2.7 or 3.1 installer from http://www.python.org") + + endif + +endfunction " }}} + +" Go through various system checks before attempting to launch conque +function! conque_term#dependency_check() " {{{ + + " don't recheck the second time 'round + if s:initialized == 1 + return 1 + endif + + " choose a python version + let s:py = '' + if g:ConqueTerm_PyVersion == 3 + let pytest = 'python3' + else + let pytest = 'python' + let g:ConqueTerm_PyVersion = 2 + endif + + " first test the requested version + if has(pytest) + if pytest == 'python3' + let s:py = 'py3' + else + let s:py = 'py' + endif + + " otherwise use the other version + else + let py_alternate = 5 - g:ConqueTerm_PyVersion + if py_alternate == 3 + let pytest = 'python3' + else + let pytest = 'python' + endif + if has(pytest) + echohl WarningMsg | echomsg "Python " . g:ConqueTerm_PyVersion . " interface is not installed, using Python " . py_alternate . " instead" | echohl None + let g:ConqueTerm_PyVersion = py_alternate + if pytest == 'python3' + let s:py = 'py3' + else + let s:py = 'py' + endif + endif + endif + + " test if we actually found a python version + if s:py == '' + call conque_term#fail('python') + return 0 + endif + + " quick and dirty platform declaration + if has('unix') == 1 + let s:platform = 'unix' + sil exe s:py . " CONQUE_PLATFORM = 'unix'" + else + let s:platform = 'windows' + sil exe s:py . " CONQUE_PLATFORM = 'windows'" + endif + + " if we're using Windows, make sure ctypes is available + if s:platform == 'windows' + try + sil exe s:py . " import ctypes" + catch + call conque_term#fail('ctypes') + return 0 + endtry + endif + + " if we're using Windows, make sure we can finde python executable + if s:platform == 'windows' && conque_term#find_python_exe() == '' + call conque_term#fail('python_exe') + return 0 + endif + + " check for global cursorhold/cursormove events + let o = '' + silent redir => o + silent autocmd CursorHoldI,CursorMovedI + redir END + for line in split(o, "\n") + if line =~ '^ ' || line =~ '^--' || line =~ 'matchparen' + continue + endif + if g:ConqueTerm_StartMessages + echohl WarningMsg | echomsg "Warning: Global CursorHoldI and CursorMovedI autocommands may cause ConqueTerm to run slowly." | echohl None + endif + endfor + + " check for compatible mode + if &compatible == 1 + echohl WarningMsg | echomsg "Warning: Conque may not function normally in 'compatible' mode." | echohl None + endif + + " check for fast mode + if g:ConqueTerm_FastMode + sil exe s:py . " CONQUE_FAST_MODE = True" + else + sil exe s:py . " CONQUE_FAST_MODE = False" + endif + + " if we're all good, load python files + call conque_term#load_python() + + return 1 + +endfunction " }}} + +" }}} + +" ********************************************************************************************************** +" **** STARTUP MESSAGES ************************************************************************************ +" ********************************************************************************************************** + +" {{{ +"if g:ConqueTerm_StartMessages +" let msg_file = s:scriptdirpy . 'version.vim' +" let msg_show = 1 +" let msg_ct = 1 +" +" " we can write to conque_term directory +" if filewritable(s:scriptdirpy) == 2 +" +" if filewritable(msg_file) +" +" " read current message file +" try +" silent execute "source " . msg_file +" if exists('g:ConqueTerm_MsgCt') && exists('g:ConqueTerm_MsgVer') +" if g:ConqueTerm_MsgVer == g:ConqueTerm_Version && g:ConqueTerm_MsgCt > 2 +" let msg_show = 0 +" else +" let msg_ct = g:ConqueTerm_MsgCt + 1 +" endif +" endif +" catch +" endtry +" endif +" +" " update message file +" if msg_show +" let file_contents = ['let g:ConqueTerm_MsgCt = ' . msg_ct, 'let g:ConqueTerm_MsgVer = ' . g:ConqueTerm_Version] +" call writefile(file_contents, msg_file) +" endif +" endif +" +" " save our final decision +" let g:ConqueTerm_StartMessages = msg_show +"endif +" }}} + +" ********************************************************************************************************** +" **** WINDOWS VK CODES ************************************************************************************ +" ********************************************************************************************************** + +" Windows Virtual Key Codes {{{ +let s:windows_vk = { +\ 'VK_ADD' : 107, +\ 'VK_APPS' : 93, +\ 'VK_ATTN' : 246, +\ 'VK_BACK' : 8, +\ 'VK_BROWSER_BACK' : 166, +\ 'VK_BROWSER_FORWARD' : 167, +\ 'VK_CANCEL' : 3, +\ 'VK_CAPITAL' : 20, +\ 'VK_CLEAR' : 12, +\ 'VK_CONTROL' : 17, +\ 'VK_CONVERT' : 28, +\ 'VK_CRSEL' : 247, +\ 'VK_DECIMAL' : 110, +\ 'VK_DELETE' : 46, +\ 'VK_DIVIDE' : 111, +\ 'VK_DOWN' : 40, +\ 'VK_DOWN_CTL' : '40;1024', +\ 'VK_END' : 35, +\ 'VK_EREOF' : 249, +\ 'VK_ESCAPE' : 27, +\ 'VK_EXECUTE' : 43, +\ 'VK_EXSEL' : 248, +\ 'VK_F1' : 112, +\ 'VK_F10' : 121, +\ 'VK_F11' : 122, +\ 'VK_F12' : 123, +\ 'VK_F13' : 124, +\ 'VK_F14' : 125, +\ 'VK_F15' : 126, +\ 'VK_F16' : 127, +\ 'VK_F17' : 128, +\ 'VK_F18' : 129, +\ 'VK_F19' : 130, +\ 'VK_F2' : 113, +\ 'VK_F20' : 131, +\ 'VK_F21' : 132, +\ 'VK_F22' : 133, +\ 'VK_F23' : 134, +\ 'VK_F24' : 135, +\ 'VK_F3' : 114, +\ 'VK_F4' : 115, +\ 'VK_F5' : 116, +\ 'VK_F6' : 117, +\ 'VK_F7' : 118, +\ 'VK_F8' : 119, +\ 'VK_F9' : 120, +\ 'VK_FINAL' : 24, +\ 'VK_HANGEUL' : 21, +\ 'VK_HANGUL' : 21, +\ 'VK_HANJA' : 25, +\ 'VK_HELP' : 47, +\ 'VK_HOME' : 36, +\ 'VK_INSERT' : 45, +\ 'VK_JUNJA' : 23, +\ 'VK_KANA' : 21, +\ 'VK_KANJI' : 25, +\ 'VK_LBUTTON' : 1, +\ 'VK_LCONTROL' : 162, +\ 'VK_LEFT' : 37, +\ 'VK_LEFT_CTL' : '37;1024', +\ 'VK_LMENU' : 164, +\ 'VK_LSHIFT' : 160, +\ 'VK_LWIN' : 91, +\ 'VK_MBUTTON' : 4, +\ 'VK_MEDIA_NEXT_TRACK' : 176, +\ 'VK_MEDIA_PLAY_PAUSE' : 179, +\ 'VK_MEDIA_PREV_TRACK' : 177, +\ 'VK_MENU' : 18, +\ 'VK_MODECHANGE' : 31, +\ 'VK_MULTIPLY' : 106, +\ 'VK_NEXT' : 34, +\ 'VK_NONAME' : 252, +\ 'VK_NONCONVERT' : 29, +\ 'VK_NUMLOCK' : 144, +\ 'VK_NUMPAD0' : 96, +\ 'VK_NUMPAD1' : 97, +\ 'VK_NUMPAD2' : 98, +\ 'VK_NUMPAD3' : 99, +\ 'VK_NUMPAD4' : 100, +\ 'VK_NUMPAD5' : 101, +\ 'VK_NUMPAD6' : 102, +\ 'VK_NUMPAD7' : 103, +\ 'VK_NUMPAD8' : 104, +\ 'VK_NUMPAD9' : 105, +\ 'VK_OEM_CLEAR' : 254, +\ 'VK_PA1' : 253, +\ 'VK_PAUSE' : 19, +\ 'VK_PLAY' : 250, +\ 'VK_PRINT' : 42, +\ 'VK_PRIOR' : 33, +\ 'VK_PROCESSKEY' : 229, +\ 'VK_RBUTTON' : 2, +\ 'VK_RCONTROL' : 163, +\ 'VK_RETURN' : 13, +\ 'VK_RIGHT' : 39, +\ 'VK_RIGHT_CTL' : '39;1024', +\ 'VK_RMENU' : 165, +\ 'VK_RSHIFT' : 161, +\ 'VK_RWIN' : 92, +\ 'VK_SCROLL' : 145, +\ 'VK_SELECT' : 41, +\ 'VK_SEPARATOR' : 108, +\ 'VK_SHIFT' : 16, +\ 'VK_SNAPSHOT' : 44, +\ 'VK_SPACE' : 32, +\ 'VK_SUBTRACT' : 109, +\ 'VK_TAB' : 9, +\ 'VK_UP' : 38, +\ 'VK_UP_CTL' : '38;1024', +\ 'VK_VOLUME_DOWN' : 174, +\ 'VK_VOLUME_MUTE' : 173, +\ 'VK_VOLUME_UP' : 175, +\ 'VK_XBUTTON1' : 5, +\ 'VK_XBUTTON2' : 6, +\ 'VK_ZOOM' : 251 +\ } +" }}} + +" ********************************************************************************************************** +" **** ACTUAL CONQUE FUNCTIONS! *************************************************************************** +" ********************************************************************************************************** + +" {{{ + +" launch conque +function! conque_term#open(...) "{{{ + let command = get(a:000, 0, '') + let vim_startup_commands = get(a:000, 1, []) + let return_to_current = get(a:000, 2, 0) + let is_buffer = get(a:000, 3, 1) + + " dependency check + if !conque_term#dependency_check() + return 0 + endif + + " switch to buffer if needed + if is_buffer && return_to_current + let save_sb = &switchbuf + sil set switchbuf=usetab + let current_buffer = bufname("%") + endif + + " bare minimum validation + if s:py == '' + echohl WarningMsg | echomsg "Conque requires the Python interface to be installed. See :help ConqueTerm for more information." | echohl None + return 0 + endif + if empty(command) + echohl WarningMsg | echomsg "Invalid usage: no program path given. Use :ConqueTerm YOUR PROGRAM, e.g. :ConqueTerm ipython" | echohl None + return 0 + else + let cmd_args = split(command, '[^\\]\@<=\s') + let cmd_args[0] = substitute(cmd_args[0], '\\ ', ' ', 'g') + if !executable(cmd_args[0]) + echohl WarningMsg | echomsg "Not an executable: " . cmd_args[0] | echohl None + return 0 + endif + endif + + " initialize global identifiers + let g:ConqueTerm_Idx += 1 + let g:ConqueTerm_Var = 'ConqueTerm_' . g:ConqueTerm_Idx + let g:ConqueTerm_BufName = substitute(command, ' ', '\\ ', 'g') . "\\ -\\ " . g:ConqueTerm_Idx + + " initialize global mappings if needed + call conque_term#init() + + " set Vim buffer window options + if is_buffer + call conque_term#set_buffer_settings(command, vim_startup_commands) + + let b:ConqueTerm_Idx = g:ConqueTerm_Idx + let b:ConqueTerm_Var = g:ConqueTerm_Var + endif + + " save terminal instance + let t_obj = conque_term#create_terminal_object(g:ConqueTerm_Idx, is_buffer, g:ConqueTerm_BufName, command) + let g:ConqueTerm_Terminals[g:ConqueTerm_Idx] = t_obj + + " required for session support + let g:ConqueTerm_TerminalsString = string(g:ConqueTerm_Terminals) + + " open command + try + let options = {} + let options["TERM"] = g:ConqueTerm_TERM + let options["CODE_PAGE"] = g:ConqueTerm_CodePage + let options["color"] = g:ConqueTerm_Color + let options["offset"] = 0 " g:ConqueTerm_StartMessages * 10 + + if s:platform == 'unix' + execute s:py . ' ' . g:ConqueTerm_Var . ' = Conque()' + execute s:py . ' ' . g:ConqueTerm_Var . ".open()" + else + " find python.exe and communicator + let py_exe = conque_term#find_python_exe() + let py_vim = s:scriptdirpy . 'conque_sole_communicator.py' + execute s:py . ' ' . g:ConqueTerm_Var . ' = ConqueSole()' + execute s:py . ' ' . g:ConqueTerm_Var . ".open()" + + if g:ConqueTerm_ColorMode == 'conceal' + call conque_term#init_conceal_color() + endif + endif + catch + echohl WarningMsg | echomsg "An error occurred: " . command | echohl None + return 0 + endtry + + " set key mappings and auto commands + if is_buffer + call conque_term#set_mappings('start') + endif + + " call user defined functions + call conque_term#call_hooks('after_startup', t_obj) + + " switch to buffer if needed + if is_buffer && return_to_current + sil exe ":sb " . current_buffer + sil exe ":set switchbuf=" . save_sb + elseif is_buffer + startinsert! + endif + + return t_obj + +endfunction "}}} + +" open(), but no buffer +function! conque_term#subprocess(command) " {{{ + + let t_obj = conque_term#open(a:command, [], 0, 0) + if !exists('b:ConqueTerm_Var') + call conque_term#on_blur() + sil exe s:py . ' ' . g:ConqueTerm_Var . '.idle()' + endif + return t_obj + +endfunction " }}} + +" set buffer options +function! conque_term#set_buffer_settings(command, vim_startup_commands) "{{{ + + " optional hooks to execute, e.g. 'split' + for h in a:vim_startup_commands + sil exe h + endfor + sil exe 'edit ++enc=utf-8 ' . g:ConqueTerm_BufName + + " buffer settings + setlocal fileencoding=utf-8 " file encoding, even tho there's no file + setlocal nopaste " conque won't work in paste mode + setlocal buftype=nofile " this buffer is not a file, you can't save it + setlocal nonumber " hide line numbers + if v:version >= 703 + setlocal norelativenumber " hide relative line numbers (VIM >= 7.3) + endif + setlocal foldcolumn=0 " reasonable left margin + setlocal nowrap " default to no wrap (esp with MySQL) + setlocal noswapfile " don't bother creating a .swp file + setlocal scrolloff=0 " don't use buffer lines. it makes the 'clear' command not work as expected + setlocal sidescrolloff=0 " don't use buffer lines. it makes the 'clear' command not work as expected + setlocal sidescroll=1 " don't use buffer lines. it makes the 'clear' command not work as expected + setlocal foldmethod=manual " don't fold on {{{}}} and stuff + setlocal bufhidden=hide " when buffer is no longer displayed, don't wipe it out + setlocal noreadonly " this is not actually a readonly buffer + if v:version >= 703 + setlocal conceallevel=3 + setlocal concealcursor=nic + endif + if g:ConqueTerm_ReadUnfocused + set cpoptions+=I " Don't remove autoindent when moving cursor up and down + endif + setfiletype conque_term " useful + sil exe "setlocal syntax=" . g:ConqueTerm_Syntax + + " temporary global settings go in here + call conque_term#on_focus(1) + +endfunction " }}} + +" send normal character key press to terminal +function! conque_term#key_press() "{{{ + sil exe s:py . ' ' . b:ConqueTerm_Var . ".write_buffered_ord(" . char2nr(v:char) . ")" + sil let v:char = '' +endfunction " }}} + +" set key mappings and auto commands +function! conque_term#set_mappings(action) "{{{ + + " set action {{{ + if a:action == 'toggle' + if exists('b:conque_on') && b:conque_on == 1 + let l:action = 'stop' + echohl WarningMsg | echomsg "Terminal is paused" | echohl None + else + let l:action = 'start' + echohl WarningMsg | echomsg "Terminal is resumed" | echohl None + endif + else + let l:action = a:action + endif + + " if mappings are being removed, add 'un' + let map_modifier = 'nore' + if l:action == 'stop' + let map_modifier = 'un' + endif + " }}} + + " auto commands {{{ + if l:action == 'stop' + sil exe 'autocmd! ' . b:ConqueTerm_Var + + else + sil exe 'augroup ' . b:ConqueTerm_Var + + " handle unexpected closing of shell, passes HUP to parent and all child processes + sil exe 'autocmd ' . b:ConqueTerm_Var . ' BufDelete call g:ConqueTerm_Terminals[' . b:ConqueTerm_Idx . '].close()' + sil exe 'autocmd ' . b:ConqueTerm_Var . ' BufUnload call g:ConqueTerm_Terminals[' . b:ConqueTerm_Idx . '].close()' + + " check for resized/scrolled buffer when entering buffer + sil exe 'autocmd ' . b:ConqueTerm_Var . ' BufEnter ' . s:py . ' ' . b:ConqueTerm_Var . '.update_window_size()' + sil exe 'autocmd ' . b:ConqueTerm_Var . ' VimResized ' . s:py . ' ' . b:ConqueTerm_Var . '.update_window_size()' + + " set/reset updatetime on entering/exiting buffer + sil exe 'autocmd ' . b:ConqueTerm_Var . ' BufEnter call conque_term#on_focus()' + sil exe 'autocmd ' . b:ConqueTerm_Var . ' BufLeave call conque_term#on_blur()' + + " reposition cursor when going into insert mode + sil exe 'autocmd ' . b:ConqueTerm_Var . ' InsertEnter ' . s:py . ' ' . b:ConqueTerm_Var . '.insert_enter()' + + " poll for more output + sil exe 'autocmd ' . b:ConqueTerm_Var . ' CursorHoldI ' . s:py . ' ' . b:ConqueTerm_Var . '.auto_read()' + endif + " }}} + + " map ASCII 1-31 {{{ + for c in range(1, 31) + " + if c == 27 || c == 3 + continue + endif + if l:action == 'start' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_ord(' . c . ')' + else + sil exe 'i' . map_modifier . 'map ' + endif + endfor + " bonus mapping: send in normal mode to terminal as well for panic interrupts + if l:action == 'start' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_ord(3)' + sil exe 'n' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_ord(3)' + else + sil exe 'i' . map_modifier . 'map ' + sil exe 'n' . map_modifier . 'map ' + endif + + " leave insert mode + if !exists('g:ConqueTerm_EscKey') || g:ConqueTerm_EscKey == '' + " use to send to terminal + if l:action == 'start' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_ord(27)' + else + sil exe 'i' . map_modifier . 'map ' + endif + else + " use to send to terminal + if l:action == 'start' + sil exe 'i' . map_modifier . 'map ' . g:ConqueTerm_EscKey . ' ' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_ord(27)' + else + sil exe 'i' . map_modifier . 'map ' . g:ConqueTerm_EscKey + sil exe 'i' . map_modifier . 'map ' + endif + endif + + " Map in insert mode + if exists('g:ConqueTerm_CWInsert') && g:ConqueTerm_CWInsert == 1 + inoremap + endif + " }}} + + " map 33 and beyond {{{ + if exists('##InsertCharPre') && g:ConqueTerm_InsertCharPre == 1 + if l:action == 'start' + autocmd InsertCharPre call conque_term#key_press() + else + autocmd! InsertCharPre + endif + else + for i in range(33, 127) + " + if i == 124 + if l:action == 'start' + sil exe "i" . map_modifier . "map :" . s:py . ' ' . b:ConqueTerm_Var . ".write_ord(124)" + else + sil exe "i" . map_modifier . "map " + endif + continue + endif + if l:action == 'start' + sil exe "i" . map_modifier . "map " . nr2char(i) . " :" . s:py . ' ' . b:ConqueTerm_Var . ".write_ord(" . i . ")" + else + sil exe "i" . map_modifier . "map " . nr2char(i) + endif + endfor + endif + " }}} + + " Special keys {{{ + if l:action == 'start' + if s:platform == 'unix' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x08"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u(" "))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x08"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u(" "))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[A"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[B"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[C"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[D"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1bOH"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1bOF"))' + else + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x08"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u(" "))' + + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x08"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u(" "))' + + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_UP . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_DOWN . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_RIGHT . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_LEFT . ')' + + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk("' . s:windows_vk.VK_UP_CTL . '")' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk("' . s:windows_vk.VK_DOWN_CTL . '")' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk("' . s:windows_vk.VK_RIGHT_CTL . '")' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk("' . s:windows_vk.VK_LEFT_CTL . '")' + + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_DELETE . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_HOME . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_END . ')' + endif + else + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + endif + " }}} + + " keys {{{ + if g:ConqueTerm_SendFunctionKeys + if l:action == 'start' + if s:platform == 'unix' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[11~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[12~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("1b[13~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[14~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[15~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[17~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[18~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[19~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[20~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[21~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[23~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[24~"))' + else + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F1 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F2 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F3 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F4 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F5 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F6 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F7 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F8 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F9 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F10 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F11 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F12 . ')' + endif + else + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + endif + endif + " }}} + + " various global mappings {{{ + " don't overwrite existing mappings + if l:action == 'start' + if maparg(g:ConqueTerm_SendVisKey, 'v') == '' + sil exe 'v' . map_modifier . 'map ' . g:ConqueTerm_SendVisKey . ' :call conque_term#send_selected(visualmode())' + endif + if maparg(g:ConqueTerm_SendFileKey, 'n') == '' + sil exe 'n' . map_modifier . 'map ' . g:ConqueTerm_SendFileKey . ' :call conque_term#send_file()' + endif + endif + " }}} + + " remap paste keys {{{ + if l:action == 'start' + sil exe 'n' . map_modifier . 'map p :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@@")a' + sil exe 'n' . map_modifier . 'map P :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@@")a' + sil exe 'n' . map_modifier . 'map ]p :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@@")a' + sil exe 'n' . map_modifier . 'map [p :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@@")a' + else + sil exe 'n' . map_modifier . 'map p' + sil exe 'n' . map_modifier . 'map P' + sil exe 'n' . map_modifier . 'map ]p' + sil exe 'n' . map_modifier . 'map [p' + endif + if has('gui_running') == 1 + if l:action == 'start' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@+")a' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@+")a' + else + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + endif + endif + " }}} + + " disable other normal mode keys which insert text {{{ + if l:action == 'start' + sil exe 'n' . map_modifier . 'map r :echo "Replace mode disabled in shell."' + sil exe 'n' . map_modifier . 'map R :echo "Replace mode disabled in shell."' + sil exe 'n' . map_modifier . 'map c :echo "Change mode disabled in shell."' + sil exe 'n' . map_modifier . 'map C :echo "Change mode disabled in shell."' + sil exe 'n' . map_modifier . 'map s :echo "Change mode disabled in shell."' + sil exe 'n' . map_modifier . 'map S :echo "Change mode disabled in shell."' + else + sil exe 'n' . map_modifier . 'map r' + sil exe 'n' . map_modifier . 'map R' + sil exe 'n' . map_modifier . 'map c' + sil exe 'n' . map_modifier . 'map C' + sil exe 'n' . map_modifier . 'map s' + sil exe 'n' . map_modifier . 'map S' + endif + " }}} + + " set conque as on or off {{{ + if l:action == 'start' + let b:conque_on = 1 + else + let b:conque_on = 0 + endif + " }}} + + " map command to toggle terminal key mappings {{{ + if a:action == 'start' + sil exe 'nnoremap ' . g:ConqueTerm_ToggleKey . ' :call conque_term#set_mappings("toggle")' + endif + " }}} + + " call user defined functions + if l:action == 'start' + call conque_term#call_hooks('after_keymap', conque_term#get_instance()) + endif + +endfunction " }}} + +" Initialize global mappings. Should only be called once per Vim session +function! conque_term#init() " {{{ + + if s:initialized == 1 + return + endif + + augroup ConqueTerm + + " abort any remaining running terminals when Vim exits + autocmd ConqueTerm VimLeave * call conque_term#close_all() + + " read more output when this isn't the current buffer + if g:ConqueTerm_ReadUnfocused == 1 + autocmd ConqueTerm CursorHold * call conque_term#read_all(0) + endif + + let s:initialized = 1 + +endfunction " }}} + +" read from all known conque buffers +function! conque_term#read_all(insert_mode) "{{{ + + for i in range(1, g:ConqueTerm_Idx) + try + if !g:ConqueTerm_Terminals[i].active + continue + endif + + let output = g:ConqueTerm_Terminals[i].read(1) + + if !g:ConqueTerm_Terminals[i].is_buffer && exists('*g:ConqueTerm_Terminals[i].callback') + call g:ConqueTerm_Terminals[i].callback(output) + endif + catch + " probably a deleted buffer + endtry + endfor + + " restart updatetime + if a:insert_mode + "call feedkeys("\f\e", "n") + let p = getpos('.') + if p[1] == 1 + sil exe 'call feedkeys("\\", "n")' + else + sil exe 'call feedkeys("\\", "n")' + endif + call setpos('.', p) + else + call feedkeys("f\e", "n") + endif + +endfunction "}}} + +" close all subprocesses +function! conque_term#close_all() "{{{ + + for i in range(1, g:ConqueTerm_Idx) + try + call g:ConqueTerm_Terminals[i].close() + catch + " probably a deleted buffer + endtry + endfor + +endfunction "}}} + +" gets called when user enters conque buffer. +" Useful for making temp changes to global config +function! conque_term#on_focus(...) " {{{ + + let startup = get(a:000, 0, 0) + + " Disable NeoComplCache. It has global hooks on CursorHold and CursorMoved :-/ + let s:NeoComplCache_WasEnabled = exists(':NeoComplCacheLock') + if s:NeoComplCache_WasEnabled == 2 + NeoComplCacheLock + endif + + if g:ConqueTerm_ReadUnfocused == 1 + autocmd! ConqueTerm CursorHoldI * + autocmd! ConqueTerm CursorHold * + endif + + " set poll interval to 50ms + set updatetime=50 + + " resume subprocess fast polling + if startup == 0 && exists('b:ConqueTerm_Var') + sil exe s:py . ' ' . g:ConqueTerm_Var . '.resume()' + endif + + " call user defined functions + if startup == 0 + call conque_term#call_hooks('buffer_enter', conque_term#get_instance()) + endif + + " if configured, go into insert mode + if g:ConqueTerm_InsertOnEnter == 1 + startinsert! + endif + +endfunction " }}} + +" gets called when user exits conque buffer. +" Useful for resetting changes to global config +function! conque_term#on_blur() " {{{ + " re-enable NeoComplCache if needed + if exists('s:NeoComplCache_WasEnabled') && exists(':NeoComplCacheUnlock') && s:NeoComplCache_WasEnabled == 2 + NeoComplCacheUnlock + endif + + " turn off subprocess fast polling + if exists('b:ConqueTerm_Var') + sil exe s:py . ' ' . b:ConqueTerm_Var . '.idle()' + endif + + " reset poll interval + if g:ConqueTerm_ReadUnfocused == 1 + set updatetime=1000 + autocmd ConqueTerm CursorHoldI * call conque_term#read_all(1) + autocmd ConqueTerm CursorHold * call conque_term#read_all(0) + elseif exists('s:save_updatetime') + exe 'set updatetime=' . s:save_updatetime + else + set updatetime=2000 + endif + + " call user defined functions + call conque_term#call_hooks('buffer_leave', conque_term#get_instance()) + +endfunction " }}} + +" bell event (^G) +function! conque_term#bell() " {{{ + echohl WarningMsg | echomsg "BELL!" | echohl None +endfunction " }}} + +" register function to be called at conque events +function! conque_term#register_function(event, function_name) " {{{ + + if !has_key(s:hooks, a:event) + echomsg 'No such event: ' . a:event + return + endif + + if !exists('*' . a:function_name) + echomsg 'No such function: ' . a:function_name) + return + endif + + " register the function + call add(s:hooks[a:event], function(a:function_name)) + +endfunction " }}} + +" call hooks for an event +function! conque_term#call_hooks(event, t_obj) " {{{ + + for Fu in s:hooks[a:event] + call Fu(a:t_obj) + endfor + +endfunction " }}} + +" }}} + +" ********************************************************************************************************** +" **** Windows only functions ****************************************************************************** +" ********************************************************************************************************** + +" {{{ + +" find python.exe in windows +function! conque_term#find_python_exe() " {{{ + + " first check configuration for custom value + if g:ConqueTerm_PyExe != '' && executable(g:ConqueTerm_PyExe) + return g:ConqueTerm_PyExe + endif + + let sys_paths = split($PATH, ';') + + " get exact python version + sil exe ':' . s:py . ' import sys, vim' + sil exe ':' . s:py . ' vim.command("let g:ConqueTerm_PyVersion = " + str(sys.version_info[0]) + str(sys.version_info[1]))' + + " ... and add to path list + call add(sys_paths, 'C:\Python' . g:ConqueTerm_PyVersion) + call reverse(sys_paths) + + " check if python.exe is in paths + for path in sys_paths + let cand = path . '\' . 'python.exe' + if executable(cand) + return cand + endif + endfor + + echohl WarningMsg | echomsg "Unable to find python.exe, see :help ConqueTerm_PythonExe for more information" | echohl None + + return '' + +endfunction " }}} + +" initialize concealed colors +function! conque_term#init_conceal_color() " {{{ + + highlight link ConqueCCBG Normal + + " foreground colors, low intensity + syn region ConqueCCF000 matchgroup=ConqueConceal start="\esf000;" end="\eef000;" concealends contains=ConqueCCBG + syn region ConqueCCF00c matchgroup=ConqueConceal start="\esf00c;" end="\eef00c;" concealends contains=ConqueCCBG + syn region ConqueCCF0c0 matchgroup=ConqueConceal start="\esf0c0;" end="\eef0c0;" concealends contains=ConqueCCBG + syn region ConqueCCF0cc matchgroup=ConqueConceal start="\esf0cc;" end="\eef0cc;" concealends contains=ConqueCCBG + syn region ConqueCCFc00 matchgroup=ConqueConceal start="\esfc00;" end="\eefc00;" concealends contains=ConqueCCBG + syn region ConqueCCFc0c matchgroup=ConqueConceal start="\esfc0c;" end="\eefc0c;" concealends contains=ConqueCCBG + syn region ConqueCCFcc0 matchgroup=ConqueConceal start="\esfcc0;" end="\eefcc0;" concealends contains=ConqueCCBG + syn region ConqueCCFccc matchgroup=ConqueConceal start="\esfccc;" end="\eefccc;" concealends contains=ConqueCCBG + + " foreground colors, high intensity + syn region ConqueCCF000 matchgroup=ConqueConceal start="\esf000;" end="\eef000;" concealends contains=ConqueCCBG + syn region ConqueCCF00f matchgroup=ConqueConceal start="\esf00f;" end="\eef00f;" concealends contains=ConqueCCBG + syn region ConqueCCF0f0 matchgroup=ConqueConceal start="\esf0f0;" end="\eef0f0;" concealends contains=ConqueCCBG + syn region ConqueCCF0ff matchgroup=ConqueConceal start="\esf0ff;" end="\eef0ff;" concealends contains=ConqueCCBG + syn region ConqueCCFf00 matchgroup=ConqueConceal start="\esff00;" end="\eeff00;" concealends contains=ConqueCCBG + syn region ConqueCCFf0f matchgroup=ConqueConceal start="\esff0f;" end="\eeff0f;" concealends contains=ConqueCCBG + syn region ConqueCCFff0 matchgroup=ConqueConceal start="\esfff0;" end="\eefff0;" concealends contains=ConqueCCBG + syn region ConqueCCFfff matchgroup=ConqueConceal start="\esffff;" end="\eeffff;" concealends contains=ConqueCCBG + + " background colors, low intensity + syn region ConqueCCB000 matchgroup=ConqueCCBG start="\esb000;" end="\eeb000;" concealends + syn region ConqueCCB00c matchgroup=ConqueCCBG start="\esb00c;" end="\eeb00c;" concealends + syn region ConqueCCB0c0 matchgroup=ConqueCCBG start="\esb0c0;" end="\eeb0c0;" concealends + syn region ConqueCCB0cc matchgroup=ConqueCCBG start="\esb0cc;" end="\eeb0cc;" concealends + syn region ConqueCCBc00 matchgroup=ConqueCCBG start="\esbc00;" end="\eebc00;" concealends + syn region ConqueCCBc0c matchgroup=ConqueCCBG start="\esbc0c;" end="\eebc0c;" concealends + syn region ConqueCCBcc0 matchgroup=ConqueCCBG start="\esbcc0;" end="\eebcc0;" concealends + syn region ConqueCCBccc matchgroup=ConqueCCBG start="\esbccc;" end="\eebccc;" concealends + + " background colors, high intensity + syn region ConqueCCB000 matchgroup=ConqueCCBG start="\esb000;" end="\eeb000;" concealends + syn region ConqueCCB00f matchgroup=ConqueCCBG start="\esb00f;" end="\eeb00f;" concealends + syn region ConqueCCB0f0 matchgroup=ConqueCCBG start="\esb0f0;" end="\eeb0f0;" concealends + syn region ConqueCCB0ff matchgroup=ConqueCCBG start="\esb0ff;" end="\eeb0ff;" concealends + syn region ConqueCCBf00 matchgroup=ConqueCCBG start="\esbf00;" end="\eebf00;" concealends + syn region ConqueCCBf0f matchgroup=ConqueCCBG start="\esbf0f;" end="\eebf0f;" concealends + syn region ConqueCCBff0 matchgroup=ConqueCCBG start="\esbff0;" end="\eebff0;" concealends + syn region ConqueCCBfff matchgroup=ConqueCCBG start="\esbfff;" end="\eebfff;" concealends + + + """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + + "highlight link ConqueCCConceal Error + + " foreground colors, low intensity + highlight ConqueCCF000 guifg=#000000 + highlight ConqueCCF00c guifg=#0000cc + highlight ConqueCCF0c0 guifg=#00cc00 + highlight ConqueCCF0cc guifg=#00cccc + highlight ConqueCCFc00 guifg=#cc0000 + highlight ConqueCCFc0c guifg=#cc00cc + highlight ConqueCCFcc0 guifg=#cccc00 + highlight ConqueCCFccc guifg=#cccccc + + " foreground colors, high intensity + highlight ConqueCCF000 guifg=#000000 + highlight ConqueCCF00f guifg=#0000ff + highlight ConqueCCF0f0 guifg=#00ff00 + highlight ConqueCCF0ff guifg=#00ffff + highlight ConqueCCFf00 guifg=#ff0000 + highlight ConqueCCFf0f guifg=#ff00ff + highlight ConqueCCFff0 guifg=#ffff00 + highlight ConqueCCFfff guifg=#ffffff + + " background colors, low intensity + highlight ConqueCCB000 guibg=#000000 + highlight ConqueCCB00c guibg=#0000cc + highlight ConqueCCB0c0 guibg=#00cc00 + highlight ConqueCCB0cc guibg=#00cccc + highlight ConqueCCBc00 guibg=#cc0000 + highlight ConqueCCBc0c guibg=#cc00cc + highlight ConqueCCBcc0 guibg=#cccc00 + highlight ConqueCCBccc guibg=#cccccc + + " background colors, high intensity + highlight ConqueCCB000 guibg=#000000 + highlight ConqueCCB00f guibg=#0000ff + highlight ConqueCCB0f0 guibg=#00ff00 + highlight ConqueCCB0ff guibg=#00ffff + highlight ConqueCCBf00 guibg=#ff0000 + highlight ConqueCCBf0f guibg=#ff00ff + highlight ConqueCCBff0 guibg=#ffff00 + highlight ConqueCCBfff guibg=#ffffff + + " background colors, low intensity + highlight link ConqueCCB000 ConqueCCBG + highlight link ConqueCCB00c ConqueCCBG + highlight link ConqueCCB0c0 ConqueCCBG + highlight link ConqueCCB0cc ConqueCCBG + highlight link ConqueCCBc00 ConqueCCBG + highlight link ConqueCCBc0c ConqueCCBG + highlight link ConqueCCBcc0 ConqueCCBG + highlight link ConqueCCBccc ConqueCCBG + + " background colors, high intensity + highlight link ConqueCCB000 ConqueCCBG + highlight link ConqueCCB00f ConqueCCBG + highlight link ConqueCCB0f0 ConqueCCBG + highlight link ConqueCCB0ff ConqueCCBG + highlight link ConqueCCBf00 ConqueCCBG + highlight link ConqueCCBf0f ConqueCCBG + highlight link ConqueCCBff0 ConqueCCBG + highlight link ConqueCCBfff ConqueCCBG + +endfunction " }}} + +" }}} + +" ********************************************************************************************************** +" **** Add-on features ************************************************************************************* +" ********************************************************************************************************** + +" {{{ + +" send selected text from another buffer +function! conque_term#send_selected(type) "{{{ + + " get most recent/relevant terminal + let term = conque_term#get_instance() + + " shove visual text into @@ register + let reg_save = @@ + sil exe "normal! `<" . a:type . "`>y" + let @@ = substitute(@@, '^[\r\n]*', '', '') + let @@ = substitute(@@, '[\r\n]*$', '', '') + + " go to terminal buffer + call term.focus() + + " execute yanked text + call term.write(@@) + + " reset original values + let @@ = reg_save + + " scroll buffer left + startinsert! + normal! 0zH + +endfunction "}}} + +function! conque_term#send_file() "{{{ + + let file_lines = readfile(expand('%:p')) + if type(file_lines) == 3 && len(file_lines) > 0 + let term = conque_term#get_instance() + call term.focus() + + for line in file_lines + call term.writeln(line) + endfor + else + echomsg 'Could not read file: ' . expand('%:p') + endif + +endfunction "}}} + + +function! conque_term#exec_file() "{{{ + + let current_file = expand('%:p') + if !executable(current_file) + echomsg "Could not run " . current_file . ". Not an executable." + return + endif + exe ':ConqueTermSplit ' . current_file + +endfunction "}}} + + +" called on SessionLoadPost event +function! conque_term#resume_session() " {{{ + if g:ConqueTerm_SessionSupport == 1 + + " make sure terminals exist + if !exists('s:saved_terminals') || type(s:saved_terminals) != 4 + return + endif + + " rebuild terminals + for idx in keys(s:saved_terminals) + + " don't recreate inactive terminals + if s:saved_terminals[idx].active == 0 + continue + endif + + " check we're in the right buffer + let bufname = substitute(s:saved_terminals[idx].buffer_name, '\', '', 'g') + if bufname != bufname("%") + continue + endif + + " reopen command + call conque_term#open(s:saved_terminals[idx].command) + + return + endfor + + endif +endfunction " }}} + +" }}} + +" ********************************************************************************************************** +" **** "API" functions ************************************************************************************* +" ********************************************************************************************************** + +" See doc/conque_term.txt for full documentation {{{ + +" Write to a conque terminal buffer +function! s:term_obj.write(...) dict " {{{ + + let text = get(a:000, 0, '') + let jump_to_buffer = get(a:000, 1, 0) + + " if we're not in terminal buffer, pass flag to not position the cursor + sil exe s:py . ' ' . self.var . '.write_expr("text", False, False)' + + " move cursor to conque buffer + if jump_to_buffer + call self.focus() + endif + +endfunction " }}} + +" same as write() but adds a newline +function! s:term_obj.writeln(...) dict " {{{ + + let text = get(a:000, 0, '') + let jump_to_buffer = get(a:000, 1, 0) + + call self.write(text . "\r", jump_to_buffer) + +endfunction " }}} + +" move cursor to terminal buffer +function! s:term_obj.focus() dict " {{{ + + let save_sb = &switchbuf + sil set switchbuf=usetab + exe 'sb ' . self.buffer_name + sil exe ":set switchbuf=" . save_sb + startinsert! + +endfunction " }}} + +" read from terminal buffer and return string +function! s:term_obj.read(...) dict " {{{ + + let read_time = get(a:000, 0, 1) + let update_buffer = get(a:000, 1, self.is_buffer) + + if update_buffer + let up_py = 'True' + else + let up_py = 'False' + endif + + " figure out if we're in the buffer we're updating + if exists('b:ConqueTerm_Var') && b:ConqueTerm_Var == self.var + let in_buffer = 1 + else + let in_buffer = 0 + endif + + let output = '' + + " read! + sil exec s:py . " conque_tmp = " . self.var . ".read(timeout = " . read_time . ", set_cursor = False, return_output = True, update_buffer = " . up_py . ")" + + " ftw! + try + let pycode = "\nif conque_tmp:\n conque_tmp = re.sub('\\\\\\\\', '\\\\\\\\\\\\\\\\', conque_tmp)\n conque_tmp = re.sub('\"', '\\\\\\\\\"', conque_tmp)\n vim.command('let output = \"' + conque_tmp + '\"')\n" + sil exec s:py . pycode + catch + " d'oh + endtry + + return output + +endfunction " }}} + +" set output callback +function! s:term_obj.set_callback(callback_func) dict " {{{ + + let g:ConqueTerm_Terminals[self.idx].callback = function(a:callback_func) + +endfunction " }}} + +" close subprocess with ABORT signal +function! s:term_obj.close() dict " {{{ + + " kill process + try + sil exe s:py . ' ' . self.var . '.abort()' + catch + " probably already dead + endtry + + " delete buffer if option is set + try + if self.is_buffer + call conque_term#set_mappings('stop') + if exists('g:ConqueTerm_CloseOnEnd') && g:ConqueTerm_CloseOnEnd + sil exe 'bwipeout! ' . self.buffer_name + stopinsert! + endif + endif + catch + endtry + + " mark ourselves as inactive + let self.active = 0 + + " rebuild session options + let g:ConqueTerm_TerminalsString = string(g:ConqueTerm_Terminals) + +endfunction " }}} + +" create a new terminal object +function! conque_term#create_terminal_object(...) " {{{ + + " find conque buffer to update + let buf_num = get(a:000, 0, 0) + if buf_num > 0 + let pvar = 'ConqueTerm_' . buf_num + elseif exists('b:ConqueTerm_Var') + let pvar = b:ConqueTerm_Var + let buf_num = b:ConqueTerm_Idx + else + let pvar = g:ConqueTerm_Var + let buf_num = g:ConqueTerm_Idx + endif + + " is ther a buffer? + let is_buffer = get(a:000, 1, 1) + + " the buffer name + let bname = get(a:000, 2, '') + + " the command + let command = get(a:000, 3, '') + + " parse out the program name (not perfect) + let arg_split = split(command, '[^\\]\@<=\s') + let arg_split[0] = substitute(arg_split[0], '\\ ', ' ', 'g') + let slash_split = split(arg_split[0], '[/\\]') + let prg_name = substitute(slash_split[-1], '\(.*\)\..*', '\1', '') + + let l:t_obj = copy(s:term_obj) + let l:t_obj.is_buffer = is_buffer + let l:t_obj.idx = buf_num + let l:t_obj.buffer_name = bname + let l:t_obj.var = pvar + let l:t_obj.command = command + let l:t_obj.program_name = prg_name + + return l:t_obj + +endfunction " }}} + +" get an existing terminal instance +function! conque_term#get_instance(...) " {{{ + + " find conque buffer to update + let buf_num = get(a:000, 0, 0) + + if exists('g:ConqueTerm_Terminals[buf_num]') + + elseif exists('b:ConqueTerm_Var') + let buf_num = b:ConqueTerm_Idx + else + let buf_num = g:ConqueTerm_Idx + endif + + return g:ConqueTerm_Terminals[buf_num] + +endfunction " }}} + +" }}} + +" ********************************************************************************************************** +" **** PYTHON ********************************************************************************************** +" ********************************************************************************************************** + +function! conque_term#load_python() " {{{ + + exec s:py . "file " . s:scriptdirpy . "conque_globals.py" + exec s:py . "file " . s:scriptdirpy . "conque.py" + if s:platform == 'windows' + exec s:py . "file " . s:scriptdirpy . "conque_win32_util.py" + exec s:py . "file " . s:scriptdirpy . "conque_sole_shared_memory.py" + exec s:py . "file " . s:scriptdirpy . "conque_sole.py" + exec s:py . "file " . s:scriptdirpy . "conque_sole_wrapper.py" + else + exec s:py . "file " . s:scriptdirpy . "conque_screen.py" + exec s:py . "file " . s:scriptdirpy . "conque_subprocess.py" + endif + +endfunction " }}} + +" vim:foldmethod=marker diff --git a/vim/autoload/conque_term/conque.py b/vim/autoload/conque_term/conque.py new file mode 100644 index 0000000..ed294fa --- /dev/null +++ b/vim/autoload/conque_term/conque.py @@ -0,0 +1,1152 @@ +# FILE: autoload/conque_term/conque.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-09-02 +# VERSION: 2.3, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-2011 Nico Raffo +# +# 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. + +""" +Vim terminal emulator. + +This class is the main interface between Vim and the terminal application. It +handles both updating the Vim buffer with new output and accepting new keyboard +input from the Vim user. + +Although this class was originally designed for a Unix terminal environment, it +has been extended by the ConqueSole class for Windows. + +Usage: + term = Conque() + term.open('/bin/bash', {'TERM': 'vt100'}) + term.write("ls -lha\r") + term.read() + term.close() +""" + +import vim +import re +import math + + +class Conque: + + # screen object + screen = None + + # subprocess object + proc = None + + # terminal dimensions and scrolling region + columns = 80 # same as $COLUMNS + lines = 24 # same as $LINES + working_columns = 80 # can be changed by CSI ? 3 l/h + working_lines = 24 # can be changed by CSI r + + # top/bottom of the scroll region + top = 1 # relative to top of screen + bottom = 24 # relative to top of screen + + # cursor position + l = 1 # current cursor line + c = 1 # current cursor column + + # autowrap mode + autowrap = True + + # absolute coordinate mode + absolute_coords = True + + # tabstop positions + tabstops = [] + + # enable colors + enable_colors = True + + # color changes + color_changes = {} + + # color history + color_history = {} + + # color highlight cache + highlight_groups = {} + + # prune terminal colors + color_pruning = True + + # don't wrap table output + unwrap_tables = True + + # wrap CUF/CUB around line breaks + wrap_cursor = False + + # do we need to move the cursor? + cursor_set = False + + # current character set, ascii or graphics + character_set = 'ascii' + + # used for auto_read actions + read_count = 0 + + # input buffer, array of ordinals + input_buffer = [] + + def open(self): + """ Start program and initialize this instance. + + Arguments: + command -- Command string to execute, e.g. '/bin/bash --login' + options -- Dictionary of environment vars to set and other options. + + """ + # get arguments + command = vim.eval('command') + options = vim.eval('options') + + # create terminal screen instance + self.screen = ConqueScreen() + + # int vars + self.columns = vim.current.window.width + self.lines = vim.current.window.height + self.working_columns = vim.current.window.width + self.working_lines = vim.current.window.height + self.bottom = vim.current.window.height + + # offset first line to make room for startup messages + if int(options['offset']) > 0: + self.l = int(options['offset']) + + # init color + self.enable_colors = options['color'] and not CONQUE_FAST_MODE + + # init tabstops + self.init_tabstops() + + # open command + self.proc = ConqueSubprocess() + self.proc.open(command, {'TERM': options['TERM'], 'CONQUE': '1', 'LINES': str(self.lines), 'COLUMNS': str(self.columns)}) + + # send window size signal, in case LINES/COLUMNS is ignored + self.update_window_size(True) + + + def write(self, input, set_cursor=True, read=True): + """ Write a unicode string to the subprocess. + + set_cursor -- Position the cursor in the current buffer when finished + read -- Check program for new output when finished + + """ + # write and read + self.proc.write(input) + + # read output immediately + if read: + self.read(1, set_cursor) + + + + def write_ord(self, input, set_cursor=True, read=True): + """ Write a single character to the subprocess, using an unicode ordinal. """ + + if CONQUE_PYTHON_VERSION == 2: + self.write(unichr(input), set_cursor, read) + else: + self.write(chr(input), set_cursor, read) + + + + def write_expr(self, expr, set_cursor=True, read=True): + """ Write the value of a Vim expression to the subprocess. """ + + if CONQUE_PYTHON_VERSION == 2: + try: + val = vim.eval(expr) + self.write(unicode(val, CONQUE_VIM_ENCODING, 'ignore'), set_cursor, read) + except: + + pass + else: + try: + # XXX - Depending on Vim to deal with encoding, sadly + self.write(vim.eval(expr), set_cursor, read) + except: + + pass + + + def write_latin1(self, input, set_cursor=True, read=True): + """ Write latin-1 string to conque. Very ugly, shood be removed. """ + # XXX - this whole method is a hack, to be removed soon + + if CONQUE_PYTHON_VERSION == 2: + try: + input_unicode = input.decode('latin-1', 'ignore') + self.write(input_unicode.encode('utf-8', 'ignore'), set_cursor, read) + except: + return + else: + self.write(input, set_cursor, read) + + + def write_buffered_ord(self, chr): + """ Add character ordinal to input buffer. In case we're not allowed to modify buffer a time of input. """ + self.input_buffer.append(chr) + + + def read(self, timeout=1, set_cursor=True, return_output=False, update_buffer=True): + """ Read new output from the subprocess and update the Vim buffer. + + Arguments: + timeout -- Milliseconds to wait before reading input + set_cursor -- Set the cursor position in the current buffer when finished + return_output -- Return new subprocess STDOUT + STDERR as a string + update_buffer -- Update the current Vim buffer with the new output + + This method goes through the following rough steps: + 1. Get new output from subprocess + 2. Split output string into control codes, escape sequences, or plain text + 3. Loop over and process each chunk, updating the Vim buffer as we go + + """ + output = '' + + # this may not actually work + try: + + # read from subprocess and strip null characters + output = self.proc.read(timeout) + + if output == '': + return + + # for bufferless terminals + if not update_buffer: + return output + + + + # strip null characters. I'm still not sure why they appear + output = output.replace(chr(0), '') + + # split input into individual escape sequences, control codes, and text output + chunks = CONQUE_SEQ_REGEX.split(output) + + + + # if there were no escape sequences, skip processing and treat entire string as plain text + if len(chunks) == 1: + self.plain_text(chunks[0]) + + # loop through and process escape sequences + else: + for s in chunks: + if s == '': + continue + + + + + # Check for control character match + if CONQUE_SEQ_REGEX_CTL.match(s[0]): + + nr = ord(s[0]) + if nr in CONQUE_CTL: + getattr(self, 'ctl_' + CONQUE_CTL[nr])() + else: + + pass + + # check for escape sequence match + elif CONQUE_SEQ_REGEX_CSI.match(s): + + if s[-1] in CONQUE_ESCAPE: + csi = self.parse_csi(s[2:]) + + getattr(self, 'csi_' + CONQUE_ESCAPE[s[-1]])(csi) + else: + + pass + + # check for title match + elif CONQUE_SEQ_REGEX_TITLE.match(s): + + self.change_title(s[2], s[4:-1]) + + # check for hash match + elif CONQUE_SEQ_REGEX_HASH.match(s): + + if s[-1] in CONQUE_ESCAPE_HASH: + getattr(self, 'hash_' + CONQUE_ESCAPE_HASH[s[-1]])() + else: + + pass + + # check for charset match + elif CONQUE_SEQ_REGEX_CHAR.match(s): + + if s[-1] in CONQUE_ESCAPE_CHARSET: + getattr(self, 'charset_' + CONQUE_ESCAPE_CHARSET[s[-1]])() + else: + + pass + + # check for other escape match + elif CONQUE_SEQ_REGEX_ESC.match(s): + + if s[-1] in CONQUE_ESCAPE_PLAIN: + getattr(self, 'esc_' + CONQUE_ESCAPE_PLAIN[s[-1]])() + else: + + pass + + # else process plain text + else: + self.plain_text(s) + + # set cusor position + if set_cursor: + self.screen.set_cursor(self.l, self.c) + + # we need to set the cursor position + self.cursor_set = False + + except: + + + pass + + if return_output: + if CONQUE_PYTHON_VERSION == 3: + return output + else: + return output.encode(CONQUE_VIM_ENCODING, 'replace') + + + def auto_read(self): + """ Poll program for more output. + + Since Vim doesn't have a reliable event system that can be triggered when new + output is available, we have to continually poll the subprocess instead. This + method is called many times a second when the terminal buffer is active, so it + needs to be very fast and efficient. + + The feedkeys portion is required to reset Vim's timer system. The timer is used + to execute this command, typically set to go off after 50 ms of inactivity. + + """ + # process buffered input if any + if len(self.input_buffer): + for chr in self.input_buffer: + self.write_ord(chr, set_cursor=False, read=False) + self.input_buffer = [] + self.read(1) + + # check subprocess status, but not every time since it's CPU expensive + if self.read_count % 32 == 0: + if not self.proc.is_alive(): + vim.command('call conque_term#get_instance().close()') + return + + if self.read_count > 512: + self.read_count = 0 + + # trim color history occasionally if desired + if self.enable_colors and self.color_pruning: + self.prune_colors() + + # ++ + self.read_count += 1 + + # read output + self.read(1) + + # reset timer + if self.c == 1: + vim.command('call feedkeys("\\", "n")') + else: + vim.command('call feedkeys("\\", "n")') + + # stop here if cursor doesn't need to be moved + if self.cursor_set: + return + + # check if window size has changed + if not CONQUE_FAST_MODE: + self.update_window_size() + + + # otherwise set cursor position + try: + self.set_cursor(self.l, self.c) + except: + + + pass + + self.cursor_set = True + + + def plain_text(self, input): + """ Write text output to Vim buffer. + + + This method writes a string of characters without any control characters or escape sequences + to the Vim buffer. In simple terms, it writes the input string to the buffer starting at the + current cursor position, wrapping the text to a new line if needed. It also triggers the + terminal coloring methods if needed. + + + """ + # translate input into graphics character set if needed + if self.character_set == 'graphics': + old_input = input + input = u('') + for i in range(0, len(old_input)): + chrd = ord(old_input[i]) + + + try: + if chrd > 255: + + input = input + old_input[i] + else: + input = input + uchr(CONQUE_GRAPHICS_SET[chrd]) + except: + + pass + + + + # get current line from Vim buffer + current_line = self.screen[self.l] + + # pad current line with spaces, if it's shorter than cursor position + if len(current_line) < self.c: + current_line = current_line + ' ' * (self.c - len(current_line)) + + # if line is wider than screen + if self.c + len(input) - 1 > self.working_columns: + + # Table formatting hack + if self.unwrap_tables and CONQUE_TABLE_OUTPUT.match(input): + self.screen[self.l] = current_line[:self.c - 1] + input + current_line[self.c + len(input) - 1:] + self.apply_color(self.c, self.c + len(input)) + self.c += len(input) + return + + + diff = self.c + len(input) - self.working_columns - 1 + + # if autowrap is enabled + if self.autowrap: + self.screen[self.l] = current_line[:self.c - 1] + input[:-1 * diff] + self.apply_color(self.c, self.working_columns) + self.ctl_nl() + self.ctl_cr() + remaining = input[-1 * diff:] + + self.plain_text(remaining) + else: + self.screen[self.l] = current_line[:self.c - 1] + input[:-1 * diff - 1] + input[-1] + self.apply_color(self.c, self.working_columns) + self.c = self.working_columns + + # no autowrap + else: + self.screen[self.l] = current_line[:self.c - 1] + input + current_line[self.c + len(input) - 1:] + self.apply_color(self.c, self.c + len(input)) + self.c += len(input) + + + + def apply_color(self, start, end, line=0): + """ Apply terminal colors to buffer for a range of characters in a single line. + + When a text attribute escape sequence is encountered during input processing, the + attributes are recorded in the dictionary self.color_changes. After those attributes + have been applied, the changes are recorded in a second dictionary self.color_history. + + + This method inspects both dictionaries to calculate any syntax highlighting + that needs to be executed to render the text attributes in the Vim buffer. + + + """ + + + # stop here if coloration is disabled + if not self.enable_colors: + return + + # allow custom line nr to be passed + if line: + buffer_line = line + else: + buffer_line = self.get_buffer_line(self.l) + + # check for previous overlapping coloration + + to_del = [] + if buffer_line in self.color_history: + for i in range(len(self.color_history[buffer_line])): + syn = self.color_history[buffer_line][i] + + if syn['start'] >= start and syn['start'] < end: + + vim.command('syn clear ' + syn['name']) + to_del.append(i) + # outside + if syn['end'] > end: + + self.exec_highlight(buffer_line, end, syn['end'], syn['highlight']) + elif syn['end'] > start and syn['end'] <= end: + + vim.command('syn clear ' + syn['name']) + to_del.append(i) + # outside + if syn['start'] < start: + + self.exec_highlight(buffer_line, syn['start'], start, syn['highlight']) + + # remove overlapped colors + if len(to_del) > 0: + to_del.reverse() + for di in to_del: + del self.color_history[buffer_line][di] + + # if there are no new colors + if len(self.color_changes) == 0: + return + + # build the color attribute string + highlight = '' + for attr in self.color_changes.keys(): + highlight = highlight + ' ' + attr + '=' + self.color_changes[attr] + + # execute the highlight + self.exec_highlight(buffer_line, start, end, highlight) + + + def exec_highlight(self, buffer_line, start, end, highlight): + """ Execute the Vim commands for a single syntax highlight """ + + syntax_name = 'ConqueHighLightAt_%d_%d_%d_%d' % (self.proc.pid, self.l, start, len(self.color_history) + 1) + syntax_options = 'contains=ALLBUT,ConqueString,MySQLString,MySQLKeyword oneline' + syntax_region = 'syntax match %s /\%%%dl\%%>%dc.\{%d}\%%<%dc/ %s' % (syntax_name, buffer_line, start - 1, end - start, end + 1, syntax_options) + + # check for cached highlight group + hgroup = 'ConqueHL_%d' % (abs(hash(highlight))) + if hgroup not in self.highlight_groups: + syntax_group = 'highlight %s %s' % (hgroup, highlight) + self.highlight_groups[hgroup] = hgroup + vim.command(syntax_group) + + # link this syntax match to existing highlight group + syntax_highlight = 'highlight link %s %s' % (syntax_name, self.highlight_groups[hgroup]) + + + + vim.command(syntax_region) + vim.command(syntax_highlight) + + # add syntax name to history + if not buffer_line in self.color_history: + self.color_history[buffer_line] = [] + + self.color_history[buffer_line].append({'name': syntax_name, 'start': start, 'end': end, 'highlight': highlight}) + + + def prune_colors(self): + """ Remove old syntax highlighting from the Vim buffer + + The kind of syntax highlighting required for terminal colors can make + Conque run slowly. The prune_colors() method will remove old highlight definitions + to keep the maximum number of highlight rules within a reasonable range. + + """ + + + buffer_line = self.get_buffer_line(self.l) + ks = list(self.color_history.keys()) + + for line in ks: + if line < buffer_line - CONQUE_MAX_SYNTAX_LINES: + for syn in self.color_history[line]: + vim.command('syn clear ' + syn['name']) + del self.color_history[line] + + + + + ############################################################################################### + # Control functions + + def ctl_nl(self): + """ Process the newline control character. """ + # if we're in a scrolling region, scroll instead of moving cursor down + if self.lines != self.working_lines and self.l == self.bottom: + del self.screen[self.top] + self.screen.insert(self.bottom, '') + elif self.l == self.bottom: + self.screen.append('') + else: + self.l += 1 + + self.color_changes = {} + + def ctl_cr(self): + """ Process the carriage return control character. """ + self.c = 1 + + self.color_changes = {} + + def ctl_bs(self): + """ Process the backspace control character. """ + if self.c > 1: + self.c += -1 + + def ctl_soh(self): + """ Process the start of heading control character. """ + pass + + def ctl_stx(self): + pass + + def ctl_bel(self): + """ Process the bell control character. """ + vim.command('call conque_term#bell()') + + def ctl_tab(self): + """ Process the tab control character. """ + # default tabstop location + ts = self.working_columns + + # check set tabstops + for i in range(self.c, len(self.tabstops)): + if self.tabstops[i]: + ts = i + 1 + break + + + + self.c = ts + + def ctl_so(self): + """ Process the shift out control character. """ + self.character_set = 'graphics' + + def ctl_si(self): + """ Process the shift in control character. """ + self.character_set = 'ascii' + + + + ############################################################################################### + # CSI functions + + def csi_font(self, csi): + """ Process the text attribute escape sequence. """ + if not self.enable_colors: + return + + # defaults to 0 + if len(csi['vals']) == 0: + csi['vals'] = [0] + + # 256 xterm color foreground + if len(csi['vals']) == 3 and csi['vals'][0] == 38 and csi['vals'][1] == 5: + self.color_changes['ctermfg'] = str(csi['vals'][2]) + self.color_changes['guifg'] = '#' + self.xterm_to_rgb(csi['vals'][2]) + + # 256 xterm color background + elif len(csi['vals']) == 3 and csi['vals'][0] == 48 and csi['vals'][1] == 5: + self.color_changes['ctermbg'] = str(csi['vals'][2]) + self.color_changes['guibg'] = '#' + self.xterm_to_rgb(csi['vals'][2]) + + # 16 colors + else: + for val in csi['vals']: + if val in CONQUE_FONT: + + # ignore starting normal colors + if CONQUE_FONT[val]['normal'] and len(self.color_changes) == 0: + + continue + # clear color changes + elif CONQUE_FONT[val]['normal']: + + self.color_changes = {} + # save these color attributes for next plain_text() call + else: + + for attr in CONQUE_FONT[val]['attributes'].keys(): + if attr in self.color_changes and (attr == 'cterm' or attr == 'gui'): + self.color_changes[attr] += ',' + CONQUE_FONT[val]['attributes'][attr] + else: + self.color_changes[attr] = CONQUE_FONT[val]['attributes'][attr] + + + def csi_clear_line(self, csi): + """ Process the line clear escape sequence. """ + + + # this escape defaults to 0 + if len(csi['vals']) == 0: + csi['val'] = 0 + + + + + # 0 means cursor right + if csi['val'] == 0: + self.screen[self.l] = self.screen[self.l][0:self.c - 1] + + # 1 means cursor left + elif csi['val'] == 1: + self.screen[self.l] = ' ' * (self.c) + self.screen[self.l][self.c:] + + # clear entire line + elif csi['val'] == 2: + self.screen[self.l] = '' + + # clear colors + if csi['val'] == 2 or (csi['val'] == 0 and self.c == 1): + buffer_line = self.get_buffer_line(self.l) + if buffer_line in self.color_history: + for syn in self.color_history[buffer_line]: + vim.command('syn clear ' + syn['name']) + + + + + + def csi_cursor_right(self, csi): + """ Process the move cursor right escape sequence. """ + # we use 1 even if escape explicitly specifies 0 + if csi['val'] == 0: + csi['val'] = 1 + + + + + if self.wrap_cursor and self.c + csi['val'] > self.working_columns: + self.l += int(math.floor((self.c + csi['val']) / self.working_columns)) + self.c = (self.c + csi['val']) % self.working_columns + return + + self.c = self.bound(self.c + csi['val'], 1, self.working_columns) + + + def csi_cursor_left(self, csi): + """ Process the move cursor left escape sequence. """ + # we use 1 even if escape explicitly specifies 0 + if csi['val'] == 0: + csi['val'] = 1 + + if self.wrap_cursor and csi['val'] >= self.c: + self.l += int(math.floor((self.c - csi['val']) / self.working_columns)) + self.c = self.working_columns - (csi['val'] - self.c) % self.working_columns + return + + self.c = self.bound(self.c - csi['val'], 1, self.working_columns) + + + def csi_cursor_to_column(self, csi): + """ Process the move cursor to column escape sequence. """ + self.c = self.bound(csi['val'], 1, self.working_columns) + + + def csi_cursor_up(self, csi): + """ Process the move cursor up escape sequence. """ + self.l = self.bound(self.l - csi['val'], self.top, self.bottom) + + self.color_changes = {} + + + def csi_cursor_down(self, csi): + """ Process the move cursor down escape sequence. """ + self.l = self.bound(self.l + csi['val'], self.top, self.bottom) + + self.color_changes = {} + + + def csi_clear_screen(self, csi): + """ Process the clear screen escape sequence. """ + # default to 0 + if len(csi['vals']) == 0: + csi['val'] = 0 + + # 2 == clear entire screen + if csi['val'] == 2: + self.l = 1 + self.c = 1 + self.screen.clear() + + # 0 == clear down + elif csi['val'] == 0: + for l in range(self.bound(self.l + 1, 1, self.lines), self.lines + 1): + self.screen[l] = '' + + # clear end of current line + self.csi_clear_line(self.parse_csi('K')) + + # 1 == clear up + elif csi['val'] == 1: + for l in range(1, self.bound(self.l, 1, self.lines + 1)): + self.screen[l] = '' + + # clear beginning of current line + self.csi_clear_line(self.parse_csi('1K')) + + # clear coloration + if csi['val'] == 2 or csi['val'] == 0: + buffer_line = self.get_buffer_line(self.l) + for line in self.color_history.keys(): + if line >= buffer_line: + for syn in self.color_history[line]: + vim.command('syn clear ' + syn['name']) + + self.color_changes = {} + + + def csi_delete_chars(self, csi): + self.screen[self.l] = self.screen[self.l][:self.c] + self.screen[self.l][self.c + csi['val']:] + + + def csi_add_spaces(self, csi): + self.screen[self.l] = self.screen[self.l][: self.c - 1] + ' ' * csi['val'] + self.screen[self.l][self.c:] + + + def csi_cursor(self, csi): + if len(csi['vals']) == 2: + new_line = csi['vals'][0] + new_col = csi['vals'][1] + else: + new_line = 1 + new_col = 1 + + if self.absolute_coords: + self.l = self.bound(new_line, 1, self.lines) + else: + self.l = self.bound(self.top + new_line - 1, self.top, self.bottom) + + self.c = self.bound(new_col, 1, self.working_columns) + if self.c > len(self.screen[self.l]): + self.screen[self.l] = self.screen[self.l] + ' ' * (self.c - len(self.screen[self.l])) + + + + def csi_set_coords(self, csi): + if len(csi['vals']) == 2: + new_start = csi['vals'][0] + new_end = csi['vals'][1] + else: + new_start = 1 + new_end = vim.current.window.height + + self.top = new_start + self.bottom = new_end + self.working_lines = new_end - new_start + 1 + + # if cursor is outside scrolling region, reset it + if self.l < self.top: + self.l = self.top + elif self.l > self.bottom: + self.l = self.bottom + + self.color_changes = {} + + + def csi_tab_clear(self, csi): + # this escape defaults to 0 + if len(csi['vals']) == 0: + csi['val'] = 0 + + + + if csi['val'] == 0: + self.tabstops[self.c - 1] = False + elif csi['val'] == 3: + for i in range(0, self.columns + 1): + self.tabstops[i] = False + + + def csi_set(self, csi): + # 132 cols + if csi['val'] == 3: + self.csi_clear_screen(self.parse_csi('2J')) + self.working_columns = 132 + + # relative_origin + elif csi['val'] == 6: + self.absolute_coords = False + + # set auto wrap + elif csi['val'] == 7: + self.autowrap = True + + + self.color_changes = {} + + + def csi_reset(self, csi): + # 80 cols + if csi['val'] == 3: + self.csi_clear_screen(self.parse_csi('2J')) + self.working_columns = 80 + + # absolute origin + elif csi['val'] == 6: + self.absolute_coords = True + + # reset auto wrap + elif csi['val'] == 7: + self.autowrap = False + + + self.color_changes = {} + + + + + ############################################################################################### + # ESC functions + + def esc_scroll_up(self): + self.ctl_nl() + + self.color_changes = {} + + + def esc_next_line(self): + self.ctl_nl() + self.c = 1 + + + def esc_set_tab(self): + + if self.c <= len(self.tabstops): + self.tabstops[self.c - 1] = True + + + def esc_scroll_down(self): + if self.l == self.top: + del self.screen[self.bottom] + self.screen.insert(self.top, '') + else: + self.l += -1 + + self.color_changes = {} + + + + + ############################################################################################### + # HASH functions + + def hash_screen_alignment_test(self): + self.csi_clear_screen(self.parse_csi('2J')) + self.working_lines = self.lines + for l in range(1, self.lines + 1): + self.screen[l] = 'E' * self.working_columns + + + + ############################################################################################### + # CHARSET functions + + def charset_us(self): + self.character_set = 'ascii' + + def charset_uk(self): + self.character_set = 'ascii' + + def charset_graphics(self): + self.character_set = 'graphics' + + + + ############################################################################################### + # Random stuff + + def set_cursor(self, line, col): + """ Set cursor position in the Vim buffer. + + Note: the line and column numbers are relative to the top left corner of the + visible screen. Not the line number in the Vim buffer. + + """ + self.screen.set_cursor(line, col) + + def change_title(self, key, val): + """ Change the Vim window title. """ + + + if key == '0' or key == '2': + + vim.command('setlocal statusline=' + re.escape(val)) + try: + vim.command('set titlestring=' + re.escape(val)) + except: + pass + + def update_window_size(self, force=False): + """ Check and save the current buffer dimensions. + + If the buffer size has changed, the update_window_size() method both updates + the Conque buffer size attributes as well as sending the new dimensions to the + subprocess pty. + + """ + # resize if needed + if force or vim.current.window.width != self.columns or vim.current.window.height != self.lines: + + # reset all window size attributes to default + self.columns = vim.current.window.width + self.lines = vim.current.window.height + self.working_columns = vim.current.window.width + self.working_lines = vim.current.window.height + self.bottom = vim.current.window.height + + # reset screen object attributes + self.l = self.screen.reset_size(self.l) + + # reset tabstops + self.init_tabstops() + + + + # signal process that screen size has changed + self.proc.window_resize(self.lines, self.columns) + + def insert_enter(self): + """ Run commands when user enters insert mode. """ + + # check window size + self.update_window_size() + + # we need to set the cursor position + self.cursor_set = False + + def init_tabstops(self): + """ Intitialize terminal tabstop positions. """ + for i in range(0, self.columns + 1): + if i % 8 == 0: + self.tabstops.append(True) + else: + self.tabstops.append(False) + + def idle(self): + """ Called when this terminal becomes idle. """ + pass + + def resume(self): + """ Called when this terminal is no longer idle. """ + pass + pass + + def close(self): + """ End the process running in the terminal. """ + self.proc.close() + + def abort(self): + """ Forcefully end the process running in the terminal. """ + self.proc.signal(1) + + + + ############################################################################################### + # Utility + + def parse_csi(self, s): + """ Parse an escape sequence into it's meaningful values. """ + + attr = {'key': s[-1], 'flag': '', 'val': 1, 'vals': []} + + if len(s) == 1: + return attr + + full = s[0:-1] + + if full[0] == '?': + full = full[1:] + attr['flag'] = '?' + + if full != '': + vals = full.split(';') + for val in vals: + + val = re.sub("\D", "", val) + + if val != '': + attr['vals'].append(int(val)) + + if len(attr['vals']) == 1: + attr['val'] = int(attr['vals'][0]) + + return attr + + + def bound(self, val, min, max): + """ TODO: This probably exists as a builtin function. """ + if val > max: + return max + + if val < min: + return min + + return val + + + def xterm_to_rgb(self, color_code): + """ Translate a terminal color number into a RGB string. """ + if color_code < 16: + ascii_colors = ['000000', 'CD0000', '00CD00', 'CDCD00', '0000EE', 'CD00CD', '00CDCD', 'E5E5E5', + '7F7F7F', 'FF0000', '00FF00', 'FFFF00', '5C5CFF', 'FF00FF', '00FFFF', 'FFFFFF'] + return ascii_colors[color_code] + + elif color_code < 232: + cc = int(color_code) - 16 + + p1 = "%02x" % (math.floor(cc / 36) * (255 / 5)) + p2 = "%02x" % (math.floor((cc % 36) / 6) * (255 / 5)) + p3 = "%02x" % (math.floor(cc % 6) * (255 / 5)) + + return p1 + p2 + p3 + else: + grey_tone = "%02x" % math.floor((255 / 24) * (color_code - 232)) + return grey_tone + grey_tone + grey_tone + + + + + def get_buffer_line(self, line): + """ Get the buffer line number corresponding to the supplied screen line number. """ + return self.screen.get_buffer_line(line) + + diff --git a/vim/autoload/conque_term/conque_globals.py b/vim/autoload/conque_term/conque_globals.py new file mode 100644 index 0000000..f441801 --- /dev/null +++ b/vim/autoload/conque_term/conque_globals.py @@ -0,0 +1,315 @@ +# FILE: autoload/conque_term/conque_globals.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-09-02 +# VERSION: 2.3, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-2011 Nico Raffo +# +# 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. + +"""Common global constants and functions for Conque.""" + +import sys +import re + + + + +# PYTHON VERSION +CONQUE_PYTHON_VERSION = sys.version_info[0] + +# Encoding + +try: + # Vim's character encoding + import vim + CONQUE_VIM_ENCODING = vim.eval('&encoding') + +except: + CONQUE_VIM_ENCODING = 'utf-8' + + +def u(str_val, str_encoding='utf-8', errors='strict'): + """ Foolhardy attempt to make unicode string syntax compatible with both python 2 and 3. """ + + if not str_val: + str_val = '' + + if CONQUE_PYTHON_VERSION == 3: + return str_val + + else: + return unicode(str_val, str_encoding, errors) + +def uchr(str): + """ Foolhardy attempt to make unicode string syntax compatible with both python 2 and 3. """ + + if CONQUE_PYTHON_VERSION == 3: + return chr(str) + + else: + return unichr(str) + + +# Logging + + + + + + + + + + + + + + + + +# Unix escape sequence settings + +CONQUE_CTL = { + 1: 'soh', # start of heading + 2: 'stx', # start of text + 7: 'bel', # bell + 8: 'bs', # backspace + 9: 'tab', # tab + 10: 'nl', # new line + 13: 'cr', # carriage return + 14: 'so', # shift out + 15: 'si' # shift in +} +# 11 : 'vt', # vertical tab +# 12 : 'ff', # form feed + +# Escape sequences +CONQUE_ESCAPE = { + 'm': 'font', + 'J': 'clear_screen', + 'K': 'clear_line', + '@': 'add_spaces', + 'A': 'cursor_up', + 'B': 'cursor_down', + 'C': 'cursor_right', + 'D': 'cursor_left', + 'G': 'cursor_to_column', + 'H': 'cursor', + 'P': 'delete_chars', + 'f': 'cursor', + 'g': 'tab_clear', + 'r': 'set_coords', + 'h': 'set', + 'l': 'reset' +} +# 'L': 'insert_lines', +# 'M': 'delete_lines', +# 'd': 'cusor_vpos', + +# Alternate escape sequences, no [ +CONQUE_ESCAPE_PLAIN = { + 'D': 'scroll_up', + 'E': 'next_line', + 'H': 'set_tab', + 'M': 'scroll_down' +} +# 'N': 'single_shift_2', +# 'O': 'single_shift_3', +# '=': 'alternate_keypad', +# '>': 'numeric_keypad', +# '7': 'save_cursor', +# '8': 'restore_cursor', + +# Character set escape sequences, with "(" +CONQUE_ESCAPE_CHARSET = { + 'A': 'uk', + 'B': 'us', + '0': 'graphics' +} + +# Uber alternate escape sequences, with # or ? +CONQUE_ESCAPE_QUESTION = { + '1h': 'new_line_mode', + '3h': '132_cols', + '4h': 'smooth_scrolling', + '5h': 'reverse_video', + '6h': 'relative_origin', + '7h': 'set_auto_wrap', + '8h': 'set_auto_repeat', + '9h': 'set_interlacing_mode', + '1l': 'set_cursor_key', + '2l': 'set_vt52', + '3l': '80_cols', + '4l': 'set_jump_scrolling', + '5l': 'normal_video', + '6l': 'absolute_origin', + '7l': 'reset_auto_wrap', + '8l': 'reset_auto_repeat', + '9l': 'reset_interlacing_mode' +} + +CONQUE_ESCAPE_HASH = { + '8': 'screen_alignment_test' +} +# '3': 'double_height_top', +# '4': 'double_height_bottom', +# '5': 'single_height_single_width', +# '6': 'single_height_double_width', + +CONQUE_GRAPHICS_SET = [ + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x2192, 0x2190, 0x2191, 0x2193, 0x002F, + 0x2588, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x00A0, + 0x25C6, 0x2592, 0x2409, 0x240C, 0x240D, 0x240A, 0x00B0, 0x00B1, + 0x2591, 0x240B, 0x2518, 0x2510, 0x250C, 0x2514, 0x253C, 0xF800, + 0xF801, 0x2500, 0xF803, 0xF804, 0x251C, 0x2524, 0x2534, 0x252C, + 0x2502, 0x2264, 0x2265, 0x03C0, 0x2260, 0x00A3, 0x00B7, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, + 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, + 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, + 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, + 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, + 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, + 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, + 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, + 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, + 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF +] + +# Font codes +CONQUE_FONT = { + 0: {'description': 'Normal (default)', 'attributes': {'cterm': 'NONE', 'ctermfg': 'NONE', 'ctermbg': 'NONE', 'gui': 'NONE', 'guifg': 'NONE', 'guibg': 'NONE'}, 'normal': True}, + 1: {'description': 'Bold', 'attributes': {'cterm': 'BOLD', 'gui': 'BOLD'}, 'normal': False}, + 4: {'description': 'Underlined', 'attributes': {'cterm': 'UNDERLINE', 'gui': 'UNDERLINE'}, 'normal': False}, + 5: {'description': 'Blink (appears as Bold)', 'attributes': {'cterm': 'BOLD', 'gui': 'BOLD'}, 'normal': False}, + 7: {'description': 'Inverse', 'attributes': {'cterm': 'REVERSE', 'gui': 'REVERSE'}, 'normal': False}, + 8: {'description': 'Invisible (hidden)', 'attributes': {'ctermfg': '0', 'ctermbg': '0', 'guifg': '#000000', 'guibg': '#000000'}, 'normal': False}, + 22: {'description': 'Normal (neither bold nor faint)', 'attributes': {'cterm': 'NONE', 'gui': 'NONE'}, 'normal': True}, + 24: {'description': 'Not underlined', 'attributes': {'cterm': 'NONE', 'gui': 'NONE'}, 'normal': True}, + 25: {'description': 'Steady (not blinking)', 'attributes': {'cterm': 'NONE', 'gui': 'NONE'}, 'normal': True}, + 27: {'description': 'Positive (not inverse)', 'attributes': {'cterm': 'NONE', 'gui': 'NONE'}, 'normal': True}, + 28: {'description': 'Visible (not hidden)', 'attributes': {'ctermfg': 'NONE', 'ctermbg': 'NONE', 'guifg': 'NONE', 'guibg': 'NONE'}, 'normal': True}, + 30: {'description': 'Set foreground color to Black', 'attributes': {'ctermfg': '16', 'guifg': '#000000'}, 'normal': False}, + 31: {'description': 'Set foreground color to Red', 'attributes': {'ctermfg': '1', 'guifg': '#ff0000'}, 'normal': False}, + 32: {'description': 'Set foreground color to Green', 'attributes': {'ctermfg': '2', 'guifg': '#00ff00'}, 'normal': False}, + 33: {'description': 'Set foreground color to Yellow', 'attributes': {'ctermfg': '3', 'guifg': '#ffff00'}, 'normal': False}, + 35: {'description': 'Set foreground color to Magenta', 'attributes': {'ctermfg': '5', 'guifg': '#990099'}, 'normal': False}, + 36: {'description': 'Set foreground color to Cyan', 'attributes': {'ctermfg': '6', 'guifg': '#009999'}, 'normal': False}, + 37: {'description': 'Set foreground color to White', 'attributes': {'ctermfg': '7', 'guifg': '#ffffff'}, 'normal': False}, + 39: {'description': 'Set foreground color to default (original)', 'attributes': {'ctermfg': 'NONE', 'guifg': 'NONE'}, 'normal': True}, + 40: {'description': 'Set background color to Black', 'attributes': {'ctermbg': '16', 'guibg': '#000000'}, 'normal': False}, + 41: {'description': 'Set background color to Red', 'attributes': {'ctermbg': '1', 'guibg': '#ff0000'}, 'normal': False}, + 42: {'description': 'Set background color to Green', 'attributes': {'ctermbg': '2', 'guibg': '#00ff00'}, 'normal': False}, + 43: {'description': 'Set background color to Yellow', 'attributes': {'ctermbg': '3', 'guibg': '#ffff00'}, 'normal': False}, + 45: {'description': 'Set background color to Magenta', 'attributes': {'ctermbg': '5', 'guibg': '#990099'}, 'normal': False}, + 46: {'description': 'Set background color to Cyan', 'attributes': {'ctermbg': '6', 'guibg': '#009999'}, 'normal': False}, + 47: {'description': 'Set background color to White', 'attributes': {'ctermbg': '7', 'guibg': '#ffffff'}, 'normal': False}, + 49: {'description': 'Set background color to default (original).', 'attributes': {'ctermbg': 'NONE', 'guibg': 'NONE'}, 'normal': True}, + 90: {'description': 'Set foreground color to Black', 'attributes': {'ctermfg': '8', 'guifg': '#000000'}, 'normal': False}, + 91: {'description': 'Set foreground color to Red', 'attributes': {'ctermfg': '9', 'guifg': '#ff0000'}, 'normal': False}, + 92: {'description': 'Set foreground color to Green', 'attributes': {'ctermfg': '10', 'guifg': '#00ff00'}, 'normal': False}, + 93: {'description': 'Set foreground color to Yellow', 'attributes': {'ctermfg': '11', 'guifg': '#ffff00'}, 'normal': False}, + 95: {'description': 'Set foreground color to Magenta', 'attributes': {'ctermfg': '13', 'guifg': '#990099'}, 'normal': False}, + 96: {'description': 'Set foreground color to Cyan', 'attributes': {'ctermfg': '14', 'guifg': '#009999'}, 'normal': False}, + 97: {'description': 'Set foreground color to White', 'attributes': {'ctermfg': '15', 'guifg': '#ffffff'}, 'normal': False}, + 100: {'description': 'Set background color to Black', 'attributes': {'ctermbg': '8', 'guibg': '#000000'}, 'normal': False}, + 101: {'description': 'Set background color to Red', 'attributes': {'ctermbg': '9', 'guibg': '#ff0000'}, 'normal': False}, + 102: {'description': 'Set background color to Green', 'attributes': {'ctermbg': '10', 'guibg': '#00ff00'}, 'normal': False}, + 103: {'description': 'Set background color to Yellow', 'attributes': {'ctermbg': '11', 'guibg': '#ffff00'}, 'normal': False}, + 105: {'description': 'Set background color to Magenta', 'attributes': {'ctermbg': '13', 'guibg': '#990099'}, 'normal': False}, + 106: {'description': 'Set background color to Cyan', 'attributes': {'ctermbg': '14', 'guibg': '#009999'}, 'normal': False}, + 107: {'description': 'Set background color to White', 'attributes': {'ctermbg': '15', 'guibg': '#ffffff'}, 'normal': False} +} + + +# regular expression matching (almost) all control sequences +CONQUE_SEQ_REGEX = re.compile("(\x1b\[?\??#?[0-9;]*[a-zA-Z0-9@=>]|\x1b\][0-9];.*?\x07|[\x01-\x0f]|\x1b\([AB0])") +CONQUE_SEQ_REGEX_CTL = re.compile("^[\x01-\x0f]$") +CONQUE_SEQ_REGEX_CSI = re.compile("^\x1b\[") +CONQUE_SEQ_REGEX_TITLE = re.compile("^\x1b\]") +CONQUE_SEQ_REGEX_HASH = re.compile("^\x1b#") +CONQUE_SEQ_REGEX_ESC = re.compile("^\x1b.$") +CONQUE_SEQ_REGEX_CHAR = re.compile("^\x1b[()]") + +# match table output +CONQUE_TABLE_OUTPUT = re.compile("^\s*\|\s.*\s\|\s*$|^\s*\+[=+-]+\+\s*$") + +# basic terminal colors +CONQUE_COLOR_SEQUENCE = ( + '000', '009', '090', '099', '900', '909', '990', '999', + '000', '00f', '0f0', '0ff', 'f00', 'f0f', 'ff0', 'fff' +) + + +# Windows subprocess constants + +# shared memory size +CONQUE_SOLE_BUFFER_LENGTH = 1000 +CONQUE_SOLE_INPUT_SIZE = 1000 +CONQUE_SOLE_STATS_SIZE = 1000 +CONQUE_SOLE_COMMANDS_SIZE = 255 +CONQUE_SOLE_RESCROLL_SIZE = 255 +CONQUE_SOLE_RESIZE_SIZE = 255 + +# interval of screen redraw +# larger number means less frequent +CONQUE_SOLE_SCREEN_REDRAW = 50 + +# interval of full buffer redraw +# larger number means less frequent +CONQUE_SOLE_BUFFER_REDRAW = 500 + +# interval of full output bucket replacement +# larger number means less frequent, 1 = every time +CONQUE_SOLE_MEM_REDRAW = 1000 + +# maximum number of lines with terminal colors +# ignored if g:ConqueTerm_Color = 2 +CONQUE_MAX_SYNTAX_LINES = 200 + +# windows input splitting on special keys +CONQUE_WIN32_REGEX_VK = re.compile("(\x1b\[[0-9;]+VK)") + +# windows attribute string splitting +CONQUE_WIN32_REGEX_ATTR = re.compile("((.)\\2*)", re.DOTALL) + +# special key attributes +CONQUE_VK_ATTR_CTRL_PRESSED = u('1024') + + diff --git a/vim/autoload/conque_term/conque_screen.py b/vim/autoload/conque_term/conque_screen.py new file mode 100644 index 0000000..3557e11 --- /dev/null +++ b/vim/autoload/conque_term/conque_screen.py @@ -0,0 +1,233 @@ +# FILE: autoload/conque_term/conque_screen.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-09-02 +# VERSION: 2.3, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-2011 Nico Raffo +# +# 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. + +""" +ConqueScreen is an extention of the vim.current.buffer object + +Unix terminal escape sequences usually reference line numbers relative to the +top of the visible screen. However the visible portion of the Vim buffer +representing the terminal probably doesn't start at the first line of the +buffer. + +The ConqueScreen class allows access to the Vim buffer with screen-relative +line numbering. And handles a few other related tasks, such as setting the +correct cursor position. + + E.g.: + s = ConqueScreen() + ... + s[5] = 'Set 5th line in terminal to this line' + s.append('Add new line to terminal') + s[5] = 'Since previous append() command scrolled the terminal down, this is a different line than first cb[5] call' + +""" + +import vim + + +class ConqueScreen(object): + + # the buffer + buffer = None + + # screen and scrolling regions + screen_top = 1 + + # screen width + screen_width = 80 + screen_height = 80 + + # char encoding for vim buffer + screen_encoding = 'utf-8' + + + def __init__(self): + """ Initialize screen size and character encoding. """ + + self.buffer = vim.current.buffer + + # initialize screen size + self.screen_top = 1 + self.screen_width = vim.current.window.width + self.screen_height = vim.current.window.height + + # save screen character encoding type + self.screen_encoding = vim.eval('&fileencoding') + + + def __len__(self): + """ Define the len() function for ConqueScreen objects. """ + return len(self.buffer) + + + def __getitem__(self, key): + """ Define value access for ConqueScreen objects. """ + buffer_line = self.get_real_idx(key) + + # if line is past buffer end, add lines to buffer + if buffer_line >= len(self.buffer): + for i in range(len(self.buffer), buffer_line + 1): + self.append(' ') + + return u(self.buffer[buffer_line], 'utf-8') + + + def __setitem__(self, key, value): + """ Define value assignments for ConqueScreen objects. """ + buffer_line = self.get_real_idx(key) + + if CONQUE_PYTHON_VERSION == 2: + val = value.encode(self.screen_encoding) + else: + # XXX / Vim's python3 interface doesn't accept bytes object + val = str(value) + + # if line is past end of screen, append + if buffer_line == len(self.buffer): + self.buffer.append(val) + else: + self.buffer[buffer_line] = val + + + def __delitem__(self, key): + """ Define value deletion for ConqueScreen objects. """ + del self.buffer[self.screen_top + key - 2] + + + def append(self, value): + """ Define value appending for ConqueScreen objects. """ + + if len(self.buffer) > self.screen_top + self.screen_height - 1: + self.buffer[len(self.buffer) - 1] = value + else: + self.buffer.append(value) + + if len(self.buffer) > self.screen_top + self.screen_height - 1: + self.screen_top += 1 + + if vim.current.buffer.number == self.buffer.number: + vim.command('normal! G') + + + def insert(self, line, value): + """ Define value insertion for ConqueScreen objects. """ + + l = self.screen_top + line - 2 + try: + self.buffer.append(value, l) + except: + self.buffer[l:l] = [value] + + + def get_top(self): + """ Get the Vim line number representing the top of the visible terminal. """ + return self.screen_top + + + def get_real_idx(self, line): + """ Get the zero index Vim line number corresponding to the provided screen line. """ + return (self.screen_top + line - 2) + + + def get_buffer_line(self, line): + """ Get the Vim line number corresponding to the provided screen line. """ + return (self.screen_top + line - 1) + + + def set_screen_width(self, width): + """ Set the screen width. """ + self.screen_width = width + + + def clear(self): + """ Clear the screen. Does not clear the buffer, just scrolls down past all text. """ + + self.screen_width = width + self.buffer.append(' ') + vim.command('normal! Gzt') + self.screen_top = len(self.buffer) + + + def set_cursor(self, line, column): + """ Set cursor position. """ + + # figure out line + buffer_line = self.screen_top + line - 1 + if buffer_line > len(self.buffer): + for l in range(len(self.buffer) - 1, buffer_line): + self.buffer.append('') + + # figure out column + real_column = column + if len(self.buffer[buffer_line - 1]) < real_column: + self.buffer[buffer_line - 1] = self.buffer[buffer_line - 1] + ' ' * (real_column - len(self.buffer[buffer_line - 1])) + + if not CONQUE_FAST_MODE: + # set cursor at byte index of real_column'th character + vim.command('call cursor(' + str(buffer_line) + ', byteidx(getline(' + str(buffer_line) + '), ' + str(real_column) + '))') + + else: + # old version + # python version is occasionally grumpy + try: + vim.current.window.cursor = (buffer_line, real_column - 1) + except: + vim.command('call cursor(' + str(buffer_line) + ', ' + str(real_column) + ')') + + + def reset_size(self, line): + """ Change screen size """ + + + + + + # save cursor line number + buffer_line = self.screen_top + line + + # reset screen size + self.screen_width = vim.current.window.width + self.screen_height = vim.current.window.height + self.screen_top = len(self.buffer) - vim.current.window.height + 1 + if self.screen_top < 1: + self.screen_top = 1 + + + # align bottom of buffer to bottom of screen + vim.command('normal! ' + str(self.screen_height) + 'kG') + + # return new relative line number + return (buffer_line - self.screen_top) + + + def align(self): + """ align bottom of buffer to bottom of screen """ + vim.command('normal! ' + str(self.screen_height) + 'kG') + + diff --git a/vim/autoload/conque_term/conque_sole.py b/vim/autoload/conque_term/conque_sole.py new file mode 100644 index 0000000..329988b --- /dev/null +++ b/vim/autoload/conque_term/conque_sole.py @@ -0,0 +1,458 @@ +# FILE: autoload/conque_term/conque_sole.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-09-02 +# VERSION: 2.3, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-2011 Nico Raffo +# +# 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. + +""" +Windows Console Emulator + +This is the main interface to the Windows emulator. It reads new output from the background console +and updates the Vim buffer. +""" + +import vim + + +class ConqueSole(Conque): + + window_top = None + window_bottom = None + + color_cache = {} + attribute_cache = {} + color_mode = None + color_conceals = {} + + buffer = None + encoding = None + + # counters for periodic rendering + buffer_redraw_ct = 1 + screen_redraw_ct = 1 + + # line offset, shifts output down + offset = 0 + + + def open(self): + """ Start command and initialize this instance + + Arguments: + command - Command string, e.g. "Powershell.exe" + options - Dictionary of config options + python_exe - Path to the python.exe executable. Usually C:\PythonXX\python.exe + communicator_py - Path to subprocess controller script in user's vimfiles directory + + """ + # get arguments + command = vim.eval('command') + options = vim.eval('options') + python_exe = vim.eval('py_exe') + communicator_py = vim.eval('py_vim') + + # init size + self.columns = vim.current.window.width + self.lines = vim.current.window.height + self.window_top = 0 + self.window_bottom = vim.current.window.height - 1 + + # color mode + self.color_mode = vim.eval('g:ConqueTerm_ColorMode') + + # line offset + self.offset = int(options['offset']) + + # init color + self.enable_colors = options['color'] and not CONQUE_FAST_MODE + + # open command + self.proc = ConqueSoleWrapper() + self.proc.open(command, self.lines, self.columns, python_exe, communicator_py, options) + + self.buffer = vim.current.buffer + self.screen_encoding = vim.eval('&fileencoding') + + + def read(self, timeout=1, set_cursor=True, return_output=False, update_buffer=True): + """ Read from console and update Vim buffer. """ + + try: + stats = self.proc.get_stats() + + if not stats: + return + + # disable screen and buffer redraws in fast mode + if not CONQUE_FAST_MODE: + self.buffer_redraw_ct += 1 + self.screen_redraw_ct += 1 + + update_top = 0 + update_bottom = 0 + lines = [] + + # full buffer redraw, our favorite! + #if self.buffer_redraw_ct == CONQUE_SOLE_BUFFER_REDRAW: + # self.buffer_redraw_ct = 0 + # update_top = 0 + # update_bottom = stats['top_offset'] + self.lines + # (lines, attributes) = self.proc.read(update_top, update_bottom) + # if return_output: + # output = self.get_new_output(lines, update_top, stats) + # if update_buffer: + # for i in range(update_top, update_bottom + 1): + # if CONQUE_FAST_MODE: + # self.plain_text(i, lines[i], None, stats) + # else: + # self.plain_text(i, lines[i], attributes[i], stats) + + # full screen redraw + if stats['cursor_y'] + 1 != self.l or stats['top_offset'] != self.window_top or self.screen_redraw_ct >= CONQUE_SOLE_SCREEN_REDRAW: + + self.screen_redraw_ct = 0 + update_top = self.window_top + update_bottom = max([stats['top_offset'] + self.lines + 1, stats['cursor_y']]) + (lines, attributes) = self.proc.read(update_top, update_bottom - update_top + 1) + if return_output: + output = self.get_new_output(lines, update_top, stats) + if update_buffer: + for i in range(update_top, update_bottom + 1): + if CONQUE_FAST_MODE: + self.plain_text(i, lines[i - update_top], None, stats) + else: + self.plain_text(i, lines[i - update_top], attributes[i - update_top], stats) + + + # single line redraw + else: + update_top = stats['cursor_y'] + (lines, attributes) = self.proc.read(update_top, 1) + if return_output: + output = self.get_new_output(lines, update_top, stats) + if update_buffer: + if lines[0].rstrip() != u(self.buffer[update_top].rstrip()): + if CONQUE_FAST_MODE: + self.plain_text(update_top, lines[0], None, stats) + else: + self.plain_text(update_top, lines[0], attributes[0], stats) + + + # reset current position + self.window_top = stats['top_offset'] + self.l = stats['cursor_y'] + 1 + self.c = stats['cursor_x'] + 1 + + # reposition cursor if this seems plausible + if set_cursor: + self.set_cursor(self.l, self.c) + + if return_output: + return output + + except: + + pass + + + def get_new_output(self, lines, update_top, stats): + """ Calculate the "new" output from this read. Fake but useful """ + + if not (stats['cursor_y'] + 1 > self.l or (stats['cursor_y'] + 1 == self.l and stats['cursor_x'] + 1 > self.c)): + return "" + + + + + + + try: + num_to_return = stats['cursor_y'] - self.l + 2 + + lines = lines[self.l - update_top - 1:] + + + new_output = [] + + # first line + new_output.append(lines[0][self.c - 1:].rstrip()) + + # the rest + for i in range(1, num_to_return): + new_output.append(lines[i].rstrip()) + + except: + + pass + + + + return "\n".join(new_output) + + + def plain_text(self, line_nr, text, attributes, stats): + """ Write plain text to Vim buffer. """ + + + + + + # handle line offset + line_nr += self.offset + + self.l = line_nr + 1 + + # remove trailing whitespace + text = text.rstrip() + + # if we're using concealed text for color, then s- is weird + if self.color_mode == 'conceal': + + text = self.add_conceal_color(text, attributes, stats, line_nr) + + + # deal with character encoding + if CONQUE_PYTHON_VERSION == 2: + val = text.encode(self.screen_encoding) + else: + # XXX / Vim's python3 interface doesn't accept bytes object + val = str(text) + + # update vim buffer + if len(self.buffer) <= line_nr: + self.buffer.append(val) + else: + self.buffer[line_nr] = val + + if self.enable_colors and not self.color_mode == 'conceal' and line_nr > self.l - CONQUE_MAX_SYNTAX_LINES: + relevant = attributes[0:len(text)] + if line_nr not in self.attribute_cache or self.attribute_cache[line_nr] != relevant: + self.do_color(attributes=relevant, stats=stats) + self.attribute_cache[line_nr] = relevant + + + def add_conceal_color(self, text, attributes, stats, line_nr): + """ Add 'conceal' color strings to output text """ + + # stop here if coloration is disabled + if not self.enable_colors: + return text + + # if no colors for this line, clear everything out + if len(attributes) == 0 or attributes == u(chr(stats['default_attribute'])) * len(attributes): + return text + + new_text = '' + self.color_conceals[line_nr] = [] + + attribute_chunks = CONQUE_WIN32_REGEX_ATTR.findall(attributes) + offset = 0 + ends = [] + for attr in attribute_chunks: + attr_num = ord(attr[1]) + ends = [] + if attr_num != stats['default_attribute']: + + color = self.translate_color(attr_num) + + new_text += chr(27) + 'sf' + color['fg_code'] + ';' + ends.append(chr(27) + 'ef' + color['fg_code'] + ';') + self.color_conceals[line_nr].append(offset) + + if attr_num > 15: + new_text += chr(27) + 'sb' + color['bg_code'] + ';' + ends.append(chr(27) + 'eb' + color['bg_code'] + ';') + self.color_conceals[line_nr].append(offset) + + new_text += text[offset:offset + len(attr[0])] + + # close color regions + ends.reverse() + for i in range(0, len(ends)): + self.color_conceals[line_nr].append(len(new_text)) + new_text += ends[i] + + offset += len(attr[0]) + + return new_text + + + def do_color(self, start=0, end=0, attributes='', stats=None): + """ Convert Windows console attributes into Vim syntax highlighting """ + + # if no colors for this line, clear everything out + if len(attributes) == 0 or attributes == u(chr(stats['default_attribute'])) * len(attributes): + self.color_changes = {} + self.apply_color(1, len(attributes), self.l) + return + + attribute_chunks = CONQUE_WIN32_REGEX_ATTR.findall(attributes) + offset = 0 + for attr in attribute_chunks: + attr_num = ord(attr[1]) + if attr_num != stats['default_attribute']: + self.color_changes = self.translate_color(attr_num) + self.apply_color(offset + 1, offset + len(attr[0]) + 1, self.l) + offset += len(attr[0]) + + + def translate_color(self, attr): + """ Convert Windows console attributes into RGB colors """ + + # check for cached color + if attr in self.color_cache: + return self.color_cache[attr] + + + + + + + # convert attribute integer to bit string + bit_str = bin(attr) + bit_str = bit_str.replace('0b', '') + + # slice foreground and background portions of bit string + fg = bit_str[-4:].rjust(4, '0') + bg = bit_str[-8:-4].rjust(4, '0') + + # ok, first create foreground #rbg + red = int(fg[1]) * 204 + int(fg[0]) * int(fg[1]) * 51 + green = int(fg[2]) * 204 + int(fg[0]) * int(fg[2]) * 51 + blue = int(fg[3]) * 204 + int(fg[0]) * int(fg[3]) * 51 + fg_str = "#%02x%02x%02x" % (red, green, blue) + fg_code = "%02x%02x%02x" % (red, green, blue) + fg_code = fg_code[0] + fg_code[2] + fg_code[4] + + # ok, first create foreground #rbg + red = int(bg[1]) * 204 + int(bg[0]) * int(bg[1]) * 51 + green = int(bg[2]) * 204 + int(bg[0]) * int(bg[2]) * 51 + blue = int(bg[3]) * 204 + int(bg[0]) * int(bg[3]) * 51 + bg_str = "#%02x%02x%02x" % (red, green, blue) + bg_code = "%02x%02x%02x" % (red, green, blue) + bg_code = bg_code[0] + bg_code[2] + bg_code[4] + + # build value for color_changes + + color = {'guifg': fg_str, 'guibg': bg_str} + + if self.color_mode == 'conceal': + color['fg_code'] = fg_code + color['bg_code'] = bg_code + + self.color_cache[attr] = color + + return color + + + def write_vk(self, vk_code): + """ write virtual key code to shared memory using proprietary escape seq """ + + self.proc.write_vk(vk_code) + + + def update_window_size(self): + """ Resize underlying console if Vim buffer size has changed """ + + if vim.current.window.width != self.columns or vim.current.window.height != self.lines: + + + + # reset all window size attributes to default + self.columns = vim.current.window.width + self.lines = vim.current.window.height + self.working_columns = vim.current.window.width + self.working_lines = vim.current.window.height + self.bottom = vim.current.window.height + + self.proc.window_resize(vim.current.window.height, vim.current.window.width) + + + def set_cursor(self, line, column): + """ Update cursor position in Vim buffer """ + + + + # handle offset + line += self.offset + + # shift cursor position to handle concealed text + if self.enable_colors and self.color_mode == 'conceal': + if line - 1 in self.color_conceals: + for c in self.color_conceals[line - 1]: + if c < column: + column += 7 + else: + break + + + + # figure out line + buffer_line = line + if buffer_line > len(self.buffer): + for l in range(len(self.buffer) - 1, buffer_line): + self.buffer.append('') + + # figure out column + real_column = column + if len(self.buffer[buffer_line - 1]) < real_column: + self.buffer[buffer_line - 1] = self.buffer[buffer_line - 1] + ' ' * (real_column - len(self.buffer[buffer_line - 1])) + + # python version is occasionally grumpy + try: + vim.current.window.cursor = (buffer_line, real_column - 1) + except: + vim.command('call cursor(' + str(buffer_line) + ', ' + str(real_column) + ')') + + + def idle(self): + """ go into idle mode """ + + self.proc.idle() + + + def resume(self): + """ resume from idle mode """ + + self.proc.resume() + + + def close(self): + """ end console subprocess """ + self.proc.close() + + + def abort(self): + """ end subprocess forcefully """ + self.proc.close() + + + def get_buffer_line(self, line): + """ get buffer line """ + return line + + +# vim:foldmethod=marker diff --git a/vim/autoload/conque_term/conque_sole_communicator.py b/vim/autoload/conque_term/conque_sole_communicator.py new file mode 100644 index 0000000..39f1bd8 --- /dev/null +++ b/vim/autoload/conque_term/conque_sole_communicator.py @@ -0,0 +1,183 @@ +# FILE: autoload/conque_term/conque_sole_communicator.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-09-02 +# VERSION: 2.3, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-2011 Nico Raffo +# +# 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. + +""" + +ConqueSoleCommunicator + +This script will create a new Windows console and start the requested program +inside of it. This process is launched independently from the parent Vim +program, so it has no access to the vim module. + +The main loop in this script reads data from the console and syncs it onto +blocks of memory shared with the Vim process. In this way the Vim process +and this script can communicate with each other. + +""" + +import time +import sys + +from conque_globals import * +from conque_win32_util import * +from conque_sole_subprocess import * +from conque_sole_shared_memory import * + +############################################################## +# only run if this file was run directly + +if __name__ == '__main__': + + # attempt to catch ALL exceptions to fend of zombies + try: + + # simple arg validation + + if len(sys.argv) < 5: + + exit() + + # maximum time this thing reads. 0 means no limit. Only for testing. + max_loops = 0 + + # read interval, in seconds + sleep_time = 0.01 + + # idle read interval, in seconds + idle_sleep_time = 0.10 + + # are we idled? + is_idle = False + + # mem key + mem_key = sys.argv[1] + + # console width + console_width = int(sys.argv[2]) + + # console height + console_height = int(sys.argv[3]) + + # code page + code_page = int(sys.argv[4]) + + # code page + fast_mode = int(sys.argv[5]) + + # the actual subprocess to run + cmd_line = " ".join(sys.argv[6:]) + + + # width and height + options = {'LINES': console_height, 'COLUMNS': console_width, 'CODE_PAGE': code_page, 'FAST_MODE': fast_mode} + + + + # set initial idle status + shm_command = ConqueSoleSharedMemory(CONQUE_SOLE_COMMANDS_SIZE, 'command', mem_key, serialize=True) + shm_command.create('write') + + cmd = shm_command.read() + if cmd: + + if cmd['cmd'] == 'idle': + is_idle = True + shm_command.clear() + + + ############################################################## + # Create the subprocess + + proc = ConqueSoleSubprocess() + res = proc.open(cmd_line, mem_key, options) + + if not res: + + exit() + + ############################################################## + # main loop! + + loops = 0 + + while True: + + # check for idle/resume + if is_idle or loops % 25 == 0: + + # check process health + if not proc.is_alive(): + + proc.close() + break + + # check for change in buffer focus + cmd = shm_command.read() + if cmd: + + if cmd['cmd'] == 'idle': + is_idle = True + shm_command.clear() + + elif cmd['cmd'] == 'resume': + is_idle = False + shm_command.clear() + + + # sleep between loops if moderation is requested + if sleep_time > 0: + if is_idle: + time.sleep(idle_sleep_time) + else: + time.sleep(sleep_time) + + # write, read, etc + proc.write() + proc.read() + + # increment loops, and exit if max has been reached + loops += 1 + if max_loops and loops >= max_loops: + + break + + ############################################################## + # all done! + + + + proc.close() + + # if an exception was thrown, croak + except: + + proc.close() + + +# vim:foldmethod=marker diff --git a/vim/autoload/conque_term/conque_sole_shared_memory.py b/vim/autoload/conque_term/conque_sole_shared_memory.py new file mode 100644 index 0000000..fa44ab3 --- /dev/null +++ b/vim/autoload/conque_term/conque_sole_shared_memory.py @@ -0,0 +1,210 @@ +# FILE: autoload/conque_term/conque_sole_shared_memory.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-09-02 +# VERSION: 2.3, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-2011 Nico Raffo +# +# 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. + +""" +Wrapper class for shared memory between Windows python processes + +Adds a small amount of functionality to the standard mmap module. + +""" + +import mmap +import sys + +# PYTHON VERSION +CONQUE_PYTHON_VERSION = sys.version_info[0] + +if CONQUE_PYTHON_VERSION == 2: + import cPickle as pickle +else: + import pickle + + +class ConqueSoleSharedMemory(): + + # is the data being stored not fixed length + fixed_length = False + + # maximum number of bytes per character, for fixed width blocks + char_width = 1 + + # fill memory with this character when clearing and fixed_length is true + FILL_CHAR = None + + # serialize and unserialize data automatically + serialize = False + + # size of shared memory, in bytes / chars + mem_size = None + + # size of shared memory, in bytes / chars + mem_type = None + + # unique key, so multiple console instances are possible + mem_key = None + + # mmap instance + shm = None + + # character encoding, dammit + encoding = 'utf-8' + + # pickle terminator + TERMINATOR = None + + + def __init__(self, mem_size, mem_type, mem_key, fixed_length=False, fill_char=' ', serialize=False, encoding='utf-8'): + """ Initialize new shared memory block instance + + Arguments: + mem_size -- Memory size in characters, depends on encoding argument to calcuate byte size + mem_type -- Label to identify what will be stored + mem_key -- Unique, probably random key to identify this block + fixed_length -- If set to true, assume the data stored will always fill the memory size + fill_char -- Initialize memory block with this character, only really helpful with fixed_length blocks + serialize -- Automatically serialize data passed to write. Allows storing non-byte data + encoding -- Character encoding to use when storing character data + + """ + self.mem_size = mem_size + self.mem_type = mem_type + self.mem_key = mem_key + self.fixed_length = fixed_length + self.fill_char = fill_char + self.serialize = serialize + self.encoding = encoding + self.TERMINATOR = str(chr(0)).encode(self.encoding) + + if CONQUE_PYTHON_VERSION == 3: + self.FILL_CHAR = fill_char + else: + self.FILL_CHAR = unicode(fill_char) + + if fixed_length and encoding == 'utf-8': + self.char_width = 4 + + + def create(self, access='write'): + """ Create a new block of shared memory using the mmap module. """ + + if access == 'write': + mmap_access = mmap.ACCESS_WRITE + else: + mmap_access = mmap.ACCESS_READ + + name = "conque_%s_%s" % (self.mem_type, self.mem_key) + + self.shm = mmap.mmap(0, self.mem_size * self.char_width, name, mmap_access) + + if not self.shm: + return False + else: + return True + + + def read(self, chars=1, start=0): + """ Read data from shared memory. + + If this is a fixed length block, read 'chars' characters from memory. + Otherwise read up until the TERMINATOR character (null byte). + If this memory is serialized, unserialize it automatically. + + """ + # go to start position + self.shm.seek(start * self.char_width) + + if self.fixed_length: + chars = chars * self.char_width + else: + chars = self.shm.find(self.TERMINATOR) + + if chars == 0: + return '' + + shm_str = self.shm.read(chars) + + # return unpickled byte object + if self.serialize: + return pickle.loads(shm_str) + + # decode byes in python 3 + if CONQUE_PYTHON_VERSION == 3: + return str(shm_str, self.encoding) + + # encoding + if self.encoding != 'ascii': + shm_str = unicode(shm_str, self.encoding) + + return shm_str + + + def write(self, text, start=0): + """ Write data to memory. + + If memory is fixed length, simply write the 'text' characters at 'start' position. + Otherwise write 'text' characters and append a null character. + If memory is serializable, do so first. + + """ + # simple scenario, let pickle create bytes + if self.serialize: + if CONQUE_PYTHON_VERSION == 3: + tb = pickle.dumps(text, 0) + else: + tb = pickle.dumps(text, 0).encode(self.encoding) + + else: + tb = text.encode(self.encoding, 'replace') + + # write to memory + self.shm.seek(start * self.char_width) + + if self.fixed_length: + self.shm.write(tb) + else: + self.shm.write(tb + self.TERMINATOR) + + + def clear(self, start=0): + """ Clear memory block using self.fill_char. """ + + self.shm.seek(start) + + if self.fixed_length: + self.shm.write(str(self.fill_char * self.mem_size * self.char_width).encode(self.encoding)) + else: + self.shm.write(self.TERMINATOR) + + + def close(self): + """ Close/destroy memory block. """ + + self.shm.close() + + diff --git a/vim/autoload/conque_term/conque_sole_subprocess.py b/vim/autoload/conque_term/conque_sole_subprocess.py new file mode 100644 index 0000000..3ba7509 --- /dev/null +++ b/vim/autoload/conque_term/conque_sole_subprocess.py @@ -0,0 +1,762 @@ +# FILE: autoload/conque_term/conque_sole_subprocess.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-09-02 +# VERSION: 2.3, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-2011 Nico Raffo +# +# 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. + +""" ConqueSoleSubprocess + +Creates a new subprocess with it's own (hidden) console window. + +Mirrors console window text onto a block of shared memory (mmap), along with +text attribute data. Also handles translation of text input into the format +Windows console expects. + +Sample Usage: + + sh = ConqueSoleSubprocess() + sh.open("cmd.exe", "unique_str") + + shm_in = ConqueSoleSharedMemory(mem_key = "unique_str", mem_type = "input", ...) + shm_out = ConqueSoleSharedMemory(mem_key = "unique_str", mem_type = "output", ...) + + output = shm_out.read(...) + shm_in.write("dir\r") + output = shm_out.read(...) + +""" + +import time +import re +import os +import ctypes + +from conque_globals import * +from conque_win32_util import * +from conque_sole_shared_memory import * + + +class ConqueSoleSubprocess(): + + # subprocess handle and pid + handle = None + pid = None + + # input / output handles + stdin = None + stdout = None + + # size of console window + window_width = 160 + window_height = 40 + + # max lines for the console buffer + buffer_width = 160 + buffer_height = 100 + + # keep track of the buffer number at the top of the window + top = 0 + line_offset = 0 + + # buffer height is CONQUE_SOLE_BUFFER_LENGTH * output_blocks + output_blocks = 1 + + # cursor position + cursor_line = 0 + cursor_col = 0 + + # console data, array of lines + data = [] + + # console attribute data, array of array of int + attributes = [] + attribute_cache = {} + + # default attribute + default_attribute = 7 + + # shared memory objects + shm_input = None + shm_output = None + shm_attributes = None + shm_stats = None + shm_command = None + shm_rescroll = None + shm_resize = None + + # are we still a valid process? + is_alive = True + + # running in fast mode + fast_mode = 0 + + # used for periodic execution of screen and memory redrawing + screen_redraw_ct = 0 + mem_redraw_ct = 0 + + + def open(self, cmd, mem_key, options={}): + """ Create subproccess running in hidden console window. """ + + + + self.reset = True + + try: + # if we're already attached to a console, then unattach + try: + ctypes.windll.kernel32.FreeConsole() + except: + pass + + # set buffer height + self.buffer_height = CONQUE_SOLE_BUFFER_LENGTH + + if 'LINES' in options and 'COLUMNS' in options: + self.window_width = options['COLUMNS'] + self.window_height = options['LINES'] + self.buffer_width = options['COLUMNS'] + + # fast mode + self.fast_mode = options['FAST_MODE'] + + # console window options + si = STARTUPINFO() + + # hide window + si.dwFlags |= STARTF_USESHOWWINDOW + si.wShowWindow = SW_HIDE + #si.wShowWindow = SW_MINIMIZE + + # process options + flags = NORMAL_PRIORITY_CLASS | CREATE_NEW_PROCESS_GROUP | CREATE_UNICODE_ENVIRONMENT | CREATE_NEW_CONSOLE + + # created process info + pi = PROCESS_INFORMATION() + + + + # create the process! + res = ctypes.windll.kernel32.CreateProcessW(None, u(cmd), None, None, 0, flags, None, u('.'), ctypes.byref(si), ctypes.byref(pi)) + + + + + + # process info + self.pid = pi.dwProcessId + self.handle = pi.hProcess + + + + + # attach ourselves to the new console + # console is not immediately available + for i in range(10): + time.sleep(0.25) + try: + + res = ctypes.windll.kernel32.AttachConsole(self.pid) + + + + + + + break + except: + + pass + + # get input / output handles + self.stdout = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE) + self.stdin = ctypes.windll.kernel32.GetStdHandle(STD_INPUT_HANDLE) + + # set buffer size + size = COORD(self.buffer_width, self.buffer_height) + res = ctypes.windll.kernel32.SetConsoleScreenBufferSize(self.stdout, size) + + + + + + + + # prev set size call needs to process + time.sleep(0.2) + + # set window size + self.set_window_size(self.window_width, self.window_height) + + # set utf-8 code page + if 'CODE_PAGE' in options and options['CODE_PAGE'] > 0: + if ctypes.windll.kernel32.IsValidCodePage(ctypes.c_uint(options['CODE_PAGE'])): + + ctypes.windll.kernel32.SetConsoleCP(ctypes.c_uint(options['CODE_PAGE'])) + ctypes.windll.kernel32.SetConsoleOutputCP(ctypes.c_uint(options['CODE_PAGE'])) + + # init shared memory + self.init_shared_memory(mem_key) + + # init read buffers + self.tc = ctypes.create_unicode_buffer(self.buffer_width) + self.ac = ctypes.create_unicode_buffer(self.buffer_width) + + return True + + except: + + return False + + + def init_shared_memory(self, mem_key): + """ Create shared memory objects. """ + + self.shm_input = ConqueSoleSharedMemory(CONQUE_SOLE_INPUT_SIZE, 'input', mem_key) + self.shm_input.create('write') + self.shm_input.clear() + + self.shm_output = ConqueSoleSharedMemory(self.buffer_height * self.buffer_width, 'output', mem_key, True) + self.shm_output.create('write') + self.shm_output.clear() + + if not self.fast_mode: + buf_info = self.get_buffer_info() + self.shm_attributes = ConqueSoleSharedMemory(self.buffer_height * self.buffer_width, 'attributes', mem_key, True, chr(buf_info.wAttributes), encoding='latin-1') + self.shm_attributes.create('write') + self.shm_attributes.clear() + + self.shm_stats = ConqueSoleSharedMemory(CONQUE_SOLE_STATS_SIZE, 'stats', mem_key, serialize=True) + self.shm_stats.create('write') + self.shm_stats.clear() + + self.shm_command = ConqueSoleSharedMemory(CONQUE_SOLE_COMMANDS_SIZE, 'command', mem_key, serialize=True) + self.shm_command.create('write') + self.shm_command.clear() + + self.shm_resize = ConqueSoleSharedMemory(CONQUE_SOLE_RESIZE_SIZE, 'resize', mem_key, serialize=True) + self.shm_resize.create('write') + self.shm_resize.clear() + + self.shm_rescroll = ConqueSoleSharedMemory(CONQUE_SOLE_RESCROLL_SIZE, 'rescroll', mem_key, serialize=True) + self.shm_rescroll.create('write') + self.shm_rescroll.clear() + + return True + + + def check_commands(self): + """ Check for and process commands from Vim. """ + + cmd = self.shm_command.read() + + if cmd: + + # shut it all down + if cmd['cmd'] == 'close': + + # clear command + self.shm_command.clear() + + self.close() + return + + cmd = self.shm_resize.read() + + if cmd: + + # clear command + self.shm_resize.clear() + + # resize console + if cmd['cmd'] == 'resize': + + + + # only change buffer width if it's larger + if cmd['data']['width'] > self.buffer_width: + self.buffer_width = cmd['data']['width'] + + # always change console width and height + self.window_width = cmd['data']['width'] + self.window_height = cmd['data']['height'] + + # reset the console + buf_info = self.get_buffer_info() + self.reset_console(buf_info, add_block=False) + + + def read(self): + """ Read from windows console and update shared memory blocks. """ + + # no point really + if self.screen_redraw_ct == 0 and not self.is_alive(): + stats = {'top_offset': 0, 'default_attribute': 0, 'cursor_x': 0, 'cursor_y': self.cursor_line, 'is_alive': 0} + + self.shm_stats.write(stats) + return + + # check for commands + self.check_commands() + + # get cursor position + buf_info = self.get_buffer_info() + curs_line = buf_info.dwCursorPosition.Y + curs_col = buf_info.dwCursorPosition.X + + # set update range + if curs_line != self.cursor_line or self.top != buf_info.srWindow.Top or self.screen_redraw_ct == CONQUE_SOLE_SCREEN_REDRAW: + self.screen_redraw_ct = 0 + + read_start = self.top + read_end = max([buf_info.srWindow.Bottom + 1, curs_line + 1]) + else: + + read_start = curs_line + read_end = curs_line + 1 + + + + + # vars used in for loop + coord = COORD(0, 0) + chars_read = ctypes.c_int(0) + + # read new data + for i in range(read_start, read_end): + + coord.Y = i + + res = ctypes.windll.kernel32.ReadConsoleOutputCharacterW(self.stdout, ctypes.byref(self.tc), self.buffer_width, coord, ctypes.byref(chars_read)) + if not self.fast_mode: + ctypes.windll.kernel32.ReadConsoleOutputAttribute(self.stdout, ctypes.byref(self.ac), self.buffer_width, coord, ctypes.byref(chars_read)) + + t = self.tc.value + if not self.fast_mode: + a = self.ac.value + + # add data + if i >= len(self.data): + for j in range(len(self.data), i + 1): + self.data.append('') + if not self.fast_mode: + self.attributes.append('') + + self.data[i] = t + if not self.fast_mode: + self.attributes[i] = a + + + + + #for i in range(0, len(t)): + + + + + # write new output to shared memory + try: + if self.mem_redraw_ct == CONQUE_SOLE_MEM_REDRAW: + self.mem_redraw_ct = 0 + + for i in range(0, len(self.data)): + self.shm_output.write(text=self.data[i], start=self.buffer_width * i) + if not self.fast_mode: + self.shm_attributes.write(text=self.attributes[i], start=self.buffer_width * i) + else: + + for i in range(read_start, read_end): + self.shm_output.write(text=self.data[i], start=self.buffer_width * i) + if not self.fast_mode: + self.shm_attributes.write(text=self.attributes[i], start=self.buffer_width * i) + #self.shm_output.write(text=''.join(self.data[read_start:read_end]), start=read_start * self.buffer_width) + #self.shm_attributes.write(text=''.join(self.attributes[read_start:read_end]), start=read_start * self.buffer_width) + + # write cursor position to shared memory + stats = {'top_offset': buf_info.srWindow.Top, 'default_attribute': buf_info.wAttributes, 'cursor_x': curs_col, 'cursor_y': curs_line, 'is_alive': 1} + self.shm_stats.write(stats) + + # adjust screen position + self.top = buf_info.srWindow.Top + self.cursor_line = curs_line + + # check for reset + if curs_line > buf_info.dwSize.Y - 200: + self.reset_console(buf_info) + + except: + + + + + pass + + # increment redraw counters + self.screen_redraw_ct += 1 + self.mem_redraw_ct += 1 + + return None + + + def reset_console(self, buf_info, add_block=True): + """ Extend the height of the current console if the cursor postion gets within 200 lines of the current size. """ + + # sometimes we just want to change the buffer width, + # in which case no need to add another block + if add_block: + self.output_blocks += 1 + + # close down old memory + self.shm_output.close() + self.shm_output = None + + if not self.fast_mode: + self.shm_attributes.close() + self.shm_attributes = None + + # new shared memory key + mem_key = 'mk' + str(time.time()) + + # reallocate memory + self.shm_output = ConqueSoleSharedMemory(self.buffer_height * self.buffer_width * self.output_blocks, 'output', mem_key, True) + self.shm_output.create('write') + self.shm_output.clear() + + # backfill data + if len(self.data[0]) < self.buffer_width: + for i in range(0, len(self.data)): + self.data[i] = self.data[i] + ' ' * (self.buffer_width - len(self.data[i])) + self.shm_output.write(''.join(self.data)) + + if not self.fast_mode: + self.shm_attributes = ConqueSoleSharedMemory(self.buffer_height * self.buffer_width * self.output_blocks, 'attributes', mem_key, True, chr(buf_info.wAttributes), encoding='latin-1') + self.shm_attributes.create('write') + self.shm_attributes.clear() + + # backfill attributes + if len(self.attributes[0]) < self.buffer_width: + for i in range(0, len(self.attributes)): + self.attributes[i] = self.attributes[i] + chr(buf_info.wAttributes) * (self.buffer_width - len(self.attributes[i])) + if not self.fast_mode: + self.shm_attributes.write(''.join(self.attributes)) + + # notify wrapper of new output block + self.shm_rescroll.write({'cmd': 'new_output', 'data': {'blocks': self.output_blocks, 'mem_key': mem_key}}) + + # set buffer size + size = COORD(X=self.buffer_width, Y=self.buffer_height * self.output_blocks) + + res = ctypes.windll.kernel32.SetConsoleScreenBufferSize(self.stdout, size) + + + + + + + # prev set size call needs to process + time.sleep(0.2) + + # set window size + self.set_window_size(self.window_width, self.window_height) + + # init read buffers + self.tc = ctypes.create_unicode_buffer(self.buffer_width) + self.ac = ctypes.create_unicode_buffer(self.buffer_width) + + + + def write(self): + """ Write text to console. + + This function just parses out special sequences for special key events + and passes on the text to the plain or virtual key functions. + + """ + # get input from shared mem + text = self.shm_input.read() + + # nothing to do here + if text == u(''): + return + + + + # clear input queue + self.shm_input.clear() + + # split on VK codes + chunks = CONQUE_WIN32_REGEX_VK.split(text) + + # if len() is one then no vks + if len(chunks) == 1: + self.write_plain(text) + return + + + + # loop over chunks and delegate + for t in chunks: + + if t == '': + continue + + if CONQUE_WIN32_REGEX_VK.match(t): + + self.write_vk(t[2:-2]) + else: + self.write_plain(t) + + + def write_plain(self, text): + """ Write simple text to subprocess. """ + + li = INPUT_RECORD * len(text) + list_input = li() + + for i in range(0, len(text)): + + # create keyboard input + ke = KEY_EVENT_RECORD() + ke.bKeyDown = ctypes.c_byte(1) + ke.wRepeatCount = ctypes.c_short(1) + + cnum = ord(text[i]) + + ke.wVirtualKeyCode = ctypes.windll.user32.VkKeyScanW(cnum) + ke.wVirtualScanCode = ctypes.c_short(ctypes.windll.user32.MapVirtualKeyW(int(cnum), 0)) + + if cnum > 31: + ke.uChar.UnicodeChar = uchr(cnum) + elif cnum == 3: + ctypes.windll.kernel32.GenerateConsoleCtrlEvent(0, self.pid) + ke.uChar.UnicodeChar = uchr(cnum) + ke.wVirtualKeyCode = ctypes.windll.user32.VkKeyScanW(cnum + 96) + ke.dwControlKeyState |= LEFT_CTRL_PRESSED + else: + ke.uChar.UnicodeChar = uchr(cnum) + if cnum in CONQUE_WINDOWS_VK_INV: + ke.wVirtualKeyCode = cnum + else: + ke.wVirtualKeyCode = ctypes.windll.user32.VkKeyScanW(cnum + 96) + ke.dwControlKeyState |= LEFT_CTRL_PRESSED + + + + + kc = INPUT_RECORD(KEY_EVENT) + kc.Event.KeyEvent = ke + list_input[i] = kc + + + + # write input array + events_written = ctypes.c_int() + res = ctypes.windll.kernel32.WriteConsoleInputW(self.stdin, list_input, len(text), ctypes.byref(events_written)) + + + + + + + + + def write_vk(self, vk_code): + """ Write special characters to console subprocess. """ + + + + code = None + ctrl_pressed = False + + # this could be made more generic when more attributes + # other than ctrl_pressed are available + vk_attributes = vk_code.split(';') + + for attr in vk_attributes: + if attr == CONQUE_VK_ATTR_CTRL_PRESSED: + ctrl_pressed = True + else: + code = attr + + li = INPUT_RECORD * 1 + + # create keyboard input + ke = KEY_EVENT_RECORD() + ke.uChar.UnicodeChar = uchr(0) + ke.wVirtualKeyCode = ctypes.c_short(int(code)) + ke.wVirtualScanCode = ctypes.c_short(ctypes.windll.user32.MapVirtualKeyW(int(code), 0)) + ke.bKeyDown = ctypes.c_byte(1) + ke.wRepeatCount = ctypes.c_short(1) + + # set enhanced key mode for arrow keys + if code in CONQUE_WINDOWS_VK_ENHANCED: + + ke.dwControlKeyState |= ENHANCED_KEY + + if ctrl_pressed: + ke.dwControlKeyState |= LEFT_CTRL_PRESSED + + kc = INPUT_RECORD(KEY_EVENT) + kc.Event.KeyEvent = ke + list_input = li(kc) + + # write input array + events_written = ctypes.c_int() + res = ctypes.windll.kernel32.WriteConsoleInputW(self.stdin, list_input, 1, ctypes.byref(events_written)) + + + + + + + + def close(self): + """ Close all running subproccesses """ + + # record status + self.is_alive = False + try: + stats = {'top_offset': 0, 'default_attribute': 0, 'cursor_x': 0, 'cursor_y': self.cursor_line, 'is_alive': 0} + self.shm_stats.write(stats) + except: + pass + + pid_list = (ctypes.c_int * 10)() + num = ctypes.windll.kernel32.GetConsoleProcessList(pid_list, 10) + + + + current_pid = os.getpid() + + + + + + # kill subprocess pids + for pid in pid_list[0:num]: + if not pid: + break + + # kill current pid last + if pid == current_pid: + continue + try: + self.close_pid(pid) + except: + + pass + + # kill this process + try: + self.close_pid(current_pid) + except: + + pass + + + def close_pid(self, pid): + """ Terminate a single process. """ + + + handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE, 0, pid) + ctypes.windll.kernel32.TerminateProcess(handle, -1) + ctypes.windll.kernel32.CloseHandle(handle) + + + def is_alive(self): + """ Check process health. """ + + status = ctypes.windll.kernel32.WaitForSingleObject(self.handle, 1) + + if status == 0: + + self.is_alive = False + + return self.is_alive + + + def get_screen_text(self): + """ Return screen data as string. """ + + return "\n".join(self.data) + + + def set_window_size(self, width, height): + """ Change Windows console size. """ + + + + # get current window size object + window_size = SMALL_RECT(0, 0, 0, 0) + + # buffer info has maximum window size data + buf_info = self.get_buffer_info() + + + # set top left corner + window_size.Top = 0 + window_size.Left = 0 + + # set bottom right corner + if buf_info.dwMaximumWindowSize.X < width: + + window_size.Right = buf_info.dwMaximumWindowSize.X - 1 + else: + window_size.Right = width - 1 + + if buf_info.dwMaximumWindowSize.Y < height: + + window_size.Bottom = buf_info.dwMaximumWindowSize.Y - 1 + else: + window_size.Bottom = height - 1 + + + + # set the window size! + res = ctypes.windll.kernel32.SetConsoleWindowInfo(self.stdout, ctypes.c_bool(True), ctypes.byref(window_size)) + + + + + + + # reread buffer info to get final console max lines + buf_info = self.get_buffer_info() + + self.window_width = buf_info.srWindow.Right + 1 + self.window_height = buf_info.srWindow.Bottom + 1 + + + def get_buffer_info(self): + """ Retrieve commonly-used buffer information. """ + + buf_info = CONSOLE_SCREEN_BUFFER_INFO() + ctypes.windll.kernel32.GetConsoleScreenBufferInfo(self.stdout, ctypes.byref(buf_info)) + + return buf_info + + + diff --git a/vim/autoload/conque_term/conque_sole_wrapper.py b/vim/autoload/conque_term/conque_sole_wrapper.py new file mode 100644 index 0000000..1c333f9 --- /dev/null +++ b/vim/autoload/conque_term/conque_sole_wrapper.py @@ -0,0 +1,278 @@ +# FILE: autoload/conque_term/conque_sole_wrapper.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-09-02 +# VERSION: 2.3, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-2011 Nico Raffo +# +# 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. + +""" + +ConqueSoleSubprocessWrapper + +Subprocess wrapper to deal with Windows insanity. Launches console based python, +which in turn launches originally requested command. Communicates with cosole +python through shared memory objects. + +""" + +import ctypes +import time + + +class ConqueSoleWrapper(): + + # unique key used for shared memory block names + shm_key = '' + + # process info + handle = None + pid = None + + # queue input in this bucket + bucket = None + + # console size + lines = 24 + columns = 80 + + # shared memory objects + shm_input = None + shm_output = None + shm_attributes = None + shm_stats = None + shm_command = None + shm_rescroll = None + shm_resize = None + + # console python process + proc = None + + + def open(self, cmd, lines, columns, python_exe='python.exe', communicator_py='conque_sole_communicator.py', options={}): + """ Launch python.exe subprocess which will in turn launch the user's program. + + Arguments: + cmd -- The user's command to run. E.g. "Powershell.exe" or "C:\Python27\Scripts\ipython.bat" + lines, columns -- The size of the console, also the size of the Vim buffer + python.exe -- The path to the python executable, typically C:\PythonXX\python.exe + communicator_py -- The path to the subprocess controller script in the user's vimfiles directory + options -- optional configuration + + """ + self.lines = lines + self.columns = columns + self.bucket = u('') + + # create a shm key + self.shm_key = 'mk' + str(time.time()) + + # python command + cmd_line = '%s "%s" %s %d %d %d %d %s' % (python_exe, communicator_py, self.shm_key, int(self.columns), int(self.lines), int(options['CODE_PAGE']), int(CONQUE_FAST_MODE), cmd) + + + # console window attributes + flags = NORMAL_PRIORITY_CLASS | DETACHED_PROCESS | CREATE_UNICODE_ENVIRONMENT + si = STARTUPINFO() + pi = PROCESS_INFORMATION() + + # start the stupid process already + try: + res = ctypes.windll.kernel32.CreateProcessW(None, u(cmd_line), None, None, 0, flags, None, u('.'), ctypes.byref(si), ctypes.byref(pi)) + except: + + raise + + # handle + self.pid = pi.dwProcessId + + + + # init shared memory objects + self.init_shared_memory(self.shm_key) + + + def read(self, start_line, num_lines, timeout=0): + """ Read a range of console lines from shared memory. + + Returns a pair of lists containing the console text and console text attributes. + + """ + # emulate timeout by sleeping timeout time + if timeout > 0: + read_timeout = float(timeout) / 1000 + + time.sleep(read_timeout) + + output = [] + attributes = [] + + # get output + for i in range(start_line, start_line + num_lines + 1): + output.append(self.shm_output.read(self.columns, i * self.columns)) + if not CONQUE_FAST_MODE: + attributes.append(self.shm_attributes.read(self.columns, i * self.columns)) + + return (output, attributes) + + + def get_stats(self): + """ Return a dictionary with current console cursor and scrolling information. """ + + try: + rescroll = self.shm_rescroll.read() + if rescroll != '' and rescroll != None: + + + + self.shm_rescroll.clear() + + # close down old memory + self.shm_output.close() + self.shm_output = None + + if not CONQUE_FAST_MODE: + self.shm_attributes.close() + self.shm_attributes = None + + # reallocate memory + + self.shm_output = ConqueSoleSharedMemory(CONQUE_SOLE_BUFFER_LENGTH * self.columns * rescroll['data']['blocks'], 'output', rescroll['data']['mem_key'], True) + self.shm_output.create('read') + + if not CONQUE_FAST_MODE: + self.shm_attributes = ConqueSoleSharedMemory(CONQUE_SOLE_BUFFER_LENGTH * self.columns * rescroll['data']['blocks'], 'attributes', rescroll['data']['mem_key'], True, encoding='latin-1') + self.shm_attributes.create('read') + + stats_str = self.shm_stats.read() + if stats_str != '': + self.stats = stats_str + else: + return False + except: + + return False + + return self.stats + + + def is_alive(self): + """ Get process status. """ + + if not self.shm_stats: + return True + + stats_str = self.shm_stats.read() + if stats_str: + return (stats_str['is_alive']) + else: + return True + + + def write(self, text): + """ Write input to shared memory. """ + + self.bucket += text + + istr = self.shm_input.read() + + if istr == '': + + self.shm_input.write(self.bucket[:500]) + self.bucket = self.bucket[500:] + + + def write_vk(self, vk_code): + """ Write virtual key code to shared memory using proprietary escape sequences. """ + + seq = u("\x1b[") + u(str(vk_code)) + u("VK") + self.write(seq) + + + def idle(self): + """ Write idle command to shared memory block, so subprocess controller can hibernate. """ + + + self.shm_command.write({'cmd': 'idle', 'data': {}}) + + + def resume(self): + """ Write resume command to shared memory block, so subprocess controller can wake up. """ + + self.shm_command.write({'cmd': 'resume', 'data': {}}) + + + def close(self): + """ Shut it all down. """ + + self.shm_command.write({'cmd': 'close', 'data': {}}) + time.sleep(0.2) + + + def window_resize(self, lines, columns): + """ Resize console window. """ + + self.lines = lines + + # we don't shrink buffer width + if columns > self.columns: + self.columns = columns + + self.shm_resize.write({'cmd': 'resize', 'data': {'width': columns, 'height': lines}}) + + + def init_shared_memory(self, mem_key): + """ Create shared memory objects. """ + + self.shm_input = ConqueSoleSharedMemory(CONQUE_SOLE_INPUT_SIZE, 'input', mem_key) + self.shm_input.create('write') + self.shm_input.clear() + + self.shm_output = ConqueSoleSharedMemory(CONQUE_SOLE_BUFFER_LENGTH * self.columns, 'output', mem_key, True) + self.shm_output.create('write') + + if not CONQUE_FAST_MODE: + self.shm_attributes = ConqueSoleSharedMemory(CONQUE_SOLE_BUFFER_LENGTH * self.columns, 'attributes', mem_key, True, encoding='latin-1') + self.shm_attributes.create('write') + + self.shm_stats = ConqueSoleSharedMemory(CONQUE_SOLE_STATS_SIZE, 'stats', mem_key, serialize=True) + self.shm_stats.create('write') + self.shm_stats.clear() + + self.shm_command = ConqueSoleSharedMemory(CONQUE_SOLE_COMMANDS_SIZE, 'command', mem_key, serialize=True) + self.shm_command.create('write') + self.shm_command.clear() + + self.shm_resize = ConqueSoleSharedMemory(CONQUE_SOLE_RESIZE_SIZE, 'resize', mem_key, serialize=True) + self.shm_resize.create('write') + self.shm_resize.clear() + + self.shm_rescroll = ConqueSoleSharedMemory(CONQUE_SOLE_RESCROLL_SIZE, 'rescroll', mem_key, serialize=True) + self.shm_rescroll.create('write') + self.shm_rescroll.clear() + + return True + + +# vim:foldmethod=marker diff --git a/vim/autoload/conque_term/conque_subprocess.py b/vim/autoload/conque_term/conque_subprocess.py new file mode 100644 index 0000000..b44c331 --- /dev/null +++ b/vim/autoload/conque_term/conque_subprocess.py @@ -0,0 +1,198 @@ +# FILE: autoload/conque_term/conque_subprocess.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-09-02 +# VERSION: 2.3, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-2011 Nico Raffo +# +# 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. + +""" +ConqueSubprocess + +Create and interact with a subprocess through a pty. + +Usage: + + p = ConqueSubprocess() + p.open('bash', {'TERM':'vt100'}) + output = p.read() + p.write('cd ~/vim' + "\r") + p.write('ls -lha' + "\r") + output += p.read(timeout = 500) + p.close() +""" + +import os +import signal +import pty +import tty +import select +import fcntl +import termios +import struct +import shlex + + +class ConqueSubprocess: + + # process id + pid = 0 + + # stdout+stderr file descriptor + fd = None + + + def open(self, command, env={}): + """ Create subprocess using forkpty() """ + + # parse command + command_arr = shlex.split(command) + executable = command_arr[0] + args = command_arr + + # try to fork a new pty + try: + self.pid, self.fd = pty.fork() + + except: + + return False + + # child proc, replace with command after altering terminal attributes + if self.pid == 0: + + # set requested environment variables + for k in env.keys(): + os.environ[k] = env[k] + + # set tty attributes + try: + attrs = tty.tcgetattr(1) + attrs[0] = attrs[0] ^ tty.IGNBRK + attrs[0] = attrs[0] | tty.BRKINT | tty.IXANY | tty.IMAXBEL + attrs[2] = attrs[2] | tty.HUPCL + attrs[3] = attrs[3] | tty.ICANON | tty.ECHO | tty.ISIG | tty.ECHOKE + attrs[6][tty.VMIN] = 1 + attrs[6][tty.VTIME] = 0 + tty.tcsetattr(1, tty.TCSANOW, attrs) + except: + + pass + + # replace this process with the subprocess + os.execvp(executable, args) + + # else master, do nothing + else: + pass + + + def read(self, timeout=1): + """ Read from subprocess and return new output """ + + output = '' + read_timeout = float(timeout) / 1000 + read_ct = 0 + + try: + # read from fd until no more output + while 1: + s_read, s_write, s_error = select.select([self.fd], [], [], read_timeout) + + lines = '' + for s_fd in s_read: + try: + # increase read buffer so huge reads don't slow down + if read_ct < 10: + lines = os.read(self.fd, 32) + elif read_ct < 50: + lines = os.read(self.fd, 512) + else: + lines = os.read(self.fd, 2048) + read_ct += 1 + except: + pass + output = output + lines.decode('utf-8') + + if lines == '' or read_ct > 100: + break + except: + + pass + + return output + + + def write(self, input): + """ Write new input to subprocess """ + + try: + if CONQUE_PYTHON_VERSION == 2: + os.write(self.fd, input.encode('utf-8', 'ignore')) + else: + os.write(self.fd, bytes(input, 'utf-8')) + except: + + pass + + + def signal(self, signum): + """ signal process """ + + try: + os.kill(self.pid, signum) + except: + pass + + + def close(self): + """ close process with sigterm signal """ + + self.signal(15) + + + def is_alive(self): + """ get process status """ + + p_status = True + try: + if os.waitpid(self.pid, os.WNOHANG)[0]: + p_status = False + except: + p_status = False + + return p_status + + + def window_resize(self, lines, columns): + """ update window size in kernel, then send SIGWINCH to fg process """ + + try: + fcntl.ioctl(self.fd, termios.TIOCSWINSZ, struct.pack("HHHH", lines, columns, 0, 0)) + os.kill(self.pid, signal.SIGWINCH) + except: + pass + + +# vim:foldmethod=marker diff --git a/vim/autoload/conque_term/conque_win32_util.py b/vim/autoload/conque_term/conque_win32_util.py new file mode 100644 index 0000000..aad0d12 --- /dev/null +++ b/vim/autoload/conque_term/conque_win32_util.py @@ -0,0 +1,448 @@ +# FILE: autoload/conque_term/conque_win32_util.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-09-02 +# VERSION: 2.3, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-2011 Nico Raffo +# +# 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. + +""" Python constants and structures used for ctypes interaction. """ + +from ctypes import * + +# Constants + +# create process flag constants + +CREATE_BREAKAWAY_FROM_JOB = 0x01000000 +CREATE_DEFAULT_ERROR_MODE = 0x04000000 +CREATE_NEW_CONSOLE = 0x00000010 +CREATE_NEW_PROCESS_GROUP = 0x00000200 +CREATE_NO_WINDOW = 0x08000000 +CREATE_PROTECTED_PROCESS = 0x00040000 +CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 +CREATE_SEPARATE_WOW_VDM = 0x00000800 +CREATE_SHARED_WOW_VDM = 0x00001000 +CREATE_SUSPENDED = 0x00000004 +CREATE_UNICODE_ENVIRONMENT = 0x00000400 + + +DETACHED_PROCESS = 0x00000008 +EXTENDED_STARTUPINFO_PRESENT = 0x00080000 +INHERIT_PARENT_AFFINITY = 0x00010000 + + +# process priority constants + +ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000 +BELOW_NORMAL_PRIORITY_CLASS = 0x00004000 +HIGH_PRIORITY_CLASS = 0x00000080 +IDLE_PRIORITY_CLASS = 0x00000040 +NORMAL_PRIORITY_CLASS = 0x00000020 +REALTIME_PRIORITY_CLASS = 0x00000100 + + +# startup info constants + +STARTF_FORCEONFEEDBACK = 0x00000040 +STARTF_FORCEOFFFEEDBACK = 0x00000080 +STARTF_PREVENTPINNING = 0x00002000 +STARTF_RUNFULLSCREEN = 0x00000020 +STARTF_TITLEISAPPID = 0x00001000 +STARTF_TITLEISLINKNAME = 0x00000800 +STARTF_USECOUNTCHARS = 0x00000008 +STARTF_USEFILLATTRIBUTE = 0x00000010 +STARTF_USEHOTKEY = 0x00000200 +STARTF_USEPOSITION = 0x00000004 +STARTF_USESHOWWINDOW = 0x00000001 +STARTF_USESIZE = 0x00000002 +STARTF_USESTDHANDLES = 0x00000100 + + +# show window constants + +SW_FORCEMINIMIZE = 11 +SW_HIDE = 0 +SW_MAXIMIZE = 3 +SW_MINIMIZE = 6 +SW_RESTORE = 9 +SW_SHOW = 5 +SW_SHOWDEFAULT = 10 +SW_SHOWMAXIMIZED = 3 +SW_SHOWMINIMIZED = 2 +SW_SHOWMINNOACTIVE = 7 +SW_SHOWNA = 8 +SW_SHOWNOACTIVATE = 4 +SW_SHOWNORMAL = 1 + + +# input event types + +FOCUS_EVENT = 0x0010 +KEY_EVENT = 0x0001 +MENU_EVENT = 0x0008 +MOUSE_EVENT = 0x0002 +WINDOW_BUFFER_SIZE_EVENT = 0x0004 + + +# key event modifiers + +CAPSLOCK_ON = 0x0080 +ENHANCED_KEY = 0x0100 +LEFT_ALT_PRESSED = 0x0002 +LEFT_CTRL_PRESSED = 0x0008 +NUMLOCK_ON = 0x0020 +RIGHT_ALT_PRESSED = 0x0001 +RIGHT_CTRL_PRESSED = 0x0004 +SCROLLLOCK_ON = 0x0040 +SHIFT_PRESSED = 0x0010 + + +# process access + +PROCESS_CREATE_PROCESS = 0x0080 +PROCESS_CREATE_THREAD = 0x0002 +PROCESS_DUP_HANDLE = 0x0040 +PROCESS_QUERY_INFORMATION = 0x0400 +PROCESS_QUERY_LIMITED_INFORMATION = 0x1000 +PROCESS_SET_INFORMATION = 0x0200 +PROCESS_SET_QUOTA = 0x0100 +PROCESS_SUSPEND_RESUME = 0x0800 +PROCESS_TERMINATE = 0x0001 +PROCESS_VM_OPERATION = 0x0008 +PROCESS_VM_READ = 0x0010 +PROCESS_VM_WRITE = 0x0020 + + +# input / output handles + +STD_INPUT_HANDLE = c_ulong(-10) +STD_OUTPUT_HANDLE = c_ulong(-11) +STD_ERROR_HANDLE = c_ulong(-12) + + +CONQUE_WINDOWS_VK = { + 'VK_LBUTTON': 0x0001, + 'VK_RBUTTON': 0x0002, + 'VK_CANCEL': 0x0003, + 'VK_BACK': 0x0008, + 'VK_TAB': 0x0009, + 'VK_CLEAR': 0x000C, + 'VK_RETURN': 0x0D, + 'VK_SHIFT': 0x10, + 'VK_CONTROL': 0x11, + 'VK_MENU': 0x12, + 'VK_PAUSE': 0x0013, + 'VK_CAPITAL': 0x0014, + 'VK_ESCAPE': 0x001B, + 'VK_SPACE': 0x0020, + 'VK_PRIOR': 0x0021, + 'VK_NEXT': 0x0022, + 'VK_END': 0x0023, + 'VK_HOME': 0x0024, + 'VK_LEFT': 0x0025, + 'VK_UP': 0x0026, + 'VK_RIGHT': 0x0027, + 'VK_DOWN': 0x0028, + 'VK_SELECT': 0x0029, + 'VK_PRINT': 0x002A, + 'VK_EXECUTE': 0x002B, + 'VK_SNAPSHOT': 0x002C, + 'VK_INSERT': 0x002D, + 'VK_DELETE': 0x002E, + 'VK_HELP': 0x002F, + 'VK_0': 0x0030, + 'VK_1': 0x0031, + 'VK_2': 0x0032, + 'VK_3': 0x0033, + 'VK_4': 0x0034, + 'VK_5': 0x0035, + 'VK_6': 0x0036, + 'VK_7': 0x0037, + 'VK_8': 0x0038, + 'VK_9': 0x0039, + 'VK_A': 0x0041, + 'VK_B': 0x0042, + 'VK_C': 0x0043, + 'VK_D': 0x0044, + 'VK_E': 0x0045, + 'VK_F': 0x0046, + 'VK_G': 0x0047, + 'VK_H': 0x0048, + 'VK_I': 0x0049, + 'VK_J': 0x004A, + 'VK_K': 0x004B, + 'VK_L': 0x004C, + 'VK_M': 0x004D, + 'VK_N': 0x004E, + 'VK_O': 0x004F, + 'VK_P': 0x0050, + 'VK_Q': 0x0051, + 'VK_R': 0x0052, + 'VK_S': 0x0053, + 'VK_T': 0x0054, + 'VK_U': 0x0055, + 'VK_V': 0x0056, + 'VK_W': 0x0057, + 'VK_X': 0x0058, + 'VK_Y': 0x0059, + 'VK_Z': 0x005A, + 'VK_LWIN': 0x005B, + 'VK_RWIN': 0x005C, + 'VK_APPS': 0x005D, + 'VK_SLEEP': 0x005F, + 'VK_NUMPAD0': 0x0060, + 'VK_NUMPAD1': 0x0061, + 'VK_NUMPAD2': 0x0062, + 'VK_NUMPAD3': 0x0063, + 'VK_NUMPAD4': 0x0064, + 'VK_NUMPAD5': 0x0065, + 'VK_NUMPAD6': 0x0066, + 'VK_NUMPAD7': 0x0067, + 'VK_NUMPAD8': 0x0068, + 'VK_MULTIPLY': 0x006A, + 'VK_ADD': 0x006B, + 'VK_SEPARATOR': 0x006C, + 'VK_SUBTRACT': 0x006D, + 'VK_DECIMAL': 0x006E, + 'VK_DIVIDE': 0x006F, + 'VK_F1': 0x0070, + 'VK_F2': 0x0071, + 'VK_F3': 0x0072, + 'VK_F4': 0x0073, + 'VK_F5': 0x0074, + 'VK_F6': 0x0075, + 'VK_F7': 0x0076, + 'VK_F8': 0x0077, + 'VK_F9': 0x0078, + 'VK_F10': 0x0079, + 'VK_F11': 0x007A, + 'VK_F12': 0x007B, + 'VK_F13': 0x007C, + 'VK_F14': 0x007D, + 'VK_F15': 0x007E, + 'VK_F16': 0x007F, + 'VK_F17': 0x0080, + 'VK_F18': 0x0081, + 'VK_F19': 0x0082, + 'VK_F20': 0x0083, + 'VK_F21': 0x0084, + 'VK_F22': 0x0085, + 'VK_F23': 0x0086, + 'VK_F24': 0x0087, + 'VK_NUMLOCK': 0x0090, + 'VK_SCROLL': 0x0091, + 'VK_LSHIFT': 0x00A0, + 'VK_RSHIFT': 0x00A1, + 'VK_LCONTROL': 0x00A2, + 'VK_RCONTROL': 0x00A3, + 'VK_LMENU': 0x00A4, + 'VK_RMENU': 0x00A5 +} + +CONQUE_WINDOWS_VK_INV = dict([v, k] for k, v in CONQUE_WINDOWS_VK.items()) + +CONQUE_WINDOWS_VK_ENHANCED = { + str(int(CONQUE_WINDOWS_VK['VK_UP'])): 1, + str(int(CONQUE_WINDOWS_VK['VK_DOWN'])): 1, + str(int(CONQUE_WINDOWS_VK['VK_LEFT'])): 1, + str(int(CONQUE_WINDOWS_VK['VK_RIGHT'])): 1, + str(int(CONQUE_WINDOWS_VK['VK_HOME'])): 1, + str(int(CONQUE_WINDOWS_VK['VK_END'])): 1 +} + + +# structures used for CreateProcess + +# Odd types + +LPBYTE = POINTER(c_ubyte) +LPTSTR = POINTER(c_char) + + +class STARTUPINFO(Structure): + _fields_ = [("cb", c_ulong), + ("lpReserved", LPTSTR), + ("lpDesktop", LPTSTR), + ("lpTitle", LPTSTR), + ("dwX", c_ulong), + ("dwY", c_ulong), + ("dwXSize", c_ulong), + ("dwYSize", c_ulong), + ("dwXCountChars", c_ulong), + ("dwYCountChars", c_ulong), + ("dwFillAttribute", c_ulong), + ("dwFlags", c_ulong), + ("wShowWindow", c_short), + ("cbReserved2", c_short), + ("lpReserved2", LPBYTE), + ("hStdInput", c_void_p), + ("hStdOutput", c_void_p), + ("hStdError", c_void_p),] + + def to_str(self): + return '' + + +class PROCESS_INFORMATION(Structure): + _fields_ = [("hProcess", c_void_p), + ("hThread", c_void_p), + ("dwProcessId", c_ulong), + ("dwThreadId", c_ulong),] + + def to_str(self): + return '' + + +class MEMORY_BASIC_INFORMATION(Structure): + _fields_ = [("BaseAddress", c_void_p), + ("AllocationBase", c_void_p), + ("AllocationProtect", c_ulong), + ("RegionSize", c_ulong), + ("State", c_ulong), + ("Protect", c_ulong), + ("Type", c_ulong),] + + def to_str(self): + return '' + + +class SECURITY_ATTRIBUTES(Structure): + _fields_ = [("Length", c_ulong), + ("SecDescriptor", c_void_p), + ("InheritHandle", c_bool)] + + def to_str(self): + return '' + + +class COORD(Structure): + _fields_ = [("X", c_short), + ("Y", c_short)] + + def to_str(self): + return '' + + +class SMALL_RECT(Structure): + _fields_ = [("Left", c_short), + ("Top", c_short), + ("Right", c_short), + ("Bottom", c_short)] + + def to_str(self): + return '' + + +class CONSOLE_SCREEN_BUFFER_INFO(Structure): + _fields_ = [("dwSize", COORD), + ("dwCursorPosition", COORD), + ("wAttributes", c_short), + ("srWindow", SMALL_RECT), + ("dwMaximumWindowSize", COORD)] + + def to_str(self): + return '' + + +class CHAR_UNION(Union): + _fields_ = [("UnicodeChar", c_wchar), + ("AsciiChar", c_char)] + + def to_str(self): + return '' + + +class CHAR_INFO(Structure): + _fields_ = [("Char", CHAR_UNION), + ("Attributes", c_short)] + + def to_str(self): + return '' + + +class KEY_EVENT_RECORD(Structure): + _fields_ = [("bKeyDown", c_byte), + ("pad2", c_byte), + ('pad1', c_short), + ("wRepeatCount", c_short), + ("wVirtualKeyCode", c_short), + ("wVirtualScanCode", c_short), + ("uChar", CHAR_UNION), + ("dwControlKeyState", c_int)] + + def to_str(self): + return '' + + +class MOUSE_EVENT_RECORD(Structure): + _fields_ = [("dwMousePosition", COORD), + ("dwButtonState", c_int), + ("dwControlKeyState", c_int), + ("dwEventFlags", c_int)] + + def to_str(self): + return '' + + +class WINDOW_BUFFER_SIZE_RECORD(Structure): + _fields_ = [("dwSize", COORD)] + + def to_str(self): + return '' + + +class MENU_EVENT_RECORD(Structure): + _fields_ = [("dwCommandId", c_uint)] + + def to_str(self): + return '' + + +class FOCUS_EVENT_RECORD(Structure): + _fields_ = [("bSetFocus", c_byte)] + + def to_str(self): + return '' + + +class INPUT_UNION(Union): + _fields_ = [("KeyEvent", KEY_EVENT_RECORD), + ("MouseEvent", MOUSE_EVENT_RECORD), + ("WindowBufferSizeEvent", WINDOW_BUFFER_SIZE_RECORD), + ("MenuEvent", MENU_EVENT_RECORD), + ("FocusEvent", FOCUS_EVENT_RECORD)] + + def to_str(self): + return '' + + +class INPUT_RECORD(Structure): + _fields_ = [("EventType", c_short), + ("Event", INPUT_UNION)] + + def to_str(self): + return '' + + diff --git a/vim/autoload/csapprox.vim b/vim/autoload/csapprox.vim new file mode 100644 index 0000000..baf1887 --- /dev/null +++ b/vim/autoload/csapprox.vim @@ -0,0 +1,810 @@ +let s:rgb = {} + +let s:rgb["alice blue"] = "#f0f8ff" +let s:rgb["aliceblue"] = "#f0f8ff" +let s:rgb["antique white"] = "#faebd7" +let s:rgb["antiquewhite"] = "#faebd7" +let s:rgb["antiquewhite1"] = "#ffefdb" +let s:rgb["antiquewhite2"] = "#eedfcc" +let s:rgb["antiquewhite3"] = "#cdc0b0" +let s:rgb["antiquewhite4"] = "#8b8378" +let s:rgb["aquamarine"] = "#7fffd4" +let s:rgb["aquamarine1"] = "#7fffd4" +let s:rgb["aquamarine2"] = "#76eec6" +let s:rgb["aquamarine3"] = "#66cdaa" +let s:rgb["aquamarine4"] = "#458b74" +let s:rgb["azure"] = "#f0ffff" +let s:rgb["azure1"] = "#f0ffff" +let s:rgb["azure2"] = "#e0eeee" +let s:rgb["azure3"] = "#c1cdcd" +let s:rgb["azure4"] = "#838b8b" +let s:rgb["beige"] = "#f5f5dc" +let s:rgb["bisque"] = "#ffe4c4" +let s:rgb["bisque1"] = "#ffe4c4" +let s:rgb["bisque2"] = "#eed5b7" +let s:rgb["bisque3"] = "#cdb79e" +let s:rgb["bisque4"] = "#8b7d6b" +let s:rgb["black"] = "#000000" +let s:rgb["blanched almond"] = "#ffebcd" +let s:rgb["blanchedalmond"] = "#ffebcd" +let s:rgb["blue violet"] = "#8a2be2" +let s:rgb["blue"] = "#0000ff" +let s:rgb["blue1"] = "#0000ff" +let s:rgb["blue2"] = "#0000ee" +let s:rgb["blue3"] = "#0000cd" +let s:rgb["blue4"] = "#00008b" +let s:rgb["blueviolet"] = "#8a2be2" +let s:rgb["brown"] = "#a52a2a" +let s:rgb["brown1"] = "#ff4040" +let s:rgb["brown2"] = "#ee3b3b" +let s:rgb["brown3"] = "#cd3333" +let s:rgb["brown4"] = "#8b2323" +let s:rgb["burlywood"] = "#deb887" +let s:rgb["burlywood1"] = "#ffd39b" +let s:rgb["burlywood2"] = "#eec591" +let s:rgb["burlywood3"] = "#cdaa7d" +let s:rgb["burlywood4"] = "#8b7355" +let s:rgb["cadet blue"] = "#5f9ea0" +let s:rgb["cadetblue"] = "#5f9ea0" +let s:rgb["cadetblue1"] = "#98f5ff" +let s:rgb["cadetblue2"] = "#8ee5ee" +let s:rgb["cadetblue3"] = "#7ac5cd" +let s:rgb["cadetblue4"] = "#53868b" +let s:rgb["chartreuse"] = "#7fff00" +let s:rgb["chartreuse1"] = "#7fff00" +let s:rgb["chartreuse2"] = "#76ee00" +let s:rgb["chartreuse3"] = "#66cd00" +let s:rgb["chartreuse4"] = "#458b00" +let s:rgb["chocolate"] = "#d2691e" +let s:rgb["chocolate1"] = "#ff7f24" +let s:rgb["chocolate2"] = "#ee7621" +let s:rgb["chocolate3"] = "#cd661d" +let s:rgb["chocolate4"] = "#8b4513" +let s:rgb["coral"] = "#ff7f50" +let s:rgb["coral1"] = "#ff7256" +let s:rgb["coral2"] = "#ee6a50" +let s:rgb["coral3"] = "#cd5b45" +let s:rgb["coral4"] = "#8b3e2f" +let s:rgb["cornflower blue"] = "#6495ed" +let s:rgb["cornflowerblue"] = "#6495ed" +let s:rgb["cornsilk"] = "#fff8dc" +let s:rgb["cornsilk1"] = "#fff8dc" +let s:rgb["cornsilk2"] = "#eee8cd" +let s:rgb["cornsilk3"] = "#cdc8b1" +let s:rgb["cornsilk4"] = "#8b8878" +let s:rgb["cyan"] = "#00ffff" +let s:rgb["cyan1"] = "#00ffff" +let s:rgb["cyan2"] = "#00eeee" +let s:rgb["cyan3"] = "#00cdcd" +let s:rgb["cyan4"] = "#008b8b" +let s:rgb["dark blue"] = "#00008b" +let s:rgb["dark cyan"] = "#008b8b" +let s:rgb["dark goldenrod"] = "#b8860b" +let s:rgb["dark gray"] = "#a9a9a9" +let s:rgb["dark green"] = "#006400" +let s:rgb["dark grey"] = "#a9a9a9" +let s:rgb["dark khaki"] = "#bdb76b" +let s:rgb["dark magenta"] = "#8b008b" +let s:rgb["dark olive green"] = "#556b2f" +let s:rgb["dark orange"] = "#ff8c00" +let s:rgb["dark orchid"] = "#9932cc" +let s:rgb["dark red"] = "#8b0000" +let s:rgb["dark salmon"] = "#e9967a" +let s:rgb["dark sea green"] = "#8fbc8f" +let s:rgb["dark slate blue"] = "#483d8b" +let s:rgb["dark slate gray"] = "#2f4f4f" +let s:rgb["dark slate grey"] = "#2f4f4f" +let s:rgb["dark turquoise"] = "#00ced1" +let s:rgb["dark violet"] = "#9400d3" +let s:rgb["dark yellow"] = "#bbbb00" +let s:rgb["darkblue"] = "#00008b" +let s:rgb["darkcyan"] = "#008b8b" +let s:rgb["darkgoldenrod"] = "#b8860b" +let s:rgb["darkgoldenrod1"] = "#ffb90f" +let s:rgb["darkgoldenrod2"] = "#eead0e" +let s:rgb["darkgoldenrod3"] = "#cd950c" +let s:rgb["darkgoldenrod4"] = "#8b6508" +let s:rgb["darkgray"] = "#a9a9a9" +let s:rgb["darkgreen"] = "#006400" +let s:rgb["darkgrey"] = "#a9a9a9" +let s:rgb["darkkhaki"] = "#bdb76b" +let s:rgb["darkmagenta"] = "#8b008b" +let s:rgb["darkolivegreen"] = "#556b2f" +let s:rgb["darkolivegreen1"] = "#caff70" +let s:rgb["darkolivegreen2"] = "#bcee68" +let s:rgb["darkolivegreen3"] = "#a2cd5a" +let s:rgb["darkolivegreen4"] = "#6e8b3d" +let s:rgb["darkorange"] = "#ff8c00" +let s:rgb["darkorange1"] = "#ff7f00" +let s:rgb["darkorange2"] = "#ee7600" +let s:rgb["darkorange3"] = "#cd6600" +let s:rgb["darkorange4"] = "#8b4500" +let s:rgb["darkorchid"] = "#9932cc" +let s:rgb["darkorchid1"] = "#bf3eff" +let s:rgb["darkorchid2"] = "#b23aee" +let s:rgb["darkorchid3"] = "#9a32cd" +let s:rgb["darkorchid4"] = "#68228b" +let s:rgb["darkred"] = "#8b0000" +let s:rgb["darksalmon"] = "#e9967a" +let s:rgb["darkseagreen"] = "#8fbc8f" +let s:rgb["darkseagreen1"] = "#c1ffc1" +let s:rgb["darkseagreen2"] = "#b4eeb4" +let s:rgb["darkseagreen3"] = "#9bcd9b" +let s:rgb["darkseagreen4"] = "#698b69" +let s:rgb["darkslateblue"] = "#483d8b" +let s:rgb["darkslategray"] = "#2f4f4f" +let s:rgb["darkslategray1"] = "#97ffff" +let s:rgb["darkslategray2"] = "#8deeee" +let s:rgb["darkslategray3"] = "#79cdcd" +let s:rgb["darkslategray4"] = "#528b8b" +let s:rgb["darkslategrey"] = "#2f4f4f" +let s:rgb["darkturquoise"] = "#00ced1" +let s:rgb["darkviolet"] = "#9400d3" +let s:rgb["darkyellow"] = "#bbbb00" +let s:rgb["deep pink"] = "#ff1493" +let s:rgb["deep sky blue"] = "#00bfff" +let s:rgb["deeppink"] = "#ff1493" +let s:rgb["deeppink1"] = "#ff1493" +let s:rgb["deeppink2"] = "#ee1289" +let s:rgb["deeppink3"] = "#cd1076" +let s:rgb["deeppink4"] = "#8b0a50" +let s:rgb["deepskyblue"] = "#00bfff" +let s:rgb["deepskyblue1"] = "#00bfff" +let s:rgb["deepskyblue2"] = "#00b2ee" +let s:rgb["deepskyblue3"] = "#009acd" +let s:rgb["deepskyblue4"] = "#00688b" +let s:rgb["dim gray"] = "#696969" +let s:rgb["dim grey"] = "#696969" +let s:rgb["dimgray"] = "#696969" +let s:rgb["dimgrey"] = "#696969" +let s:rgb["dodger blue"] = "#1e90ff" +let s:rgb["dodgerblue"] = "#1e90ff" +let s:rgb["dodgerblue1"] = "#1e90ff" +let s:rgb["dodgerblue2"] = "#1c86ee" +let s:rgb["dodgerblue3"] = "#1874cd" +let s:rgb["dodgerblue4"] = "#104e8b" +let s:rgb["firebrick"] = "#b22222" +let s:rgb["firebrick1"] = "#ff3030" +let s:rgb["firebrick2"] = "#ee2c2c" +let s:rgb["firebrick3"] = "#cd2626" +let s:rgb["firebrick4"] = "#8b1a1a" +let s:rgb["floral white"] = "#fffaf0" +let s:rgb["floralwhite"] = "#fffaf0" +let s:rgb["forest green"] = "#228b22" +let s:rgb["forestgreen"] = "#228b22" +let s:rgb["gainsboro"] = "#dcdcdc" +let s:rgb["ghost white"] = "#f8f8ff" +let s:rgb["ghostwhite"] = "#f8f8ff" +let s:rgb["gold"] = "#ffd700" +let s:rgb["gold1"] = "#ffd700" +let s:rgb["gold2"] = "#eec900" +let s:rgb["gold3"] = "#cdad00" +let s:rgb["gold4"] = "#8b7500" +let s:rgb["goldenrod"] = "#daa520" +let s:rgb["goldenrod1"] = "#ffc125" +let s:rgb["goldenrod2"] = "#eeb422" +let s:rgb["goldenrod3"] = "#cd9b1d" +let s:rgb["goldenrod4"] = "#8b6914" +let s:rgb["gray"] = "#bebebe" +let s:rgb["gray0"] = "#000000" +let s:rgb["gray1"] = "#030303" +let s:rgb["gray10"] = "#1a1a1a" +let s:rgb["gray100"] = "#ffffff" +let s:rgb["gray11"] = "#1c1c1c" +let s:rgb["gray12"] = "#1f1f1f" +let s:rgb["gray13"] = "#212121" +let s:rgb["gray14"] = "#242424" +let s:rgb["gray15"] = "#262626" +let s:rgb["gray16"] = "#292929" +let s:rgb["gray17"] = "#2b2b2b" +let s:rgb["gray18"] = "#2e2e2e" +let s:rgb["gray19"] = "#303030" +let s:rgb["gray2"] = "#050505" +let s:rgb["gray20"] = "#333333" +let s:rgb["gray21"] = "#363636" +let s:rgb["gray22"] = "#383838" +let s:rgb["gray23"] = "#3b3b3b" +let s:rgb["gray24"] = "#3d3d3d" +let s:rgb["gray25"] = "#404040" +let s:rgb["gray26"] = "#424242" +let s:rgb["gray27"] = "#454545" +let s:rgb["gray28"] = "#474747" +let s:rgb["gray29"] = "#4a4a4a" +let s:rgb["gray3"] = "#080808" +let s:rgb["gray30"] = "#4d4d4d" +let s:rgb["gray31"] = "#4f4f4f" +let s:rgb["gray32"] = "#525252" +let s:rgb["gray33"] = "#545454" +let s:rgb["gray34"] = "#575757" +let s:rgb["gray35"] = "#595959" +let s:rgb["gray36"] = "#5c5c5c" +let s:rgb["gray37"] = "#5e5e5e" +let s:rgb["gray38"] = "#616161" +let s:rgb["gray39"] = "#636363" +let s:rgb["gray4"] = "#0a0a0a" +let s:rgb["gray40"] = "#666666" +let s:rgb["gray41"] = "#696969" +let s:rgb["gray42"] = "#6b6b6b" +let s:rgb["gray43"] = "#6e6e6e" +let s:rgb["gray44"] = "#707070" +let s:rgb["gray45"] = "#737373" +let s:rgb["gray46"] = "#757575" +let s:rgb["gray47"] = "#787878" +let s:rgb["gray48"] = "#7a7a7a" +let s:rgb["gray49"] = "#7d7d7d" +let s:rgb["gray5"] = "#0d0d0d" +let s:rgb["gray50"] = "#7f7f7f" +let s:rgb["gray51"] = "#828282" +let s:rgb["gray52"] = "#858585" +let s:rgb["gray53"] = "#878787" +let s:rgb["gray54"] = "#8a8a8a" +let s:rgb["gray55"] = "#8c8c8c" +let s:rgb["gray56"] = "#8f8f8f" +let s:rgb["gray57"] = "#919191" +let s:rgb["gray58"] = "#949494" +let s:rgb["gray59"] = "#969696" +let s:rgb["gray6"] = "#0f0f0f" +let s:rgb["gray60"] = "#999999" +let s:rgb["gray61"] = "#9c9c9c" +let s:rgb["gray62"] = "#9e9e9e" +let s:rgb["gray63"] = "#a1a1a1" +let s:rgb["gray64"] = "#a3a3a3" +let s:rgb["gray65"] = "#a6a6a6" +let s:rgb["gray66"] = "#a8a8a8" +let s:rgb["gray67"] = "#ababab" +let s:rgb["gray68"] = "#adadad" +let s:rgb["gray69"] = "#b0b0b0" +let s:rgb["gray7"] = "#121212" +let s:rgb["gray70"] = "#b3b3b3" +let s:rgb["gray71"] = "#b5b5b5" +let s:rgb["gray72"] = "#b8b8b8" +let s:rgb["gray73"] = "#bababa" +let s:rgb["gray74"] = "#bdbdbd" +let s:rgb["gray75"] = "#bfbfbf" +let s:rgb["gray76"] = "#c2c2c2" +let s:rgb["gray77"] = "#c4c4c4" +let s:rgb["gray78"] = "#c7c7c7" +let s:rgb["gray79"] = "#c9c9c9" +let s:rgb["gray8"] = "#141414" +let s:rgb["gray80"] = "#cccccc" +let s:rgb["gray81"] = "#cfcfcf" +let s:rgb["gray82"] = "#d1d1d1" +let s:rgb["gray83"] = "#d4d4d4" +let s:rgb["gray84"] = "#d6d6d6" +let s:rgb["gray85"] = "#d9d9d9" +let s:rgb["gray86"] = "#dbdbdb" +let s:rgb["gray87"] = "#dedede" +let s:rgb["gray88"] = "#e0e0e0" +let s:rgb["gray89"] = "#e3e3e3" +let s:rgb["gray9"] = "#171717" +let s:rgb["gray90"] = "#e5e5e5" +let s:rgb["gray91"] = "#e8e8e8" +let s:rgb["gray92"] = "#ebebeb" +let s:rgb["gray93"] = "#ededed" +let s:rgb["gray94"] = "#f0f0f0" +let s:rgb["gray95"] = "#f2f2f2" +let s:rgb["gray96"] = "#f5f5f5" +let s:rgb["gray97"] = "#f7f7f7" +let s:rgb["gray98"] = "#fafafa" +let s:rgb["gray99"] = "#fcfcfc" +let s:rgb["green yellow"] = "#adff2f" +let s:rgb["green"] = "#00ff00" +let s:rgb["green1"] = "#00ff00" +let s:rgb["green2"] = "#00ee00" +let s:rgb["green3"] = "#00cd00" +let s:rgb["green4"] = "#008b00" +let s:rgb["greenyellow"] = "#adff2f" +let s:rgb["grey"] = "#bebebe" +let s:rgb["grey0"] = "#000000" +let s:rgb["grey1"] = "#030303" +let s:rgb["grey10"] = "#1a1a1a" +let s:rgb["grey100"] = "#ffffff" +let s:rgb["grey11"] = "#1c1c1c" +let s:rgb["grey12"] = "#1f1f1f" +let s:rgb["grey13"] = "#212121" +let s:rgb["grey14"] = "#242424" +let s:rgb["grey15"] = "#262626" +let s:rgb["grey16"] = "#292929" +let s:rgb["grey17"] = "#2b2b2b" +let s:rgb["grey18"] = "#2e2e2e" +let s:rgb["grey19"] = "#303030" +let s:rgb["grey2"] = "#050505" +let s:rgb["grey20"] = "#333333" +let s:rgb["grey21"] = "#363636" +let s:rgb["grey22"] = "#383838" +let s:rgb["grey23"] = "#3b3b3b" +let s:rgb["grey24"] = "#3d3d3d" +let s:rgb["grey25"] = "#404040" +let s:rgb["grey26"] = "#424242" +let s:rgb["grey27"] = "#454545" +let s:rgb["grey28"] = "#474747" +let s:rgb["grey29"] = "#4a4a4a" +let s:rgb["grey3"] = "#080808" +let s:rgb["grey30"] = "#4d4d4d" +let s:rgb["grey31"] = "#4f4f4f" +let s:rgb["grey32"] = "#525252" +let s:rgb["grey33"] = "#545454" +let s:rgb["grey34"] = "#575757" +let s:rgb["grey35"] = "#595959" +let s:rgb["grey36"] = "#5c5c5c" +let s:rgb["grey37"] = "#5e5e5e" +let s:rgb["grey38"] = "#616161" +let s:rgb["grey39"] = "#636363" +let s:rgb["grey4"] = "#0a0a0a" +let s:rgb["grey40"] = "#666666" +let s:rgb["grey41"] = "#696969" +let s:rgb["grey42"] = "#6b6b6b" +let s:rgb["grey43"] = "#6e6e6e" +let s:rgb["grey44"] = "#707070" +let s:rgb["grey45"] = "#737373" +let s:rgb["grey46"] = "#757575" +let s:rgb["grey47"] = "#787878" +let s:rgb["grey48"] = "#7a7a7a" +let s:rgb["grey49"] = "#7d7d7d" +let s:rgb["grey5"] = "#0d0d0d" +let s:rgb["grey50"] = "#7f7f7f" +let s:rgb["grey51"] = "#828282" +let s:rgb["grey52"] = "#858585" +let s:rgb["grey53"] = "#878787" +let s:rgb["grey54"] = "#8a8a8a" +let s:rgb["grey55"] = "#8c8c8c" +let s:rgb["grey56"] = "#8f8f8f" +let s:rgb["grey57"] = "#919191" +let s:rgb["grey58"] = "#949494" +let s:rgb["grey59"] = "#969696" +let s:rgb["grey6"] = "#0f0f0f" +let s:rgb["grey60"] = "#999999" +let s:rgb["grey61"] = "#9c9c9c" +let s:rgb["grey62"] = "#9e9e9e" +let s:rgb["grey63"] = "#a1a1a1" +let s:rgb["grey64"] = "#a3a3a3" +let s:rgb["grey65"] = "#a6a6a6" +let s:rgb["grey66"] = "#a8a8a8" +let s:rgb["grey67"] = "#ababab" +let s:rgb["grey68"] = "#adadad" +let s:rgb["grey69"] = "#b0b0b0" +let s:rgb["grey7"] = "#121212" +let s:rgb["grey70"] = "#b3b3b3" +let s:rgb["grey71"] = "#b5b5b5" +let s:rgb["grey72"] = "#b8b8b8" +let s:rgb["grey73"] = "#bababa" +let s:rgb["grey74"] = "#bdbdbd" +let s:rgb["grey75"] = "#bfbfbf" +let s:rgb["grey76"] = "#c2c2c2" +let s:rgb["grey77"] = "#c4c4c4" +let s:rgb["grey78"] = "#c7c7c7" +let s:rgb["grey79"] = "#c9c9c9" +let s:rgb["grey8"] = "#141414" +let s:rgb["grey80"] = "#cccccc" +let s:rgb["grey81"] = "#cfcfcf" +let s:rgb["grey82"] = "#d1d1d1" +let s:rgb["grey83"] = "#d4d4d4" +let s:rgb["grey84"] = "#d6d6d6" +let s:rgb["grey85"] = "#d9d9d9" +let s:rgb["grey86"] = "#dbdbdb" +let s:rgb["grey87"] = "#dedede" +let s:rgb["grey88"] = "#e0e0e0" +let s:rgb["grey89"] = "#e3e3e3" +let s:rgb["grey9"] = "#171717" +let s:rgb["grey90"] = "#e5e5e5" +let s:rgb["grey91"] = "#e8e8e8" +let s:rgb["grey92"] = "#ebebeb" +let s:rgb["grey93"] = "#ededed" +let s:rgb["grey94"] = "#f0f0f0" +let s:rgb["grey95"] = "#f2f2f2" +let s:rgb["grey96"] = "#f5f5f5" +let s:rgb["grey97"] = "#f7f7f7" +let s:rgb["grey98"] = "#fafafa" +let s:rgb["grey99"] = "#fcfcfc" +let s:rgb["honeydew"] = "#f0fff0" +let s:rgb["honeydew1"] = "#f0fff0" +let s:rgb["honeydew2"] = "#e0eee0" +let s:rgb["honeydew3"] = "#c1cdc1" +let s:rgb["honeydew4"] = "#838b83" +let s:rgb["hot pink"] = "#ff69b4" +let s:rgb["hotpink"] = "#ff69b4" +let s:rgb["hotpink1"] = "#ff6eb4" +let s:rgb["hotpink2"] = "#ee6aa7" +let s:rgb["hotpink3"] = "#cd6090" +let s:rgb["hotpink4"] = "#8b3a62" +let s:rgb["indian red"] = "#cd5c5c" +let s:rgb["indianred"] = "#cd5c5c" +let s:rgb["indianred1"] = "#ff6a6a" +let s:rgb["indianred2"] = "#ee6363" +let s:rgb["indianred3"] = "#cd5555" +let s:rgb["indianred4"] = "#8b3a3a" +let s:rgb["ivory"] = "#fffff0" +let s:rgb["ivory1"] = "#fffff0" +let s:rgb["ivory2"] = "#eeeee0" +let s:rgb["ivory3"] = "#cdcdc1" +let s:rgb["ivory4"] = "#8b8b83" +let s:rgb["khaki"] = "#f0e68c" +let s:rgb["khaki1"] = "#fff68f" +let s:rgb["khaki2"] = "#eee685" +let s:rgb["khaki3"] = "#cdc673" +let s:rgb["khaki4"] = "#8b864e" +let s:rgb["lavender blush"] = "#fff0f5" +let s:rgb["lavender"] = "#e6e6fa" +let s:rgb["lavenderblush"] = "#fff0f5" +let s:rgb["lavenderblush1"] = "#fff0f5" +let s:rgb["lavenderblush2"] = "#eee0e5" +let s:rgb["lavenderblush3"] = "#cdc1c5" +let s:rgb["lavenderblush4"] = "#8b8386" +let s:rgb["lawn green"] = "#7cfc00" +let s:rgb["lawngreen"] = "#7cfc00" +let s:rgb["lemon chiffon"] = "#fffacd" +let s:rgb["lemonchiffon"] = "#fffacd" +let s:rgb["lemonchiffon1"] = "#fffacd" +let s:rgb["lemonchiffon2"] = "#eee9bf" +let s:rgb["lemonchiffon3"] = "#cdc9a5" +let s:rgb["lemonchiffon4"] = "#8b8970" +let s:rgb["light blue"] = "#add8e6" +let s:rgb["light coral"] = "#f08080" +let s:rgb["light cyan"] = "#e0ffff" +let s:rgb["light goldenrod yellow"] = "#fafad2" +let s:rgb["light goldenrod"] = "#eedd82" +let s:rgb["light gray"] = "#d3d3d3" +let s:rgb["light green"] = "#90ee90" +let s:rgb["light grey"] = "#d3d3d3" +let s:rgb["light magenta"] = "#ffbbff" +let s:rgb["light pink"] = "#ffb6c1" +let s:rgb["light red"] = "#ffbbbb" +let s:rgb["light salmon"] = "#ffa07a" +let s:rgb["light sea green"] = "#20b2aa" +let s:rgb["light sky blue"] = "#87cefa" +let s:rgb["light slate blue"] = "#8470ff" +let s:rgb["light slate gray"] = "#778899" +let s:rgb["light slate grey"] = "#778899" +let s:rgb["light steel blue"] = "#b0c4de" +let s:rgb["light yellow"] = "#ffffe0" +let s:rgb["lightblue"] = "#add8e6" +let s:rgb["lightblue1"] = "#bfefff" +let s:rgb["lightblue2"] = "#b2dfee" +let s:rgb["lightblue3"] = "#9ac0cd" +let s:rgb["lightblue4"] = "#68838b" +let s:rgb["lightcoral"] = "#f08080" +let s:rgb["lightcyan"] = "#e0ffff" +let s:rgb["lightcyan1"] = "#e0ffff" +let s:rgb["lightcyan2"] = "#d1eeee" +let s:rgb["lightcyan3"] = "#b4cdcd" +let s:rgb["lightcyan4"] = "#7a8b8b" +let s:rgb["lightgoldenrod"] = "#eedd82" +let s:rgb["lightgoldenrod1"] = "#ffec8b" +let s:rgb["lightgoldenrod2"] = "#eedc82" +let s:rgb["lightgoldenrod3"] = "#cdbe70" +let s:rgb["lightgoldenrod4"] = "#8b814c" +let s:rgb["lightgoldenrodyellow"] = "#fafad2" +let s:rgb["lightgray"] = "#d3d3d3" +let s:rgb["lightgreen"] = "#90ee90" +let s:rgb["lightgrey"] = "#d3d3d3" +let s:rgb["lightmagenta"] = "#ffbbff" +let s:rgb["lightpink"] = "#ffb6c1" +let s:rgb["lightpink1"] = "#ffaeb9" +let s:rgb["lightpink2"] = "#eea2ad" +let s:rgb["lightpink3"] = "#cd8c95" +let s:rgb["lightpink4"] = "#8b5f65" +let s:rgb["lightred"] = "#ffbbbb" +let s:rgb["lightsalmon"] = "#ffa07a" +let s:rgb["lightsalmon1"] = "#ffa07a" +let s:rgb["lightsalmon2"] = "#ee9572" +let s:rgb["lightsalmon3"] = "#cd8162" +let s:rgb["lightsalmon4"] = "#8b5742" +let s:rgb["lightseagreen"] = "#20b2aa" +let s:rgb["lightskyblue"] = "#87cefa" +let s:rgb["lightskyblue1"] = "#b0e2ff" +let s:rgb["lightskyblue2"] = "#a4d3ee" +let s:rgb["lightskyblue3"] = "#8db6cd" +let s:rgb["lightskyblue4"] = "#607b8b" +let s:rgb["lightslateblue"] = "#8470ff" +let s:rgb["lightslategray"] = "#778899" +let s:rgb["lightslategrey"] = "#778899" +let s:rgb["lightsteelblue"] = "#b0c4de" +let s:rgb["lightsteelblue1"] = "#cae1ff" +let s:rgb["lightsteelblue2"] = "#bcd2ee" +let s:rgb["lightsteelblue3"] = "#a2b5cd" +let s:rgb["lightsteelblue4"] = "#6e7b8b" +let s:rgb["lightyellow"] = "#ffffe0" +let s:rgb["lightyellow1"] = "#ffffe0" +let s:rgb["lightyellow2"] = "#eeeed1" +let s:rgb["lightyellow3"] = "#cdcdb4" +let s:rgb["lightyellow4"] = "#8b8b7a" +let s:rgb["lime green"] = "#32cd32" +let s:rgb["limegreen"] = "#32cd32" +let s:rgb["linen"] = "#faf0e6" +let s:rgb["magenta"] = "#ff00ff" +let s:rgb["magenta1"] = "#ff00ff" +let s:rgb["magenta2"] = "#ee00ee" +let s:rgb["magenta3"] = "#cd00cd" +let s:rgb["magenta4"] = "#8b008b" +let s:rgb["maroon"] = "#b03060" +let s:rgb["maroon1"] = "#ff34b3" +let s:rgb["maroon2"] = "#ee30a7" +let s:rgb["maroon3"] = "#cd2990" +let s:rgb["maroon4"] = "#8b1c62" +let s:rgb["medium aquamarine"] = "#66cdaa" +let s:rgb["medium blue"] = "#0000cd" +let s:rgb["medium orchid"] = "#ba55d3" +let s:rgb["medium purple"] = "#9370db" +let s:rgb["medium sea green"] = "#3cb371" +let s:rgb["medium slate blue"] = "#7b68ee" +let s:rgb["medium spring green"] = "#00fa9a" +let s:rgb["medium turquoise"] = "#48d1cc" +let s:rgb["medium violet red"] = "#c71585" +let s:rgb["mediumaquamarine"] = "#66cdaa" +let s:rgb["mediumblue"] = "#0000cd" +let s:rgb["mediumorchid"] = "#ba55d3" +let s:rgb["mediumorchid1"] = "#e066ff" +let s:rgb["mediumorchid2"] = "#d15fee" +let s:rgb["mediumorchid3"] = "#b452cd" +let s:rgb["mediumorchid4"] = "#7a378b" +let s:rgb["mediumpurple"] = "#9370db" +let s:rgb["mediumpurple1"] = "#ab82ff" +let s:rgb["mediumpurple2"] = "#9f79ee" +let s:rgb["mediumpurple3"] = "#8968cd" +let s:rgb["mediumpurple4"] = "#5d478b" +let s:rgb["mediumseagreen"] = "#3cb371" +let s:rgb["mediumslateblue"] = "#7b68ee" +let s:rgb["mediumspringgreen"] = "#00fa9a" +let s:rgb["mediumturquoise"] = "#48d1cc" +let s:rgb["mediumvioletred"] = "#c71585" +let s:rgb["midnight blue"] = "#191970" +let s:rgb["midnightblue"] = "#191970" +let s:rgb["mint cream"] = "#f5fffa" +let s:rgb["mintcream"] = "#f5fffa" +let s:rgb["misty rose"] = "#ffe4e1" +let s:rgb["mistyrose"] = "#ffe4e1" +let s:rgb["mistyrose1"] = "#ffe4e1" +let s:rgb["mistyrose2"] = "#eed5d2" +let s:rgb["mistyrose3"] = "#cdb7b5" +let s:rgb["mistyrose4"] = "#8b7d7b" +let s:rgb["moccasin"] = "#ffe4b5" +let s:rgb["navajo white"] = "#ffdead" +let s:rgb["navajowhite"] = "#ffdead" +let s:rgb["navajowhite1"] = "#ffdead" +let s:rgb["navajowhite2"] = "#eecfa1" +let s:rgb["navajowhite3"] = "#cdb38b" +let s:rgb["navajowhite4"] = "#8b795e" +let s:rgb["navy blue"] = "#000080" +let s:rgb["navy"] = "#000080" +let s:rgb["navyblue"] = "#000080" +let s:rgb["old lace"] = "#fdf5e6" +let s:rgb["oldlace"] = "#fdf5e6" +let s:rgb["olive drab"] = "#6b8e23" +let s:rgb["olivedrab"] = "#6b8e23" +let s:rgb["olivedrab1"] = "#c0ff3e" +let s:rgb["olivedrab2"] = "#b3ee3a" +let s:rgb["olivedrab3"] = "#9acd32" +let s:rgb["olivedrab4"] = "#698b22" +let s:rgb["orange red"] = "#ff4500" +let s:rgb["orange"] = "#ffa500" +let s:rgb["orange1"] = "#ffa500" +let s:rgb["orange2"] = "#ee9a00" +let s:rgb["orange3"] = "#cd8500" +let s:rgb["orange4"] = "#8b5a00" +let s:rgb["orangered"] = "#ff4500" +let s:rgb["orangered1"] = "#ff4500" +let s:rgb["orangered2"] = "#ee4000" +let s:rgb["orangered3"] = "#cd3700" +let s:rgb["orangered4"] = "#8b2500" +let s:rgb["orchid"] = "#da70d6" +let s:rgb["orchid1"] = "#ff83fa" +let s:rgb["orchid2"] = "#ee7ae9" +let s:rgb["orchid3"] = "#cd69c9" +let s:rgb["orchid4"] = "#8b4789" +let s:rgb["pale goldenrod"] = "#eee8aa" +let s:rgb["pale green"] = "#98fb98" +let s:rgb["pale turquoise"] = "#afeeee" +let s:rgb["pale violet red"] = "#db7093" +let s:rgb["palegoldenrod"] = "#eee8aa" +let s:rgb["palegreen"] = "#98fb98" +let s:rgb["palegreen1"] = "#9aff9a" +let s:rgb["palegreen2"] = "#90ee90" +let s:rgb["palegreen3"] = "#7ccd7c" +let s:rgb["palegreen4"] = "#548b54" +let s:rgb["paleturquoise"] = "#afeeee" +let s:rgb["paleturquoise1"] = "#bbffff" +let s:rgb["paleturquoise2"] = "#aeeeee" +let s:rgb["paleturquoise3"] = "#96cdcd" +let s:rgb["paleturquoise4"] = "#668b8b" +let s:rgb["palevioletred"] = "#db7093" +let s:rgb["palevioletred1"] = "#ff82ab" +let s:rgb["palevioletred2"] = "#ee799f" +let s:rgb["palevioletred3"] = "#cd6889" +let s:rgb["palevioletred4"] = "#8b475d" +let s:rgb["papaya whip"] = "#ffefd5" +let s:rgb["papayawhip"] = "#ffefd5" +let s:rgb["peach puff"] = "#ffdab9" +let s:rgb["peachpuff"] = "#ffdab9" +let s:rgb["peachpuff1"] = "#ffdab9" +let s:rgb["peachpuff2"] = "#eecbad" +let s:rgb["peachpuff3"] = "#cdaf95" +let s:rgb["peachpuff4"] = "#8b7765" +let s:rgb["peru"] = "#cd853f" +let s:rgb["pink"] = "#ffc0cb" +let s:rgb["pink1"] = "#ffb5c5" +let s:rgb["pink2"] = "#eea9b8" +let s:rgb["pink3"] = "#cd919e" +let s:rgb["pink4"] = "#8b636c" +let s:rgb["plum"] = "#dda0dd" +let s:rgb["plum1"] = "#ffbbff" +let s:rgb["plum2"] = "#eeaeee" +let s:rgb["plum3"] = "#cd96cd" +let s:rgb["plum4"] = "#8b668b" +let s:rgb["powder blue"] = "#b0e0e6" +let s:rgb["powderblue"] = "#b0e0e6" +let s:rgb["purple"] = "#a020f0" +let s:rgb["purple1"] = "#9b30ff" +let s:rgb["purple2"] = "#912cee" +let s:rgb["purple3"] = "#7d26cd" +let s:rgb["purple4"] = "#551a8b" +let s:rgb["red"] = "#ff0000" +let s:rgb["red1"] = "#ff0000" +let s:rgb["red2"] = "#ee0000" +let s:rgb["red3"] = "#cd0000" +let s:rgb["red4"] = "#8b0000" +let s:rgb["rosy brown"] = "#bc8f8f" +let s:rgb["rosybrown"] = "#bc8f8f" +let s:rgb["rosybrown1"] = "#ffc1c1" +let s:rgb["rosybrown2"] = "#eeb4b4" +let s:rgb["rosybrown3"] = "#cd9b9b" +let s:rgb["rosybrown4"] = "#8b6969" +let s:rgb["royal blue"] = "#4169e1" +let s:rgb["royalblue"] = "#4169e1" +let s:rgb["royalblue1"] = "#4876ff" +let s:rgb["royalblue2"] = "#436eee" +let s:rgb["royalblue3"] = "#3a5fcd" +let s:rgb["royalblue4"] = "#27408b" +let s:rgb["saddle brown"] = "#8b4513" +let s:rgb["saddlebrown"] = "#8b4513" +let s:rgb["salmon"] = "#fa8072" +let s:rgb["salmon1"] = "#ff8c69" +let s:rgb["salmon2"] = "#ee8262" +let s:rgb["salmon3"] = "#cd7054" +let s:rgb["salmon4"] = "#8b4c39" +let s:rgb["sandy brown"] = "#f4a460" +let s:rgb["sandybrown"] = "#f4a460" +let s:rgb["sea green"] = "#2e8b57" +let s:rgb["seagreen"] = "#2e8b57" +let s:rgb["seagreen1"] = "#54ff9f" +let s:rgb["seagreen2"] = "#4eee94" +let s:rgb["seagreen3"] = "#43cd80" +let s:rgb["seagreen4"] = "#2e8b57" +let s:rgb["seashell"] = "#fff5ee" +let s:rgb["seashell1"] = "#fff5ee" +let s:rgb["seashell2"] = "#eee5de" +let s:rgb["seashell3"] = "#cdc5bf" +let s:rgb["seashell4"] = "#8b8682" +let s:rgb["sienna"] = "#a0522d" +let s:rgb["sienna1"] = "#ff8247" +let s:rgb["sienna2"] = "#ee7942" +let s:rgb["sienna3"] = "#cd6839" +let s:rgb["sienna4"] = "#8b4726" +let s:rgb["sky blue"] = "#87ceeb" +let s:rgb["skyblue"] = "#87ceeb" +let s:rgb["skyblue1"] = "#87ceff" +let s:rgb["skyblue2"] = "#7ec0ee" +let s:rgb["skyblue3"] = "#6ca6cd" +let s:rgb["skyblue4"] = "#4a708b" +let s:rgb["slate blue"] = "#6a5acd" +let s:rgb["slate gray"] = "#708090" +let s:rgb["slate grey"] = "#708090" +let s:rgb["slateblue"] = "#6a5acd" +let s:rgb["slateblue1"] = "#836fff" +let s:rgb["slateblue2"] = "#7a67ee" +let s:rgb["slateblue3"] = "#6959cd" +let s:rgb["slateblue4"] = "#473c8b" +let s:rgb["slategray"] = "#708090" +let s:rgb["slategray1"] = "#c6e2ff" +let s:rgb["slategray2"] = "#b9d3ee" +let s:rgb["slategray3"] = "#9fb6cd" +let s:rgb["slategray4"] = "#6c7b8b" +let s:rgb["slategrey"] = "#708090" +let s:rgb["snow"] = "#fffafa" +let s:rgb["snow1"] = "#fffafa" +let s:rgb["snow2"] = "#eee9e9" +let s:rgb["snow3"] = "#cdc9c9" +let s:rgb["snow4"] = "#8b8989" +let s:rgb["spring green"] = "#00ff7f" +let s:rgb["springgreen"] = "#00ff7f" +let s:rgb["springgreen1"] = "#00ff7f" +let s:rgb["springgreen2"] = "#00ee76" +let s:rgb["springgreen3"] = "#00cd66" +let s:rgb["springgreen4"] = "#008b45" +let s:rgb["steel blue"] = "#4682b4" +let s:rgb["steelblue"] = "#4682b4" +let s:rgb["steelblue1"] = "#63b8ff" +let s:rgb["steelblue2"] = "#5cacee" +let s:rgb["steelblue3"] = "#4f94cd" +let s:rgb["steelblue4"] = "#36648b" +let s:rgb["tan"] = "#d2b48c" +let s:rgb["tan1"] = "#ffa54f" +let s:rgb["tan2"] = "#ee9a49" +let s:rgb["tan3"] = "#cd853f" +let s:rgb["tan4"] = "#8b5a2b" +let s:rgb["thistle"] = "#d8bfd8" +let s:rgb["thistle1"] = "#ffe1ff" +let s:rgb["thistle2"] = "#eed2ee" +let s:rgb["thistle3"] = "#cdb5cd" +let s:rgb["thistle4"] = "#8b7b8b" +let s:rgb["tomato"] = "#ff6347" +let s:rgb["tomato1"] = "#ff6347" +let s:rgb["tomato2"] = "#ee5c42" +let s:rgb["tomato3"] = "#cd4f39" +let s:rgb["tomato4"] = "#8b3626" +let s:rgb["turquoise"] = "#40e0d0" +let s:rgb["turquoise1"] = "#00f5ff" +let s:rgb["turquoise2"] = "#00e5ee" +let s:rgb["turquoise3"] = "#00c5cd" +let s:rgb["turquoise4"] = "#00868b" +let s:rgb["violet red"] = "#d02090" +let s:rgb["violet"] = "#ee82ee" +let s:rgb["violetred"] = "#d02090" +let s:rgb["violetred1"] = "#ff3e96" +let s:rgb["violetred2"] = "#ee3a8c" +let s:rgb["violetred3"] = "#cd3278" +let s:rgb["violetred4"] = "#8b2252" +let s:rgb["wheat"] = "#f5deb3" +let s:rgb["wheat1"] = "#ffe7ba" +let s:rgb["wheat2"] = "#eed8ae" +let s:rgb["wheat3"] = "#cdba96" +let s:rgb["wheat4"] = "#8b7e66" +let s:rgb["white smoke"] = "#f5f5f5" +let s:rgb["white"] = "#ffffff" +let s:rgb["whitesmoke"] = "#f5f5f5" +let s:rgb["yellow green"] = "#9acd32" +let s:rgb["yellow"] = "#ffff00" +let s:rgb["yellow1"] = "#ffff00" +let s:rgb["yellow2"] = "#eeee00" +let s:rgb["yellow3"] = "#cdcd00" +let s:rgb["yellow4"] = "#8b8b00" +let s:rgb["yellowgreen"] = "#9acd32" + +if has('mac') && !has('macunix') + let s:rgb["dark gray"] = "0x808080" + let s:rgb["darkgray"] = "0x808080" + let s:rgb["dark grey"] = "0x808080" + let s:rgb["darkgrey"] = "0x808080" + let s:rgb["gray"] = "0xc0c0c0" + let s:rgb["grey"] = "0xc0c0c0" + let s:rgb["light gray"] = "0xe0e0e0" + let s:rgb["lightgray"] = "0xe0e0e0" + let s:rgb["light grey"] = "0xe0e0e0" + let s:rgb["lightgrey"] = "0xe0e0e0" + let s:rgb["dark red"] = "0x800000" + let s:rgb["darkred"] = "0x800000" + let s:rgb["red"] = "0xdd0806" + let s:rgb["light red"] = "0xffa0a0" + let s:rgb["lightred"] = "0xffa0a0" + let s:rgb["dark blue"] = "0x000080" + let s:rgb["darkblue"] = "0x000080" + let s:rgb["blue"] = "0x0000d4" + let s:rgb["light blue"] = "0xa0a0ff" + let s:rgb["lightblue"] = "0xa0a0ff" + let s:rgb["dark green"] = "0x008000" + let s:rgb["darkgreen"] = "0x008000" + let s:rgb["green"] = "0x006411" + let s:rgb["light green"] = "0xa0ffa0" + let s:rgb["lightgreen"] = "0xa0ffa0" + let s:rgb["dark cyan"] = "0x008080" + let s:rgb["darkcyan"] = "0x008080" + let s:rgb["cyan"] = "0x02abea" + let s:rgb["light cyan"] = "0xa0ffff" + let s:rgb["lightcyan"] = "0xa0ffff" + let s:rgb["dark magenta"] = "0x800080" + let s:rgb["darkmagenta"] = "0x800080" + let s:rgb["magenta"] = "0xf20884" + let s:rgb["light magenta"] = "0xf0a0f0" + let s:rgb["lightmagenta"] = "0xf0a0f0" + let s:rgb["brown"] = "0x804040" + let s:rgb["yellow"] = "0xfcf305" + let s:rgb["light yellow"] = "0xffffa0" + let s:rgb["lightyellow"] = "0xffffa0" + let s:rgb["orange"] = "0xfc8000" + let s:rgb["purple"] = "0xa020f0" + let s:rgb["slateblue"] = "0x6a5acd" + let s:rgb["violet"] = "0x8d38c9" +endif + +function! csapprox#rgb() + return s:rgb +endfunction diff --git a/vim/autoload/csapprox/common.vim b/vim/autoload/csapprox/common.vim new file mode 100644 index 0000000..ad52f70 --- /dev/null +++ b/vim/autoload/csapprox/common.vim @@ -0,0 +1,46 @@ +let s:xterm_colors = [ 0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF ] +let s:eterm_colors = [ 0x00, 0x2A, 0x55, 0x7F, 0xAA, 0xD4 ] +let s:konsole_colors = [ 0x00, 0x33, 0x66, 0x99, 0xCC, 0xFF ] +let s:xterm_greys = [ 0x08, 0x12, 0x1C, 0x26, 0x30, 0x3A, + \ 0x44, 0x4E, 0x58, 0x62, 0x6C, 0x76, + \ 0x80, 0x8A, 0x94, 0x9E, 0xA8, 0xB2, + \ 0xBC, 0xC6, 0xD0, 0xDA, 0xE4, 0xEE ] + +let s:urxvt_colors = [ 0x00, 0x8B, 0xCD, 0xFF ] +let s:urxvt_greys = [ 0x2E, 0x5C, 0x73, 0x8B, + \ 0xA2, 0xB9, 0xD0, 0xE7 ] + +" Uses &term to determine which cube should be use. If &term is set to +" "xterm" or begins with "screen", the variables g:CSApprox_eterm and +" g:CSApprox_konsole can be used to select a different palette. +function! csapprox#common#PaletteType() + if &t_Co == 88 + let type = 'urxvt' + elseif &term ==# 'xterm' || &term =~# '^screen' || &term==# 'builtin_gui' + if exists('g:CSApprox_konsole') && g:CSApprox_konsole + let type = 'konsole' + elseif exists('g:CSApprox_eterm') && g:CSApprox_eterm + let type = 'eterm' + else + let type = 'xterm' + endif + elseif &term =~? '^konsole' + let type = 'konsole' + elseif &term =~? '^eterm' + let type = 'eterm' + else + let type = 'xterm' + endif + + return type +endfunction + +" Retrieve the list of greyscale ramp colors for the current palette +function! csapprox#common#Greys() + return (&t_Co == 88 ? s:urxvt_greys : s:xterm_greys) +endfunction + +" Retrieve the list of non-greyscale ramp colors for the current palette +function! csapprox#common#Colors() + return s:{csapprox#common#PaletteType()}_colors +endfunction diff --git a/vim/autoload/csapprox/per_component.vim b/vim/autoload/csapprox/per_component.vim new file mode 100644 index 0000000..2342af3 --- /dev/null +++ b/vim/autoload/csapprox/per_component.vim @@ -0,0 +1,66 @@ +" Integer comparator used to sort the complete list of possible colors +function! s:IntCompare(i1, i2) + return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1 +endfunc + +" Color comparator to find the nearest element to a given one in a given list +function! s:NearestElemInList(elem, list) + let len = len(a:list) + for i in range(len-1) + if (a:elem <= (a:list[i] + a:list[i+1]) / 2) + return a:list[i] + endif + endfor + return a:list[len-1] +endfunction + +" Takes 3 decimal values for r, g, and b, and returns the closest cube number. +" +" This approximator considers closeness based upon the individiual components. +" For each of r, g, and b, it finds the closest cube component available on +" the cube. If the three closest matches can combine to form a valid color, +" this color is used, otherwise we repeat the search with the greys removed, +" meaning that the three new matches must make a valid color when combined. +function! csapprox#per_component#Approximate(r,g,b) + let hex = printf("%02x%02x%02x", a:r, a:g, a:b) + + let colors = csapprox#common#Colors() + let greys = csapprox#common#Greys() + let type = csapprox#common#PaletteType() + + if !exists('s:approximator_cache_'.type) + let s:approximator_cache_{type} = {} + endif + + let rv = get(s:approximator_cache_{type}, hex, -1) + if rv != -1 + return rv + endif + + " Only obtain sorted list once + if !exists("s:".type."_greys_colors") + let s:{type}_greys_colors = sort(greys + colors, "s:IntCompare") + endif + + let greys_colors = s:{type}_greys_colors + + let r = s:NearestElemInList(a:r, greys_colors) + let g = s:NearestElemInList(a:g, greys_colors) + let b = s:NearestElemInList(a:b, greys_colors) + + let len = len(colors) + if (r == g && g == b && index(greys, r) != -1) + let rv = 16 + len * len * len + index(greys, r) + else + let r = s:NearestElemInList(a:r, colors) + let g = s:NearestElemInList(a:g, colors) + let b = s:NearestElemInList(a:b, colors) + let rv = index(colors, r) * len * len + \ + index(colors, g) * len + \ + index(colors, b) + \ + 16 + endif + + let s:approximator_cache_{type}[hex] = rv + return rv +endfunction diff --git a/vim/autoload/delimitMate.vim b/vim/autoload/delimitMate.vim new file mode 100644 index 0000000..bd10975 --- /dev/null +++ b/vim/autoload/delimitMate.vim @@ -0,0 +1,586 @@ +" File: autoload/delimitMate.vim +" Version: 2.6 +" Modified: 2011-01-14 +" Description: This plugin provides auto-completion for quotes, parens, etc. +" Maintainer: Israel Chauca F. +" Manual: Read ":help delimitMate". +" ============================================================================ + +" Utilities {{{ + +let delimitMate_loaded = 1 + +function! delimitMate#ShouldJump() "{{{ + " Returns 1 if the next character is a closing delimiter. + let col = col('.') + let lcol = col('$') + let char = getline('.')[col - 1] + + " Closing delimiter on the right. + for cdel in b:_l_delimitMate_right_delims + b:_l_delimitMate_quotes_list + if char == cdel + return 1 + endif + endfor + + " Closing delimiter with space expansion. + let nchar = getline('.')[col] + if b:_l_delimitMate_expand_space && char == " " + for cdel in b:_l_delimitMate_right_delims + b:_l_delimitMate_quotes_list + if nchar == cdel + return 1 + endif + endfor + endif + + " Closing delimiter with CR expansion. + let uchar = getline(line('.') + 1)[0] + if b:_l_delimitMate_expand_cr && char == "" + for cdel in b:_l_delimitMate_right_delims + b:_l_delimitMate_quotes_list + if uchar == cdel + return 1 + endif + endfor + endif + + return 0 +endfunction "}}} + +function! delimitMate#IsEmptyPair(str) "{{{ + for pair in b:_l_delimitMate_matchpairs_list + if a:str == join( split( pair, ':' ),'' ) + return 1 + endif + endfor + for quote in b:_l_delimitMate_quotes_list + if a:str == quote . quote + return 1 + endif + endfor + return 0 +endfunction "}}} + +function! delimitMate#IsCRExpansion() " {{{ + let nchar = getline(line('.')-1)[-1:] + let schar = getline(line('.')+1)[:0] + let isEmpty = getline('.') == "" + if index(b:_l_delimitMate_left_delims, nchar) > -1 && + \ index(b:_l_delimitMate_left_delims, nchar) == index(b:_l_delimitMate_right_delims, schar) && + \ isEmpty + return 1 + elseif index(b:_l_delimitMate_quotes_list, nchar) > -1 && + \ index(b:_l_delimitMate_quotes_list, nchar) == index(b:_l_delimitMate_quotes_list, schar) && + \ isEmpty + return 1 + else + return 0 + endif +endfunction " }}} delimitMate#IsCRExpansion() + +function! delimitMate#IsSpaceExpansion() " {{{ + let line = getline('.') + let col = col('.')-2 + if col > 0 + let pchar = line[col - 1] + let nchar = line[col + 2] + let isSpaces = (line[col] == line[col+1] && line[col] == " ") + + if index(b:_l_delimitMate_left_delims, pchar) > -1 && + \ index(b:_l_delimitMate_left_delims, pchar) == index(b:_l_delimitMate_right_delims, nchar) && + \ isSpaces + return 1 + elseif index(b:_l_delimitMate_quotes_list, pchar) > -1 && + \ index(b:_l_delimitMate_quotes_list, pchar) == index(b:_l_delimitMate_quotes_list, nchar) && + \ isSpaces + return 1 + endif + endif + return 0 +endfunction " }}} IsSpaceExpansion() + +function! delimitMate#WithinEmptyPair() "{{{ + let cur = strpart( getline('.'), col('.')-2, 2 ) + return delimitMate#IsEmptyPair( cur ) +endfunction "}}} + +function! delimitMate#WriteBefore(str) "{{{ + let len = len(a:str) + let line = getline('.') + let col = col('.')-2 + if col < 0 + call setline('.',line[(col+len+1):]) + else + call setline('.',line[:(col)].line[(col+len+1):]) + endif + return a:str +endfunction " }}} + +function! delimitMate#WriteAfter(str) "{{{ + let len = len(a:str) + let line = getline('.') + let col = col('.')-2 + if (col) < 0 + call setline('.',a:str.line) + else + call setline('.',line[:(col)].a:str.line[(col+len):]) + endif + return '' +endfunction " }}} + +function! delimitMate#GetSyntaxRegion(line, col) "{{{ + return synIDattr(synIDtrans(synID(a:line, a:col, 1)), 'name') +endfunction " }}} + +function! delimitMate#GetCurrentSyntaxRegion() "{{{ + let col = col('.') + if col == col('$') + let col = col - 1 + endif + return delimitMate#GetSyntaxRegion(line('.'), col) +endfunction " }}} + +function! delimitMate#GetCurrentSyntaxRegionIf(char) "{{{ + let col = col('.') + let origin_line = getline('.') + let changed_line = strpart(origin_line, 0, col - 1) . a:char . strpart(origin_line, col - 1) + call setline('.', changed_line) + let region = delimitMate#GetSyntaxRegion(line('.'), col) + call setline('.', origin_line) + return region +endfunction "}}} + +function! delimitMate#IsForbidden(char) "{{{ + if b:_l_delimitMate_excluded_regions_enabled == 0 + return 0 + endif + "let result = index(b:_l_delimitMate_excluded_regions_list, delimitMate#GetCurrentSyntaxRegion()) >= 0 + if index(b:_l_delimitMate_excluded_regions_list, delimitMate#GetCurrentSyntaxRegion()) >= 0 + "echom "Forbidden 1!" + return 1 + endif + let region = delimitMate#GetCurrentSyntaxRegionIf(a:char) + "let result = index(b:_l_delimitMate_excluded_regions_list, region) >= 0 + "return result || region == 'Comment' + "echom "Forbidden 2!" + return index(b:_l_delimitMate_excluded_regions_list, region) >= 0 +endfunction "}}} + +function! delimitMate#FlushBuffer() " {{{ + let b:_l_delimitMate_buffer = [] + return '' +endfunction " }}} + +function! delimitMate#BalancedParens(char) "{{{ + " Returns: + " = 0 => Parens balanced. + " > 0 => More opening parens. + " < 0 => More closing parens. + + let line = getline('.') + let col = col('.') - 2 + let col = col >= 0 ? col : 0 + let list = split(line, '\zs') + let left = b:_l_delimitMate_left_delims[index(b:_l_delimitMate_right_delims, a:char)] + let right = a:char + let opening = 0 + let closing = 0 + + " If the cursor is not at the beginning, count what's behind it. + if col > 0 + " Find the first opening paren: + let start = index(list, left) + " Must be before cursor: + let start = start < col ? start : col - 1 + " Now count from the first opening until the cursor, this will prevent + " extra closing parens from being counted. + let opening = count(list[start : col - 1], left) + let closing = count(list[start : col - 1], right) + " I don't care if there are more closing parens than opening parens. + let closing = closing > opening ? opening : closing + endif + + " Evaluate parens from the cursor to the end: + let opening += count(list[col :], left) + let closing += count(list[col :], right) + + "echom "–––––––––" + "echom line + "echom col + ""echom left.":".a:char + "echom string(list) + "echom string(list[start : col - 1]) . " : " . string(list[col :]) + "echom opening . " - " . closing . " = " . (opening - closing) + + " Return the found balance: + return opening - closing +endfunction "}}} + +function! delimitMate#RmBuffer(num) " {{{ + if len(b:_l_delimitMate_buffer) > 0 + call remove(b:_l_delimitMate_buffer, 0, (a:num-1)) + endif + return "" +endfunction " }}} + +" }}} + +" Doers {{{ +function! delimitMate#SkipDelim(char) "{{{ + if delimitMate#IsForbidden(a:char) + return a:char + endif + let col = col('.') - 1 + let line = getline('.') + if col > 0 + let cur = line[col] + let pre = line[col-1] + else + let cur = line[col] + let pre = "" + endif + if pre == "\\" + " Escaped character + return a:char + elseif cur == a:char + " Exit pair + "return delimitMate#WriteBefore(a:char) + return a:char . delimitMate#Del() + elseif delimitMate#IsEmptyPair( pre . a:char ) + " Add closing delimiter and jump back to the middle. + call insert(b:_l_delimitMate_buffer, a:char) + return delimitMate#WriteAfter(a:char) + else + " Nothing special here, return the same character. + return a:char + endif +endfunction "}}} + +function! delimitMate#ParenDelim(char) " {{{ + if delimitMate#IsForbidden(a:char) + return '' + endif + " Try to balance matchpairs + if b:_l_delimitMate_balance_matchpairs && + \ delimitMate#BalancedParens(a:char) <= 0 + return '' + endif + let line = getline('.') + let col = col('.')-2 + let left = b:_l_delimitMate_left_delims[index(b:_l_delimitMate_right_delims,a:char)] + let smart_matchpairs = substitute(b:_l_delimitMate_smart_matchpairs, '\\!', left, 'g') + let smart_matchpairs = substitute(smart_matchpairs, '\\#', a:char, 'g') + "echom left.':'.smart_matchpairs . ':' . matchstr(line[col+1], smart_matchpairs) + if b:_l_delimitMate_smart_matchpairs != '' && + \ line[col+1:] =~ smart_matchpairs + return '' + elseif (col) < 0 + call setline('.',a:char.line) + call insert(b:_l_delimitMate_buffer, a:char) + else + "echom string(col).':'.line[:(col)].'|'.line[(col+1):] + call setline('.',line[:(col)].a:char.line[(col+1):]) + call insert(b:_l_delimitMate_buffer, a:char) + endif + return '' +endfunction " }}} + +function! delimitMate#QuoteDelim(char) "{{{ + if delimitMate#IsForbidden(a:char) + return a:char + endif + let line = getline('.') + let col = col('.') - 2 + if line[col] == "\\" + " Seems like a escaped character, insert one quotation mark. + return a:char + elseif line[col + 1] == a:char && + \ index(b:_l_delimitMate_nesting_quotes, a:char) < 0 + " Get out of the string. + return a:char . delimitMate#Del() + elseif (line[col] =~ '\w' && a:char == "'") || + \ (b:_l_delimitMate_smart_quotes && + \ (line[col] =~ '\w' || + \ line[col + 1] =~ '\w')) + " Seems like an apostrophe or a smart quote case, insert a single quote. + return a:char + elseif (line[col] == a:char && line[col + 1 ] != a:char) && b:_l_delimitMate_smart_quotes + " Seems like we have an unbalanced quote, insert one quotation mark and jump to the middle. + call insert(b:_l_delimitMate_buffer, a:char) + return delimitMate#WriteAfter(a:char) + else + " Insert a pair and jump to the middle. + call insert(b:_l_delimitMate_buffer, a:char) + call delimitMate#WriteAfter(a:char) + return a:char + endif +endfunction "}}} + +function! delimitMate#JumpOut(char) "{{{ + if delimitMate#IsForbidden(a:char) + return a:char + endif + let line = getline('.') + let col = col('.')-2 + if line[col+1] == a:char + return a:char . delimitMate#Del() + else + return a:char + endif +endfunction " }}} + +function! delimitMate#JumpAny(key) " {{{ + if delimitMate#IsForbidden('') + return a:key + endif + if !delimitMate#ShouldJump() + return a:key + endif + " Let's get the character on the right. + let char = getline('.')[col('.')-1] + if char == " " + " Space expansion. + "let char = char . getline('.')[col('.')] . delimitMate#Del() + return char . getline('.')[col('.')] . delimitMate#Del() . delimitMate#Del() + "call delimitMate#RmBuffer(1) + elseif char == "" + " CR expansion. + "let char = "\" . getline(line('.') + 1)[0] . "\" + let b:_l_delimitMate_buffer = [] + return "\" . getline(line('.') + 1)[0] . "\" + else + "call delimitMate#RmBuffer(1) + return char . delimitMate#Del() + endif +endfunction " delimitMate#JumpAny() }}} + +function! delimitMate#JumpMany() " {{{ + let line = getline('.')[col('.') - 1 : ] + let len = len(line) + let rights = "" + let found = 0 + let i = 0 + while i < len + let char = line[i] + if index(b:_l_delimitMate_quotes_list, char) >= 0 || + \ index(b:_l_delimitMate_right_delims, char) >= 0 + let rights .= "\" + let found = 1 + elseif found == 0 + let rights .= "\" + else + break + endif + let i += 1 + endwhile + if found == 1 + return rights + else + return '' + endif +endfunction " delimitMate#JumpMany() }}} + +function! delimitMate#ExpandReturn() "{{{ + if delimitMate#IsForbidden("") + return "\" + endif + if delimitMate#WithinEmptyPair() + " Expand: + call delimitMate#FlushBuffer() + "return "\a\x\\k$\"_xa" + return "\\\o" + else + return "\" + endif +endfunction "}}} + +function! delimitMate#ExpandSpace() "{{{ + if delimitMate#IsForbidden("\") + return "\" + endif + if delimitMate#WithinEmptyPair() + " Expand: + call insert(b:_l_delimitMate_buffer, 's') + return delimitMate#WriteAfter(' ') . "\" + else + return "\" + endif +endfunction "}}} + +function! delimitMate#BS() " {{{ + if delimitMate#IsForbidden("") + return "\" + endif + if delimitMate#WithinEmptyPair() + "call delimitMate#RmBuffer(1) + return "\" . delimitMate#Del() +" return "\\\" + elseif delimitMate#IsSpaceExpansion() + "call delimitMate#RmBuffer(1) + return "\" . delimitMate#Del() + elseif delimitMate#IsCRExpansion() + return "\\" + else + return "\" + endif +endfunction " }}} delimitMate#BS() + +function! delimitMate#Del() " {{{ + if len(b:_l_delimitMate_buffer) > 0 + let line = getline('.') + let col = col('.') - 2 + call delimitMate#RmBuffer(1) + call setline('.', line[:col] . line[col+2:]) + return '' + else + return "\" + endif +endfunction " }}} + +function! delimitMate#Finish(move_back) " {{{ + let len = len(b:_l_delimitMate_buffer) + if len > 0 + let buffer = join(b:_l_delimitMate_buffer, '') + let len2 = len(buffer) + " Reset buffer: + let b:_l_delimitMate_buffer = [] + let line = getline('.') + let col = col('.') -2 + "echom 'col: ' . col . '-' . line[:col] . "|" . line[col+len+1:] . '%' . buffer + if col < 0 + call setline('.', line[col+len2+1:]) + else + call setline('.', line[:col] . line[col+len2+1:]) + endif + let i = 1 + let lefts = "" + while i <= len && a:move_back + let lefts = lefts . "\" + let i += 1 + endwhile + return substitute(buffer, "s", "\", 'g') . lefts + endif + return '' +endfunction " }}} + +" }}} + +" Tools: {{{ +function! delimitMate#TestMappings() "{{{ + let options = sort(keys(delimitMate#OptionsList())) + let optoutput = ['delimitMate Report', '==================', '', '* Options: ( ) default, (g) global, (b) buffer',''] + for option in options + exec 'call add(optoutput, ''('.(exists('b:delimitMate_'.option) ? 'b' : exists('g:delimitMate_'.option) ? 'g' : ' ').') delimitMate_''.option.'' = ''.string(b:_l_delimitMate_'.option.'))' + endfor + call append(line('$'), optoutput + ['--------------------','']) + + " Check if mappings were set. {{{ + let imaps = b:_l_delimitMate_right_delims + let imaps = imaps + ( b:_l_delimitMate_autoclose ? b:_l_delimitMate_left_delims : [] ) + let imaps = imaps + + \ b:_l_delimitMate_quotes_list + + \ b:_l_delimitMate_apostrophes_list + + \ ['', '', '', '', ''] + + \ ['', '', '', '', '', ''] + + \ ['', '', '', '', '', '', 'g'] + let imaps = imaps + ( b:_l_delimitMate_expand_cr ? [''] : [] ) + let imaps = imaps + ( b:_l_delimitMate_expand_space ? [''] : [] ) + + let vmaps = + \ b:_l_delimitMate_right_delims + + \ b:_l_delimitMate_left_delims + + \ b:_l_delimitMate_quotes_list + + let ibroken = [] + for map in imaps + if maparg(map, "i") !~? 'delimitMate' + let output = '' + if map == '|' + let map = '' + endif + redir => output | execute "verbose imap ".map | redir END + let ibroken = ibroken + [map.": is not set:"] + split(output, '\n') + endif + endfor + + unlet! output + if ibroken == [] + let output = ['* Mappings:', '', 'All mappings were set-up.', '--------------------', '', ''] + else + let output = ['* Mappings:', ''] + ibroken + ['--------------------', ''] + endif + call append('$', output+['* Showcase:', '']) + " }}} + if b:_l_delimitMate_autoclose + " {{{ + for i in range(len(b:_l_delimitMate_left_delims)) + exec "normal Go0\Open: " . b:_l_delimitMate_left_delims[i]. "|" + exec "normal o0\Delete: " . b:_l_delimitMate_left_delims[i] . "\|" + exec "normal o0\Exit: " . b:_l_delimitMate_left_delims[i] . b:_l_delimitMate_right_delims[i] . "|" + if b:_l_delimitMate_expand_space == 1 + exec "normal o0\Space: " . b:_l_delimitMate_left_delims[i] . " |" + exec "normal o0\Delete space: " . b:_l_delimitMate_left_delims[i] . " \|" + endif + if b:_l_delimitMate_expand_cr == 1 + exec "normal o0\Car return: " . b:_l_delimitMate_left_delims[i] . "\|" + exec "normal Go0\Delete car return: " . b:_l_delimitMate_left_delims[i] . "\0\\|" + endif + call append(line('$'), '') + endfor + for i in range(len(b:_l_delimitMate_quotes_list)) + exec "normal Go0\Open: " . b:_l_delimitMate_quotes_list[i] . "|" + exec "normal o0\Delete: " . b:_l_delimitMate_quotes_list[i] . "\|" + exec "normal o0\Exit: " . b:_l_delimitMate_quotes_list[i] . b:_l_delimitMate_quotes_list[i] . "|" + if b:_l_delimitMate_expand_space == 1 + exec "normal o0\Space: " . b:_l_delimitMate_quotes_list[i] . " |" + exec "normal o0\Delete space: " . b:_l_delimitMate_quotes_list[i] . " \|" + endif + if b:_l_delimitMate_expand_cr == 1 + exec "normal o0\Car return: " . b:_l_delimitMate_quotes_list[i] . "\|" + exec "normal Go0\Delete car return: " . b:_l_delimitMate_quotes_list[i] . "\\|" + endif + call append(line('$'), '') + endfor + "}}} + else + "{{{ + for i in range(len(b:_l_delimitMate_left_delims)) + exec "normal GoOpen & close: " . b:_l_delimitMate_left_delims[i] . b:_l_delimitMate_right_delims[i] . "|" + exec "normal oDelete: " . b:_l_delimitMate_left_delims[i] . b:_l_delimitMate_right_delims[i] . "\|" + exec "normal oExit: " . b:_l_delimitMate_left_delims[i] . b:_l_delimitMate_right_delims[i] . b:_l_delimitMate_right_delims[i] . "|" + if b:_l_delimitMate_expand_space == 1 + exec "normal oSpace: " . b:_l_delimitMate_left_delims[i] . b:_l_delimitMate_right_delims[i] . " |" + exec "normal oDelete space: " . b:_l_delimitMate_left_delims[i] . b:_l_delimitMate_right_delims[i] . " \|" + endif + if b:_l_delimitMate_expand_cr == 1 + exec "normal oCar return: " . b:_l_delimitMate_left_delims[i] . b:_l_delimitMate_right_delims[i] . "\|" + exec "normal GoDelete car return: " . b:_l_delimitMate_left_delims[i] . b:_l_delimitMate_right_delims[i] . "\\|" + endif + call append(line('$'), '') + endfor + for i in range(len(b:_l_delimitMate_quotes_list)) + exec "normal GoOpen & close: " . b:_l_delimitMate_quotes_list[i] . b:_l_delimitMate_quotes_list[i] . "|" + exec "normal oDelete: " . b:_l_delimitMate_quotes_list[i] . b:_l_delimitMate_quotes_list[i] . "\|" + exec "normal oExit: " . b:_l_delimitMate_quotes_list[i] . b:_l_delimitMate_quotes_list[i] . b:_l_delimitMate_quotes_list[i] . "|" + if b:_l_delimitMate_expand_space == 1 + exec "normal oSpace: " . b:_l_delimitMate_quotes_list[i] . b:_l_delimitMate_quotes_list[i] . " |" + exec "normal oDelete space: " . b:_l_delimitMate_quotes_list[i] . b:_l_delimitMate_quotes_list[i] . " \|" + endif + if b:_l_delimitMate_expand_cr == 1 + exec "normal oCar return: " . b:_l_delimitMate_quotes_list[i] . b:_l_delimitMate_quotes_list[i] . "\|" + exec "normal GoDelete car return: " . b:_l_delimitMate_quotes_list[i] . b:_l_delimitMate_quotes_list[i] . "\\|" + endif + call append(line('$'), '') + endfor + endif "}}} + redir => setoptions | set | filetype | redir END + call append(line('$'), split(setoptions,"\n") + \ + ['--------------------']) + setlocal nowrap +endfunction "}}} + +function! delimitMate#OptionsList() "{{{ + return {'autoclose' : 1,'matchpairs': &matchpairs, 'quotes' : '" '' `', 'nesting_quotes' : [], 'expand_cr' : 0, 'expand_space' : 0, 'smart_quotes' : 1, 'smart_matchpairs' : '\w', 'balance_matchpairs' : 0, 'excluded_regions' : 'Comment', 'excluded_ft' : '', 'apostrophes' : ''} +endfunction " delimitMate#OptionsList }}} +"}}} + +" vim:foldmethod=marker:foldcolumn=4 diff --git a/vim/autoload/pathogen.vim b/vim/autoload/pathogen.vim new file mode 100644 index 0000000..be68389 --- /dev/null +++ b/vim/autoload/pathogen.vim @@ -0,0 +1,230 @@ +" pathogen.vim - path option manipulation +" Maintainer: Tim Pope +" Version: 2.0 + +" Install in ~/.vim/autoload (or ~\vimfiles\autoload). +" +" For management of individually installed plugins in ~/.vim/bundle (or +" ~\vimfiles\bundle), adding `call pathogen#infect()` to your .vimrc +" prior to `fileype plugin indent on` is the only other setup necessary. +" +" The API is documented inline below. For maximum ease of reading, +" :set foldmethod=marker + +if exists("g:loaded_pathogen") || &cp + finish +endif +let g:loaded_pathogen = 1 + +" Point of entry for basic default usage. Give a directory name to invoke +" pathogen#runtime_append_all_bundles() (defaults to "bundle"), or a full path +" to invoke pathogen#runtime_prepend_subdirectories(). Afterwards, +" pathogen#cycle_filetype() is invoked. +function! pathogen#infect(...) abort " {{{1 + let source_path = a:0 ? a:1 : 'bundle' + if source_path =~# '[\\/]' + call pathogen#runtime_prepend_subdirectories(source_path) + else + call pathogen#runtime_append_all_bundles(source_path) + endif + call pathogen#cycle_filetype() +endfunction " }}}1 + +" Split a path into a list. +function! pathogen#split(path) abort " {{{1 + if type(a:path) == type([]) | return a:path | endif + let split = split(a:path,'\\\@,'edit',) +command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(,'edit',) +command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(,'split',) +command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(,'vsplit',) +command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(,'tabedit',) +command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(,'pedit',) +command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(,'read',) +command! -bar -bang -count=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(,'edit',,'lcd') + +" vim:set ft=vim ts=8 sw=2 sts=2: diff --git a/vim/autoload/railmoon/ctags_util.vim b/vim/autoload/railmoon/ctags_util.vim new file mode 100755 index 0000000..58e464a --- /dev/null +++ b/vim/autoload/railmoon/ctags_util.vim @@ -0,0 +1,40 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Module: railmoon#ctags_util +" Purpose: some common ctags process operations + + +function! railmoon#ctags_util#taglist_for_file(filename, language, kinds, fields) + let language_for_ctags = a:language + if language_for_ctags == 'cpp' + let language_for_ctags = 'c++' + endif + + let kind_option = "--".language_for_ctags.'-kinds=+'.a:kinds.' --language-force='.language_for_ctags + let field_option = '--fields='.a:fields + + if !exists('g:ctags_exe') + let g:ctags_exe = 'ctags' + endif + + let ctags_tmp_file_name = 't_m_p_f_i_l_e' + let ctags_cmd = g:ctags_exe . " -n --sort=no -f " . ctags_tmp_file_name . ' ' . kind_option . ' ' . field_option . ' ' . a:filename + + call system(ctags_cmd) + let old_tags = &tags + + let &tags = ctags_tmp_file_name + let ctags_tags = taglist('.*') + let &tags = old_tags + + call delete(ctags_tmp_file_name) + + return ctags_tags +endfunction + +" returns not sorted tags for file treated as c++ file +function! railmoon#ctags_util#taglist_for_cppfile(filename) + return railmoon#ctags_util#taglist_for_file(a:filename, 'c++', 'cdefgmnpstuvx', 'sikaS') +endfunction + diff --git a/vim/autoload/railmoon/id.vim b/vim/autoload/railmoon/id.vim new file mode 100755 index 0000000..b713286 --- /dev/null +++ b/vim/autoload/railmoon/id.vim @@ -0,0 +1,115 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Home: www.railmoon.com +" Module: railmoon#id +" Purpose: util functions for work with id +" + +" - +" [ public library function ] +" Name: railmoon#id#acquire +" Purpose: return new unique id for widget +" [ parameters ] +" pool_name id pool name +" - +function! railmoon#id#acquire(pool_name) + if ! has_key(s:list, a:pool_name) + let s:list[a:pool_name] = [] + endif + + if ! has_key(s:last_id, a:pool_name) + let s:last_id[a:pool_name] = 0 + endif + + if empty(s:list[a:pool_name]) + let s:last_id[a:pool_name] += 1 + call add(s:list[a:pool_name], s:last_id[a:pool_name]) + endif + + let result = s:list[a:pool_name][0] + let s:list[a:pool_name] = s:list[a:pool_name][1:] + + call railmoon#trace#debug('id#acquire pool = '.a:pool_name.'; id = '.result) + return result +endfunction + +" - +" [ public library function ] +" Name: railmoon#id#release +" Purpose: return id to pool +" [ parameters ] +" pool_name id pool name +" id id that no longer in use +" - +function! railmoon#id#release(pool_name, id) + call railmoon#trace#debug('id#release pool = '.a:pool_name.'; id = '.a:id) + if index(s:list[a:pool_name], a:id) != -1 + throw 'railmoon:id:release:already_present:'.a:id + endif + + if a:id > s:last_id[a:pool_name] + throw 'railmoon:id:release:wasnt_acquired' + endif + call add(s:list[a:pool_name], a:id) +endfunction + +" - +" [ internal usage ] +" store last widget id +" - +let s:last_id = {} + +" - +" [ internal usage ] +" store available ids +" - +let s:list = {} + +" - +" Section: unit testing +" - +let s:library_unit_test = railmoon#unit_test#create('railmoon#id test') + +function! s:library_unit_test.test_acquire_release() + call self.assert_equal(railmoon#id#acquire('test_id_pool'), 1) + call self.assert_equal(railmoon#id#acquire('test_id_pool'), 2) + call self.assert_equal(railmoon#id#acquire('test_id_pool'), 3) + + call self.assert_equal(railmoon#id#acquire('test2_id_pool'), 1) + call self.assert_equal(railmoon#id#acquire('test2_id_pool'), 2) + call self.assert_equal(railmoon#id#acquire('test2_id_pool'), 3) + + call railmoon#id#release('test_id_pool', 3) + call self.assert_equal(railmoon#id#acquire('test_id_pool'), 3) + + call railmoon#id#release('test2_id_pool', 3) + call self.assert_equal(railmoon#id#acquire('test2_id_pool'), 3) + + call railmoon#id#release('test_id_pool', 2) + call self.assert_equal(railmoon#id#acquire('test_id_pool'), 2) + + call railmoon#id#release('test_id_pool', 1) + call self.assert_equal(railmoon#id#acquire('test_id_pool'), 1) + + call self.assert_equal(railmoon#id#acquire('test_id_pool'), 4) + call self.assert_equal(railmoon#id#acquire('test_id_pool'), 5) + call self.assert_equal(railmoon#id#acquire('test_id_pool'), 6) + + call railmoon#id#release('test_id_pool', 1) + call self.assert_equal(railmoon#id#acquire('test_id_pool'), 1) + + call railmoon#id#release('test_id_pool', 1) + call railmoon#id#release('test_id_pool', 2) + call railmoon#id#release('test_id_pool', 3) + call railmoon#id#release('test_id_pool', 4) + call railmoon#id#release('test_id_pool', 5) + call railmoon#id#release('test_id_pool', 6) +endfunction + +function! s:library_unit_test.test_acquire_release_case_1() + call self.assert_equal(railmoon#id#acquire('test_acquire_release_case_1'), 1) + call railmoon#id#release('test_acquire_release_case_1', 1) +endfunction + +call s:library_unit_test.run() + diff --git a/vim/autoload/railmoon/oscan.debug b/vim/autoload/railmoon/oscan.debug new file mode 100644 index 0000000..5008100 --- /dev/null +++ b/vim/autoload/railmoon/oscan.debug @@ -0,0 +1,8305 @@ + +start_debug +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.debug +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('155'), 'on_close': function('154'), 'on_select': function('157'), 'on_close_with_tab_page': function('156')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 128 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('155'), 'on_close': function('154'), 'on_select': function('158'), 'on_close_with_tab_page': function('156')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 14 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget14 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 129 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 14 +[ base.select >> window#select] ... +[ base.select] id = 14 +[ window#load_selected] ... +[ window#select] id = 14 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 130 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget5 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 5 +[ base.close] closing.. id = 5 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget14 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget14 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 5 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.debug +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.debug +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 14 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('169'), 'on_close': function('168'), 'on_select': function('171'), 'on_close_with_tab_page': function('170')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 131 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('169'), 'on_close': function('168'), 'on_select': function('172'), 'on_close_with_tab_page': function('170')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 14 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget14 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 132 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 14 +[ base.select >> window#select] ... +[ base.select] id = 14 +[ window#load_selected] ... +[ window#select] id = 14 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 133 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ on_buffer_win_leave] widget for close set up +[ on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ on_buffer_win_leave] ... +[ on_buffer_win_leave] widget for close set up +[ on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Result window; method:on_close_with_tab_page ; arguments: +[ on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ on_buffer_win_leave] ... +[ on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ on_window_leave] call object.on_tab_leave() +[ on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ on_window_leave >> common_widget_callback.on_tab_leave] ... +[ on_window_leave] ... +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/base.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:windows +[ on_any_window_enter] name: oscan/extractor/changes.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/extractor/changes.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/base.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('169'), 'on_close': function('168'), 'on_select': function('171'), 'on_close_with_tab_page': function('170')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select window to be active', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 134 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('169'), 'on_close': function('168'), 'on_select': function('172'), 'on_close_with_tab_page': function('170')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select window to be active', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 15 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget15 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 135 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 15 +[ base.select >> window#select] ... +[ base.select] id = 15 +[ window#load_selected] ... +[ window#select] id = 15 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 136 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 4 +[ base.close] closing.. id = 4 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget15 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget15 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 4 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 15 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter] name: widget/base.vim +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] buffer name:widget/base.vim +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:buffers +[ ] create new tab page +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('169'), 'on_close': function('168'), 'on_select': function('171'), 'on_close_with_tab_page': function('170')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select buffer to edit', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 137 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('169'), 'on_close': function('168'), 'on_select': function('172'), 'on_close_with_tab_page': function('170')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select buffer to edit', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 15 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget15 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 138 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 15 +[ base.select >> window#select] ... +[ base.select] id = 15 +[ window#load_selected] ... +[ window#select] id = 15 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 139 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget15 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ s:result_select >> window#save_selected] ... +[ s:result_select >> base.select] selecting... +[ s:result_select >> base.select >> window#select] id = 15 +[ s:result_select >> base.select >> window#select] ... +[ s:result_select >> base.select] id = 15 +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Result window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ s:result_select >> on_window_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ s:result_select >> on_window_leave] call object.on_tab_leave() +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ s:result_select >> on_window_leave] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] name: widget/base.vim +[ s:result_select >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] ... +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_any_buffer_enter] buffer name:widget/edit_line_window.vim +[ s:result_select >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> on_any_buffer_enter] b:widget not found +[ s:result_select >> on_any_buffer_enter] ... +[ s:result_select >> on_any_buffer_window_enter] name: widget/edit_line_window.vim +[ s:result_select >> on_any_buffer_window_enter] ... +[ s:result_select] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:file +[ ] call language_function "kinds" for "vim" +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/base.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/base.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/edit_line_window.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/edit_line_window.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/base.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/base.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/edit_line_window.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/edit_line_window.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/base.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/eval.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/eval.txt +[ on_any_buffer_window_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/eval.txt +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/eval.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('183'), 'on_close': function('182'), 'on_select': function('185'), 'on_close_with_tab_page': function('184')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 140 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('183'), 'on_close': function('182'), 'on_select': function('186'), 'on_close_with_tab_page': function('184')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 141 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 142 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget5 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 5 +[ base.close] closing.. id = 5 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget16 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget16 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 5 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 16 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('211'), 'on_close': function('210'), 'on_select': function('213'), 'on_close_with_tab_page': function('212')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 143 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('211'), 'on_close': function('210'), 'on_select': function('214'), 'on_close_with_tab_page': function('212')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 144 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 145 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 4 +[ base.close] closing.. id = 4 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget16 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget16 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 4 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 16 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('225'), 'on_close': function('224'), 'on_select': function('227'), 'on_close_with_tab_page': function('226')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 146 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('225'), 'on_close': function('224'), 'on_select': function('228'), 'on_close_with_tab_page': function('226')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 147 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget5 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 148 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 5 +[ base.close] closing.. id = 5 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget16 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget16 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 5 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 16 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('225'), 'on_close': function('224'), 'on_select': function('227'), 'on_close_with_tab_page': function('226')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 149 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('225'), 'on_close': function('224'), 'on_select': function('228'), 'on_close_with_tab_page': function('226')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 150 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 151 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 4 +[ base.close] closing.. id = 4 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget16 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget16 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 4 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 16 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:buffers +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('225'), 'on_close': function('224'), 'on_select': function('227'), 'on_close_with_tab_page': function('226')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select buffer to edit', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 152 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('225'), 'on_close': function('224'), 'on_select': function('228'), 'on_close_with_tab_page': function('226')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select buffer to edit', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 153 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget5 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 154 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 5 +[ base.close] closing.. id = 5 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget16 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget16 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 5 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 16 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('239'), 'on_close': function('238'), 'on_select': function('241'), 'on_close_with_tab_page': function('240')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 155 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('239'), 'on_close': function('238'), 'on_select': function('242'), 'on_close_with_tab_page': function('240')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 156 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 157 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 4 +[ base.close] closing.. id = 4 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget16 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget16 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 4 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 16 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('239'), 'on_close': function('238'), 'on_select': function('241'), 'on_close_with_tab_page': function('240')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 158 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('239'), 'on_close': function('238'), 'on_select': function('242'), 'on_close_with_tab_page': function('240')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 159 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 160 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget5 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 5 +[ base.close] closing.. id = 5 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget16 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget16 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 5 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 16 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:multiline_search +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('267'), 'on_close': function('266'), 'on_select': function('269'), 'on_close_with_tab_page': function('268')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Mutliline search "\" in "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan.vim"', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 161 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('267'), 'on_close': function('266'), 'on_select': function('270'), 'on_close_with_tab_page': function('268')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Mutliline search "\" in "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan.vim"', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 162 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 163 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 4 +[ base.close] closing.. id = 4 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget16 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget16 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 4 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 16 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('267'), 'on_close': function('266'), 'on_select': function('269'), 'on_close_with_tab_page': function('268')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 164 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('267'), 'on_close': function('266'), 'on_select': function('270'), 'on_close_with_tab_page': function('268')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 165 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 166 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget5 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 5 +[ base.close] closing.. id = 5 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget16 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget16 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 5 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 16 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('281'), 'on_close': function('280'), 'on_select': function('283'), 'on_close_with_tab_page': function('282')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 167 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('281'), 'on_close': function('280'), 'on_select': function('284'), 'on_close_with_tab_page': function('282')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 168 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 169 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 4 +[ base.close] closing.. id = 4 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget16 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget16 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 4 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 16 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: oscan.vim +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record_browser.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: oscan/record_browser.vim +[ on_any_buffer_window_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan/record_browser.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record_browser.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan/record_browser.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record_browser.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: oscan/record_browser.vim +[ on_any_buffer_window_enter] ... +[ ] save invoker position +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 170 +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan/record_browser.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 171 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 16 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget16 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 172 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 16 +[ base.select >> window#select] ... +[ base.select] id = 16 +[ window#load_selected] ... +[ window#select] id = 16 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 173 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget16 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget16 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget16 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget16 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget16 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget16 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget16 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget16 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ s:result_select >> window#save_selected] ... +[ s:result_select >> base.select] selecting... +[ s:result_select >> base.select >> window#select] id = 16 +[ s:result_select >> base.select >> window#select] ... +[ s:result_select >> base.select] id = 16 +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Result window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ s:result_select >> on_window_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ s:result_select >> on_window_leave] call object.on_tab_leave() +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ s:result_select >> on_window_leave] ... +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_any_buffer_enter] buffer name:oscan/record.vim +[ s:result_select >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> on_any_buffer_enter] b:widget not found +[ s:result_select >> on_any_buffer_enter] ... +[ s:result_select >> on_any_buffer_window_enter] name: oscan/record.vim +[ s:result_select >> on_any_buffer_window_enter] ... +[ s:result_select] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:windows +[ on_any_window_enter] name: oscan/extractor/changes.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/extractor/changes.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/edit_line_window.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/edit_line_window.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/base.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan/record_browser.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record_browser.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan/record.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ ] create new tab page +[ on_any_window_enter] name: oscan/record.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select window to be active', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 174 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select window to be active', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 17 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget17 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 175 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 17 +[ base.select >> window#select] ... +[ base.select] id = 17 +[ window#load_selected] ... +[ window#select] id = 17 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 176 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget17 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw_selection] id = 5 +[ selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] name: rmwidget17 +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget17 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> window#load_selected] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ s:result_select >> window#save_selected] ... +[ s:result_select >> base.select] selecting... +[ s:result_select >> base.select >> window#select] id = 17 +[ s:result_select >> base.select >> window#select] ... +[ s:result_select >> base.select] id = 17 +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Result window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ s:result_select >> on_window_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ s:result_select >> on_window_leave] call object.on_tab_leave() +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ s:result_select >> on_window_leave] ... +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_any_window_enter] name: oscan.vim +[ s:result_select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_any_window_enter] ... +[ s:result_select >> on_any_buffer_enter] buffer name:oscan.vim +[ s:result_select >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> on_any_buffer_enter] b:widget not found +[ s:result_select >> on_any_buffer_enter] ... +[ s:result_select] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 177 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 18 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget18 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 178 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 18 +[ base.select >> window#select] ... +[ base.select] id = 18 +[ window#load_selected] ... +[ window#select] id = 18 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 179 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget5 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 5 +[ base.close] closing.. id = 5 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget18 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget18 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 5 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan/record_browser.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan/record_browser.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 18 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ on_any_window_enter] name: oscan/record_browser.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record_browser.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan/record.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan/record.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 180 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 18 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget18 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 181 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 18 +[ base.select >> window#select] ... +[ base.select] id = 18 +[ window#load_selected] ... +[ window#select] id = 18 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 182 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 4 +[ base.close] closing.. id = 4 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget18 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget18 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 4 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan/record.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan/record.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 18 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan/record.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 183 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 18 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget18 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 184 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 18 +[ base.select >> window#select] ... +[ base.select] id = 18 +[ window#load_selected] ... +[ window#select] id = 18 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 185 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget5 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 5 +[ base.close] closing.. id = 5 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget18 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget18 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 5 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan/record.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan/record.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 18 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan/record.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 186 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 18 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget18 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 187 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 18 +[ base.select >> window#select] ... +[ base.select] id = 18 +[ window#load_selected] ... +[ window#select] id = 18 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 188 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 4 +[ base.close] closing.. id = 4 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget18 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget18 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 4 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan/record.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan/record.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 18 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ on_any_window_enter] name: oscan/record_browser.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record_browser.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/base.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:buffers +[ ] create new tab page +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select buffer to edit', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 189 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select buffer to edit', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 18 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget18 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 190 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 18 +[ base.select >> window#select] ... +[ base.select] id = 18 +[ window#load_selected] ... +[ window#select] id = 18 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 191 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget18 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget18 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget18 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget18 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget18 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget18 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget18 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget18 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ s:result_select >> window#save_selected] ... +[ s:result_select >> base.select] selecting... +[ s:result_select >> base.select >> window#select] id = 18 +[ s:result_select >> base.select >> window#select] ... +[ s:result_select >> base.select] id = 18 +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Result window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ s:result_select >> on_window_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ s:result_select >> on_window_leave] call object.on_tab_leave() +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ s:result_select >> on_window_leave] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] name: widget/base.vim +[ s:result_select >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] ... +[ s:result_select >> window#load_selected >> on_any_buffer_enter] buffer name:widget/base.vim +[ s:result_select >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> window#load_selected >> on_any_buffer_enter] b:widget not found +[ s:result_select >> window#load_selected >> on_any_buffer_enter] ... +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_any_buffer_enter] buffer name:/Users/mykolagolubyev/.vim/plugin/oscan.vim +[ s:result_select >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> on_any_buffer_enter] b:widget not found +[ s:result_select >> on_any_buffer_enter] ... +[ s:result_select >> on_any_buffer_window_enter] name: /Users/mykolagolubyev/.vim/plugin/oscan.vim +[ s:result_select >> on_any_buffer_window_enter] ... +[ s:result_select] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: /Users/mykolagolubyev/.vim/plugin/oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/plugin" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 192 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/plugin" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 19 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget19 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 193 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 19 +[ base.select >> window#select] ... +[ base.select] id = 19 +[ window#load_selected] ... +[ window#select] id = 19 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 194 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget5 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 5 +[ base.close] closing.. id = 5 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget19 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget19 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 5 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:oscan.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 19 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter] name: /Users/mykolagolubyev/.vim/plugin/oscan.vim +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] buffer name:/Users/mykolagolubyev/.vim/plugin/oscan.vim +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan/record_browser.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record_browser.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan/record.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan/extractor/changes.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/extractor/changes.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan/extractor/changes.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan/extractor" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 195 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan/extractor" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 19 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget19 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 196 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 19 +[ base.select >> window#select] ... +[ base.select] id = 19 +[ window#load_selected] ... +[ window#select] id = 19 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 197 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> window#load_selected] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] name: rmwidget19 +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget19 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> window#load_selected] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ s:result_select >> window#save_selected] ... +[ s:result_select >> base.select] selecting... +[ s:result_select >> base.select >> window#select] id = 19 +[ s:result_select >> base.select >> window#select] ... +[ s:result_select >> base.select] id = 19 +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Result window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ s:result_select >> on_window_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ s:result_select >> on_window_leave] call object.on_tab_leave() +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ s:result_select >> on_window_leave] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] name: oscan/extractor/changes.vim +[ s:result_select >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] ... +[ s:result_select >> window#load_selected >> on_any_buffer_enter] buffer name:oscan/extractor/changes.vim +[ s:result_select >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> window#load_selected >> on_any_buffer_enter] b:widget not found +[ s:result_select >> window#load_selected >> on_any_buffer_enter] ... +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_any_buffer_enter] buffer name:oscan/extractor/search.vim +[ s:result_select >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> on_any_buffer_enter] b:widget not found +[ s:result_select >> on_any_buffer_enter] ... +[ s:result_select >> on_any_buffer_window_enter] name: oscan/extractor/search.vim +[ s:result_select >> on_any_buffer_window_enter] ... +[ s:result_select] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: oscan/extractor/search.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan/extractor" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 198 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/oscan/extractor" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget4 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 20 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget20 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 199 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 20 +[ base.select >> window#select] ... +[ base.select] id = 20 +[ window#load_selected] ... +[ window#select] id = 20 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 200 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> window#load_selected] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> window#load_selected] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> window#load_selected] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> window#load_selected] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_leave] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_window_enter] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw_selection >> base.select >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_leave] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_window_enter] ... +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw_selection >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw_selection >> window#load_selected] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_normal_move ; arguments: +[ ] close_all +[ base.close >> window#save_selected] ... +[ base.close >> base.select] selecting... +[ base.close >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> base.select >> window#select >> on_window_leave] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] name: rmwidget4 +[ base.close >> base.select >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> base.select >> window#select >> on_any_window_enter] ... +[ base.close >> base.select >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ base.close >> base.select >> window#select >> on_window_enter] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ base.close >> base.select >> window#select >> on_any_buffer_enter] call object.on_setup() +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ base.close >> base.select >> window#select >> on_any_buffer_enter] ... +[ base.close >> base.select >> window#select] ... +[ base.close >> base.select] id = 4 +[ base.close] closing.. id = 4 +[ base.close >> on_window_leave] already closed +[ base.close >> on_window_leave] ... +[ base.close >> on_buffer_win_leave] widget for close set up +[ base.close >> on_buffer_win_leave] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] already closed +[ base.close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_buffer_win_leave] ... +[ base.close >> on_any_window_enter] name: rmwidget20 +[ base.close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> on_any_window_enter] ... +[ base.close >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ base.close >> on_window_enter] ... +[ base.close >> on_any_buffer_enter] buffer name:rmwidget20 +[ base.close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ base.close >> on_any_buffer_enter] call object.on_setup() +[ base.close >> on_any_buffer_enter] ... +[ base.close >> window#load_selected] ... +[ base.close] id#release pool = railmoon_widget_id; id = 4 +[ base.close] call back for widget. name:Result window; method:on_close ; arguments: +[ base.close] call object.on_close() +[ base.close >> common_widget_callback.on_close] tabclose +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ base.close >> common_widget_callback.on_close >> on_window_leave] call object.on_tab_leave() +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ base.close >> common_widget_callback.on_close >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ base.close >> common_widget_callback.on_close >> on_window_leave] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] name: widget/edit_line_window.vim +[ base.close >> common_widget_callback.on_close >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] buffer name:widget/edit_line_window.vim +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] widget for close set up +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Tag enter window; method:on_close_with_tab_page ; arguments: +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 20 +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> on_buffer_win_leave] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter] name: oscan/extractor/search.vim +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_window_enter] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] buffer name:oscan/extractor/search.vim +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] b:widget not found +[ base.close >> common_widget_callback.on_close >> window#load_selected >> on_any_buffer_enter] ... +[ base.close >> common_widget_callback.on_close >> window#load_selected] ... +[ base.close >> common_widget_callback.on_close] ... +[ base.close >> s:close_ready_for_close_widgets()] ... +[ base.close] ... +[ on_any_window_enter] name: widget/edit_line_window.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/edit_line_window.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: /Users/mykolagolubyev/.vim/plugin/oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:/Users/mykolagolubyev/.vim/plugin/oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan/record_browser.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record_browser.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/edit_line_window.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/edit_line_window.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:changes +[ on_any_window_enter] name: oscan/extractor/search.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/extractor/search.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: widget/edit_line_window.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:widget/edit_line_window.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:files +[ ] create new tab page +[ on_any_window_enter] name: widget/edit_line_window.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/widget" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 201 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select file from "/Users/mykolagolubyev/.vim/autoload/railmoon/widget" directory to open', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 20 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget20 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 202 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 20 +[ base.select >> window#select] ... +[ base.select] id = 20 +[ window#load_selected] ... +[ window#select] id = 20 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 203 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget20 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ s:result_select >> window#save_selected] ... +[ s:result_select >> base.select] selecting... +[ s:result_select >> base.select >> window#select] id = 20 +[ s:result_select >> base.select >> window#select] ... +[ s:result_select >> base.select] id = 20 +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Result window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ s:result_select >> on_window_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ s:result_select >> on_window_leave] call object.on_tab_leave() +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ s:result_select >> on_window_leave] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] name: widget/edit_line_window.vim +[ s:result_select >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] ... +[ s:result_select >> window#load_selected >> on_any_buffer_enter] buffer name:widget/edit_line_window.vim +[ s:result_select >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> window#load_selected >> on_any_buffer_enter] b:widget not found +[ s:result_select >> window#load_selected >> on_any_buffer_enter] ... +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_any_buffer_enter] buffer name:widget/base.vim +[ s:result_select >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> on_any_buffer_enter] b:widget not found +[ s:result_select >> on_any_buffer_enter] ... +[ s:result_select >> on_any_buffer_window_enter] name: widget/base.vim +[ s:result_select >> on_any_buffer_window_enter] ... +[ s:result_select] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:changes +[ ] create new tab page +[ on_any_window_enter] name: widget/base.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select recently changed lines to jump to', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 204 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('124'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('125'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('125'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('124'), 'titlename': 'Select recently changed lines to jump to', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('124'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('125'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 21 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget21 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 205 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 21 +[ base.select >> window#select] ... +[ base.select] id = 21 +[ window#load_selected] ... +[ window#select] id = 21 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 206 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ s:result_select >> window#save_selected] ... +[ s:result_select >> base.select] selecting... +[ s:result_select >> base.select >> window#select] id = 21 +[ s:result_select >> base.select >> window#select] ... +[ s:result_select >> base.select] id = 21 +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Result window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ s:result_select >> on_window_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ s:result_select >> on_window_leave] call object.on_tab_leave() +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ s:result_select >> on_window_leave] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] name: widget/base.vim +[ s:result_select >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] ... +[ s:result_select >> window#load_selected >> on_any_buffer_enter] buffer name:widget/base.vim +[ s:result_select >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> window#load_selected >> on_any_buffer_enter] b:widget not found +[ s:result_select >> window#load_selected >> on_any_buffer_enter] ... +[ s:result_select >> window#load_selected] ... +[ s:result_select] ... +[ on_any_window_enter] name: /Users/mykolagolubyev/.vim/plugin/oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:/Users/mykolagolubyev/.vim/plugin/oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ ] save invoker position +[ window#save_selected] ... +[ ] create tag browser:changes +[ ] create new tab page +[ on_any_window_enter] name: oscan.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name: +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: +[ on_any_buffer_window_enter] ... +[ on_any_buffer_enter] buffer name:/Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_buffer_window_enter] ... +[ ] create available_tags_window +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ ] create base:Available tags window +[ ] {'select': function('336'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('337'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 4 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget4 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Available tags window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('337'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('297'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 4, 'selection_up': function('40'), 'name': 'Available tags window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('336'), 'titlename': 'Select recently changed lines to jump to', 'scrool_to': function('38'), 'draw': function('36')} +[ selection_window.draw >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 207 +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] create result_window +[ on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: /Applications/MacVim.app/Contents/Resources/vim/runtime/doc/help.txt +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ ] create base:Result window +[ ] {'select': function('336'), 'draw': function('36'), 'selection_down': function('39'), 'draw_selection': function('37'), 'close': function('337'), 'select_line': function('41'), 'scrool_to': function('38'), 'selection_up': function('40'), 'select_item': function('42'), 'selected_item': function('43')} +[ ] id#acquire pool = railmoon_widget_id; id = 5 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget5 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create selection_window:Result window +[ ] {'child_callback_object': {'on_setup': function('35')}, 'close': function('337'), 'callback_object': {'on_tab_leave': function('295'), 'on_close': function('294'), 'on_select': function('298'), 'on_close_with_tab_page': function('296')}, 'is_closed': 0, 'select_item': function('42'), 'selected_item': function('43'), 'id': 5, 'selection_up': function('40'), 'name': 'Result window', 'select_line': function('41'), 'draw_selection': function('37'), 'selection_down': function('39'), 'select': function('336'), 'titlename': 'Select recently changed lines to jump to', 'scrool_to': function('38'), 'draw': function('36')} +[ ] create tag_enter_window +[ on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ on_window_leave] ... +[ on_any_window_enter] name: rmwidget5 +[ on_any_window_enter] handle autocommands stoped +[ on_any_window_enter] ... +[ on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ on_window_enter] ... +[ ] create base:Tag enter window +[ ] {'select': function('336'), 'go_to_position': function('48'), 'get_line': function('46'), 'close': function('337'), 'go_to_start': function('50'), 'go_to_end': function('49'), 'set_line': function('47')} +[ ] id#acquire pool = railmoon_widget_id; id = 22 +[ on_any_buffer_enter] handle autocommands stoped +[ on_any_buffer_enter] ... +[ on_any_buffer_window_enter] name: rmwidget22 +[ on_any_buffer_window_enter] handle autocommands stoped +[ on_any_buffer_window_enter] ... +[ ] create edit line window:Tag enter window +[ window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 208 +[ window#save_selected] ... +[ base.select] selecting... +[ base.select >> window#select] id = 22 +[ base.select >> window#select] ... +[ base.select] id = 22 +[ window#load_selected] ... +[ window#select] id = 22 +[ window#select] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] id#acquire pool = railmoon_window_mark_id; id = 209 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget22 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget22 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget22 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget22 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget5 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Result window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget5 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Result window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 5 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Result window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget22 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget22 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#select >> on_window_leave] ... +[ selection_window.draw >> window#select >> on_any_window_enter] name: rmwidget4 +[ selection_window.draw >> window#select >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#select >> on_any_window_enter] ... +[ selection_window.draw >> window#select >> on_window_enter] call back for widget. name:Available tags window; method:on_focus ; arguments: +[ selection_window.draw >> window#select >> on_window_enter] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] buffer name:rmwidget4 +[ selection_window.draw >> window#select >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#select >> on_any_buffer_enter] call back for widget. name:Available tags window; method:on_setup ; arguments: +[ selection_window.draw >> window#select >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw >> window#load_selected] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter >> selection_window.draw] ... +[ selection_window.draw >> window#select >> on_any_buffer_enter] ... +[ selection_window.draw >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#save_selected] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] selecting... +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> base.select >> window#select] ... +[ selection_window.draw >> selection_window.draw_selection >> base.select] id = 4 +[ selection_window.draw >> selection_window.draw_selection >> window#load_selected] ... +[ selection_window.draw >> window#load_selected >> on_window_leave] call back for widget. name:Available tags window; method:on_focus_lost ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_leave] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] name: rmwidget22 +[ selection_window.draw >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ selection_window.draw >> window#load_selected >> on_any_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_window_enter] call back for widget. name:Tag enter window; method:on_focus ; arguments: +[ selection_window.draw >> window#load_selected >> on_window_enter] ... +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] buffer name:rmwidget22 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call back for widget. name:Tag enter window; method:on_setup ; arguments: +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] call object.on_setup() +[ selection_window.draw >> window#load_selected >> on_any_buffer_enter] ... +[ selection_window.draw >> window#load_selected] ... +[ selection_window.draw] ... +[ ] call back for widget. name:Tag enter window; method:on_insert_move ; arguments: +[ ] call object.on_insert_move() +[ s:result_select >> window#save_selected] ... +[ s:result_select >> base.select] selecting... +[ s:result_select >> base.select >> window#select] id = 22 +[ s:result_select >> base.select >> window#select] ... +[ s:result_select >> base.select] id = 22 +[ s:result_select >> window#load_selected] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Available tags window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 4 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_buffer_win_leave] widget for close set up +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] s:widget_for_close exists +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call back for widget. name:Result window; method:on_close_with_tab_page ; arguments: +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] call object.on_close_with_tab_page() +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets() >> common_widget_callback.on_close_with_tab_page] ... +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] id#release pool = railmoon_widget_id; id = 5 +[ s:result_select >> on_buffer_win_leave >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> on_buffer_win_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_focus_lost ; arguments: +[ s:result_select >> on_window_leave] ... +[ s:result_select >> on_window_leave] call back for widget. name:Tag enter window; method:on_tab_leave ; arguments: +[ s:result_select >> on_window_leave] call object.on_tab_leave() +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] leaving tab +[ s:result_select >> on_window_leave >> common_widget_callback.on_tab_leave] ... +[ s:result_select >> on_window_leave] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] name: oscan.vim +[ s:result_select >> window#load_selected >> on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ s:result_select >> window#load_selected >> on_any_window_enter] ... +[ s:result_select >> window#load_selected >> on_any_buffer_enter] buffer name:oscan.vim +[ s:result_select >> window#load_selected >> on_any_buffer_enter] in_create_widget_state:0 +[ s:result_select >> window#load_selected >> on_any_buffer_enter] b:widget not found +[ s:result_select >> window#load_selected >> on_any_buffer_enter] ... +[ s:result_select >> window#load_selected] ... +[ s:result_select] ... +[ on_any_window_enter] name: oscan/record_browser.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record_browser.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... +[ on_any_window_enter] name: oscan/record.vim +[ on_any_window_enter >> s:close_ready_for_close_widgets()] ... +[ on_any_window_enter] ... +[ on_any_buffer_enter] buffer name:oscan/record.vim +[ on_any_buffer_enter] in_create_widget_state:0 +[ on_any_buffer_enter] b:widget not found +[ on_any_buffer_enter] ... \ No newline at end of file diff --git a/vim/autoload/railmoon/oscan.vim b/vim/autoload/railmoon/oscan.vim new file mode 100755 index 0000000..be32d54 --- /dev/null +++ b/vim/autoload/railmoon/oscan.vim @@ -0,0 +1,724 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Purpose: quick move through current document or through any entities that can be tagged + + +if ! exists('g:ctags_exe') + if exists('Tlist_Ctags_Cmd') + let g:ctags_exe = Tlist_Ctags_Cmd + else + let g:ctags_exe = "ctags" + endif +endif + +let s:previous_records_to_print_count = 1 +let s:previous_suggestions_count = 1 +let s:records_to_print = [] +let s:suggestions = [] +" - +" [ internal usage ] +" Purpose: find tag position inside line. +" tag can be with spaces. delimiter is comma. +" return list with begin and end ( start from 0 ). +" [ parameters ] +" line string +" column column that starts from 1 +" - +function! s:tag_in_line_position(line, column) + let column = a:column - 1 + + while a:line[column] == ',' && column > 0 + let column -= 1 + endwhile + + let begin = column + let end = column + let length = len(a:line) + + while begin > 0 && a:line[begin - 1] != ',' + let begin -= 1 + endwhile + + while end < length && a:line[end + 1] != ',' + let end += 1 + endwhile + + return [begin, end] +endfunction + +" - +" [ internal usage ] +" Purpose: find tag inside line. +" details in function above +" [ parameters ] +" line string +" column column that starts from 1 +" - +function! s:tag_in_line(line, column) + let position = s:tag_in_line_position(a:line, a:column) + + let result = a:line[position[0] : position[1]] + if result == ',' + return '' + endif + + return result +endfunction + +" - +" call backs for widgets +" - +let s:plugin_window_goes_close = 0 +let s:common_widget_callback = {} + +function! s:common_widget_callback.on_close() + call railmoon#trace#push('common_widget_callback.on_close') + try + + let s:plugin_window_goes_close = 1 + + call s:turnon_unexpected_plugins() + + call railmoon#trace#debug('tabclose') + tabclose + + call railmoon#widget#window#load_selected(s:plugin_invoker_position) + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +function! s:common_widget_callback.on_tab_leave() + call railmoon#trace#push('common_widget_callback.on_tab_leave') + try + + call railmoon#trace#debug('leaving tab') + if ! s:plugin_window_goes_close + let s:plugin_window_goes_close = 1 + call s:turnon_unexpected_plugins() + tabclose " TODO make sure we close right tabpage + endif + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +function! s:common_widget_callback.on_close_with_tab_page() + call railmoon#trace#push('common_widget_callback.on_close_with_tab_page') + try + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +let s:suggestion_window_callback = copy(s:common_widget_callback) +function! s:suggestion_window_callback.on_select(line) +endfunction + +let s:result_window_callback = copy(s:common_widget_callback) +function! s:result_window_callback.on_select(line) + call s:result_select() +endfunction + +let s:tag_enter_window_callback = copy(s:common_widget_callback) +let s:tag_enter_window_callback.edit_column = -1 + +let s:suggestion_window_model = {} +function! s:suggestion_window_model.get_item(i) + let item = { 'data':[], 'header':'' } + if len(s:suggestions) > 0 + call add(item.data, s:suggestions[a:i] ) + endif + + return item +endfunction + +function! s:suggestion_window_model.get_item_count() + return len(s:suggestions) +endfunction + +let s:result_window_model = {} +function! s:result_window_model.get_item(i) + if len(s:records_to_print) == 0 + return {'data':[], 'header':''} + endif + + let record = s:records_to_print[a:i] + let item = { 'data':[], 'header':record.additional_info } + call extend( item.data, record.header ) + return item +endfunction + +function! s:result_window_model.get_item_count() + return len(s:records_to_print) +endfunction + +function! s:tag_enter_window_callback.on_type(character, is_alpha_numeric) + let line = getline('.') + let column = col('.') + + " magic with ',' + " change entered part to tag from suggestion list + " TODO clean algorithm + " TODO extract method and test it + if ! a:is_alpha_numeric + if a:character == ',' && self.available_tags_window.model.get_item_count() > 0 + let selected_tag = self.available_tags_window.selected_item() + + let position = s:tag_in_line_position(line, column) + let begin = position[0] + let end = position[1] + + + if begin != 0 + let new_line = line[ : begin - 1] + else + let new_line = '' + endif + + let selected_tag_text = selected_tag.data[0] + + if line[end + 1] == ',' + let new_line .= selected_tag_text . line[ end + 1: ] + else + let new_line .= selected_tag_text . ',' . line[ end + 1 : ] + endif + + call self.edit_line_window.set_line(new_line) + call self.edit_line_window.go_to_position(begin + len(selected_tag_text) + 2) + endif + return '' + endif + + " character isn't at line yet + " so imagine it'is here + let line_with_character = line[ : column] . a:character . line[column + 1 : ] + let current_tag = s:tag_in_line(line_with_character, column) + + let suggestions = self.refresh_suggestion_list(current_tag, line_with_character) + + let self.edit_column = col('.') + 1 + if empty(suggestions) + return '' + endif + + return a:character +endfunction + +function! s:suggestions_sort(lhs, rhs) + if a:lhs == a:rhs + return 0 + endif + + let as_current_tag_start_pattern = '^'.s:current_tag + let number_pattern = '\d\+' + + let left_is_number = a:lhs =~ number_pattern + let right_is_number = a:rhs =~ number_pattern + + if a:lhs =~ as_current_tag_start_pattern && a:rhs !~ as_current_tag_start_pattern + return -1 + endif + + if left_is_number && right_is_number + return a:lhs > a:rhs ? 1 : -1 + endif + + if left_is_number && ! right_is_number + return 1 + endif + + if right_is_number && ! left_is_number + return -1 + endif + + if a:lhs !~ as_current_tag_start_pattern && a:rhs =~ as_current_tag_start_pattern + return 1 + endif + + return a:lhs > a:rhs ? 1 : -1 +endfunction + +function! s:tag_enter_window_callback.refresh_suggestion_list(current_tag, line) + let entered_tags = split(a:line, ',') + + let current_tag = a:current_tag + if current_tag == '.' + let current_tag = '\.' + endif + + if current_tag =~ '"' + call filter(entered_tags, "v:val != '". current_tag. "'") + else + call filter(entered_tags, 'v:val != "'.current_tag.'"') + endif + call add(entered_tags, '~'.current_tag) + + let available_records = s:record_browser.get_matched_records( entered_tags ) + let available_tags = s:record_browser.get_available_tags_for_records( available_records, entered_tags ) + + let s:suggestions = [] + for w in available_tags + if w =~ current_tag + call add(s:suggestions, w) + endif + endfor + + let s:current_tag = current_tag + call sort(s:suggestions, 's:suggestions_sort') + + let s:records_to_print = available_records + let records_to_print_count = len(s:records_to_print) + let suggestions_count = len(s:suggestions) + + if records_to_print_count != s:previous_records_to_print_count + let self.result_window.selected_item_number = 1 + endif + + if suggestions_count != s:previous_suggestions_count + let self.available_tags_window.selected_item_number = 1 + endif + + let s:previous_records_to_print_count = records_to_print_count + let s:previous_suggestions_count = suggestions_count + + call self.result_window.draw() + + call self.available_tags_window.draw() + + return s:suggestions +endfunction + +function! s:tag_enter_window_callback.on_enter() +endfunction + +function! s:tag_enter_window_callback.on_insert_move() + let line = getline('.') + let column = col('.') + + if self.edit_column == column + return + endif + + let current_tag = s:tag_in_line(line, column) + call self.refresh_suggestion_list(current_tag, line) +endfunction + +function! s:tag_selection_up() + call s:available_tags_window.selection_up(1) +endfunction + +function! s:tag_selection_down() + call s:available_tags_window.selection_down(1) +endfunction + +function! s:result_selection_up() + call s:result_window.selection_up(1) +endfunction + +function! s:result_selection_down() + call s:result_window.selection_down(1) +endfunction + +function! s:result_select() + call railmoon#trace#push('s:result_select') + try + + if empty(s:records_to_print) + return + endif + + let selected_item_number = s:result_window.selected_item_number + let record = s:records_to_print[selected_item_number - 1] + + let s:last_entred_tags_line = s:tag_enter_window_callback.edit_line_window.get_line() + let s:last_selected_result_item_number = selected_item_number + + tabclose + call railmoon#widget#window#load_selected(s:plugin_invoker_position) + + call s:record_browser.record_extractor.process(record) + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +function! s:close_all() + call railmoon#trace#debug('close_all') + call s:result_window.close() +endfunction + +function! s:map_result_moving_keys() + let result_down_keys = [ '', '', '' ] + let result_up_keys = [ '', '', '' ] + + for key in result_down_keys + let command = 'inoremap '.key.' =result_selection_down()?"":""' + exec command + let command = 'noremap '.key.' :call result_selection_down()' + exec command + endfor + + for key in result_up_keys + let command = 'inoremap '.key.' =result_selection_up()?"":""' + exec command + let command = 'noremap '.key.' :call result_selection_up()' + exec command + endfor + + inoremap =result_selection_up()?'':'' + inoremap =result_select()?' ':' ' +endfunction + +function! s:map_suggestion_moving_keys() + inoremap =tag_selection_down()?'':'' + inoremap =tag_selection_up()?'':'' + noremap :call tag_selection_down() + noremap :call tag_selection_up() +endfunction + +function! s:map_common_keys() + nnoremap :call close_all() +endfunction + +" information to help 0scan repeat +let s:last_extractor = {} +let s:last_record_browser = {} +let s:last_entred_tags_line = '' +let s:last_selected_result_item_number = 0 + + +function! s:turnoff_unexpected_plugins() + if exists('g:loaded_minibufexplorer') + CMiniBufExplorer + endif + + if exists('g:loaded_autocomplpop') + call railmoon#trace#debug('Turn off autocomplpop.vim') + AutoComplPopLock + endif +endfunction + +function! s:turnon_unexpected_plugins() + if exists('g:loaded_autocomplpop') + call railmoon#trace#debug('Turn on autocomplpop.vim') + AutoComplPopUnlock + endif +endfunction + +function! s:process_last_extractor_new_selection( record_number ) + let record = s:records_to_print[ a:record_number - 1 ] + call s:last_extractor.process(record) +endfunction + +function! s:print_error( message ) + echohl Error | echo '[ 0scan ] '.a:message | echohl None +endfunction + +function! s:process_last_extractor_select_next( shift ) + let records_count = len( s:records_to_print ) + let new_record_number = s:last_selected_result_item_number + a:shift + + if new_record_number < 1 + call s:print_error( 'first record reached' ) + return + endif + + if new_record_number > records_count + call s:print_error( "last record reached" ) + return + endif + + let s:last_selected_result_item_number = new_record_number + call s:process_last_extractor_new_selection( new_record_number ) +endfunction + +function! s:process_last_extractor_quick_selection( command ) + if a:command == 'lastup' + call s:process_last_extractor_select_next( -1 ) + elseif a:command == 'lastdown' + call s:process_last_extractor_select_next( 1 ) + endif +endfunction + +function! s:create_extractor( name ) + let extractor = eval('railmoon#oscan#extractor#'.a:name.'#create()') + return extractor +endfunction + +" returns files from dir +" +function! s:get_filenames_from_dir( dir ) + let files_list = split( glob( a:dir."/*" ), "\n" ) + let result = [] + + for item in files_list + if filereadable( item ) + call add( result, item ) + endif + endfor + + return result +endfunction + +" returns list of [ extractor_name, extractor_description, not_implemented_flag ] +" +function! s:get_available_extractors() + let extractor_files = [] + + let vimfiles_folders = split( &runtimepath, ',' ) + for folder in vimfiles_folders + if folder =~ 'after$' + continue + endif + + let extractor_folder = folder.'/autoload/railmoon/oscan/extractor' + call extend( extractor_files, s:get_filenames_from_dir( extractor_folder ) ) + endfor + + let extractors = [] + + for extractor_file in extractor_files + "echo extractor_file + let extractor_name = fnamemodify( extractor_file, ":t:r" ) + + try + let extractor = s:create_extractor( extractor_name ) + catch /.*/ + continue + endtry + + let extractor_description = extractor.description + let extractor_not_implemented = has_key( extractor, 'not_implemented' ) ? extractor.not_implemented : 0 + call add( extractors, [ extractor_name, extractor_description, extractor_not_implemented ] ) + endfor + + return extractors +endfunction + +function! s:show_available_extractors() + let extractors = s:get_available_extractors() + + let max_extractor_name_len = 0 + for extractor_description in extractors + let len = len( extractor_description[0] ) + if len > max_extractor_name_len + let max_extractor_name_len = len + endif + endfor + + echohl Comment + echo "Please specify scan you would like you use" + echo ":OScan scan_name [tag1] [tag2]" + echohl None + for extractor_description in extractors + echohl Keyword | echo printf( "%".max_extractor_name_len."s\t", extractor_description[0] ) + + if extractor_description[2] + echohl Error | echon "[ Not implemented ]" | echohl None | echon " " + endif + + echohl String | echon extractor_description[1] | echohl None + endfor +endfunction + +" completition function for :OScan command +" +function! railmoon#oscan#complete( argLead, cmdLine, cursorPos ) + let result = '' + + let extractors = s:get_available_extractors() + + for extractor_description in extractors + if extractor_description[2] + continue + endif + + if ! empty( result ) + let result .= "\n" + endif + + let result .= extractor_description[0] + endfor + + return result +endfunction + +function! railmoon#oscan#open(...) + "call railmoon#trace#start_debug('oscan.debug') + + if empty( a:000 ) + call s:show_available_extractors() + return + endif + + let extractor_name = a:000[0] + + " not real extractor, but convinient way to quick run through last + " results + " + if ( extractor_name == 'lastup' || extractor_name == 'lastdown' ) && !empty( s:last_extractor ) + call s:process_last_extractor_quick_selection( extractor_name ) + return + endif + + call railmoon#trace#debug('save invoker position') + + let s:plugin_invoker_position = railmoon#widget#window#save_selected() + + call railmoon#trace#debug('create tag browser:'.extractor_name) + + let extractor = {} + let extractor_description = '' + + let is_repeat_last_extractor = extractor_name == 'last' && ! empty(s:last_extractor) + + if is_repeat_last_extractor + let extractor = s:last_extractor + let extractor_description = extractor.description + + let s:record_browser = s:last_record_browser + elseif extractor_name == 'last' + call s:print_error( 'Nothing to repeat' ) + return + else + let extractor = {} + try + let extractor = s:create_extractor( extractor_name ) + catch /.*/ + call s:print_error( "Can't create \"".extractor_name."\" scan" ) + return + endtry + + let extractor_description = extractor.description + + let s:record_browser = railmoon#oscan#record_browser#create(extractor) + endif + + if s:record_browser.is_empty() + call s:print_error( 'no records with tags found' ) + return + endif + + let s:last_record_browser = deepcopy(s:record_browser) + let s:last_extractor = deepcopy(extractor) + + call railmoon#trace#debug('create new tab page') + + try + "set lazyredraw + silent tab help + + let width = winwidth('%') + + let s:plugin_window_goes_close = 0 + + call railmoon#widget#stop_handle_autocommands() + call s:turnoff_unexpected_plugins() + + call railmoon#trace#debug('create available_tags_window') + let tags_window_width = width/5 + exec tags_window_width.' vsplit' + + let s:available_tags_window = railmoon#widget#selection_window#create( + \ 'Available tags window', + \ extractor_description, + \ 'TODO', + \ s:suggestion_window_model, + \ s:suggestion_window_callback) + + call s:map_common_keys() + + call s:available_tags_window.draw() + + + call railmoon#trace#debug('create result_window') + wincmd w + let s:result_window = railmoon#widget#selection_window#create( + \ 'Result window', + \ extractor_description, + \ 'DiffAdd', + \ s:result_window_model, + \ s:result_window_callback) + + call s:map_common_keys() + + call extractor.colorize() + + if is_repeat_last_extractor + call s:result_window.select_item(s:last_selected_result_item_number) + endif + + call railmoon#trace#debug('create tag_enter_window') + split + resize 1 + let edit_line_window = railmoon#widget#edit_line_window#create( + \'Tag enter window', + \ extractor_description, + \ s:tag_enter_window_callback) + + call s:map_common_keys() + call s:map_result_moving_keys() + call s:map_suggestion_moving_keys() + + + if ! is_repeat_last_extractor + let tag_line = join(a:000[ 1: ], ',') + if len(tag_line) > 0 + let tag_line .= ',' + endif + + call edit_line_window.set_line(tag_line) + else + call edit_line_window.set_line(s:last_entred_tags_line) + endif + + call railmoon#widget#window#select(edit_line_window.id) + startinsert! + catch /.*/ + call s:print_error( v:exception ) + finally + call railmoon#widget#start_handle_autocommands() + "set nolazyredraw + "redraw + endtry + + let s:tag_enter_window_callback.edit_line_window = edit_line_window + let s:tag_enter_window_callback.available_tags_window = s:available_tags_window + let s:tag_enter_window_callback.result_window = s:result_window +endfunction + +" - +" [ testing ] +" - +let s:unit_test = railmoon#unit_test#create('oscan') + +function! s:unit_test.test_tag_in_line() + call self.assert_equal(s:tag_in_line('January,', 7), 'January') + call self.assert_equal(s:tag_in_line('January,', 8), 'January') + call self.assert_equal(s:tag_in_line('January,', 9), '') + call self.assert_equal(s:tag_in_line('January,February', 8), 'January') + call self.assert_equal(s:tag_in_line(',word,', 2), 'word') + call self.assert_equal(s:tag_in_line(',word,', 3), 'word') + call self.assert_equal(s:tag_in_line(',word,', 4), 'word') + call self.assert_equal(s:tag_in_line(',word,', 5), 'word') + call self.assert_equal(s:tag_in_line(',word,', 6), 'word') + call self.assert_equal(s:tag_in_line('word,', 4), 'word') + call self.assert_equal(s:tag_in_line('word,', 5), 'word') + call self.assert_equal(s:tag_in_line('word,', 6), '') + call self.assert_equal(s:tag_in_line('word,,', 6), 'word') + call self.assert_equal(s:tag_in_line('', 1), '') + call self.assert_equal(s:tag_in_line(',', 1), '') +endfunction + +call s:unit_test.run() + diff --git a/vim/autoload/railmoon/oscan/extractor/buffers.vim b/vim/autoload/railmoon/oscan/extractor/buffers.vim new file mode 100755 index 0000000..b160c71 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/buffers.vim @@ -0,0 +1,73 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#buffers +" Purpose: extract buffer names to select + +function! railmoon#oscan#extractor#buffers#create() + let new_extractor = copy(s:tag_scan_buffers_extractor) + let new_extractor.description = 'Select buffer to edit' + + return new_extractor +endfunction + +let s:tag_scan_buffers_extractor = {} +function! s:tag_scan_buffers_extractor.process(record) + if &modified + let choice = inputlist( [ "Buffer is modified.", "1. Save current and continue" , "2. Break", "3. Open in new tab" ] ) + if 1 == choice + update + elseif 2 == choice + return + elseif 3 == choice + tab new + else + tab new + endif + endif + + exec 'buffer '.a:record.data +endfunction + +function! s:tag_scan_buffers_extractor.tags_by_name(buffer_name, buffer_number) + let tags = railmoon#oscan#extractor#util#tags_from_file_name(a:buffer_name) + + if index(tags, string(a:buffer_number)) == -1 + call add(tags, a:buffer_number) + endif + + return tags +endfunction + +function! s:tag_scan_buffers_extractor.header_by_name(buffer_name, buffer_number) + return [ a:buffer_name ] +endfunction + +function! s:tag_scan_buffers_extractor.extract() + let result = [] + + let buffers = railmoon#oscan#extractor#util#buffer_list() + + for buffer_info in buffers + + let buffer_number = buffer_info[0] + let buffer_name = buffer_info[1] + + call add(result, railmoon#oscan#record#create( self.header_by_name(buffer_name, buffer_number), + \ self.tags_by_name(buffer_name, buffer_number), + \ buffer_number, + \ buffer_number)) + + endfor + + + return result +endfunction + +function! s:tag_scan_buffers_extractor.colorize() + syntax match FileName /.*\zs\/.*\ze/ + + hi link FileName Identifier +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/changes.vim b/vim/autoload/railmoon/oscan/extractor/changes.vim new file mode 100644 index 0000000..6bac8e3 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/changes.vim @@ -0,0 +1,54 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#changes +" Purpose: extract recently changed lines to jump to + +function! railmoon#oscan#extractor#changes#create() + let new_extractor = copy(s:tag_scan_changes_extractor) + let new_extractor.description = 'Select recently changed lines to jump to' + let new_extractor.filetype = &filetype + + return new_extractor +endfunction + +let s:tag_scan_changes_extractor = {} +function! s:tag_scan_changes_extractor.process(record) + exec a:record.data +endfunction + +function! s:tag_scan_changes_extractor.extract() + let result = [] + + redir => changes_string + silent changes + redir END + + let changes_list = split(changes_string, "\n") + let pattern = '\s*\(\d\+\)\s*\(\d\+\)\s*\(\d\+\)\s*\(.*\)$' + + call reverse(changes_list) + for change_el in changes_list + if change_el !~ pattern + continue + endif + + let line_number = substitute(change_el, pattern, '\2', '') + let line = substitute(change_el, pattern, '\4', '') + + let tags = railmoon#oscan#extractor#util#tags_from_line(line) + + let header = [ line ] + call add(result, railmoon#oscan#record#create( header, + \ tags, + \ line_number, + \ line_number)) + endfor + + return result +endfunction + +function! s:tag_scan_changes_extractor.colorize() +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/ctags.vim b/vim/autoload/railmoon/oscan/extractor/ctags.vim new file mode 100755 index 0000000..70311df --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/ctags.vim @@ -0,0 +1,137 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#ctags +" Purpose: extract ctags record from current buffer + +function! railmoon#oscan#extractor#ctags#create() + let new_extractor = copy(s:tag_scan_ctags_extractor) + + let new_extractor.file_name = expand("%:p") + let new_extractor.buffer_number = bufnr('%') + let new_extractor.file_extension = expand("%:e") + let new_extractor.filetype = &filetype + let new_extractor.description = 'Extract ctags records from "'.new_extractor.file_name.'"' + + return new_extractor +endfunction + +function! railmoon#oscan#extractor#ctags#language_function(language, function_name,...) + call railmoon#trace#debug( 'call language_function "'.a:function_name.'" for "'.a:language.'"' ) + try + let result = eval('railmoon#oscan#extractor#ctags#'.a:language.'#'.a:function_name.'('.join(a:000,',').')') + catch /.*/ + call railmoon#trace#debug( 'failed.['.v:exception.'] use cpp' ) + let result = eval('railmoon#oscan#extractor#ctags#cpp#'.a:function_name.'('.join(a:000,',').')') + endtry + + return result +endfunction + +function! railmoon#oscan#extractor#ctags#colorize_for_langauge(language) + call railmoon#oscan#extractor#ctags#language_function(a:language, 'colorize') +endfunction + +" by language name return kinds to use while ctags build tags base +" default language c++ +function! railmoon#oscan#extractor#ctags#kind_types_for_langauge(language) + return railmoon#oscan#extractor#ctags#language_function(a:language, 'kinds') +endfunction + +function! railmoon#oscan#extractor#ctags#process(tag_item) + try + let previous_magic = &magic + set nomagic + + if fnamemodify( @%, ':p' ) != fnamemodify( a:tag_item.filename, ':p' ) + exec 'silent edit '.a:tag_item.filename + endif + + silent 1 + exec a:tag_item.cmd + finally + let &magic = previous_magic + endtry +endfunction + +" by language name and ctags tag return record +" default language c++ +function! railmoon#oscan#extractor#ctags#record_for_language_tag( language, ctag_item ) + return railmoon#oscan#extractor#ctags#language_function( a:language, 'record', a:ctag_item ) +endfunction + +" return language name by extension +" default language c++ +function! railmoon#oscan#extractor#ctags#language_by_extension( extension ) + if index(['c', 'cpp', 'h', 'cxx', 'hxx', 'cc', 'hh', 'hpp'], a:extension) != -1 + return 'cpp' + elseif a:extension == 'vim' + return 'vim' + elseif a:extension == 'pl' + return 'perl' + elseif a:extension == 'py' + return 'python' + endif + + return 'cpp' +endfunction + +" return language name for current buffer +" default language c++ +function! railmoon#oscan#extractor#ctags#language_by_current_buffer() + let extension = fnamemodify(@%, ':e') + let language = exists( '&filetype' ) ? &filetype : railmoon#oscan#extractor#ctags#language_by_extension(extension) + + return language +endfunction + +let s:tag_scan_ctags_extractor = {} +function! s:tag_scan_ctags_extractor.process(record) + call railmoon#oscan#extractor#ctags#process(a:record.data) +endfunction + +function! s:tag_scan_ctags_extractor.extract() + let result = [] + + let self.language = railmoon#oscan#extractor#ctags#language_by_current_buffer() + + " fields + " f - file name + " s - structures + " i - inherits + " k - kinds + " K - kinds full written + " a - access + " l - language + " t,m,z - unknown for me yet + " n - line numbers + " S - signature + " extra + " q - tag names include namespace + " f - file names added + let ctags_tags = railmoon#ctags_util#taglist_for_file(self.file_name, + \ self.language, + \ railmoon#oscan#extractor#ctags#kind_types_for_langauge(self.language), + \ 'sikaS') + + for item in ctags_tags + let record = railmoon#oscan#extractor#ctags#record_for_language_tag(self.language, item) + + " no need file name to show in each row ( all tags in one file ) + let record.additional_info = '' + + call add(result, record) + endfor + + return result +endfunction + +function! railmoon#oscan#extractor#ctags#colorize_keywords(language) + call railmoon#oscan#extractor#ctags#colorize_for_langauge(a:language) +endfunction + +function! s:tag_scan_ctags_extractor.colorize() + let &filetype = self.filetype + call railmoon#oscan#extractor#ctags#colorize_for_langauge(self.language) +endfunction diff --git a/vim/autoload/railmoon/oscan/extractor/ctags/cpp.vim b/vim/autoload/railmoon/oscan/extractor/ctags/cpp.vim new file mode 100755 index 0000000..e909c4d --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/ctags/cpp.vim @@ -0,0 +1,153 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#ctags#cpp +" Purpose: extract ctags cpp record from buffer + + +function! railmoon#oscan#extractor#ctags#cpp#kinds() + return "cdefgmnpstuvx" +endfunction + +function! railmoon#oscan#extractor#ctags#cpp#colorize() + syntax keyword Type variable inner field enumeration function method public private protected global + syntax keyword Keyword constructor destructor + syntax keyword Identifier decl def +endfunction + +function! railmoon#oscan#extractor#ctags#cpp#record( tag_item ) + let tag_list = [] + let header = "" + let line_number = a:tag_item.cmd + + let kind = a:tag_item.kind + let namespace = has_key(a:tag_item, 'namespace') ? a:tag_item.namespace : '' + + let is_object = 0 + let object_name = '' + + for name in ( [ has_key(a:tag_item, 'class') ? a:tag_item.class : '' + \, has_key(a:tag_item, 'struct') ? a:tag_item.struct : '' + \, has_key(a:tag_item, 'enum') ? a:tag_item.enum : '' + \, has_key(a:tag_item, 'union') ? a:tag_item.union : '' ] ) + if ! empty(name) + let object_name = name + let is_object = 1 + break + endif + endfor + + let tagname = split(a:tag_item.name, '::')[ -1] + + let is_constructor = 0 + let is_destructor = 0 + + if is_object + let last_part_of_object_name = split(object_name, '::')[ -1] + let is_constructor = tagname == last_part_of_object_name + let is_destructor = tagname == '~'.last_part_of_object_name + endif + + + if kind == 'f' || kind == 'p' + if is_object + if is_constructor + let header .= 'constructor ' + call add(tag_list, 'constructor') + elseif is_destructor + let header .= 'destructor ' + call add(tag_list, 'destructor') + else + let header .= 'method ' + call add(tag_list, 'method') + endif + else + let header .= "function " + call add(tag_list, "function") + endif + + if kind == 'p' + let header .= 'decl. ' + call add(tag_list, "decl") + else + let header .= 'def. ' + call add(tag_list, "def") + endif + elseif kind == 'c' + let header .= "class " + call add(tag_list, "class") + call add(tag_list, "object") + elseif kind == 'u' + let header .= "union " + call add(tag_list, "union") + call add(tag_list, "object") + elseif kind == 's' + let header .= "struct " + call add(tag_list, "struct") + call add(tag_list, "object") + elseif kind == 'g' + let header .= "enum " + call add(tag_list, "enum") + elseif kind == 'd' + let header .= "#define " + call add(tag_list, "define") + elseif kind == 'm' + let header .= "field " + call add(tag_list, "field") + elseif kind == 'n' + let header .= "namespace " + call add(tag_list, "namespace") + elseif kind == 't' + let header .= "typedef " + call add(tag_list, "typedef") + elseif kind == 'v' + let header .= "global variable " + call extend(tag_list, ["variable", "global"]) + elseif kind == 'e' + let header .= "enumeration " + call add(tag_list, "enumeration") + endif + + call add(tag_list, tagname) + if is_object + call extend(tag_list, split(object_name, '::')) + endif + + if ! empty(namespace) + call extend(tag_list, split(namespace, '::')) + endif + + if is_object + let header .= object_name.'::' + endif + + if ! empty(namespace) + let header .= namespace.'::' + endif + + let header .= tagname + + if kind =~ '[fp]' && has_key(a:tag_item, 'signature') + let header .= a:tag_item.signature + endif + + let access = has_key(a:tag_item, 'access') ? a:tag_item.access : '' + + if ! empty(access) + if kind =~ '[csug]' + call add(tag_list, 'inner') + let header = 'inner '.header + endif + + let header = access.' '.header + call add(tag_list, access) + endif + + let file_name = has_key(a:tag_item, 'filename') ? a:tag_item.filename : '' + + return railmoon#oscan#record#create([header], tag_list, a:tag_item, fnamemodify(file_name, ':t')) +endfunction + + + diff --git a/vim/autoload/railmoon/oscan/extractor/ctags/html.vim b/vim/autoload/railmoon/oscan/extractor/ctags/html.vim new file mode 100644 index 0000000..5551515 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/ctags/html.vim @@ -0,0 +1,42 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#ctags#py +" Purpose: extract ctags html record from buffer + + +function! railmoon#oscan#extractor#ctags#html#kinds() + return "af" +endfunction + +function! railmoon#oscan#extractor#ctags#html#colorize() + syntax keyword Type anchor function +endfunction + +function! railmoon#oscan#extractor#ctags#html#record( tag_item ) + let tag_list = [] + let header = "" + + let kind = a:tag_item.kind + + let tagname = a:tag_item.name + "let tagname = substitute( tagname, "'\\(.*\\)'", "\1", "g" ) + + if kind =~ 'a' + let header .= 'anchor ' + call add(tag_list, 'anchor') + elseif kind == 'f' + let header .= "function " + call add(tag_list, "function") + endif + + call add(tag_list, tagname) + + let header .= tagname + + let file_name = has_key(a:tag_item, 'filename') ? a:tag_item.filename : '' + + return railmoon#oscan#record#create([header], tag_list, a:tag_item, fnamemodify(file_name, ':t')) +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/ctags/python.vim b/vim/autoload/railmoon/oscan/extractor/ctags/python.vim new file mode 100644 index 0000000..430d391 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/ctags/python.vim @@ -0,0 +1,91 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#ctags#py +" Purpose: extract ctags python record from buffer + + +function! railmoon#oscan#extractor#ctags#python#kinds() + return "cfm" +endfunction + +function! railmoon#oscan#extractor#ctags#python#colorize() + syntax keyword Type class function method inner public private + syntax keyword Keyword constructor method +endfunction + +function! railmoon#oscan#extractor#ctags#python#record( tag_item ) + let tag_list = [] + let header = "" + let line_number = a:tag_item.cmd + + let kind = a:tag_item.kind + + let is_object = 0 + let object_name = '' + + for name in ( [ has_key(a:tag_item, 'class') ? a:tag_item.class : '' ] ) + if ! empty(name) + let object_name = name + let is_object = 1 + break + endif + endfor + + let tagname = a:tag_item.name + + let is_constructor = 0 + + if is_object + let is_constructor = tagname == '__init__' + endif + + if kind == 'm' + if is_object + if is_constructor + let header .= 'constructor ' + call add(tag_list, 'constructor') + else + let header .= 'method ' + call add(tag_list, 'method') + endif + endif + elseif kind == 'c' + let header .= "class " + call add(tag_list, "class") + call add(tag_list, "object") + elseif kind == 'm' + let header .= "function " + call add(tag_list, "function") + endif + + call add(tag_list, tagname) + if is_object + call extend(tag_list, split(object_name, '::')) + endif + + if is_object + let header .= object_name.'.' + endif + + let header .= tagname + + if kind == 'c' && ! empty(object_name) + call add(tag_list, 'inner') + let header = 'inner '.header + endif + + let access = has_key(a:tag_item, 'access') ? a:tag_item.access : '' + if ! empty(access) + let header = access.' '.header + call add(tag_list, access) + endif + + let file_name = has_key(a:tag_item, 'filename') ? a:tag_item.filename : '' + + return railmoon#oscan#record#create([header], tag_list, a:tag_item, fnamemodify(file_name, ':t')) +endfunction + + + diff --git a/vim/autoload/railmoon/oscan/extractor/ctags/vim.vim b/vim/autoload/railmoon/oscan/extractor/ctags/vim.vim new file mode 100755 index 0000000..79b5703 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/ctags/vim.vim @@ -0,0 +1,43 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#ctags#vim +" Purpose: extract ctags vim record from buffer + + +function! railmoon#oscan#extractor#ctags#vim#kinds() + return "afk" +endfunction + +function! railmoon#oscan#extractor#ctags#vim#colorize() + syntax keyword Type function variable autogroup +endfunction + +function! railmoon#oscan#extractor#ctags#vim#record( tag_item ) + let tag_list = [] + let header = "" + let line_number = a:tag_item + + let kind = a:tag_item.kind + + call add(tag_list, a:tag_item.name) + + if kind == 'a' + let header .= "autogroup " + call add(tag_list, "autogroup") + elseif kind == 'f' + let header .= "function " + call add(tag_list, "function") + elseif kind == 'v' + let header .= "variable " + call add(tag_list, "variable") + endif + + let header .= a:tag_item.name + + return railmoon#oscan#record#create( [ ' '.header ], tag_list, line_number) +endfunction + + + diff --git a/vim/autoload/railmoon/oscan/extractor/definition_declaration.vim b/vim/autoload/railmoon/oscan/extractor/definition_declaration.vim new file mode 100755 index 0000000..3f86c8c --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/definition_declaration.vim @@ -0,0 +1,121 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#definition_declaration +" Purpose: extract ctags record from buffer + +function! railmoon#oscan#extractor#definition_declaration#create() + let new_extractor = copy(s:tag_scan_definition_declaration_extractor) + + let new_extractor.file_name = expand("%:p") + let new_extractor.buffer_number = bufnr('%') + let new_extractor.file_extension = expand("%:e") + let new_extractor.filetype = &filetype + let new_extractor.description = 'Go to possible definition/declaration for current function' + + return new_extractor +endfunction + + +let s:tag_scan_definition_declaration_extractor = {} +function! s:tag_scan_definition_declaration_extractor.process(record) + call railmoon#oscan#extractor#ctags#process(a:record.data) +endfunction + +function! s:get_nearest_ctags_tag() + let filename = @% + let linenumber = line('.') + + let self.language = railmoon#oscan#extractor#ctags#language_by_current_buffer() + + let ctags_tags = railmoon#ctags_util#taglist_for_file(filename, language, railmoon#oscan#extractor#ctags#kind_types_for_langauge(language), 'sikaS') + + let i = len(ctags_tags) - 1 + while i >= 0 + let tag_item = ctags_tags[i] + + if linenumber >= tag_item.cmd + return tag_item + endif + let i -= 1 + endwhile + + return {} +endfunction + +function! s:is_equal_tag_attribute(tag_left, tag_right, attribute) + let left_has_attribute = has_key(a:tag_left, a:attribute) + let right_has_attribute = has_key(a:tag_right, a:attribute) + + if left_has_attribute && right_has_attribute + return a:tag_left[a:attribute] == a:tag_right[a:attribute] + endif + + if ! left_has_attribute && ! right_has_attribute + return 1 + endif + + return 0 +endfunction + +function! s:return_definitions(ctags_tag) + let result = [] + let similar_tags = taglist('\<'.a:ctags_tag.name.'\>') + + for tag_item in similar_tags + if tag_item.kind == 'p' + continue + endif + + if s:is_equal_tag_attribute(a:ctags_tag, tag_item, 'class') && + \ s:is_equal_tag_attribute(a:ctags_tag, tag_item, 'namespace') + + call add(result, tag_item) + endif + endfor + + return result +endfunction + +function! s:return_declarations(ctags_tag) + let result = [] + let similar_tags = taglist('\<'.a:ctags_tag.name.'\>') + + for tag_item in similar_tags + if tag_item.kind != 'p' + continue + endif + + if s:is_equal_tag_attribute(a:ctags_tag, tag_item, 'class') && + \ s:is_equal_tag_attribute(a:ctags_tag, tag_item, 'namespace') + + call add(result, tag_item) + endif + endfor + + return result +endfunction + +function! s:tag_scan_definition_declaration_extractor.extract() + let result = [] + + let extension = self.file_extension + let language = railmoon#oscan#extractor#ctags#language_by_extension(extension) + let self.language = language + + let nearest_tag = s:get_nearest_ctags_tag() + let ctags_tags = nearest_tag.kind =~ 'p' ? s:return_definitions(nearest_tag) : s:return_declarations(nearest_tag) + + for item in ctags_tags + let record = railmoon#oscan#extractor#ctags#record_for_language_tag(language, item) + call add(result, record) + endfor + + return result +endfunction + +function! s:tag_scan_definition_declaration_extractor.colorize() + let &filetype = self.filetype + call railmoon#oscan#extractor#ctags#colorize_keywords(self.language) +endfunction diff --git a/vim/autoload/railmoon/oscan/extractor/file.vim b/vim/autoload/railmoon/oscan/extractor/file.vim new file mode 100755 index 0000000..01bb927 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/file.vim @@ -0,0 +1,31 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#file +" Purpose: create extractor by file extension and or name + +function! railmoon#oscan#extractor#file#create() + let file_name = expand("%:p") + let file_extension = expand("%:e") + + + try + return eval('railmoon#oscan#extractor#'.file_extension.'#'.'create()') + catch /.*/ + endtry + + let extractor_name = 'railmoon#oscan#extractor#ctags' + + try + let extractor = eval(extractor_name.'#'.'create()') + catch /.*/ + echo 'extractor "'.extractor_name. '" not found. use ctags as default' + echo '.' + echo '.' + echo '.' + endtry + + return railmoon#oscan#extractor#ctags#create() +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/files.vim b/vim/autoload/railmoon/oscan/extractor/files.vim new file mode 100644 index 0000000..cf071aa --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/files.vim @@ -0,0 +1,86 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#files +" Purpose: extract files from current file directory to open + +function! railmoon#oscan#extractor#files#create() + let new_extractor = copy(s:tag_scan_files_extractor) + + let file_name = expand("%:p") + let new_extractor.current_file_dir = fnamemodify(file_name, ":p:h") + + let new_extractor.description = 'Select file from "'.new_extractor.current_file_dir.'" directory to open' + + return new_extractor +endfunction + +let s:tag_scan_files_extractor = {} +function! s:tag_scan_files_extractor.process(record) + if &modified + let choice = inputlist( [ "Buffer is modified.", "1. Save current and continue" , "2. Break", "3. Open in new tab" ] ) + if 1 == choice + update + elseif 2 == choice + return + elseif 3 == choice + tab new + else + tab new + endif + endif + + let buf_number = bufnr(a:record.data) + if -1 == buf_number + exec 'edit '.escape(a:record.data,' ') + else + exec 'buffer '.buf_number + endif +endfunction + +function! s:tag_scan_files_extractor.tags_by_name(buffer_name, buffer_number) + let tags = railmoon#oscan#extractor#util#tags_from_file_name(a:buffer_name) + + if index(tags, string(a:buffer_number)) == -1 + call add(tags, a:buffer_number) + endif + + return tags +endfunction + +function! s:tag_scan_files_extractor.header_by_name(buffer_name, buffer_number) + return [ a:buffer_name ] +endfunction + +function! s:tag_scan_files_extractor.extract() + let result = [] + + let files = split(glob( self.current_file_dir."/*" ), "\n") + "call extend(files, split(glob( self.current_file_dir."/.*" ), "\n")) + + for file in files + + if ! filereadable(file) + continue + endif + + let just_name = fnamemodify(file, ":t:r") + let ext = fnamemodify(file, ":e") + + let tags = [ just_name, ext ] + + call add(result, railmoon#oscan#record#create( [ just_name ], + \ tags, + \ file, + \ ext)) + + endfor + + + return result +endfunction + +function! s:tag_scan_files_extractor.colorize() +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/marks.vim b/vim/autoload/railmoon/oscan/extractor/marks.vim new file mode 100755 index 0000000..a5fe012 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/marks.vim @@ -0,0 +1,86 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#marks +" Purpose: extract marks to select + +function! railmoon#oscan#extractor#marks#create() + let new_extractor = copy(s:tag_scan_marks_extractor) + let new_extractor.description = 'Select mark to jump' + let new_extractor.filetype = &filetype + + return new_extractor +endfunction + +let s:tag_scan_marks_extractor = {} +function! s:tag_scan_marks_extractor.process(record) + exec "normal \'".a:record.data +endfunction + +function! s:tag_scan_marks_extractor.extract() + let result = [] + + redir => marks_string + silent marks + redir END + + let marks_list = split(marks_string, "\n") + let pattern = '\s*\(\S\+\)\s*\(\d\+\)\s*\(\d\+\)\s*\(.*\)$' + + for mark_value in marks_list + if mark_value !~ pattern + continue + endif + + let mark_symbol = substitute(mark_value, pattern, '\1', '') + let mark_line = substitute(mark_value, pattern, '\2', '') + let mark_col = substitute(mark_value, pattern, '\3', '') + let mark_file_or_line = substitute(mark_value, pattern, '\4', '') + + let tags = [] + + let file_name = fnamemodify(mark_file_or_line, ':p') + + let is_file = filereadable(file_name) + + if is_file + let header_line = '<# '.file_name.' #>' + let tags = railmoon#oscan#extractor#util#tags_from_file_name(file_name) + else + let header_line = mark_file_or_line + let tags = split(mark_file_or_line, '\W') + call filter(tags, 'v:val != ""') + call add(tags, 'buffer') + endif + + if mark_symbol =~ '[QWERTYUIOPASDFGHJKLZXCVBNM1234567890]' + call add(tags, 'global') + endif + + if mark_symbol =~ '[QWERTYUIOPASDFGHJKLZXCVBNM]' + call add(tags, 'user') + endif + + let header_line = printf("%5s %5s ", mark_line, mark_col).header_line + + let header = [ header_line ] + call add(result, railmoon#oscan#record#create( header, + \ tags, + \ mark_symbol, + \ mark_symbol)) + endfor + + + return result +endfunction + +function! s:tag_scan_marks_extractor.colorize() + syn match Comment /.*/ contained contains=Identifier + syn region Identifier matchgroup=Ignore start='<#' end='#>' contained + + syn match TODO /\|/ nextgroup=Keyword + syn match Keyword /\d\+\s/ nextgroup=Statement contained skipwhite + syn match Statement /\d\+/ nextgroup=Comment contained skipwhite +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/multiline_search.vim b/vim/autoload/railmoon/oscan/extractor/multiline_search.vim new file mode 100755 index 0000000..73403e2 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/multiline_search.vim @@ -0,0 +1,123 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#multiline_search +" Purpose: extract strings ( and their neighbours) with search pattern from current file + +function! railmoon#oscan#extractor#multiline_search#create() + let new_extractor = copy(s:tag_scan_multiline_search_extractor) + + let new_extractor.file_name = expand("%:p") + let new_extractor.file_extension = expand("%:e") + let new_extractor.first_line_to_search = 1 + let new_extractor.last_line_to_search = line('$') + let new_extractor.pattern = @/ + let new_extractor.filetype = &filetype + let new_extractor.description = 'Mutliline search "'.new_extractor.pattern.'" in "'.new_extractor.file_name.'"' + + return new_extractor +endfunction + +let s:tag_scan_multiline_search_extractor = {} +function! s:tag_scan_multiline_search_extractor.process(record) + exec a:record.data +endfunction + +function! s:tag_scan_multiline_search_extractor.tags_by_line(line_number_start, data) + let tags = [] + + let i = 0 + for line in a:data + call extend(tags, railmoon#oscan#extractor#util#tags_from_searched_line(a:line_number_start + i, line) ) + let i += 1 + endfor + + return tags +endfunction + +function! s:tag_scan_multiline_search_extractor.extract() + let result = [] + + let pos = getpos('.') + + call cursor(self.first_line_to_search, 1) + + let pattern = self.pattern + let last_search_result = -1 + + let option = 'Wc' + + let match_pattern_line_numbers = [] + + while 1 + let search_result = search(pattern, option, self.last_line_to_search) + + if search_result == 0 + break + endif + + if search_result != last_search_result + call add(match_pattern_line_numbers, search_result) + endif + + let last_search_result = search_result + let option = 'W' + endwhile + + let match_cout = len(match_pattern_line_numbers) + + if match_cout == 0 + return result + endif + + let min_block_size = 2 + let i = 0 + + while i < match_cout + + let block_begin = match_pattern_line_numbers[i] - min_block_size + let delta = 0 + if block_begin < self.first_line_to_search + let delta = self.first_line_to_search - block_begin + let block_begin = self.first_line_to_search + endif + + let block_end = match_pattern_line_numbers[i] + min_block_size + delta + if block_end > self.last_line_to_search + let block_end = self.last_line_to_search + endif + + while i < match_cout + if match_pattern_line_numbers[i] - min_block_size > block_end + let i -= 1 + break + endif + + let block_end = match_pattern_line_numbers[i] + min_block_size + + let i += 1 + endwhile + + let data = getline(block_begin, block_end) + let tag_list = self.tags_by_line(block_begin, data) + + call add(tag_list, block_begin) + + call add(result, railmoon#oscan#record#create(data, tag_list, block_begin, block_begin)) + + let i +=1 + endwhile + + + call setpos('.', pos) + + return result +endfunction + +function! s:tag_scan_multiline_search_extractor.colorize() + let &filetype = self.filetype + exec 'syn match Search "'.'\c'.self.pattern.'"' +" exec 'syn match Identifier "[**].*"' +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/paste.vim b/vim/autoload/railmoon/oscan/extractor/paste.vim new file mode 100644 index 0000000..ab636ad --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/paste.vim @@ -0,0 +1,69 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#paste +" Purpose: extract registers texts to paste + +function! railmoon#oscan#extractor#paste#create() + let new_extractor = copy(s:tag_scan_paste_extractor) + let new_extractor.description = 'Select register to paste' + let new_extractor.filetype = &filetype + + return new_extractor +endfunction + +let s:tag_scan_paste_extractor = {} +function! s:tag_scan_paste_extractor.process(record) + exec 'normal "'.a:record.data."p" +endfunction + +function! s:tag_scan_paste_extractor.extract() + let result = [] + + redir => paste_string + silent registers + redir END + + let paste_list = split(paste_string, "\n") + let pattern = '^"\(\S\)\s\s\s\(.*\)$' + + for line in paste_list + if line !~ pattern + continue + endif + + let register_name = substitute(line, pattern, '\1', '') + let register_value = eval('@'.register_name) + + let tags = railmoon#oscan#extractor#util#tags_from_line(register_value) + + let register_value_list = split( register_value, "\n" ) + let shortened_value_list = register_value_list + if len( register_value_list ) > 5 + let shortened_value_list = register_value_list[0:2] + call add(shortened_value_list, "... more ...") + call extend(shortened_value_list, register_value_list[-2:-1]) + endif + + let additional_data = register_name + let header = shortened_value_list + + if empty(header) + continue + endif + + call add(result, railmoon#oscan#record#create(header, + \ tags, + \ register_name, + \ register_name)) + endfor + + + return result +endfunction + +function! s:tag_scan_paste_extractor.colorize() + syn match Identifier /\.\.\. more \.\.\./ +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/sco.vim b/vim/autoload/railmoon/oscan/extractor/sco.vim new file mode 100755 index 0000000..a55e5b2 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/sco.vim @@ -0,0 +1,138 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#sco +" Purpose: extract sco taged headers or sco folded result + +function! railmoon#oscan#extractor#sco#create() + let new_extractor = copy(s:tag_scan_sco_extractor) + + + let new_extractor.folded_result_start = searchpair('>>>', '', '<<<', 'bnW') + let new_extractor.folded_result_end = searchpair('>>>', '', '<<<', 'nW') + + let new_extractor.buffer_number = bufnr('%') + + let new_extractor.is_extract_tag_headers = 0 == new_extractor.folded_result_start + + if new_extractor.is_extract_tag_headers + let new_extractor.description = 'SourceCodeObedience. Select header to move to' + else + let new_extractor.description = 'SourceCodeObedience. Select result to move to' + endif + + return new_extractor +endfunction + +let s:tag_scan_sco_extractor = {} +function! s:tag_scan_sco_extractor.process(record) + exec 'buffer '.self.buffer_number + update + e + exec a:record.data + + if ! self.is_extract_tag_headers + Enter + endif +endfunction + +function! s:tag_scan_sco_extractor.taged_headers_tags_by_line(line_number, line) + return split(substitute(a:line, '^\s*tags:\(.*\)', '\1', ''), ',') +endfunction + +function! s:tag_scan_sco_extractor.taged_headers_header_by_line(line_number, line) + let line_with_header = getline(a:line_number - 1) + if line_with_header =~ '^\s*header:' + return [ substitute(line_with_header, '^\s*header:\(.*\)', '\1', '') ] + endif + + return [ '[ '.substitute(a:line, '^\s*tags:\(.*\)', '\1', '').' ]' ] +endfunction + +function! s:tag_scan_sco_extractor.extract_taged_headers() + let result = [] + + let pos = getpos('.') + call cursor(1, 1) + + let pattern = '^\s*tags:' + + let option = 'Wc' + + while 1 + let search_result = search(pattern, option) + + if search_result == 0 + break + endif + + let line = getline(search_result) + + let data = self.taged_headers_header_by_line(search_result, line) + let tag_list = self.taged_headers_tags_by_line(search_result, line) + + call add(result, railmoon#oscan#record#create(data, tag_list, search_result, search_result)) + + let option = 'W' + endwhile + + call setpos('.', pos) + + return result +endfunction + +let s:smart_mark_pattern_comment = '\s\+```\(.*[^>]\)>>.*$' +let s:smart_mark_pattern_without_comment = '@\s\+\(\S\+\)\s\+\(\d*\)\s\(.*\)' +let s:smart_mark_pattern = s:smart_mark_pattern_without_comment.s:smart_mark_pattern_comment + +let s:sco_result_pattern = '^#\s\+\(\S\+\)\s\+\(\S\+\)\s\+\(\d\+\)\s\+\(.*\)$' + +function! s:tag_scan_sco_extractor.extract_sco_results() + let result = [] + + let line_number = self.folded_result_start + 1 + + while line_number < self.folded_result_end + let line = getline(line_number) + + if line =~ s:sco_result_pattern + let file_name = substitute(line, s:sco_result_pattern, '\1', '') + let function_name = substitute(line, s:sco_result_pattern, '\2', '') + let file_line_number = substitute(line, s:sco_result_pattern, '\3', '') + let body = substitute(line, s:sco_result_pattern, '\4', '') + + let short_file_name = fnamemodify(file_name, ':t') + + let tag_list = [] + call extend(tag_list, railmoon#oscan#extractor#util#tags_from_line(body)) + call add(tag_list, function_name) + call extend(tag_list, railmoon#oscan#extractor#util#tags_from_file_name(file_name)) + + call add(result, railmoon#oscan#record#create([ body ], tag_list, line_number, short_file_name)) + endif + + let line_number += 1 + endwhile + + return result +endfunction + +function! s:tag_scan_sco_extractor.extract() + if self.is_extract_tag_headers + return self.extract_taged_headers() + endif + + + return self.extract_sco_results() +endfunction + +function! s:tag_scan_sco_extractor.colorize() + if self.is_extract_tag_headers + syntax match Comment '\[.*\]' contains=Keyword + syntax keyword Keyword tag symbol file include text grep calling contained + else + setf cpp + endif +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/search.vim b/vim/autoload/railmoon/oscan/extractor/search.vim new file mode 100755 index 0000000..31900e8 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/search.vim @@ -0,0 +1,85 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#search +" Purpose: extract strings with search pattern from current file + +function! railmoon#oscan#extractor#search#create() + let new_extractor = copy(s:tag_scan_search_extractor) + + let new_extractor.file_name = expand("%:p") + let new_extractor.buffer_number = bufnr('%') + let new_extractor.file_extension = expand("%:e") + let new_extractor.line_number_width = len(line('$')) + let new_extractor.first_line_to_search = 1 + let new_extractor.last_line_to_search = line('$') + let new_extractor.pattern = @/ + let new_extractor.remove_leader_space = 1 + let new_extractor.filetype = &filetype + let new_extractor.description = 'Search "'.new_extractor.pattern.'" in "'.new_extractor.file_name.'"' + + return new_extractor +endfunction + +let s:tag_scan_search_extractor = {} +function! s:tag_scan_search_extractor.process(record) + exec 'buffer '.self.buffer_number + exec a:record.data +endfunction + +function! s:tag_scan_search_extractor.tags_by_line(line_number, line) " line + return railmoon#oscan#extractor#util#tags_from_searched_line(a:line_number, a:line) +endfunction + +function! s:tag_scan_search_extractor.header_by_line(line_number, line) + if self.remove_leader_space + let line = substitute(a:line, '^\s*', '', 'g') + else + let line = a:line + endif + + return [ line ] +endfunction + +function! s:tag_scan_search_extractor.extract() + let result = [] + + let pos = getpos('.') + + call cursor(self.first_line_to_search, 1) + + let pattern = self.pattern + let last_search_result = -1 + + let option = 'Wc' + + while 1 + let search_result = search(pattern, option, self.last_line_to_search) + + if search_result == 0 + break + endif + + if search_result != last_search_result + let line = getline(search_result) + + let data = self.header_by_line(search_result, line) + let tag_list = self.tags_by_line(search_result, line) + + call add(result, railmoon#oscan#record#create(data, tag_list, search_result, search_result)) + endif + + let last_search_result = search_result + let option = 'W' + endwhile + + call setpos('.', pos) + + return result +endfunction + +function! s:tag_scan_search_extractor.colorize() + let &filetype = self.filetype +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/search_in_scope.vim b/vim/autoload/railmoon/oscan/extractor/search_in_scope.vim new file mode 100755 index 0000000..5c38260 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/search_in_scope.vim @@ -0,0 +1,19 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#search_in_scope +" Purpose: extract strings that visible in current scope + +function! railmoon#oscan#extractor#search_in_scope#create() + let new_extractor = railmoon#oscan#extractor#search#create() + + let new_extractor.first_line_to_search = searchpair('{', '', '}', 'bn') + let new_extractor.last_line_to_search = searchpair('{', '', '}', 'n') + let new_extractor.pattern = '.*' + let new_extractor.remove_leader_space = 0 + let new_extractor.description = 'Search in current scope. '.new_extractor.first_line_to_search.':'.new_extractor.last_line_to_search + + return new_extractor +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/search_in_windows.vim b/vim/autoload/railmoon/oscan/extractor/search_in_windows.vim new file mode 100755 index 0000000..068ffea --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/search_in_windows.vim @@ -0,0 +1,41 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#search_in_windows +" Purpose: extract strings with search pattern from all windows + +function! railmoon#oscan#extractor#search_in_windows#create() + let new_extractor = copy(s:tag_scan_search_in_windows_extractor) + + let new_extractor.pattern = @/ + let new_extractor.buffer_number = bufnr('%') + let new_extractor.filetype = &filetype + let new_extractor.description = 'Search "'.new_extractor.pattern.'" in all opened windows' + let new_extractor.not_implemented = 1 + + return new_extractor +endfunction + +let s:tag_scan_search_in_windows_extractor = {} +function! s:tag_scan_search_in_windows_extractor.process(record) +endfunction + +function! s:tag_scan_search_in_windows_extractor.tags_by_line(line_number, line) " line + "return railmoon#oscan#extractor#util#tags_from_searched_line(a:line_number, a:line) +endfunction + +function! s:tag_scan_search_in_windows_extractor.header_by_line(line_number, line) + "let line = substitute(a:line, '^\s*', '', 'g') + "return [ line ] +endfunction + +function! s:tag_scan_search_in_windows_extractor.search_in_buffer(tabpage_number, window_number) +endfunction + +function! s:tag_scan_search_in_windows_extractor.extract() +endfunction + +function! s:tag_scan_search_in_windows_extractor.colorize() +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/search_on_screen.vim b/vim/autoload/railmoon/oscan/extractor/search_on_screen.vim new file mode 100755 index 0000000..a58a274 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/search_on_screen.vim @@ -0,0 +1,19 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#search_on_screen +" Purpose: extract strings that visible on window from current file + +function! railmoon#oscan#extractor#search_on_screen#create() + let new_extractor = railmoon#oscan#extractor#search#create() + + let new_extractor.first_line_to_search = line('w0') + let new_extractor.last_line_to_search = line('w$') + let new_extractor.pattern = '.*' + let new_extractor.remove_leader_space = 0 + let new_extractor.description = 'Search on current window visible range. From line '. new_extractor.first_line_to_search.' to line '.new_extractor.last_line_to_search + + return new_extractor +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/taglist.vim b/vim/autoload/railmoon/oscan/extractor/taglist.vim new file mode 100755 index 0000000..772394f --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/taglist.vim @@ -0,0 +1,34 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#ctags +" Purpose: extract ctags record from tags + +function! railmoon#oscan#extractor#taglist#create() + let new_extractor = copy(s:tag_scan_taglist_extractor) + + let new_extractor.file_name = expand("%:p") + let new_extractor.file_extension = expand("%:e") + let new_extractor.filetype = &filetype + let new_extractor.description = 'Move through all tags in "set tags=..." database' + let new_extractor.not_implemented = 1 + + return new_extractor +endfunction + +let s:tag_scan_taglist_extractor = {} +function! s:tag_scan_taglist_extractor.process(record) +endfunction + + +function! s:tag_scan_taglist_extractor.extract() + let result = [] + return result +endfunction + +function! s:tag_scan_taglist_extractor.colorize() + let &filetype = self.filetype + call railmoon#oscan#extractor#ctags#colorize_keywords() +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/taglist_by_ooo.vim b/vim/autoload/railmoon/oscan/extractor/taglist_by_ooo.vim new file mode 100755 index 0000000..26f3ed9 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/taglist_by_ooo.vim @@ -0,0 +1,11 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#taglist_by_ooo +" Purpose: extract records by object oriented type. + +function! railmoon#oscan#extractor#taglist_by_ooo#create() + return railmoon#oscan#extractor#taglist_by_type#create('s') +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/taglist_by_type.vim b/vim/autoload/railmoon/oscan/extractor/taglist_by_type.vim new file mode 100755 index 0000000..621ece6 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/taglist_by_type.vim @@ -0,0 +1,39 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#taglist_by_type +" Purpose: extract records by type. help module for taglist_by_class , etc.. + +function! railmoon#oscan#extractor#taglist_by_type#create(type) + let new_extractor = copy(s:tag_scan_taglist_by_type_extractor) + + let new_extractor.file_name = expand("%:p") + let new_extractor.file_extension = expand("%:e") + let new_extractor.filetype = &filetype + let new_extractor.type = a:type + let new_extractor.description = 'Move through tags with ceratain type in "set tags=..." database "' + let new_extractor.not_implemented = 1 + + return new_extractor +endfunction + +let s:tag_scan_taglist_by_type_extractor = {} +function! s:tag_scan_taglist_by_type_extractor.process(record) +endfunction + +function! s:record_for_language_tag( language, ctag_item ) + return railmoon#oscan#extractor#ctags#language_function( a:language, 'record', a:ctag_item ) +endfunction + +function! s:tag_scan_taglist_by_type_extractor.extract() + let result = [] + + return result +endfunction + +function! s:tag_scan_taglist_by_type_extractor.colorize() + let &filetype = self.filetype + call railmoon#oscan#extractor#ctags#colorize_keywords() +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/taglist_under_cursor.vim b/vim/autoload/railmoon/oscan/extractor/taglist_under_cursor.vim new file mode 100755 index 0000000..d96edda --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/taglist_under_cursor.vim @@ -0,0 +1,54 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#taglist_under_cursor +" Purpose: extract ctags records that fit word under curosr + +function! railmoon#oscan#extractor#taglist_under_cursor#create() + let new_extractor = copy(s:tag_scan_taglist_under_cursor_extractor) + + let new_extractor.file_name = expand("%:p") + let new_extractor.file_extension = expand("%:e") + let new_extractor.filetype = &filetype + let new_extractor.word_under_cursor = expand('') + let new_extractor.description = 'Jump to tag "'.new_extractor.word_under_cursor.'" according to "'.&tags.'" tags dabase' + + return new_extractor +endfunction + +let s:tag_scan_taglist_under_cursor_extractor = {} +function! s:tag_scan_taglist_under_cursor_extractor.process(record) + exec 'tag '.self.word_under_cursor + call railmoon#oscan#extractor#ctags#process(a:record.data) +endfunction + +function! s:record_for_language_tag( language, ctag_item ) + return railmoon#oscan#extractor#ctags#language_function( a:language, 'record', a:ctag_item ) +endfunction + +function! s:tag_scan_taglist_under_cursor_extractor.extract() + if empty(self.word_under_cursor) + return [] + endif + + let result = [] + + let self.language = railmoon#oscan#extractor#ctags#language_by_current_buffer() + + let ctags_tags = taglist('\<'.self.word_under_cursor.'\>') + + for item in ctags_tags + let record = s:record_for_language_tag(self.language, item) + let record.data = item + call add(result, record) + endfor + + return result +endfunction + +function! s:tag_scan_taglist_under_cursor_extractor.colorize() + let &filetype = self.filetype + call railmoon#oscan#extractor#ctags#colorize_keywords(self.language) +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/util.vim b/vim/autoload/railmoon/oscan/extractor/util.vim new file mode 100755 index 0000000..ce30c95 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/util.vim @@ -0,0 +1,74 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#util +" Purpose: common extration and tag generation functions + +function! railmoon#oscan#extractor#util#tags_from_file_name(file_name) + let tags = [] + let name_tags = split(a:file_name, '\W') + + for l:tag in name_tags + if empty(l:tag) + continue + endif + + if index(tags, string(l:tag)) != -1 + continue + endif + + call add(tags, l:tag) + endfor + + return tags +endfunction + +function! railmoon#oscan#extractor#util#tags_from_line(line) + let tags = split(a:line, '\W') + call filter(tags, 'v:val != ""') + + if a:line =~ '=' + call extend(tags, ['equal', '=']) + endif + + if a:line =~ '"' || a:line =~ "'" + call extend(tags, ['quotes', '"']) + endif + + if a:line =~ '\.' + call extend(tags, ['dot', '.']) + endif + + if a:line =~ '[+-/\*]' + call add(tags, 'sign') + endif + + if a:line =~ '&&' || a:line =~ '||' || a:line =~ '==' || a:line =~ '!=' " TODO in one expression + call add(tags, 'logic') + endif + + return tags +endfunction + +function! railmoon#oscan#extractor#util#tags_from_searched_line(line_number, line) + let tags = railmoon#oscan#extractor#util#tags_from_line( a:line ) + call add(tags, a:line_number) + + return tags +endfunction + +function! railmoon#oscan#extractor#util#buffer_list() + let result = [] + + for buffer_number in range(1, bufnr('$')) + if !buflisted(buffer_number) + continue + endif + + call add(result, [buffer_number, fnamemodify(bufname(buffer_number), ':p')] ) + endfor + + return result +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/vims.vim b/vim/autoload/railmoon/oscan/extractor/vims.vim new file mode 100755 index 0000000..bf1ab07 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/vims.vim @@ -0,0 +1,84 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#vims +" Purpose: extract vim servers to select + +function! railmoon#oscan#extractor#vims#create() + let new_extractor = copy(s:tag_scan_vim_extractor) + let new_extractor.last_buffer_number = bufnr('$') + let new_extractor.buffer_number_width = len(line('$')) + let new_extractor.description = "Select buffer to edit among all opened Vims" + + return new_extractor +endfunction + +function! railmoon#oscan#extractor#vims#select_buffer(buffer_number) + + let current_tabpage = tabpagenr() + let current_window = winnr() + + for tabpage_number in range(1, tabpagenr('$')) + exec (tabpage_number) . 'tabnext' + + for window_number in range(1, winnr('$')) + + let buffer_number = winbufnr(window_number) + + if buffer_number == a:buffer_number + exec (window_number) . 'wincmd w' + return + endif + endfor + endfor + + exec (current_tabpage) . 'tabnext' + exec (current_window) . 'wincmd w' +endfunction + +let s:tag_scan_vim_extractor = {} +function! s:tag_scan_vim_extractor.process(record) + let server_name = a:record.data[0] + let buffer_number = a:record.data[1] + + call remote_foreground(server_name) + call remote_expr(server_name, 'railmoon#oscan#extractor#vims#select_buffer('.buffer_number.')') +endfunction + +function! s:tag_scan_vim_extractor.extract() + let result = [] + + let vim_servers = split(serverlist(), "\n") + + for servername in vim_servers + "echo servername + "redraw + let buffers_result = remote_expr(servername, 'railmoon#oscan#extractor#util#buffer_list()') + let buffers_result = '['.join(split(buffers_result, "\n"), ',').']' + + let buffers_list = eval(buffers_result) + + for buffer_info in buffers_list + + let tags = [ servername ] + let buffer_number = buffer_info[0] + let buffer_name = buffer_info[1] + + call add(tags, fnamemodify(buffer_name, ':p:t')) + + call add(result, railmoon#oscan#record#create( [ buffer_name ], + \ tags, + \ [ servername, buffer_number ], + \ servername)) + + endfor + + endfor + + return result +endfunction + +function! s:tag_scan_vim_extractor.colorize() +endfunction + diff --git a/vim/autoload/railmoon/oscan/extractor/windows.vim b/vim/autoload/railmoon/oscan/extractor/windows.vim new file mode 100755 index 0000000..e433da2 --- /dev/null +++ b/vim/autoload/railmoon/oscan/extractor/windows.vim @@ -0,0 +1,79 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: extractor#windows +" Purpose: extract window names to select + +function! railmoon#oscan#extractor#windows#create() + let new_extractor = copy(s:tag_scan_windows_extractor) + let new_extractor.description = 'Select window to be active' + + return new_extractor +endfunction + +let s:tag_scan_windows_extractor = {} +function! s:tag_scan_windows_extractor.process(record) + exec a:record.data[0].'tabnext' + exec a:record.data[1].'wincmd w' +endfunction + +function! s:tag_scan_windows_extractor.tags_by_name(buffer_name, buffer_number, tabpage_number, window_number) + let tags = railmoon#oscan#extractor#util#tags_from_file_name(a:buffer_name) + + if index(tags, string(a:buffer_number)) == -1 + call add(tags, a:buffer_number) + endif + + call add(tags, 'tabpage'.a:tabpage_number) + call add(tags, 'window'.a:window_number) + + return tags +endfunction + +function! s:tag_scan_windows_extractor.header_by_name(buffer_name, buffer_number) + return [ a:buffer_name ] +endfunction + +function! s:tag_scan_windows_extractor.extract() + let lazyredraw_status = &lazyredraw + + set lazyredraw + let result = [] + + try + + for tabpage_number in range(1, tabpagenr('$')) + exec (tabpage_number) . 'tabnext' + + for window_number in range(1, winnr('$')) + + let buffer_number = winbufnr(window_number) + let buffer_name = bufname(buffer_number) + exec window_number.'wincmd w' + let line_number = line('.') + + call add(result, railmoon#oscan#record#create( self.header_by_name(buffer_name, buffer_number), + \ self.tags_by_name(buffer_name, buffer_number, tabpage_number, window_number), + \ [tabpage_number, window_number], + \ '[ '.tabpage_number.', '.window_number.' ] '.fnamemodify(buffer_name, ':p:t').' '.line_number)) + + endfor + endfor + + catch /.*/ + echo v:exception + echo v:throwpoint + + finally + let &lazyredraw = lazyredraw_status + return result + endtry +endfunction + +function! s:tag_scan_windows_extractor.colorize() + syntax match Comment /|.\{-}|/ + syntax match Keyword /[\\/]/ + syntax match Number /[0-9]\+/ +endfunction + diff --git a/vim/autoload/railmoon/oscan/record.vim b/vim/autoload/railmoon/oscan/record.vim new file mode 100755 index 0000000..e14765b --- /dev/null +++ b/vim/autoload/railmoon/oscan/record.vim @@ -0,0 +1,138 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: record +" Purpose: represent record in oscan + +" - +" [ plugin function ] +" Name: railmoon#oscan#record#create +" Purpose: create record +" [ parameters ] +" header record header -- list +" tag_list list of tags associated with record +" data record data ( line number, or buffer number, or whatever ) +" - +function! railmoon#oscan#record#create( header, tag_list, data, ... ) + let new_record = copy( s:record ) + let s:record_id += 1 + + let new_record.header = a:header + let new_record.tag_list = a:tag_list + let new_record.data = a:data + let new_record.id = s:record_id + + if empty(a:000) + let new_record.additional_info = '' + else + let new_record.additional_info = a:1 + endif + + return new_record +endfunction + +let s:record = {} +let s:record_id = 0 + +" - +" [ object method ] +" Object: record +" Name: has_tag +" Purpose: determine tag presence +" [ parameters ] +" tag tag +" - +function! s:record.has_tag( tag ) + if a:tag[0] == '~' + for l:tag in self.tag_list + if l:tag =~ '\c'.a:tag[1 : ] + return 1 + endif + endfor + + return 0 + endif + + for l:tag in self.tag_list + if l:tag ==? a:tag + return 1 + endif + endfor + + return 0 +endfunction + +" - +" [ object method ] +" Object: record +" Name: match_by_tags +" Purpose: determine if record match with given tags +" [ parameters ] +" tags list of tags +" - +function! s:record.match_by_tags( tags ) + for l:tag in a:tags + if ! self.has_tag( l:tag ) + return 0 + endif + endfor + + return 1 +endfunction + +" - +" [ object method ] +" Object: record +" Name: other_tags +" Purpose: find tags that not in list but in that record +" [ parameters ] +" tags1 list of tags +" tags2 list of tags +" - +function! s:record.other_tags( tags1, tags2 ) + let result = [] + + for l:tag in self.tag_list + let string_tag = l:tag.'' + + if index(a:tags1, string_tag) == -1 && + \index(a:tags2, string_tag) == -1 + call add(result, string_tag) + endif + endfor + + return result +endfunction + +" - +" [ testing ] +" - + +function! s:create_test_record1() + return railmoon#oscan#record#create( ['createTestRecord1'], [ 'edit', 'gui', 'form' ], 23 ) +endfunction + +function! s:create_test_record2() + return railmoon#oscan#record#create( ['createTestRecord2'], [ 'simple', 'gui' ], 26 ) +endfunction + +let s:unit_test = railmoon#unit_test#create('oscan#record') + +function! s:unit_test.test_record() + call self.assert_equal(s:create_test_record1().match_by_tags(['edit']), 1) + call self.assert_equal(s:create_test_record1().match_by_tags(['~dit']), 1) + call self.assert_equal(s:create_test_record1().match_by_tags(['gui']), 1) + call self.assert_equal(s:create_test_record1().match_by_tags(['form']), 1) + call self.assert_equal(s:create_test_record1().match_by_tags(['form', 'gui']), 1) + call self.assert_equal(s:create_test_record1().match_by_tags(['edit', 'form', 'gui']), 1) + call self.assert_equal(! s:create_test_record1().match_by_tags(['simple', 'gui']), 1) + call self.assert_equal(! s:create_test_record1().match_by_tags(['edit', 'fronmt', 'gui']), 1) + call self.assert_equal(s:create_test_record1().other_tags(['edit', 'gui'], []), ['form']) + call self.assert_equal(s:create_test_record1().other_tags(['gui'], []), ['edit', 'form']) + call self.assert_equal(s:create_test_record1().other_tags([''], []), ['edit', 'gui', 'form']) + call self.assert_equal(s:create_test_record1().other_tags(['edit', 'gui', 'form'], []), []) +endfunction + +call s:unit_test.run() + diff --git a/vim/autoload/railmoon/oscan/record_browser.vim b/vim/autoload/railmoon/oscan/record_browser.vim new file mode 100755 index 0000000..d7ca869 --- /dev/null +++ b/vim/autoload/railmoon/oscan/record_browser.vim @@ -0,0 +1,132 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Plugin: oscan +" Module: record_browser +" Purpose: represent record browser in oscan + +function! railmoon#oscan#record_browser#create( record_extractor ) + let new_record_browser = copy( s:record_browser ) + + let new_record_browser.record_extractor = a:record_extractor + let new_record_browser.all_records = new_record_browser.record_extractor.extract() + + return new_record_browser +endfunction + +let s:record_browser = {} + +function! s:record_browser.is_empty() + return empty(self.all_records) +endfunction + +" by list of tags return records that match tag list +" record1 tags = ['method', 'create', 'button'] +" record2 tags = ['function', 'create', 'widget'] +" record3 tags = ['method', 'create', 'file'] +" tag_list = ['method', 'create'] +" result = [record1, record3] +function! s:record_browser.get_matched_records( tag_list ) + let result = [] + + for record in self.all_records + if record.match_by_tags( a:tag_list ) + call add(result, record) + endif + endfor + + return result +endfunction + +" by list of tags return tags that can specify other records +" example: +" record1 tags = ['method', 'create', 'button'] +" record2 tags = ['method', 'create', 'widget'] +" record3 tags = ['method', 'create', 'file'] +" tag_list = ['method', 'create'] +" result = ['widget', 'button', 'file'] +function! s:record_browser.get_available_tags( tag_list ) " TODO useful? + let result = [] + + for record in self.all_records + if record.match_by_tags( a:tag_list ) + call extend(result, record.other_tags( result, a:tag_list )) + endif + endfor + + return result +endfunction + +" by list of tags return tags that can specify other records +" example above +function! s:record_browser.get_available_tags_for_records( matched_records, tag_list ) + let result = [] + + for record in a:matched_records + let other_tags = record.other_tags( result, a:tag_list ) + + for element in other_tags + let string_tag = element.'' + if index(result, string_tag) == -1 + call add(result, string_tag) + endif + endfor + +" call extend(result, record.other_tags( result, a:tag_list )) + endfor + + return result +endfunction + +" - +" [ testing ] +" - + +function! s:create_test_record1() + return railmoon#oscan#record#create( 'createTestRecord1', [ 'edit', 'gui', 'form' ], 23 ) +endfunction + +function! s:create_test_record2() + return railmoon#oscan#record#create( 'createTestRecord2', [ 'simple', 'gui' ], 26 ) +endfunction + +let s:test_record_extractor = {} +function! s:test_record_extractor.new() + let new_test_record_extractor = copy( s:test_record_extractor ) + + let new_test_record_extractor.record1 = s:create_test_record1() + let new_test_record_extractor.record2 = s:create_test_record2() + + let new_test_record_extractor.records = [ new_test_record_extractor.record1, new_test_record_extractor.record2 ] + + return new_test_record_extractor +endfunction + +function! s:test_record_extractor.extract() + return self.records +endfunction + +let s:unit_test = railmoon#unit_test#create('oscan#record_browser') + +function! s:unit_test.test_record_browser() + + let record_extractor = s:test_record_extractor.new() + let record_browser = railmoon#oscan#record_browser#create(record_extractor) + + call self.assert_equal(len(record_browser.get_matched_records( [] )), 2) + call self.assert_equal(len(record_browser.get_matched_records( ['simple'] )), 1) + + + call self.assert_equal((record_browser.get_matched_records( ['simple'] ))[0].id, record_extractor.record2.id) + call self.assert_equal((record_browser.get_matched_records( ['edit', 'form'] ))[0].id, record_extractor.record1.id) + + let matched_records = record_browser.get_matched_records(['gui']) + call self.assert_equal(record_browser.get_available_tags_for_records(matched_records, ['gui']), ['edit', 'form', 'simple']) + + let matched_records = record_browser.get_matched_records(['form', 'gui']) + call self.assert_equal(record_browser.get_available_tags_for_records(matched_records, ['form', 'gui']), ['edit']) + +endfunction + +call s:unit_test.run() + diff --git a/vim/autoload/railmoon/trace.vim b/vim/autoload/railmoon/trace.vim new file mode 100755 index 0000000..146da4e --- /dev/null +++ b/vim/autoload/railmoon/trace.vim @@ -0,0 +1,45 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Module: railmoon#trace +" Purpose: help write debug information and call stack + + +function! railmoon#trace#start_debug(file_name) + let s:is_debug_on = 1 + let s:debug = 1 + let s:log_file_name = a:file_name + call delete(s:log_file_name) + exec 'redir! > '.s:log_file_name + echo 'start_debug' + exec 'redir END' +endfunction + +function! railmoon#trace#push(function_name) + if s:is_debug_on + call add(s:stack, a:function_name) + endif +endfunction + +function! railmoon#trace#pop() + if s:is_debug_on + let s:stack = s:stack[ : -2] + endif +endfunction + +function! railmoon#trace#debug(message) + if s:debug + call s:write(a:message) + endif +endfunction + +function! s:write(message) + exec 'redir >> '.s:log_file_name + silent echo '[ '.join(s:stack, ' >> ').'] '.a:message + exec 'redir END' +endfunction + +let s:is_debug_on = 0 +let s:debug = 0 +let s:stack = [] + diff --git a/vim/autoload/railmoon/unit_test.vim b/vim/autoload/railmoon/unit_test.vim new file mode 100755 index 0000000..5d106d2 --- /dev/null +++ b/vim/autoload/railmoon/unit_test.vim @@ -0,0 +1,69 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Module: railmoon#unit_test +" Purpose: provide unit test object + +" - +" [ public library function ] +" Name: railmoon#unit_test#create +" Purpose: create "unit test" object +" [ parameters ] +" name name of test +" - +function! railmoon#unit_test#create(name) + let new_object = deepcopy(s:unit_test) + + let new_object.name = a:name + let new_object.number_of_test = 0 + + return new_object +endfunction + +" - +" [ internal usage ] +" Name: unit_test +" Purpose: object "unit test" +" - +let s:unit_test = {} + +" - +" [ object method ] +" Object: unit_test +" Name: assert_equal +" Purpose: compare two values +" - +function! s:unit_test.assert_equal(first, second) + if !( a:second == a:first ) + throw string(a:first).' != '.string(a:second) + endif + + let self.number_of_test += 1 +endfunction + +" - +" [ object method ] +" Object: unit_test +" Name: run +" Purpose: run all unit tests from suit +" - +function! s:unit_test.run() + let test_name = '' + try + for key in keys(self) + if key =~ '^test_' + let self.number_of_test = 1 + let call_command = 'call self.'.key.'()' + let test_name = substitute(key, '^test_\(.*\)', '\1', '') + exec call_command + endif + endfor + catch /.*/ + echohl Identifier | echo 'Suit:'.self.name | echohl None + echohl Identifier | echo 'Test:'.test_name | echohl None + echohl Identifier | echo 'Number:'.self.number_of_test | echohl None + echohl Statement | echo v:exception | echohl None + echohl Statement | echo v:throwpoint | echohl None + endtry +endfunction + diff --git a/vim/autoload/railmoon/widget.vim b/vim/autoload/railmoon/widget.vim new file mode 100755 index 0000000..f683ac5 --- /dev/null +++ b/vim/autoload/railmoon/widget.vim @@ -0,0 +1,21 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Module: railmoon#widget +" Purpose: common util function for widget functionality + +let s:handle_autocommands = 1 + +function! railmoon#widget#stop_handle_autocommands() + let s:handle_autocommands = 0 +endfunction + +function! railmoon#widget#start_handle_autocommands() + let s:handle_autocommands = 1 +endfunction + +function! railmoon#widget#handle_autocommands() + return s:handle_autocommands +endfunction + + diff --git a/vim/autoload/railmoon/widget/base.vim b/vim/autoload/railmoon/widget/base.vim new file mode 100755 index 0000000..f38a3d1 --- /dev/null +++ b/vim/autoload/railmoon/widget/base.vim @@ -0,0 +1,571 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Module: railmoon#widget#base +" Purpose: base widget functionality and vim windows triggers handler + +" - +" [ internal usage ] +" Purpose: collect widget that will be closed +" - +let s:widget_for_close = [] + +function! s:clear_widget_for_close() + let s:widget_for_close = [] +endfunction + +function! s:widget_present(list, widget) + for widget in a:list + if widget.id == a:widget.id + return 1 + endif + endfor + + return 0 +endfunction + +function! s:add_widget_for_close(widget) + if s:widget_present(s:widget_for_close, a:widget) + return + endif + + call add(s:widget_for_close, a:widget) +endfunction + +function! s:remove_widget_from_delete(widget) + if ! s:widget_present(s:widget_for_close, a:widget) + return + endif + + call filter(s:widget_for_close, 'v:val.id != '.a:widget.id) +endfunction + +let s:buffer_name_prefix = 'rmwidget' +let s:in_create_widget_state = 0 +" - +" [ public for extend library function ] +" Name: railmoon#widget#base#create +" Purpose: create base widget +" [ parameters ] +" name widget window name +" titlename name that will on title bar +" child widget that inherit base +" child_callback_object call back object with following methods that child can +" react on +" on_close +" on_close_with_tab_page +" on_focus +" on_focus_lost +" on_setup +" callback_object user defined call back object +" - +function! railmoon#widget#base#create(name, titlename, child, child_callback_object, callback_object) + call s:clear_widget_for_close() + + let new_object = extend( deepcopy(s:base), deepcopy(a:child) ) + + call railmoon#trace#debug('create base:'.a:name) + call railmoon#trace#debug(string(new_object)) + +" if bufexists(escaped_name) +" throw 'widget:base:buffer_exists' +" endif + let new_object.id = railmoon#id#acquire('railmoon_widget_id') + let new_object.name = a:name + let new_object.titlename = a:titlename + let new_object.child_callback_object = a:child_callback_object + let new_object.callback_object = a:callback_object + let new_object.is_closed = 0 + + let buffer_name = s:buffer_name_prefix.new_object.id + + let s:in_create_widget_state = 1 + + let buffer_number = bufnr( buffer_name ) + + if -1 == buffer_number + exec 'silent edit '.buffer_name + else + exec 'silent buffer '.buffer_number + endif + + exec 'setlocal statusline='.escape(new_object.name, ' ') + setlocal noreadonly + + let w:widget_id = new_object.id + let w:widget = new_object + + let b:widget_id = new_object.id + let b:widget = new_object + + call s:buffer_auto_command_setup() + call s:buffer_setup() + + let s:in_create_widget_state = 0 + return new_object +endfunction + +" - +" [ internal usage ] +" Name: railmoon#widget#base#call_back +" Purpose: call back method for handlers +" - +function! railmoon#widget#base#call_back(widget, method_name, ... ) + let arguments = join(a:000, ';') + call railmoon#trace#debug('call back for widget. name:'. a:widget.name. '; method:'.a:method_name.' ; arguments:'.arguments) + + let exec_line = 'call object.'.a:method_name.'('.arguments.')' + for object in [ a:widget.child_callback_object, a:widget.callback_object ] + if has_key(object, a:method_name) + call railmoon#trace#debug(exec_line) + exec exec_line + endif + endfor +endfunction + +" - +" [ internal usage ] +" Name: buffer_option_setup +" Purpose: setup common local options for widget buffer +" - +function! s:buffer_option_setup() + setlocal noswapfile + setlocal nomodifiable + setlocal bufhidden=delete + setlocal buftype=nofile + setlocal nobuflisted + setlocal nonumber + setlocal nowrap + setlocal nocursorline +endfunction + +function! s:redraw_widget() + if has_key(b:widget, 'draw') + call b:widget.draw() + endif +endfunction + + +" - +" [ internal usage ] +" Name: buffer_setup +" Purpose: when buffer needs to be resetup. after reopen in widget window +" - +function! s:buffer_setup() + call s:buffer_option_setup() + let b:widget = w:widget + let b:widget_id = w:widget_id + + call s:set_widget_title() + + if s:in_create_widget_state + return + endif + + call railmoon#widget#base#call_back(b:widget, 'on_setup') + call s:redraw_widget() +endfunction + +" - +" [ internal usage ] +" Name: buffer_auto_command_setup +" Purpose: setup common handlers for window triggers +" - +function! s:buffer_auto_command_setup() + autocmd! * + autocmd BufWinLeave call s:on_buffer_win_leave() + autocmd WinEnter call s:on_window_enter() + autocmd WinLeave call s:on_window_leave() + autocmd TabLeave call s:on_tab_leave() +endfunction + +" - +" [ internal usage ] +" Name: auto_command_setup +" Purpose: setup handlers for any window or buffer to resolve conflicts +" - +function! s:auto_command_setup() + augroup base_widget_autocommands + autocmd! + autocmd WinEnter * call s:on_any_window_enter() + autocmd BufEnter * call s:on_any_buffer_enter() + autocmd BufWinEnter * call s:on_any_buffer_window_enter() +" autocmd BufWinLeave * call s:on_any_buffer_win_leave() + augroup END +endfunction + +function! s:widget_in_auto_command() + let buffer_name = expand('') + let widget = getbufvar(buffer_name, 'widget') + + if empty(widget) + throw 'widget not found!!!! TODO' + endif + + return widget +endfunction + +function! s:on_any_buffer_window_enter() + call railmoon#trace#push('on_any_buffer_window_enter') + try + + let buffer_name = expand('') + call railmoon#trace#debug('name: '.buffer_name) + + if empty(buffer_name) " TODO + return + endif + + if ! railmoon#widget#handle_autocommands() + call railmoon#trace#debug('handle autocommands stoped') + return + endif + + + if exists('w:widget_id') && !exists('b:widget_id') + call railmoon#trace#debug('w:widget_id present but b:widget_id not') + call s:remove_widget_from_delete(w:widget) + let buffer_number = bufnr(s:buffer_name_prefix.w:widget_id) + let buffer_change_cmd = 'buffer '.buffer_number + call railmoon#trace#debug(buffer_change_cmd) + exec buffer_change_cmd + call s:buffer_setup() + return + endif + + if exists('b:widget_id') && !exists('w:widget_id') + call railmoon#trace#debug('b:widget exists but w:widget not') + close + return + endif + + catch /.*/ + echo v:exception + call railmoon#trace#debug(v:exception) + + finally + if exists('w:widget') + call s:remove_widget_from_delete(w:widget) + endif + + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction +" - +" [ internal usage ] +" Name: on_buffer_win_leave +" Purpose: handle widget close event +" - +function! s:on_buffer_win_leave() + call railmoon#trace#push('on_buffer_win_leave') + try + + let widget = s:widget_in_auto_command() + + call railmoon#trace#debug('widget for close set up') + call s:add_widget_for_close(widget) + if widget.is_closed + call railmoon#trace#debug('already closed') + return + endif + + let buffer_name = expand('') + " closed by close tab page + " TODO find out another cases + " when != % + if buffer_name != bufname('%') + let s:close_with_tab_page = 1 + " TODO s:close_with_tab_page + else + let s:close_with_tab_page = 0 + endif + + finally + call s:close_ready_for_close_widgets() + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +function! railmoon#widget#base#gui_tab_label() + if v:lnum == s:current_tab_page_number + return s:current_widget_name + endif + +" let old_line = s:old_gui_tab_label +" let old_line = substitute(old_line, '%{\(.\{-}\)}', '\1', 'g') +" return eval(old_line) + + return '' +endfunction + +function! railmoon#widget#base#tab_line() + return s:current_widget_name +endfunction + +function! s:set_widget_title() + let s:current_tab_page_number = tabpagenr() + let s:current_widget_name = b:widget.name + let s:current_widget_title_name = b:widget.titlename + + if ! exists('s:old_title_string') + let s:old_title_string = &titlestring + let s:old_gui_tab_label = &guitablabel + let s:old_tab_line = &tabline + endif + + let &titlestring = s:current_widget_title_name + set guitablabel=%{railmoon#widget#base#gui_tab_label()} + set tabline=%!railmoon#widget#base#tab_line() + + exec 'setlocal statusline='.escape(s:current_widget_name, ' ') +endfunction + +function! s:restore_original_title() + if exists('s:old_title_string') + let &titlestring = s:old_title_string + let &guitablabel = s:old_gui_tab_label + let &tabline = s:old_tab_line + + unlet s:old_title_string + unlet s:old_gui_tab_label + endif +endfunction + +" - +" [ internal usage ] +" Name: on_window_enter +" Purpose: handle gain focus event +" - +function! s:on_window_enter() + call railmoon#trace#push('on_window_enter') + try + + let widget = s:widget_in_auto_command() + + call s:set_widget_title() + + call railmoon#widget#base#call_back(widget, 'on_focus') + + catch /widget not found/ + call railmoon#trace#debug(v:exception) + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +function! s:on_any_buffer_enter() + call railmoon#trace#push('on_any_buffer_enter') + try + + if ! railmoon#widget#handle_autocommands() + call railmoon#trace#debug('handle autocommands stoped') + return + endif + + let buffer_name = expand('') + call railmoon#trace#debug('buffer name:'.buffer_name) + call railmoon#trace#debug('in_create_widget_state:'.s:in_create_widget_state) + + " attempt to edit file with name reserved to widget buffers + " + if !exists('b:widget_id') && ! s:in_create_widget_state + call railmoon#trace#debug('b:widget not found') + + if buffer_name =~ s:buffer_name_prefix + call railmoon#trace#debug('name of widget buffer') + if buffer_name == expand('%') + call railmoon#trace#debug('open alternate window') + buffer # + endif + endif + " + " attempt to re open widget buffer + elseif exists('b:widget_id') && ! s:in_create_widget_state + call railmoon#widget#base#call_back(b:widget, 'on_setup') + call s:redraw_widget() + endif + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +function! s:close_ready_for_close_widgets() + call railmoon#trace#push('s:close_ready_for_close_widgets()') + try + + for widget in s:widget_for_close + call railmoon#trace#debug('s:widget_for_close exists') + + if widget.is_closed + call railmoon#trace#debug('already closed') + else + if s:close_with_tab_page + call railmoon#widget#base#call_back(widget, 'on_close_with_tab_page') + else + call railmoon#widget#base#call_back(widget, 'on_close') + endif + let widget.is_closed = 1 + + call railmoon#id#release('railmoon_widget_id', widget.id) + endif + endfor + call s:clear_widget_for_close() + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +function! s:on_any_window_enter() + call railmoon#trace#push('on_any_window_enter') + try + + call railmoon#trace#debug('name: '.expand('')) + + if ! railmoon#widget#handle_autocommands() + call railmoon#trace#debug('handle autocommands stoped') + return + endif + + call s:close_ready_for_close_widgets() + + " split or something like that + if exists('b:widget_id') && !exists('w:widget_id') && ! s:in_create_widget_state + call railmoon#trace#debug('b:widget_id present but w:widget_id not') + + call railmoon#trace#debug('closing') + close + endif + + if exists('w:widget_id') && !exists('b:widget_id') + call railmoon#trace#debug('w:widget_id present but b:widget_id not') + close + endif + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +" - +" [ internal usage ] +" Name: on_tab_leave +" Purpose: handle tab page lost focus event +" - +function! s:on_tab_leave() + call railmoon#trace#push('on_window_leave') + try + + call railmoon#widget#base#call_back(b:widget, 'on_tab_leave') + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +" - +" [ internal usage ] +" Name: on_window_leave +" Purpose: handle lost focus event +" - +function! s:on_window_leave() + call railmoon#trace#push('on_window_leave') + try + + if !exists('b:widget') + call railmoon#trace#debug('b:widget not present') + return + endif + + if b:widget.is_closed + call railmoon#trace#debug('already closed') + return + endif + + call railmoon#widget#base#call_back(b:widget, 'on_focus_lost') + + catch /.*/ + call railmoon#trace#debug(v:exception) + call railmoon#trace#debug(v:throwpoint) + + finally + call s:restore_original_title() + + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +" - +" [ internal usage ] +" Name: base +" Purpose: base widget object +" - +let s:base = {} + +function! s:base.select() + call railmoon#trace#push('base.select') + try + + let id = self.id + call railmoon#trace#debug('selecting...') + call railmoon#widget#window#select(id) + + finally + call railmoon#trace#debug('id = '.id) + call railmoon#trace#pop() + endtry +endfunction + +function! s:base.close() + call railmoon#trace#push('base.close') + try + + if self.is_closed + call railmoon#trace#debug('already closed') + return + endif + + let not_active = (w:widget_id != self.id) + + if not_active + let selected = railmoon#widget#window#save_selected() + endif + + call self.select() + + call railmoon#trace#debug('closing.. id = '.self.id) + + let window_numbers = winnr('$') + let self.is_closed = 1 + close + + if not_active + call railmoon#widget#window#load_selected(selected) + endif + + call railmoon#id#release('railmoon_widget_id', self.id) + + if window_numbers > 1 + call railmoon#widget#base#call_back(self, 'on_close') + else + call railmoon#widget#base#call_back(self, 'on_close_with_tab_page') + endif + + finally + call s:close_ready_for_close_widgets() + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +call s:auto_command_setup() + diff --git a/vim/autoload/railmoon/widget/canvas.vim b/vim/autoload/railmoon/widget/canvas.vim new file mode 100755 index 0000000..45914e9 --- /dev/null +++ b/vim/autoload/railmoon/widget/canvas.vim @@ -0,0 +1,82 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Module: railmoon#widget#canvas +" Purpose: widget for drawing inside it + +" - +" [ internal usage ] +" Name: callback_object +" Purpose: handler for base back calls +" - +let s:callback_object = {} + +" - +" [ public library function ] +" Name: railmoon#widget#canvas#create +" Purpose: create "canvas" widget +" [ parameters ] +" name name of new vim window that will represent widget +" callback_object call back object with following methods +" on_draw() draw what inside canvas +" - +function! railmoon#widget#canvas#create(name, callback_object) + let new_object = railmoon#widget#base#create(a:name, s:canvas, [a:callback_object, s:callback_object]) + + call s:auto_command_setup() + + return new_object +endfunction + +" - +" [ internal usage ] +" Name: auto_command_setup +" Purpose: setup handlers for window triggers +" - +function! s:auto_command_setup() +" autocmd CursorMoved call s:on_cursor_moved() +endfunction + +function! s:callback_object.on_setup() +endfunction + +" - +" [ internal usage ] +" Name: canvas +" Purpose: widget object "canvas" +" - +let s:canvas = {} + +" - +" [ object method ] +" Object: canvas +" Name: draw +" Purpose: prepare_canvas for drawing and call user defined on_draw method +" - +function! s:canvas.draw() + call railmoon#trace#push('canvas.draw') + try + + let selected = railmoon#widget#window#save_selected() + let is_selected = railmoon#widget#window#select(self.id) + + if ! is_selected + throw 'widget:selection_window:draw:window_not_found' + endif + + setlocal modifiable + + 0,$delete _ + call railmoon#draw#prepare_canvas(winwidth('%'), winheight('%')) + call railmoon#widget#base#call_back(self, 'on_draw()') + + setlocal nomodifiable + + call railmoon#widget#window#load_selected(selected) + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + diff --git a/vim/autoload/railmoon/widget/edit_line_window.vim b/vim/autoload/railmoon/widget/edit_line_window.vim new file mode 100755 index 0000000..0c467a5 --- /dev/null +++ b/vim/autoload/railmoon/widget/edit_line_window.vim @@ -0,0 +1,207 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Home: www.railmoon.com +" Module: railmoon#widget#edit_line_window +" Purpose: provide window with callbacks for editing single line + +let s:callback_object = {} +" - +" [ public library function ] +" Name: railmoon#widget#edit_line_window#create +" Purpose: create "edit line window" widget +" [ parameters ] +" name name of new vim window that will represent widget +" titlename name that will on title bar +" callback_object call back object with following methods +" on_normal_move +" on_insert_move +" on_type(character, is_alpha_numeric) : should return character to type +" -- and common handlers +" - +function! railmoon#widget#edit_line_window#create(name, titlename, callback_object) + let new_object = railmoon#widget#base#create(a:name, a:titlename, s:edit_line_window, s:callback_object, a:callback_object) + + call railmoon#trace#debug('create edit line window:'.a:name) +" call railmoon#trace#debug(string(new_object)) + + setlocal modifiable + + call s:auto_command_setup() + call s:insert_mode_key_typing_setup() + + return new_object +endfunction + +" - +" [ internal usage ] +" Name: edit_line_window +" Purpose: widget object "edit line window" +" - +let s:edit_line_window = {} + + +" - +" [ object method ] +" Object: edit_line_window +" Name: get_line +" Purpose: return entered line +" - +function! s:edit_line_window.get_line() + let selected = railmoon#widget#window#save_selected() + + call self.select() + let text_line = getline(1) + + call railmoon#widget#window#load_selected(selected) + + return text_line +endfunction + +" - +" [ object method ] +" Object: edit_line_window +" Name: set_line +" Purpose: setup text line to "edit line window" +" - +function! s:edit_line_window.set_line(line) + let selected = railmoon#widget#window#save_selected() + + call self.select() + call setline(1, a:line) + + call railmoon#widget#window#load_selected(selected) +endfunction + +" - +" [ object method ] +" Object: edit_line_window +" Name: go_to_position +" Purpose: move cursor to specified position +" - +function! s:edit_line_window.go_to_position(position) + call self.select() + + call cursor(1, a:position) +endfunction + +" - +" [ object method ] +" Object: edit_line_window +" Name: go_to_end +" Purpose: move cursor to end +" - +function! s:edit_line_window.go_to_end() + call self.select() + call cursor(1, col('$')) +endfunction + +" - +" [ object method ] +" Object: edit_line_window +" Name: go_to_start +" Purpose: move cursor to start of line +" - +function! s:edit_line_window.go_to_start() + call self.select() + call cursor(1, 1) +endfunction + +" - +" [ internal usage ] +" Name: insert_mode_key_typing_setup +" Purpose: setup handlers for typing characters +" - +function! s:insert_mode_key_typing_setup() + for item in s:alpha_numeric_characters + execute 'inoremap ' . item . ' =on_insert_typing('''.item.''', 1)' + endfor + + for item in s:not_alpha_numeric_characters + execute 'inoremap ' . item . ' =on_insert_typing('''.item.''', 0)' + endfor + +endfunction + +function! s:callback_object.on_setup() + call s:insert_mode_key_typing_setup() +endfunction + +" - +" [ internal usage ] +" Name: on_insert_typing +" Purpose: handle typing +" - +function! s:on_insert_typing(character, is_alpha_numeric) + let callback_object = b:widget.callback_object + if has_key(callback_object, 'on_type') + return callback_object.on_type( a:character, a:is_alpha_numeric ) + endif + + return a:character +endfunction + +" - +" [ internal usage ] +" Name: auto_command_setup +" Purpose: setup auto commands +" - +function! s:auto_command_setup() + autocmd CursorMoved call s:on_cursor_moved(s:normal_mode) + autocmd CursorMovedI call s:on_cursor_moved(s:insert_mode) +endfunction + +" - +" [ internal usage ] +" Name: on_cursor_moved +" Purpose: handle cursor movement +" - +function! s:on_cursor_moved(mode) + if line('$') > 1 + let new_line = join(getline(1, '$'), '') + 2,$d + call setline(1, new_line) + call cursor(1, col('$')) + endif + + let callback_object = w:widget.callback_object + if a:mode == s:normal_mode + call railmoon#widget#base#call_back(w:widget, 'on_normal_move') + else + call railmoon#widget#base#call_back(w:widget, 'on_insert_move') + endif +endfunction + +" - +" [ internal usage ] +" Name: normal_mode +" Purpose: enumeration of mode +" - +let s:normal_mode = 0 +" - +" [ internal usage ] +" Name: insert_mode +" Purpose: enumeration of mode +" - +let s:insert_mode = 1 + +" - +" [ internal usage ] +" Name: alpha_numeric_characters +" Purpose: store all typing characters +" - +let s:alpha_numeric_characters = + \ ['a','b','c','d','e','f','g','h','i','j','k','l','m', + \ 'n','o','p','q','r','s','t','u','v','w','x','y','z', + \ 'A','B','C','D','E','F','G','H','I','J','K','L','M', + \ 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', + \ '0','1','2','3','4','5','6','7','8','9','','_','=','"',':',';','.'] + +" - +" [ internal usage ] +" Name: not_alpha_numeric_characters +" Purpose: store not alpha numeric characters +" - +let s:not_alpha_numeric_characters = + \ ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '-', + \ '{', '}', '[', ']', "'", '<', '>', ',', '?', '`', '~', '\', '\|'] + diff --git a/vim/autoload/railmoon/widget/selection_window.vim b/vim/autoload/railmoon/widget/selection_window.vim new file mode 100755 index 0000000..f055858 --- /dev/null +++ b/vim/autoload/railmoon/widget/selection_window.vim @@ -0,0 +1,408 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Site: www.railmoon.com +" Module: railmoon#widget#selection_window +" Purpose: provide window with ability to select elements + +" - +" [ internal usage ] +" Name: callback_object +" Purpose: handler for base back calls +" - +let s:callback_object = {} + + + +" +" elements for selection windows are dictionaries that have +" .data as list [] of text +" .header optional value that will be right aligned at left side of list + +" - +" [ public library function ] +" Name: railmoon#widget#selection_window#create +" Purpose: create "selection window" widget +" [ parameters ] +" name name of new vim window that will represent widget +" titlename name that will on title bar +" callback_object call back object with following methods +" on_select(selected_line_text) +" on_close +" on_close_with_tab_page +" model model representation with following methods +" get_item(element) +" get_item_count() +" - +function! railmoon#widget#selection_window#create(name, titlename, selection_group, model, callback_object) + let new_object = railmoon#widget#base#create(a:name, a:titlename, s:selection_window, s:callback_object, a:callback_object) + + call railmoon#trace#debug('create selection_window:'.a:name) + call railmoon#trace#debug(string(new_object)) + + let new_object.selected_item_number = 1 + let new_object.selection_group = a:selection_group + let new_object.model = a:model + let new_object.yoffset = 0 + + let new_object.item_positions = [] + +" call new_object.draw_selection() + + call s:auto_command_setup() + call s:key_mappings_setup() + + return new_object +endfunction + +" - +" [ internal usage ] +" Name: auto_command_setup +" Purpose: setup handlers for window triggers +" - +function! s:auto_command_setup() + autocmd CursorMoved call s:on_cursor_moved() +endfunction + +function! s:callback_object.on_setup() + call s:key_mappings_setup() +endfunction + +" - +" [ internal usage ] +" Name: key_mappings_setup +" Purpose: setup key handlers for "selection window" +" - +function! s:key_mappings_setup() + nnoremap :call on_select() + nnoremap <2-LeftMouse> :call on_select() +endfunction + +" - +" [ internal usage ] +" Name: on_select +" Purpose: handle item select command +" - +function! s:on_select() + let selected_item = w:widget.selected_item() + call railmoon#widget#base#call_back(w:widget, 'on_select', '"'.escape(string(selected_item),"\"'").'"') +endfunction + +" - +" [ internal usage ] +" Name: on_cursor_moved +" Purpose: handle normal mode curor movement +" - +function! s:on_cursor_moved() + let line_number = line('.') + call w:widget.select_line(line_number) +endfunction + +" - +" [ internal usage ] +" Name: selection_window +" Purpose: widget object "selection window" +" - +let s:selection_window = {} + +" - +" [ internal usage ] +" Name: highlight_line +" Purpose: highlight line in selection window +" [ parameters ] +" line_number number of line to highlight +" group highlight group to use as highlight +" - +function! s:highlight_line(start, end, group) + let start = '"\%'.(a:start + 1).'l"' + let end = '"\%'.(a:end + 1).'l"' + let id = w:widget_id + let syn_command = 'syn region selection_window_selected_line'.id.' start='.start.' end = '.end.' contains=Search' + let hi_link_command = 'hi link selection_window_selected_line'.id.' '.a:group + exec syn_command + exec hi_link_command +endfunction + +" - +" [ internal usage ] +" Name: clear_highlight_line +" Purpose: remove highlight line in selection window +" - +function! s:clear_highlight_line() + let id = w:widget_id + try + exec 'syntax clear selection_window_selected_line'.id + catch /.*/ + endtry +endfunction + +" - +" [ object method ] +" Object: selection_window +" Name: draw +" Purpose: append all lines to buffer while remove old ones +" - +function! s:selection_window.draw() + call railmoon#trace#push('selection_window.draw') + try + + let selected = railmoon#widget#window#save_selected() + let is_selected = railmoon#widget#window#select(self.id) + + if ! is_selected + throw 'widget:selection_window:draw:window_not_found' + endif + + setlocal modifiable + + 0,$delete _ + + + let y = 0 + let i = 0 + let item_count = self.model.get_item_count() + let item_size = len(self.model.get_item(0).data) + let header_max_lenght = 0 + + let self.item_positions = [] + + let items_to_draw = [] + + " gathrer visual items on window + " determine max header length + " + while y <= ( winheight('%') - item_size ) && ( i < item_count ) + let item = self.model.get_item(i) + + let item_header_len = len(item.header) + + if item_header_len > header_max_lenght + let header_max_lenght = item_header_len + endif + + call add(items_to_draw, item) + let item_size = len(item.data) + + call add( self.item_positions, [ y, y + item_size ] ) + + let y += item_size + let i += 1 + endwhile + + let is_no_headers = header_max_lenght == 0 + + " highlight headers if any + " + + let window_id = w:widget_id + try + exec 'syntax clear selection_window_lines_header'.window_id + catch /.*/ + endtry + + if ! is_no_headers + exec 'syntax match selection_window_lines_header'.window_id.' "^[^|]\+|"' + endif + + try + exec 'hi link selection_window_lines_header'.window_id.' String' + catch /.*/ + endtry + + let lines = [] + " build lines to append to buffer + " + for item in items_to_draw + let item_header = item.header + let is_header_present = len(item_header) > 0 + + if is_header_present + call add(lines, printf(' %-'.header_max_lenght.'s | ', item_header).item.data[0]) + elseif is_no_headers + call add(lines, ' '.item.data[0]) + else + call add(lines, printf(' %'.header_max_lenght.'s ', item_header).item.data[0]) + endif + + for line in item.data[1:] + if is_header_present + call add(lines, printf(' %-'.header_max_lenght.'s | ', '').line) + elseif is_no_headers + call add(lines, ' '.line) + else + call add(lines, printf(' %'.header_max_lenght.'s ', '').line) + endif + endfor + endfor + + let win_width = winwidth('%') + + let wide_lines = [] + for line in lines + let diff = win_width - len(line) + + let new_line = line + if diff > 0 + let new_line = line . printf('%'.diff.'s', ' ') + endif + + call add(wide_lines, new_line) + endfor + + call setline(1, wide_lines) + call self.draw_selection() + + setlocal nomodifiable + + call railmoon#widget#window#load_selected(selected) + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +" - +" [ object method ] +" Object: selection_window +" Name: draw_selection +" Purpose: show selection in selection window +" - +function! s:selection_window.draw_selection() + call railmoon#trace#push('selection_window.draw_selection') + call railmoon#trace#debug('id = '.self.id) + try + + let selected = railmoon#widget#window#save_selected() + + call self.select() + + if len(self.item_positions) > 0 + let start_line_number_in_window = self.item_positions[ self.selected_item_number - 1 ][0] + let end_line_number_in_window = self.item_positions[ self.selected_item_number - 1 ][1] + exec start_line_number_in_window + + call s:clear_highlight_line() + call s:highlight_line(start_line_number_in_window, end_line_number_in_window, self.selection_group) + endif + + call railmoon#widget#window#load_selected(selected) + + finally + call railmoon#trace#pop() + endtry +endfunction + + +" - +" [ object method ] +" Object: selection_window +" Name: scrool_to +" Purpose: scrool window to show given line as first line +" [ parameters ] +" line_number line to show first in window +" - +function! s:selection_window.scrool_to(line_number) + let self.yoffset = a:line_number + + call self.draw() +endfunction + + +" - +" [ object method ] +" Object: selection_window +" Name: selection_down +" Purpose: select next item +" [ parameters ] +" cycle cycle or not movement +" - +function! s:selection_window.selection_down(cycle) + let last_item_number_on_window = len(self.item_positions) + + if self.selected_item_number >= last_item_number_on_window + if ! a:cycle + return + else + let self.selected_item_number = 1 + endif + else + let self.selected_item_number += 1 + endif + + + call self.draw_selection() +endfunction + +" - +" [ object method ] +" Object: selection_window +" Name: selection_up +" Purpose: select previous item +" [ parameters ] +" cycle cycle or not movement +" - +function! s:selection_window.selection_up(cycle) + let last_item_number_on_window = len(self.item_positions) + + if self.selected_item_number <= 1 + if ! a:cycle + return + else + let self.selected_item_number = last_item_number_on_window + endif + else + let self.selected_item_number -= 1 + endif + + + call self.draw_selection() +endfunction + +" - +" [ object method ] +" Object: selection_window +" Name: select_line +" Purpose: select pointed line +" [ parameters ] +" line_number number of line to select +" - +function! s:selection_window.select_line(line_number) + let item_count = self.model.get_item_count() + + let i = 0 + for region in self.item_positions + if a:line_number >= region[0] && a:line_number <= region[1] + let self.selected_item_number = i + 1 + break + endif + + let i+=1 + endfor + + call self.draw_selection() +endfunction + +" - +" [ object method ] +" Object: selection_window +" Name: select_item +" Purpose: select pointed item by number +" [ parameters ] +" item_number number of item to select +" - +function! s:selection_window.select_item(item_number) + let self.selected_item_number = a:item_number + call self.draw_selection() +endfunction + +" - +" [ object method ] +" Object: selection_window +" Name: selected_item +" Purpose: return selected item text +" - +function! s:selection_window.selected_item() + let item = self.model.get_item(self.selected_item_number - 1) + return item +endfunction + diff --git a/vim/autoload/railmoon/widget/window.vim b/vim/autoload/railmoon/widget/window.vim new file mode 100755 index 0000000..ff72c62 --- /dev/null +++ b/vim/autoload/railmoon/widget/window.vim @@ -0,0 +1,167 @@ +" Author: Mykola Golubyev ( Nickolay Golubev ) +" Email: golubev.nikolay@gmail.com +" Home: www.railmoon.com +" Module: railmoon#widget#window +" Purpose: util functions for work with widget windows id +" + +" - +" [ public library function ] +" Name: railmoon#widget#window#find_on_tab +" Purpose: determine window number on given tab with pointed id +" [ parameters ] +" tabpage_number number of tabpage +" variable_name name of window id variable +" id window id to search +" - +function! railmoon#widget#window#find_on_tab(tabpage_number, variable_name, id) + let windows_count = tabpagewinnr(a:tabpage_number, '$') + let window_number = 1 + + while window_number <= windows_count + let window_id = gettabwinvar(a:tabpage_number, window_number, a:variable_name) + + if a:id == window_id + return window_number + endif + + let window_number += 1 + + endwhile + + return 0 +endfunction + +" - +" [ public library function ] +" Name: railmoon#widget#window#find +" Purpose: determine tabpage number and window number as list of two elements with pointed id +" [ parameters ] +" id widget id to search +" - +function! railmoon#widget#window#find(id) + let tabpage_count = tabpagenr('$') + let tabpage_number = 1 + while tabpage_number <= tabpage_count + let window_number = railmoon#widget#window#find_on_tab(tabpage_number, 'widget_id', a:id) + if window_number + return [ tabpage_number, window_number ] + endif + let tabpage_number += 1 + endwhile + + throw 'window with "widget_id" = '.a:id.' not found' + return [0, 0] +endfunction + +" - +" [ public library function ] +" Name: railmoon#widget#window#visible +" Purpose: determine visible or not widget window with pointed id +" [ parameters ] +" id widget id to select +" - +function! railmoon#widget#window#visible(id) + if exists('w:widget_id') && w:widget_id == a:id + return 1 + endif + + let window_number = railmoon#widget#window#find_on_tab(tabpagenr(), 'widget_id', a:id) + + return window_number > 0 +endfunction + +" - +" [ public library function ] +" Name: railmoon#widget#window#select +" Purpose: make window with given widget id active +" [ parameters ] +" id widget id to select +" - +function! railmoon#widget#window#select(id) + call railmoon#trace#push('window#select') + call railmoon#trace#debug('id = '.a:id) + try + + if exists('w:widget_id') && w:widget_id == a:id + return 1 + endif + + let tabpage_and_window_number = railmoon#widget#window#find(a:id) + + if tabpage_and_window_number[0] == 0 + return 0 + endif + + call s:select_window(tabpage_and_window_number[0], tabpage_and_window_number[1]) + return 1 + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + + +" - +" [ public library function ] +" Name: railmoon#widget#window#save_selected +" Purpose: save current tabpage number, window mark id, position, mode +" - +function! railmoon#widget#window#save_selected() + call railmoon#trace#push('window#save_selected') + try + + if ! exists('w:railmoon_window_mark_id') + let w:railmoon_window_mark_id = railmoon#id#acquire('railmoon_window_mark_id') + endif + return [tabpagenr(), w:railmoon_window_mark_id, getpos('.'), mode()] + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +" - +" [ public library function ] +" Name: railmoon#widget#window#load_selected +" Purpose: select tabpage number, window number, position, mode +" [ parameters ] +" selection list with four elements: tabpage number, window mark id, +" position, mode +" - +function! railmoon#widget#window#load_selected(selection) + call railmoon#trace#push('window#load_selected') + try + + exec a:selection[0].'tabnext' + let window_number = + \ railmoon#widget#window#find_on_tab(a:selection[0], + \ 'railmoon_window_mark_id', + \ a:selection[1]) + + exec window_number.'wincmd w' + + if a:selection[3] == 'n' + stopinsert + elseif a:selection[3] == 'i' + startinsert + endif + call setpos('.', a:selection[2]) + + finally + call railmoon#trace#debug('...') + call railmoon#trace#pop() + endtry +endfunction + +" - +" [ internal usage ] +" Purpose: open tabpage number and select window number +" - +function! s:select_window(tabpage_number, window_number) + exec a:tabpage_number . 'tabnext' + exec a:window_number.'wincmd w' +endfunction + diff --git a/vim/autoload/rails.vim b/vim/autoload/rails.vim new file mode 100755 index 0000000..56f9d5c --- /dev/null +++ b/vim/autoload/rails.vim @@ -0,0 +1,4685 @@ +" autoload/rails.vim +" Author: Tim Pope + +" Install this file as autoload/rails.vim. + +if exists('g:autoloaded_rails') || &cp + finish +endif +let g:autoloaded_rails = '4.2' + +let s:cpo_save = &cpo +set cpo&vim + +" Utility Functions {{{1 + +let s:app_prototype = {} +let s:file_prototype = {} +let s:buffer_prototype = {} +let s:readable_prototype = {} + +function! s:add_methods(namespace, method_names) + for name in a:method_names + let s:{a:namespace}_prototype[name] = s:function('s:'.a:namespace.'_'.name) + endfor +endfunction + +function! s:function(name) + return function(substitute(a:name,'^s:',matchstr(expand(''), '\d\+_'),'')) +endfunction + +function! s:sub(str,pat,rep) + return substitute(a:str,'\v\C'.a:pat,a:rep,'') +endfunction + +function! s:gsub(str,pat,rep) + return substitute(a:str,'\v\C'.a:pat,a:rep,'g') +endfunction + +function! s:startswith(string,prefix) + return strpart(a:string, 0, strlen(a:prefix)) ==# a:prefix +endfunction + +function! s:compact(ary) + return s:sub(s:sub(s:gsub(a:ary,'\n\n+','\n'),'\n$',''),'^\n','') +endfunction + +function! s:scrub(collection,item) + " Removes item from a newline separated collection + let col = "\n" . a:collection + let idx = stridx(col,"\n".a:item."\n") + let cnt = 0 + while idx != -1 && cnt < 100 + let col = strpart(col,0,idx).strpart(col,idx+strlen(a:item)+1) + let idx = stridx(col,"\n".a:item."\n") + let cnt += 1 + endwhile + return strpart(col,1) +endfunction + +function! s:escarg(p) + return s:gsub(a:p,'[ !%#]','\\&') +endfunction + +function! s:esccmd(p) + return s:gsub(a:p,'[!%#]','\\&') +endfunction + +function! s:rquote(str) + " Imperfect but adequate for Ruby arguments + if a:str =~ '^[A-Za-z0-9_/.:-]\+$' + return a:str + elseif &shell =~? 'cmd' + return '"'.s:gsub(s:gsub(a:str,'\','\\'),'"','\\"').'"' + else + return "'".s:gsub(s:gsub(a:str,'\','\\'),"'","'\\\\''")."'" + endif +endfunction + +function! s:sname() + return fnamemodify(s:file,':t:r') +endfunction + +function! s:pop_command() + if exists("s:command_stack") && len(s:command_stack) > 0 + exe remove(s:command_stack,-1) + endif +endfunction + +function! s:push_chdir(...) + if !exists("s:command_stack") | let s:command_stack = [] | endif + if exists("b:rails_root") && (a:0 ? getcwd() !=# rails#app().path() : !s:startswith(getcwd(), rails#app().path())) + let chdir = exists("*haslocaldir") && haslocaldir() ? "lchdir " : "chdir " + call add(s:command_stack,chdir.s:escarg(getcwd())) + exe chdir.s:escarg(rails#app().path()) + else + call add(s:command_stack,"") + endif +endfunction + +function! s:app_path(...) dict + return join([self.root]+a:000,'/') +endfunction + +function! s:app_has_file(file) dict + return filereadable(self.path(a:file)) +endfunction + +function! s:app_find_file(name, ...) dict abort + let trim = strlen(self.path())+1 + if a:0 + let path = s:pathjoin(map(s:pathsplit(a:1),'self.path(v:val)')) + else + let path = s:pathjoin([self.path()]) + endif + let suffixesadd = s:pathjoin(get(a:000,1,&suffixesadd)) + let default = get(a:000,2,'') + let oldsuffixesadd = &l:suffixesadd + try + let &suffixesadd = suffixesadd + " Versions before 7.1.256 returned directories from findfile + if type(default) == type(0) && (v:version < 702 || default == -1) + let all = findfile(a:name,path,-1) + if v:version < 702 + call filter(all,'!isdirectory(v:val)') + endif + call map(all,'s:gsub(strpart(fnamemodify(v:val,":p"),trim),"\\\\","/")') + return default < 0 ? all : get(all,default-1,'') + elseif type(default) == type(0) + let found = findfile(a:name,path,default) + else + let i = 1 + let found = findfile(a:name,path) + while v:version < 702 && found != "" && isdirectory(found) + let i += 1 + let found = findfile(a:name,path,i) + endwhile + endif + return found == "" ? default : s:gsub(strpart(fnamemodify(found,':p'),trim),'\\','/') + finally + let &l:suffixesadd = oldsuffixesadd + endtry +endfunction + +call s:add_methods('app',['path','has_file','find_file']) + +" Split a path into a list. From pathogen.vim +function! s:pathsplit(path) abort + if type(a:path) == type([]) | return copy(a:path) | endif + let split = split(a:path,'\\\@' + if matchstr(self.getline(a:lnum+1),'^'.spc) && !matchstr(self.getline(a:lnum+1),'^'.spc.endpat) && matchstr(cline,endpat) + return a:lnum + endif + let endl = a:lnum + while endl <= self.line_count() + let endl += 1 + if self.getline(endl) =~ '^'.spc.endpat + return endl + elseif self.getline(endl) =~ '^=begin\>' + while self.getline(endl) !~ '^=end\>' && endl <= self.line_count() + let endl += 1 + endwhile + let endl += 1 + elseif self.getline(endl) !~ '^'.spc && self.getline(endl) !~ '^\s*\%(#.*\)\=$' + return 0 + endif + endwhile + return 0 +endfunction + +function! s:endof(lnum) + return rails#buffer().end_of(a:lnum) +endfunction + +function! s:readable_last_opening_line(start,pattern,limit) dict abort + let line = a:start + while line > a:limit && self.getline(line) !~ a:pattern + let line -= 1 + endwhile + let lend = self.end_of(line) + if line > a:limit && (lend < 0 || lend >= a:start) + return line + else + return -1 + endif +endfunction + +function! s:lastopeningline(pattern,limit,start) + return rails#buffer().last_opening_line(a:start,a:pattern,a:limit) +endfunction + +function! s:readable_define_pattern() dict abort + if self.name() =~ '\.yml$' + return '^\%(\h\k*:\)\@=' + endif + let define = '^\s*def\s\+\(self\.\)\=' + if self.name() =~# '\.rake$' + let define .= "\\\|^\\s*\\%(task\\\|file\\)\\s\\+[:'\"]" + endif + if self.name() =~# '/schema\.rb$' + let define .= "\\\|^\\s*create_table\\s\\+[:'\"]" + endif + return define +endfunction + +function! s:readable_last_method_line(start) dict abort + return self.last_opening_line(a:start,self.define_pattern(),0) +endfunction + +function! s:lastmethodline(start) + return rails#buffer().last_method_line(a:start) +endfunction + +function! s:readable_last_method(start) dict abort + let line = self.last_method_line(a:start) + if line + return s:sub(matchstr(self.getline(line),'\%('.self.define_pattern().'\)\zs\h\%(\k\|[:.]\)*[?!=]\='),':$','') + else + return "" + endif +endfunction + +function! s:lastmethod(...) + return rails#buffer().last_method(a:0 ? a:1 : line(".")) +endfunction + +function! s:readable_last_format(start) dict abort + if self.type_name('view') + let format = fnamemodify(self.path(),':r:e') + if format == '' + return get({'rhtml': 'html', 'rxml': 'xml', 'rjs': 'js', 'haml': 'html'},fnamemodify(self.path(),':e'),'') + else + return format + endif + endif + let rline = self.last_opening_line(a:start,'\C^\s*\%(mail\>.*\|respond_to\)\s*\%(\.*\|respond_to\)\s*\%(\ rline + let match = matchstr(self.getline(line),'\C^\s*'.variable.'\s*\.\s*\zs\h\k*') + if match != '' + return match + endif + let line -= 1 + endwhile + endif + return "" +endfunction + +function! s:lastformat(start) + return rails#buffer().last_format(a:start) +endfunction + +function! s:format(...) + let format = rails#buffer().last_format(a:0 > 1 ? a:2 : line(".")) + return format ==# '' && a:0 ? a:1 : format +endfunction + +call s:add_methods('readable',['end_of','last_opening_line','last_method_line','last_method','last_format','define_pattern']) + +let s:view_types = 'rhtml,erb,rxml,builder,rjs,mab,liquid,haml,dryml,mn' + +function! s:viewspattern() + return '\%('.s:gsub(s:view_types,',','\\|').'\)' +endfunction + +function! s:controller(...) + return rails#buffer().controller_name(a:0 ? a:1 : 0) +endfunction + +function! s:readable_controller_name(...) dict abort + let f = self.name() + if has_key(self,'getvar') && self.getvar('rails_controller') != '' + return self.getvar('rails_controller') + elseif f =~ '\ get(self,last_lines_ftime,0) + let self.last_lines = readfile(self.path()) + let self.last_lines_ftime = ftime + endif + return get(self,'last_lines',[]) +endfunction + +function! s:file_getline(lnum,...) dict abort + if a:0 + return self.lines[lnum-1 : a:1-1] + else + return self.lines[lnum-1] + endif +endfunction + +function! s:buffer_lines() dict abort + return self.getline(1,'$') +endfunction + +function! s:buffer_getline(...) dict abort + if a:0 == 1 + return get(call('getbufline',[self.number()]+a:000),0,'') + else + return call('getbufline',[self.number()]+a:000) + endif +endfunction + +function! s:readable_line_count() dict abort + return len(self.lines()) +endfunction + +function! s:environment() + if exists('$RAILS_ENV') + return $RAILS_ENV + else + return "development" + endif +endfunction + +function! s:Complete_environments(...) + return s:completion_filter(rails#app().environments(),a:0 ? a:1 : "") +endfunction + +function! s:warn(str) + echohl WarningMsg + echomsg a:str + echohl None + " Sometimes required to flush output + echo "" + let v:warningmsg = a:str +endfunction + +function! s:error(str) + echohl ErrorMsg + echomsg a:str + echohl None + let v:errmsg = a:str +endfunction + +function! s:debug(str) + if exists("g:rails_debug") && g:rails_debug + echohl Debug + echomsg a:str + echohl None + endif +endfunction + +function! s:buffer_getvar(varname) dict abort + return getbufvar(self.number(),a:varname) +endfunction + +function! s:buffer_setvar(varname, val) dict abort + return setbufvar(self.number(),a:varname,a:val) +endfunction + +call s:add_methods('buffer',['getvar','setvar']) + +" }}}1 +" "Public" Interface {{{1 + +" RailsRoot() is the only official public function + +function! rails#underscore(str) + let str = s:gsub(a:str,'::','/') + let str = s:gsub(str,'(\u+)(\u\l)','\1_\2') + let str = s:gsub(str,'(\l|\d)(\u)','\1_\2') + let str = tolower(str) + return str +endfunction + +function! rails#camelize(str) + let str = s:gsub(a:str,'/(.=)','::\u\1') + let str = s:gsub(str,'%([_-]|<)(.)','\u\1') + return str +endfunction + +function! rails#singularize(word) + " Probably not worth it to be as comprehensive as Rails but we can + " still hit the common cases. + let word = a:word + if word =~? '\.js$' || word == '' + return word + endif + let word = s:sub(word,'eople$','ersons') + let word = s:sub(word,'[aeio]@ 0 && getbufvar(nr,'rails_file_type') != '' + return getbufvar(nr,'rails_file_type') + elseif f =~ '_controller\.rb$' || f =~ '\' + let r = "controller-api" + else + let r = "controller" + endif + elseif f =~ '_api\.rb' + let r = "api" + elseif f =~ '\') + if class == "ActiveResource::Base" + let class = "ares" + let r = "model-ares" + elseif class == 'ActionMailer::Base' + let r = "mailer" + elseif class != '' + let class = tolower(s:gsub(class,'[^A-Z]','')) + let r = "model-".class + elseif f =~ '_mailer\.rb$' + let r = "mailer" + elseif top =~ '\<\%(validates_\w\+_of\|set_\%(table_name\|primary_key\)\|has_one\|has_many\|belongs_to\)\>' + let r = "model-arb" + else + let r = "model" + endif + elseif f =~ '\.*\.' + let r = "view-layout-" . e + elseif f =~ '\<\%(app/views\|components\)/.*/_\k\+\.\k\+\%(\.\k\+\)\=$' + let r = "view-partial-" . e + elseif f =~ '\.*\.' || f =~ '\' + if e == "yml" + let r = "fixtures-yaml" + else + let r = "fixtures" . (e == "" ? "" : "-" . e) + endif + elseif f =~ '\' || f=~ '\.*\.rb$' + let r = "config-routes" + elseif f =~ '\"')) + else + return a:type + endif +endfunction + +function! s:app_environments() dict + if self.cache.needs('environments') + call self.cache.set('environments',self.relglob('config/environments/','**/*','.rb')) + endif + return copy(self.cache.get('environments')) +endfunction + +function! s:app_default_locale() dict abort + if self.cache.needs('default_locale') + let candidates = map(filter(s:readfile(self.path('config/environment.rb')),'v:val =~ "^ *config.i18n.default_locale = :[\"'']\\=[A-Za-z-]\\+[\"'']\\= *$"'),'matchstr(v:val,"[A-Za-z-]\\+[\"'']\\= *$")') + call self.cache.set('default_locale',get(candidates,0,'en')) + endif + return self.cache.get('default_locale') +endfunction + +function! s:app_has(feature) dict + let map = { + \'test': 'test/', + \'spec': 'spec/', + \'cucumber': 'features/', + \'sass': 'public/stylesheets/sass/'} + if self.cache.needs('features') + call self.cache.set('features',{}) + endif + let features = self.cache.get('features') + if !has_key(features,a:feature) + let path = get(map,a:feature,a:feature.'/') + let features[a:feature] = isdirectory(rails#app().path(path)) + endif + return features[a:feature] +endfunction + +" Returns the subset of ['test', 'spec', 'cucumber'] present on the app. +function! s:app_test_suites() dict + return filter(['test','spec','cucumber'],'self.has(v:val)') +endfunction + +call s:add_methods('app',['default_locale','environments','file','has','test_suites']) +call s:add_methods('file',['path','name','lines','getline']) +call s:add_methods('buffer',['app','number','path','name','lines','getline','type_name']) +call s:add_methods('readable',['app','calculate_file_type','type_name','line_count']) + +" }}}1 +" Ruby Execution {{{1 + +function! s:app_ruby_shell_command(cmd) dict abort + if self.path() =~ '://' + return "ruby ".a:cmd + else + return "ruby -C ".s:rquote(self.path())." ".a:cmd + endif +endfunction + +function! s:app_script_shell_command(cmd) dict abort + if self.has_file('script/rails') && a:cmd !~# '^rails\>' + let cmd = 'script/rails '.a:cmd + else + let cmd = 'script/'.a:cmd + endif + return self.ruby_shell_command(cmd) +endfunction + +function! s:app_background_script_command(cmd) dict abort + let cmd = s:esccmd(self.script_shell_command(a:cmd)) + if has_key(self,'options') && has_key(self.options,'gnu_screen') + let screen = self.options.gnu_screen + else + let screen = g:rails_gnu_screen + endif + if has("gui_win32") + if &shellcmdflag == "-c" && ($PATH . &shell) =~? 'cygwin' + silent exe "!cygstart -d ".s:rquote(self.path())." ruby ".a:cmd + else + exe "!start ".cmd + endif + elseif exists("$STY") && !has("gui_running") && screen && executable("screen") + silent exe "!screen -ln -fn -t ".s:sub(s:sub(a:cmd,'\s.*',''),'^%(script|-rcommand)/','rails-').' '.cmd + elseif exists("$TMUX") && !has("gui_running") && screen && executable("tmux") + silent exe '!tmux new-window -d -n "'.s:sub(s:sub(a:cmd,'\s.*',''),'^%(script|-rcommand)/','rails-').'" "'.cmd.'"' + else + exe "!".cmd + endif + return v:shell_error +endfunction + +function! s:app_execute_script_command(cmd) dict abort + exe '!'.s:esccmd(self.script_shell_command(a:cmd)) + return v:shell_error +endfunction + +function! s:app_lightweight_ruby_eval(ruby,...) dict abort + let def = a:0 ? a:1 : "" + if !executable("ruby") + return def + endif + let args = '-e '.s:rquote('begin; require %{rubygems}; rescue LoadError; end; begin; require %{active_support}; rescue LoadError; end; '.a:ruby) + let cmd = self.ruby_shell_command(args) + " If the shell is messed up, this command could cause an error message + silent! let results = system(cmd) + return v:shell_error == 0 ? results : def +endfunction + +function! s:app_eval(ruby,...) dict abort + let def = a:0 ? a:1 : "" + if !executable("ruby") + return def + endif + let args = "-r./config/boot -r ".s:rquote(self.path("config/environment"))." -e ".s:rquote(a:ruby) + let cmd = self.ruby_shell_command(args) + " If the shell is messed up, this command could cause an error message + silent! let results = system(cmd) + return v:shell_error == 0 ? results : def +endfunction + +call s:add_methods('app', ['ruby_shell_command','script_shell_command','execute_script_command','background_script_command','lightweight_ruby_eval','eval']) + +" }}}1 +" Commands {{{1 + +function! s:prephelp() + let fn = fnamemodify(s:file,':h:h').'/doc/' + if filereadable(fn.'rails.txt') + if !filereadable(fn.'tags') || getftime(fn.'tags') <= getftime(fn.'rails.txt') + silent! helptags `=fn` + endif + endif +endfunction + +function! RailsHelpCommand(...) + call s:prephelp() + let topic = a:0 ? a:1 : "" + if topic == "" || topic == "-" + return "help rails" + elseif topic =~ '^g:' + return "help ".topic + elseif topic =~ '^-' + return "help rails".topic + else + return "help rails-".topic + endif +endfunction + +function! s:BufCommands() + call s:BufFinderCommands() + call s:BufNavCommands() + call s:BufScriptWrappers() + command! -buffer -bar -nargs=? -bang -count -complete=customlist,s:Complete_rake Rake :call s:Rake(0,! && ? -1 : ,) + command! -buffer -bar -nargs=? -bang -range -complete=customlist,s:Complete_preview Rpreview :call s:Preview(0,,) + command! -buffer -bar -nargs=? -bang -complete=customlist,s:Complete_environments Rlog :call s:Log(0,) + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_set Rset :call s:Set(0,) + command! -buffer -bar -nargs=0 Rtags :call rails#app().tags_command() + " Embedding all this logic directly into the command makes the error + " messages more concise. + command! -buffer -bar -nargs=? -bang Rdoc : + \ if 0 || =~ "^\\([:'-]\\|g:\\)" | + \ exe RailsHelpCommand() | + \ else | call s:Doc(0,) | endif + command! -buffer -bar -nargs=0 -bang Rrefresh :if 0|unlet! g:autoloaded_rails|source `=s:file`|endif|call s:Refresh(0) + if exists(":NERDTree") + command! -buffer -bar -nargs=? -complete=customlist,s:Complete_cd Rtree :NERDTree `=rails#app().path()` + elseif exists(":Project") + command! -buffer -bar -nargs=? Rtree :call s:Project(0,) + endif + command! -buffer -bar -nargs=? Rproject :call s:warn("Warning: :Rproject has been deprecated in favor of :Rtree") | Rtree + if exists("g:loaded_dbext") + command! -buffer -bar -nargs=? -complete=customlist,s:Complete_environments Rdbext :call s:BufDatabase(2,)|let b:dbext_buffer_defaulted = 1 + endif + let ext = expand("%:e") + if ext =~ s:viewspattern() + " TODO: complete controller names with trailing slashes here + command! -buffer -bar -nargs=? -range -complete=customlist,s:controllerList Rextract :,call s:Extract(0,) + endif + if RailsFilePath() =~ '\0) + endif +endfunction + +function! s:Doc(bang, string) + if a:string != "" + if exists("g:rails_search_url") + let query = substitute(a:string,'[^A-Za-z0-9_.~-]','\="%".printf("%02X",char2nr(submatch(0)))','g') + let url = printf(g:rails_search_url, query) + else + return s:error("specify a g:rails_search_url with %s for a query placeholder") + endif + elseif isdirectory(rails#app().path("doc/api/classes")) + let url = rails#app().path("/doc/api/index.html") + elseif s:getpidfor("0.0.0.0","8808") > 0 + let url = "http://localhost:8808" + else + let url = "http://api.rubyonrails.org" + endif + call s:initOpenURL() + if exists(":OpenURL") + exe "OpenURL ".s:escarg(url) + else + return s:error("No :OpenURL command found") + endif +endfunction + +function! s:Log(bang,arg) + if a:arg == "" + let lf = "log/".s:environment().".log" + else + let lf = "log/".a:arg.".log" + endif + let size = getfsize(rails#app().path(lf)) + if size >= 1048576 + call s:warn("Log file is ".((size+512)/1024)."KB. Consider :Rake log:clear") + endif + if a:bang + exe "cgetfile ".lf + clast + else + if exists(":Tail") + Tail `=rails#app().path(lf)` + else + pedit `=rails#app().path(lf)` + endif + endif +endfunction + +function! rails#new_app_command(bang,...) + if a:0 == 0 + let msg = "rails.vim ".g:autoloaded_rails + if a:bang && exists('b:rails_root') && RailsFileType() == '' + echo msg." (Rails)" + elseif a:bang && exists('b:rails_root') + echo msg." (Rails-".RailsFileType().")" + elseif a:bang + echo msg + else + !rails + endif + return + endif + let dir = "" + if a:1 !~ '^-' + let dir = a:1 + elseif a:{a:0} =~ '[\/]' + let dir = a:{a:0} + else + let dir = a:1 + endif + let str = "" + let c = 1 + while c <= a:0 + let str .= " " . s:rquote(expand(a:{c})) + let c += 1 + endwhile + let dir = expand(dir) + let append = "" + if a:bang + let append .= " --force" + endif + exe "!rails".append.str + if filereadable(dir."/".g:rails_default_file) + edit `=dir.'/'.g:rails_default_file` + endif +endfunction + +function! s:app_tags_command() dict + if exists("g:Tlist_Ctags_Cmd") + let cmd = g:Tlist_Ctags_Cmd + elseif executable("exuberant-ctags") + let cmd = "exuberant-ctags" + elseif executable("ctags-exuberant") + let cmd = "ctags-exuberant" + elseif executable("ctags") + let cmd = "ctags" + elseif executable("ctags.exe") + let cmd = "ctags.exe" + else + return s:error("ctags not found") + endif + exe '!'.cmd.' -f '.s:escarg(self.path("tmp/tags")).' -R --langmap="ruby:+.rake.builder.rjs" '.g:rails_ctags_arguments.' '.s:escarg(self.path()) +endfunction + +call s:add_methods('app',['tags_command']) + +function! s:Refresh(bang) + if exists("g:rubycomplete_rails") && g:rubycomplete_rails && has("ruby") && exists('g:rubycomplete_completions') + silent! ruby ActiveRecord::Base.reset_subclasses if defined?(ActiveRecord) + silent! ruby if defined?(ActiveSupport::Dependencies); ActiveSupport::Dependencies.clear; elsif defined?(Dependencies); Dependencies.clear; end + if a:bang + silent! ruby ActiveRecord::Base.clear_reloadable_connections! if defined?(ActiveRecord) + endif + endif + call rails#app().cache.clear() + silent doautocmd User BufLeaveRails + if a:bang + for key in keys(s:apps) + if type(s:apps[key]) == type({}) + call s:apps[key].cache.clear() + endif + call extend(s:apps[key],filter(copy(s:app_prototype),'type(v:val) == type(function("tr"))'),'force') + endfor + endif + let i = 1 + let max = bufnr('$') + while i <= max + let rr = getbufvar(i,"rails_root") + if rr != "" + call setbufvar(i,"rails_refresh",1) + endif + let i += 1 + endwhile + silent doautocmd User BufEnterRails +endfunction + +function! s:RefreshBuffer() + if exists("b:rails_refresh") && b:rails_refresh + let oldroot = b:rails_root + unlet! b:rails_root + let b:rails_refresh = 0 + call RailsBufInit(oldroot) + unlet! b:rails_refresh + endif +endfunction + +" }}}1 +" Rake {{{1 + +function! s:app_rake_tasks() dict + if self.cache.needs('rake_tasks') + call s:push_chdir() + try + let lines = split(system("rake -T"),"\n") + finally + call s:pop_command() + endtry + if v:shell_error != 0 + return [] + endif + call map(lines,'matchstr(v:val,"^rake\\s\\+\\zs\\S*")') + call filter(lines,'v:val != ""') + call self.cache.set('rake_tasks',lines) + endif + return self.cache.get('rake_tasks') +endfunction + +call s:add_methods('app', ['rake_tasks']) + +let s:efm_backtrace='%D(in\ %f),' + \.'%\\s%#from\ %f:%l:%m,' + \.'%\\s%#from\ %f:%l:,' + \.'%\\s#{RAILS_ROOT}/%f:%l:\ %#%m,' + \.'%\\s%#[%f:%l:\ %#%m,' + \.'%\\s%#%f:%l:\ %#%m,' + \.'%\\s%#%f:%l:,' + \.'%m\ [%f:%l]:' + +function! s:makewithruby(arg,bang,...) + let old_make = &makeprg + try + let &l:makeprg = rails#app().ruby_shell_command(a:arg) + exe 'make'.(a:bang ? '!' : '') + if !a:bang + cwindow + endif + finally + let &l:makeprg = old_make + endtry +endfunction + +function! s:Rake(bang,lnum,arg) + let self = rails#app() + let lnum = a:lnum < 0 ? 0 : a:lnum + let old_makeprg = &l:makeprg + let old_errorformat = &l:errorformat + try + if &l:makeprg !~# 'rake' + let &l:makeprg = 'rake' + endif + let &l:errorformat = s:efm_backtrace + let t = RailsFileType() + let arg = a:arg + if &filetype == "ruby" && arg == '' && g:rails_modelines + let mnum = s:lastmethodline(lnum) + let str = getline(mnum)."\n".getline(mnum+1)."\n".getline(mnum+2)."\n" + let pat = '\s\+\zs.\{-\}\ze\%(\n\|\s\s\|#{\@!\|$\)' + let mat = matchstr(str,'#\s*rake'.pat) + let mat = s:sub(mat,'\s+$','') + if mat != "" + let arg = mat + endif + endif + if arg == '' + let opt = s:getopt('task','bl') + if opt != '' + let arg = opt + else + let arg = rails#buffer().default_rake_task(lnum) + endif + endif + let withrubyargs = '-r ./config/boot -r '.s:rquote(self.path('config/environment')).' -e "puts \%((in \#{Dir.getwd}))" ' + if arg =~# '^notes\>' + let &l:errorformat = '%-P%f:,\ \ *\ [%*[\ ]%l]\ [%t%*[^]]] %m,\ \ *\ [%*[\ ]%l] %m,%-Q' + " %D to chdir is apparently incompatible with %P multiline messages + call s:push_chdir(1) + exe 'make! '.arg + call s:pop_command() + if !a:bang + cwindow + endif + elseif arg =~# '^\%(stats\|routes\|secret\|time:zones\|db:\%(charset\|collation\|fixtures:identify\>.*\|version\)\)\%([: ]\|$\)' + let &l:errorformat = '%D(in\ %f),%+G%.%#' + exe 'make! '.arg + if !a:bang + copen + endif + elseif arg =~ '^preview\>' + exe (lnum == 0 ? '' : lnum).'R'.s:gsub(arg,':','/') + elseif arg =~ '^runner:' + let arg = s:sub(arg,'^runner:','') + let root = matchstr(arg,'%\%(:\w\)*') + let file = expand(root).matchstr(arg,'%\%(:\w\)*\zs.*') + if file =~ '#.*$' + let extra = " -- -n ".matchstr(file,'#\zs.*') + let file = s:sub(file,'#.*','') + else + let extra = '' + endif + if self.has_file(file) || self.has_file(file.'.rb') + call s:makewithruby(withrubyargs.'-r"'.file.'"'.extra,a:bang,file !~# '_\%(spec\|test\)\%(\.rb\)\=$') + else + call s:makewithruby(withrubyargs.'-e '.s:esccmd(s:rquote(arg)),a:bang) + endif + elseif arg == 'run' || arg == 'runner' + call s:makewithruby(withrubyargs.'-r"'.RailsFilePath().'"',a:bang,RailsFilePath() !~# '_\%(spec\|test\)\%(\.rb\)\=$') + elseif arg =~ '^run:' + let arg = s:sub(arg,'^run:','') + let arg = s:sub(arg,'^\%:h',expand('%:h')) + let arg = s:sub(arg,'^%(\%|$|#@=)',expand('%')) + let arg = s:sub(arg,'#(\w+[?!=]=)$',' -- -n\1') + call s:makewithruby(withrubyargs.'-r'.arg,a:bang,arg !~# '_\%(spec\|test\)\.rb$') + else + exe 'make! '.arg + if !a:bang + cwindow + endif + endif + finally + let &l:errorformat = old_errorformat + let &l:makeprg = old_makeprg + endtry +endfunction + +function! s:readable_default_rake_task(lnum) dict abort + let app = self.app() + let t = self.type_name() + let lnum = a:lnum < 0 ? 0 : a:lnum + if self.getline(lnum) =~# '# rake ' + return matchstr(self.getline(lnum),'\C# rake \zs.*') + elseif self.getline(self.last_method_line(lnum)-1) =~# '# rake ' + return matchstr(self.getline(self.last_method_line(lnum)-1),'\C# rake \zs.*') + elseif self.getline(self.last_method_line(lnum)) =~# '# rake ' + return matchstr(self.getline(self.last_method_line(lnum)),'\C# rake \zs.*') + elseif self.getline(1) =~# '# rake ' && !lnum + return matchstr(self.getline(1),'\C# rake \zs.*') + elseif t =~ '^config-routes\>' + return 'routes' + elseif t =~ '^fixtures-yaml\>' && lnum + return "db:fixtures:identify LABEL=".self.last_method(lnum) + elseif t =~ '^fixtures\>' && lnum == 0 + return "db:fixtures:load FIXTURES=".s:sub(fnamemodify(self.name(),':r'),'^.{-}/fixtures/','') + elseif t =~ '^task\>' + let mnum = self.last_method_line(lnum) + let line = getline(mnum) + " We can't grab the namespace so only run tasks at the start of the line + if line =~# '^\%(task\|file\)\>' + return self.last_method(a:lnum) + else + return matchstr(self.getline(1),'\C# rake \zs.*') + endif + elseif t =~ '^spec\>' + if self.name() =~# '\ 0 + return 'spec SPEC="%:p":'.lnum + else + return 'spec SPEC="%:p"' + endif + elseif t =~ '^test\>' + let meth = self.last_method(lnum) + if meth =~ '^test_' + let call = " -n".meth."" + else + let call = "" + endif + if t =~ '^test-\%(unit\|functional\|integration\)$' + return s:sub(s:gsub(t,'-',':'),'unit$|functional$','&s')." TEST=\"%:p\"".s:sub(call,'^ ',' TESTOPTS=') + elseif self.name() =~# '\' && self.name() !~# '\' + return 'test:units TEST="%:p:r:s?[\/]app[\/]models[\/]?/test/unit/?_test.rb"' + elseif t=~ '^api\>' + return 'test:units TEST="%:p:r:s?[\/]app[\/]apis[\/]?/test/functional/?_test.rb"' + elseif t=~ '^\<\%(controller\|helper\|view\)\>' + if self.name() =~ '\' + if lnum > 0 + return 'cucumber FEATURE="%:p":'.lnum + else + return 'cucumber FEATURE="%:p"' + endif + elseif t =~ '^cucumber\>' + return 'cucumber' + else + return '' + endif +endfunction + +function! s:Complete_rake(A,L,P) + return s:completion_filter(rails#app().rake_tasks(),a:A) +endfunction + +call s:add_methods('readable',['default_rake_task']) + +" }}}1 +" Preview {{{1 + +function! s:initOpenURL() + if !exists(":OpenURL") + if has("gui_mac") || has("gui_macvim") || exists("$SECURITYSESSIONID") + command -bar -nargs=1 OpenURL :!open + elseif has("gui_win32") + command -bar -nargs=1 OpenURL :!start cmd /cstart /b + elseif executable("sensible-browser") + command -bar -nargs=1 OpenURL :!sensible-browser + endif + endif +endfunction + +function! s:scanlineforuris(line) + let url = matchstr(a:line,"\\v\\C%(%(GET|PUT|POST|DELETE)\\s+|\w+:/)/[^ \n\r\t<>\"]*[^] .,;\n\r\t<>\":]") + if url =~ '\C^\u\+\s\+' + let method = matchstr(url,'^\u\+') + let url = matchstr(url,'\s\+\zs.*') + if method !=? "GET" + let url .= (url =~ '?' ? '&' : '?') . '_method='.tolower(method) + endif + endif + if url != "" + return [url] + else + return [] + endif +endfunction + +function! s:readable_preview_urls(lnum) dict abort + let urls = [] + let start = self.last_method_line(a:lnum) - 1 + while start > 0 && self.getline(start) =~ '^\s*\%(\%(-\=\|<%\)#.*\)\=$' + let urls = s:scanlineforuris(self.getline(start)) + urls + let start -= 1 + endwhile + let start = 1 + while start < self.line_count() && self.getline(start) =~ '^\s*\%(\%(-\=\|<%\)#.*\)\=$' + let urls += s:scanlineforuris(self.getline(start)) + let start += 1 + endwhile + if has_key(self,'getvar') && self.getvar('rails_preview') != '' + let url += [self.getvar('rails_preview')] + end + if self.name() =~ '^public/stylesheets/sass/' + let urls = urls + [s:sub(s:sub(self.name(),'^public/stylesheets/sass/','/stylesheets/'),'\.sass$','.css')] + elseif self.name() =~ '^public/' + let urls = urls + [s:sub(self.name(),'^public','')] + elseif self.controller_name() != '' && self.controller_name() != 'application' + if self.type_name('controller') && self.last_method(a:lnum) != '' + let urls += ['/'.self.controller_name().'/'.self.last_method(a:lnum).'/'] + elseif self.type_name('controller','view-layout','view-partial') + let urls += ['/'.self.controller_name().'/'] + elseif self.type_name('view') + let urls += ['/'.s:controller().'/'.fnamemodify(self.name(),':t:r:r').'/'] + endif + endif + return urls +endfunction + +call s:add_methods('readable',['preview_urls']) + +function! s:Preview(bang,lnum,arg) + let root = s:getopt("root_url") + if root == '' + let root = s:getopt("url") + endif + let root = s:sub(root,'/$','') + if a:arg =~ '://' + let uri = a:arg + elseif a:arg != '' + let uri = root.'/'.s:sub(a:arg,'^/','') + else + let uri = get(rails#buffer().preview_urls(a:lnum),0,'') + let uri = root.'/'.s:sub(s:sub(uri,'^/',''),'/$','') + endif + call s:initOpenURL() + if exists(':OpenURL') && !a:bang + exe 'OpenURL '.uri + else + " Work around bug where URLs ending in / get handled as FTP + let url = uri.(uri =~ '/$' ? '?' : '') + silent exe 'pedit '.url + wincmd w + if &filetype == '' + if uri =~ '\.css$' + setlocal filetype=css + elseif uri =~ '\.js$' + setlocal filetype=javascript + elseif getline(1) =~ '^\s*<' + setlocal filetype=xhtml + endif + endif + call RailsBufInit(rails#app().path()) + map q :bwipe + wincmd p + if !a:bang + call s:warn("Define a :OpenURL command to use a browser") + endif + endif +endfunction + +function! s:Complete_preview(A,L,P) + return rails#buffer().preview_urls(a:L =~ '^\d' ? matchstr(a:L,'^\d\+') : line('.')) +endfunction + +" }}}1 +" Script Wrappers {{{1 + +function! s:BufScriptWrappers() + command! -buffer -bar -nargs=* -complete=customlist,s:Complete_script Rscript :call rails#app().script_command(0,) + command! -buffer -bar -nargs=* -complete=customlist,s:Complete_generate Rgenerate :call rails#app().generate_command(0,) + command! -buffer -bar -nargs=* -complete=customlist,s:Complete_destroy Rdestroy :call rails#app().destroy_command(0,) + command! -buffer -bar -nargs=? -bang -complete=customlist,s:Complete_server Rserver :call rails#app().server_command(0,) + command! -buffer -bang -nargs=1 -range=0 -complete=customlist,s:Complete_ruby Rrunner :call rails#app().runner_command(0 ? -2 : (==?:-1),) + command! -buffer -nargs=1 -range=0 -complete=customlist,s:Complete_ruby Rp :call rails#app().runner_command(==?:-1,'p begin '..' end') + command! -buffer -nargs=1 -range=0 -complete=customlist,s:Complete_ruby Rpp :call rails#app().runner_command(==?:-1,'require %{pp}; pp begin '..' end') + command! -buffer -nargs=1 -range=0 -complete=customlist,s:Complete_ruby Ry :call rails#app().runner_command(==?:-1,'y begin '..' end') +endfunction + +function! s:app_generators() dict + if self.cache.needs('generators') + let generators = self.relglob("vendor/plugins/","*/generators/*") + let generators += self.relglob("","lib/generators/*") + call filter(generators,'v:val =~ "/$"') + let generators += split(glob(expand("~/.rails/generators")."/*"),"\n") + call map(generators,'s:sub(v:val,"^.*[\\\\/]generators[\\\\/]\\ze.","")') + call map(generators,'s:sub(v:val,"[\\\\/]$","")') + call self.cache.set('generators',generators) + endif + return sort(split(g:rails_generators,"\n") + self.cache.get('generators')) +endfunction + +function! s:app_script_command(bang,...) dict + let str = "" + let cmd = a:0 ? a:1 : "console" + let c = 2 + while c <= a:0 + let str .= " " . s:rquote(a:{c}) + let c += 1 + endwhile + if cmd ==# "plugin" + call self.cache.clear('generators') + endif + if a:bang || cmd =~# 'console' + return self.background_script_command(cmd.str) + else + return self.execute_script_command(cmd.str) + endif +endfunction + +function! s:app_runner_command(count,args) dict + if a:count == -2 + return self.script_command(a:bang,"runner",a:args) + else + let str = self.ruby_shell_command('-r./config/boot -e "require '."'commands/runner'".'" '.s:rquote(a:args)) + let res = s:sub(system(str),'\n$','') + if a:count < 0 + echo res + else + exe a:count.'put =res' + endif + endif +endfunction + +function! s:getpidfor(bind,port) + if has("win32") || has("win64") + let netstat = system("netstat -anop tcp") + let pid = matchstr(netstat,'\<'.a:bind.':'.a:port.'\>.\{-\}LISTENING\s\+\zs\d\+') + elseif executable('lsof') + let pid = system("lsof -i 4tcp@".a:bind.':'.a:port."|grep LISTEN|awk '{print $2}'") + let pid = s:sub(pid,'\n','') + else + let pid = "" + endif + return pid +endfunction + +function! s:app_server_command(bang,arg) dict + let port = matchstr(a:arg,'\%(-p\|--port=\=\)\s*\zs\d\+') + if port == '' + let port = "3000" + endif + " TODO: Extract bind argument + let bind = "0.0.0.0" + if a:bang && executable("ruby") + let pid = s:getpidfor(bind,port) + if pid =~ '^\d\+$' + echo "Killing server with pid ".pid + if !has("win32") + call system("ruby -e 'Process.kill(:TERM,".pid.")'") + sleep 100m + endif + call system("ruby -e 'Process.kill(9,".pid.")'") + sleep 100m + endif + if a:arg == "-" + return + endif + endif + if has_key(self,'options') && has_key(self.options,'gnu_screen') + let screen = self.options.gnu_screen + else + let screen = g:rails_gnu_screen + endif + if has("win32") || has("win64") || (exists("$STY") && !has("gui_running") && screen && executable("screen")) || (exists("$TMUX") && !has("gui_running") && screen && executable("tmux")) + call self.background_script_command('server '.a:arg) + else + " --daemon would be more descriptive but lighttpd does not support it + call self.execute_script_command('server '.a:arg." -d") + endif + call s:setopt('a:root_url','http://'.(bind=='0.0.0.0'?'localhost': bind).':'.port.'/') +endfunction + +function! s:app_destroy_command(bang,...) dict + if a:0 == 0 + return self.execute_script_command('destroy') + elseif a:0 == 1 + return self.execute_script_command('destroy '.s:rquote(a:1)) + endif + let str = "" + let c = 1 + while c <= a:0 + let str .= " " . s:rquote(a:{c}) + let c += 1 + endwhile + call self.execute_script_command('destroy'.str) + call self.cache.clear('user_classes') +endfunction + +function! s:app_generate_command(bang,...) dict + if a:0 == 0 + return self.execute_script_command('generate') + elseif a:0 == 1 + return self.execute_script_command('generate '.s:rquote(a:1)) + endif + let cmd = join(map(copy(a:000),'s:rquote(v:val)'),' ') + if cmd !~ '-p\>' && cmd !~ '--pretend\>' + let execstr = self.script_shell_command('generate '.cmd.' -p -f') + let res = system(execstr) + let g:res = res + let junk = '\%(\e\[[0-9;]*m\)\=' + let file = matchstr(res,junk.'\s\+\%(create\|force\)'.junk.'\s\+\zs\f\+\.rb\ze\n') + if file == "" + let file = matchstr(res,junk.'\s\+\%(identical\)'.junk.'\s\+\zs\f\+\.rb\ze\n') + endif + else + let file = "" + endif + if !self.execute_script_command('generate '.cmd) && file != '' + call self.cache.clear('user_classes') + call self.cache.clear('features') + if file =~ '^db/migrate/\d\d\d\d' + let file = get(self.relglob('',s:sub(file,'\d+','[0-9]*[0-9]')),-1,file) + endif + edit `=self.path(file)` + endif +endfunction + +call s:add_methods('app', ['generators','script_command','runner_command','server_command','destroy_command','generate_command']) + +function! s:Complete_script(ArgLead,CmdLine,P) + let cmd = s:sub(a:CmdLine,'^\u\w*\s+','') + if cmd !~ '^[ A-Za-z0-9_=:-]*$' + return [] + elseif cmd =~# '^\w*$' + return s:completion_filter(rails#app().relglob("script/","**/*"),a:ArgLead) + elseif cmd =~# '^\%(plugin\)\s\+'.a:ArgLead.'$' + return s:completion_filter(["discover","list","install","update","remove","source","unsource","sources"],a:ArgLead) + elseif cmd =~# '\%(plugin\)\s\+\%(install\|remove\)\s\+'.a:ArgLead.'$' || cmd =~ '\%(generate\|destroy\)\s\+plugin\s\+'.a:ArgLead.'$' + return s:pluginList(a:ArgLead,a:CmdLine,a:P) + elseif cmd =~# '^\%(generate\|destroy\)\s\+'.a:ArgLead.'$' + return s:completion_filter(rails#app().generators(),a:ArgLead) + elseif cmd =~# '^\%(generate\|destroy\)\s\+\w\+\s\+'.a:ArgLead.'$' + let target = matchstr(cmd,'^\w\+\s\+\%(\w\+:\)\=\zs\w\+\ze\s\+') + if target =~# '^\w*controller$' + return filter(s:controllerList(a:ArgLead,"",""),'v:val !=# "application"') + elseif target ==# 'generator' + return s:completion_filter(map(rails#app().relglob('lib/generators/','*'),'s:sub(v:val,"/$","")')) + elseif target ==# 'helper' + return s:helperList(a:ArgLead,"","") + elseif target ==# 'integration_test' || target ==# 'integration_spec' || target ==# 'feature' + return s:integrationtestList(a:ArgLead,"","") + elseif target ==# 'metal' + return s:metalList(a:ArgLead,"","") + elseif target ==# 'migration' || target ==# 'session_migration' + return s:migrationList(a:ArgLead,"","") + elseif target =~# '^\w*\%(model\|resource\)$' || target =~# '\w*scaffold\%(_controller\)\=$' || target ==# 'mailer' + return s:modelList(a:ArgLead,"","") + elseif target ==# 'observer' + let observers = s:observerList("","","") + let models = s:modelList("","","") + if cmd =~# '^destroy\>' + let models = [] + endif + call filter(models,'index(observers,v:val) < 0') + return s:completion_filter(observers + models,a:ArgLead) + else + return [] + endif + elseif cmd =~# '^\%(generate\|destroy\)\s\+scaffold\s\+\w\+\s\+'.a:ArgLead.'$' + return filter(s:controllerList(a:ArgLead,"",""),'v:val !=# "application"') + return s:completion_filter(rails#app().environments()) + elseif cmd =~# '^\%(console\)\s\+\(--\=\w\+\s\+\)\='.a:ArgLead."$" + return s:completion_filter(rails#app().environments()+["-s","--sandbox"],a:ArgLead) + elseif cmd =~# '^\%(server\)\s\+.*-e\s\+'.a:ArgLead."$" + return s:completion_filter(rails#app().environments(),a:ArgLead) + elseif cmd =~# '^\%(server\)\s\+' + if a:ArgLead =~# '^--environment=' + return s:completion_filter(map(copy(rails#app().environments()),'"--environment=".v:val'),a:ArgLead) + else + return filter(["-p","-b","-e","-m","-d","-u","-c","-h","--port=","--binding=","--environment=","--mime-types=","--daemon","--debugger","--charset=","--help"],'s:startswith(v:val,a:ArgLead)') + endif + endif + return "" +endfunction + +function! s:CustomComplete(A,L,P,cmd) + let L = "Rscript ".a:cmd." ".s:sub(a:L,'^\h\w*\s+','') + let P = a:P - strlen(a:L) + strlen(L) + return s:Complete_script(a:A,L,P) +endfunction + +function! s:Complete_server(A,L,P) + return s:CustomComplete(a:A,a:L,a:P,"server") +endfunction + +function! s:Complete_console(A,L,P) + return s:CustomComplete(a:A,a:L,a:P,"console") +endfunction + +function! s:Complete_generate(A,L,P) + return s:CustomComplete(a:A,a:L,a:P,"generate") +endfunction + +function! s:Complete_destroy(A,L,P) + return s:CustomComplete(a:A,a:L,a:P,"destroy") +endfunction + +function! s:Complete_ruby(A,L,P) + return s:completion_filter(rails#app().user_classes()+["ActiveRecord::Base"],a:A) +endfunction + +" }}}1 +" Navigation {{{1 + +function! s:BufNavCommands() + command! -buffer -bar -nargs=? -complete=customlist,s:Complete_cd Rcd :cd `=rails#app().path()` + command! -buffer -bar -nargs=? -complete=customlist,s:Complete_cd Rlcd :lcd `=rails#app().path()` + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rfind :call s:Find(,'' ,) + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find REfind :call s:Find(,'E',) + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RSfind :call s:Find(,'S',) + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RVfind :call s:Find(,'V',) + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RTfind :call s:Find(,'T',) + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rsfind :RSfind + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rtabfind :RTfind + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit Redit :call s:Edit(,'' ,) + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit REedit :call s:Edit(,'E',) + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RSedit :call s:Edit(,'S',) + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RVedit :call s:Edit(,'V',) + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RTedit :call s:Edit(,'T',) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_edit RDedit :call s:Edit(,'D',) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related A :call s:Alternate('', ,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AE :call s:Alternate('E',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AS :call s:Alternate('S',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AV :call s:Alternate('V',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AT :call s:Alternate('T',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AD :call s:Alternate('D',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AN :call s:Related('' ,,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related R :call s:Related('' ,,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related RE :call s:Related('E',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related RS :call s:Related('S',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related RV :call s:Related('V',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related RT :call s:Related('T',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related RD :call s:Related('D',,,,) +endfunction + +function! s:djump(def) + let def = s:sub(a:def,'^[#:]','') + if def =~ '^\d\+$' + exe def + elseif def =~ '^!' + if expand('%') !~ '://' && !isdirectory(expand('%:p:h')) + call mkdir(expand('%:p:h'),'p') + endif + elseif def != '' + let ext = matchstr(def,'\.\zs.*') + let def = matchstr(def,'[^.]*') + let v:errmsg = '' + silent! exe "djump ".def + if ext != '' && (v:errmsg == '' || v:errmsg =~ '^E387') + let rpat = '\C^\s*\%(mail\>.*\|respond_to\)\s*\%(\ 0 + let variable = matchstr(getline(rline),rpat) + let success = search('\C^\s*'.variable.'\s*\.\s*\zs'.ext.'\>','',end) + if !success + silent! exe "djump ".def + endif + endif + endif + endif +endfunction + +function! s:Find(count,cmd,...) + let str = "" + if a:0 + let i = 1 + while i < a:0 + let str .= s:escarg(a:{i}) . " " + let i += 1 + endwhile + let file = a:{i} + let tail = matchstr(file,'[#!].*$\|:\d*\%(:in\>.*\)\=$') + if tail != "" + let file = s:sub(file,'[#!].*$|:\d*%(:in>.*)=$','') + endif + if file != "" + let file = s:RailsIncludefind(file) + endif + else + let file = s:RailsFind() + let tail = "" + endif + call s:findedit((a:count==1?'' : a:count).a:cmd,file.tail,str) +endfunction + +function! s:Edit(count,cmd,...) + if a:0 + let str = "" + let i = 1 + while i < a:0 + let str .= "`=a:".i."` " + let i += 1 + endwhile + let file = a:{i} + call s:findedit(s:editcmdfor(a:cmd),file,str) + else + exe s:editcmdfor(a:cmd) + endif +endfunction + +function! s:fuzzyglob(arg) + return s:gsub(s:gsub(a:arg,'[^/.]','[&]*'),'%(/|^)\.@!|\.','&*') +endfunction + +function! s:Complete_find(ArgLead, CmdLine, CursorPos) + let paths = s:pathsplit(&l:path) + let seen = {} + for path in paths + if s:startswith(path,rails#app().path()) && path !~ '[][*]' + let path = path[strlen(rails#app().path()) + 1 : ] + for file in rails#app().relglob(path == '' ? '' : path.'/',s:fuzzyglob(rails#underscore(a:ArgLead)), a:ArgLead =~# '\u' ? '.rb' : '') + let seen[file] = 1 + endfor + endif + endfor + let results = sort(map(keys(seen),'s:sub(v:val,"[.]rb$","")')) + return s:autocamelize(results,a:ArgLead) +endfunction + +function! s:Complete_edit(ArgLead, CmdLine, CursorPos) + return s:completion_filter(rails#app().relglob("",s:fuzzyglob(a:ArgLead)),a:ArgLead) +endfunction + +function! s:Complete_cd(ArgLead, CmdLine, CursorPos) + let all = rails#app().relglob("",a:ArgLead."*") + call filter(all,'v:val =~ "/$"') + return filter(all,'s:startswith(v:val,a:ArgLead)') +endfunction + +function! RailsIncludeexpr() + " Is this foolproof? + if mode() =~ '[iR]' || expand("") != v:fname + return s:RailsIncludefind(v:fname) + else + return s:RailsIncludefind(v:fname,1) + endif +endfunction + +function! s:linepeak() + let line = getline(line(".")) + let line = s:sub(line,'^(.{'.col(".").'}).*','\1') + let line = s:sub(line,'([:"'."'".']|\%[qQ]=[[({<])=\f*$','') + return line +endfunction + +function! s:matchcursor(pat) + let line = getline(".") + let lastend = 0 + while lastend >= 0 + let beg = match(line,'\C'.a:pat,lastend) + let end = matchend(line,'\C'.a:pat,lastend) + if beg < col(".") && end >= col(".") + return matchstr(line,'\C'.a:pat,lastend) + endif + let lastend = end + endwhile + return "" +endfunction + +function! s:findit(pat,repl) + let res = s:matchcursor(a:pat) + if res != "" + return substitute(res,'\C'.a:pat,a:repl,'') + else + return "" + endif +endfunction + +function! s:findamethod(func,repl) + return s:findit('\s*\<\%('.a:func.'\)\s*(\=\s*[@:'."'".'"]\(\f\+\)\>.\=',a:repl) +endfunction + +function! s:findasymbol(sym,repl) + return s:findit('\s*:\%('.a:sym.'\)\s*=>\s*(\=\s*[@:'."'".'"]\(\f\+\)\>.\=',a:repl) +endfunction + +function! s:findfromview(func,repl) + " ( ) ( ) ( \1 ) ( ) + return s:findit('\s*\%(<%\)\==\=\s*\<\%('.a:func.'\)\s*(\=\s*[@:'."'".'"]\(\f\+\)\>['."'".'"]\=\s*\%(%>\s*\)\=',a:repl) +endfunction + +function! s:RailsFind() + if filereadable(expand("")) + return expand("") + endif + + " UGH + let format = s:format('html') + + let res = s:findit('\v\s*.=',expand('%:h').'/\1') + if res != ""|return res.(fnamemodify(res,':e') == '' ? '.rb' : '')|endif + + let res = s:findit('\v['."'".'"]=',expand('%:h').'\1') + if res != ""|return res|endif + + let res = rails#underscore(s:findit('\v\s*<%(include|extend)\(=\s*<(\f+)>','\1')) + if res != ""|return res.".rb"|endif + + let res = s:findamethod('require','\1') + if res != ""|return res.(fnamemodify(res,':e') == '' ? '.rb' : '')|endif + + let res = s:findamethod('belongs_to\|has_one\|composed_of\|validates_associated\|scaffold','app/models/\1.rb') + if res != ""|return res|endif + + let res = rails#singularize(s:findamethod('has_many\|has_and_belongs_to_many','app/models/\1')) + if res != ""|return res.".rb"|endif + + let res = rails#singularize(s:findamethod('create_table\|change_table\|drop_table\|add_column\|rename_column\|remove_column\|add_index','app/models/\1')) + if res != ""|return res.".rb"|endif + + let res = rails#singularize(s:findasymbol('through','app/models/\1')) + if res != ""|return res.".rb"|endif + + let res = s:findamethod('fixtures','fixtures/\1') + if res != "" + return RailsFilePath() =~ '\\s*','app/controllers/\1') + if res =~ '#'|return s:sub(res,'#','_controller.rb#')|endif + + let res = s:findamethod('\%(match\|get\|put\|post\|delete\|redirect\)\s*(\=\s*[:''"][^''"]*[''"]\=\s*\%(,\s*:to\s*\)\==>\s*','app/controllers/\1') + if res =~ '#'|return s:sub(res,'#','_controller.rb#')|endif + + let res = s:findamethod('layout','\=s:findlayout(submatch(1))') + if res != ""|return res|endif + + let res = s:findasymbol('layout','\=s:findlayout(submatch(1))') + if res != ""|return res|endif + + let res = s:findamethod('helper','app/helpers/\1_helper.rb') + if res != ""|return res|endif + + let res = s:findasymbol('controller','app/controllers/\1_controller.rb') + if res != ""|return res|endif + + let res = s:findasymbol('action','\1') + if res != ""|return res|endif + + let res = s:findasymbol('template','app/views/\1') + if res != ""|return res|endif + + let res = s:sub(s:sub(s:findasymbol('partial','\1'),'^/',''),'\k+$','_&') + if res != ""|return res."\n".s:findview(res)|endif + + let res = s:sub(s:sub(s:findfromview('render\s*(\=\s*:partial\s\+=>\s*','\1'),'^/',''),'\k+$','_&') + if res != ""|return res."\n".s:findview(res)|endif + + let res = s:findamethod('render\s*:\%(template\|action\)\s\+=>\s*','\1.'.format.'\n\1') + if res != ""|return res|endif + + let res = s:sub(s:findfromview('render','\1'),'^/','') + if RailsFileType() =~ '^view\>' | let res = s:sub(res,'[^/]+$','_&') | endif + if res != ""|return res."\n".s:findview(res)|endif + + let res = s:findamethod('redirect_to\s*(\=\s*:action\s\+=>\s*','\1') + if res != ""|return res|endif + + let res = s:findfromview('stylesheet_link_tag','public/stylesheets/\1') + if res != '' && fnamemodify(res, ':e') == '' " Append the default extension iff the filename doesn't already contains an extension + let res .= '.css' + end + if res != ""|return res|endif + + let res = s:sub(s:findfromview('javascript_include_tag','public/javascripts/\1'),'/defaults>','/application') + if res != '' && fnamemodify(res, ':e') == '' " Append the default extension iff the filename doesn't already contains an extension + let res .= '.js' + end + if res != ""|return res|endif + + if RailsFileType() =~ '^controller\>' + let contr = s:controller() + let view = s:findit('\s*\(\=','/\1') + let res = s:findview(contr.'/'.view) + if res != ""|return res|endif + endif + + let old_isfname = &isfname + try + set isfname=@,48-57,/,-,_,:,# + " TODO: grab visual selection in visual mode + let cfile = expand("") + finally + let &isfname = old_isfname + endtry + let res = s:RailsIncludefind(cfile,1) + return res +endfunction + +function! s:app_named_route_file(route) dict + call self.route_names() + if self.cache.has("named_routes") && has_key(self.cache.get("named_routes"),a:route) + return self.cache.get("named_routes")[a:route] + endif + return "" +endfunction + +function! s:app_route_names() dict + if self.cache.needs("named_routes") + let exec = "ActionController::Routing::Routes.named_routes.each {|n,r| puts %{#{n} app/controllers/#{r.requirements[:controller]}_controller.rb##{r.requirements[:action]}}}" + let string = self.eval(exec) + let routes = {} + for line in split(string,"\n") + let route = split(line," ") + let name = route[0] + let routes[name] = route[1] + endfor + call self.cache.set("named_routes",routes) + endif + + return keys(self.cache.get("named_routes")) +endfunction + +call s:add_methods('app', ['route_names','named_route_file']) + +function! RailsNamedRoutes() + return rails#app().route_names() +endfunction + +function! s:RailsIncludefind(str,...) + if a:str ==# "ApplicationController" + return "application_controller.rb\napp/controllers/application.rb" + elseif a:str ==# "Test::Unit::TestCase" + return "test/unit/testcase.rb" + endif + let str = a:str + if a:0 == 1 + " Get the text before the filename under the cursor. + " We'll cheat and peak at this in a bit + let line = s:linepeak() + let line = s:sub(line,'([:"'."'".']|\%[qQ]=[[({<])=\f*$','') + else + let line = "" + endif + let str = s:sub(str,'^\s*','') + let str = s:sub(str,'\s*$','') + let str = s:sub(str,'^:=[:@]','') + let str = s:sub(str,':0x\x+$','') " For # style output + let str = s:gsub(str,"[\"']",'') + if line =~# '\<\(require\|load\)\s*(\s*$' + return str + elseif str =~# '^\l\w*#\w\+$' + return 'app/controllers/'.s:sub(str,'#','_controller.rb#') + endif + let str = rails#underscore(str) + let fpat = '\(\s*\%("\f*"\|:\f*\|'."'\\f*'".'\)\s*,\s*\)*' + if a:str =~# '\u' + " Classes should always be in .rb files + let str .= '.rb' + elseif line =~# ':partial\s*=>\s*' + let str = s:sub(str,'([^/]+)$','_\1') + let str = s:findview(str) + elseif line =~# '\\s*' + let str = s:findview(s:sub(str,'^/=','layouts/')) + elseif line =~# ':controller\s*=>\s*' + let str = 'app/controllers/'.str.'_controller.rb' + elseif line =~# '\\s*$' && RailsFileType() =~# '^config-routes\>') + if line !~# ':as\s*=>\s*$' + let str = s:sub(str,'_%(path|url)$','') + let str = s:sub(str,'^hash_for_','') + endif + let file = rails#app().named_route_file(str) + if file == "" + let str = s:sub(str,'^formatted_','') + if str =~# '^\%(new\|edit\)_' + let str = 'app/controllers/'.s:sub(rails#pluralize(str),'^(new|edit)_(.*)','\2_controller.rb#\1') + elseif str ==# rails#singularize(str) + " If the word can't be singularized, it's probably a link to the show + " method. We should verify by checking for an argument, but that's + " difficult the way things here are currently structured. + let str = 'app/controllers/'.rails#pluralize(str).'_controller.rb#show' + else + let str = 'app/controllers/'.str.'_controller.rb#index' + endif + else + let str = file + endif + elseif str !~ '/' + " If we made it this far, we'll risk making it singular. + let str = rails#singularize(str) + let str = s:sub(str,'_id$','') + endif + if str =~ '^/' && !filereadable(str) + let str = s:sub(str,'^/','') + endif + if str =~# '^lib/' && !filereadable(str) + let str = s:sub(str,'^lib/','') + endif + return str +endfunction + +" }}}1 +" File Finders {{{1 + +function! s:addfilecmds(type) + let l = s:sub(a:type,'^.','\l&') + let cmds = 'ESVTD ' + let cmd = '' + while cmds != '' + let cplt = " -complete=customlist,".s:sid.l."List" + exe "command! -buffer -bar ".(cmd == 'D' ? '-range=0 ' : '')."-nargs=*".cplt." R".cmd.l." :call s:".l.'Edit("'.(cmd == 'D' ? '' : '').cmd.'",)' + let cmd = strpart(cmds,0,1) + let cmds = strpart(cmds,1) + endwhile +endfunction + +function! s:BufFinderCommands() + command! -buffer -bar -nargs=+ Rnavcommand :call s:Navcommand(0,) + call s:addfilecmds("metal") + call s:addfilecmds("model") + call s:addfilecmds("view") + call s:addfilecmds("controller") + call s:addfilecmds("mailer") + call s:addfilecmds("migration") + call s:addfilecmds("observer") + call s:addfilecmds("helper") + call s:addfilecmds("layout") + call s:addfilecmds("fixtures") + call s:addfilecmds("locale") + if rails#app().has('test') || rails#app().has('spec') + call s:addfilecmds("unittest") + call s:addfilecmds("functionaltest") + endif + if rails#app().has('test') || rails#app().has('spec') || rails#app().has('cucumber') + call s:addfilecmds("integrationtest") + endif + if rails#app().has('spec') + call s:addfilecmds("spec") + endif + call s:addfilecmds("stylesheet") + call s:addfilecmds("javascript") + call s:addfilecmds("plugin") + call s:addfilecmds("task") + call s:addfilecmds("lib") + call s:addfilecmds("environment") + call s:addfilecmds("initializer") +endfunction + +function! s:completion_filter(results,A) + let results = sort(type(a:results) == type("") ? split(a:results,"\n") : copy(a:results)) + call filter(results,'v:val !~# "\\~$"') + let filtered = filter(copy(results),'s:startswith(v:val,a:A)') + if !empty(filtered) | return filtered | endif + let regex = s:gsub(a:A,'[^/]','[&].*') + let filtered = filter(copy(results),'v:val =~# "^".regex') + if !empty(filtered) | return filtered | endif + let regex = s:gsub(a:A,'.','[&].*') + let filtered = filter(copy(results),'v:val =~# regex') + return filtered +endfunction + +function! s:autocamelize(files,test) + if a:test =~# '^\u' + return s:completion_filter(map(copy(a:files),'rails#camelize(v:val)'),a:test) + else + return s:completion_filter(a:files,a:test) + endif +endfunction + +function! s:app_relglob(path,glob,...) dict + if exists("+shellslash") && ! &shellslash + let old_ss = &shellslash + let &shellslash = 1 + endif + let path = a:path + if path !~ '^/' && path !~ '^\w:' + let path = self.path(path) + endif + let suffix = a:0 ? a:1 : '' + let full_paths = split(glob(path.a:glob.suffix),"\n") + let relative_paths = [] + for entry in full_paths + if suffix == '' && isdirectory(entry) && entry !~ '/$' + let entry .= '/' + endif + let relative_paths += [entry[strlen(path) : -strlen(suffix)-1]] + endfor + if exists("old_ss") + let &shellslash = old_ss + endif + return relative_paths +endfunction + +call s:add_methods('app', ['relglob']) + +function! s:relglob(...) + return join(call(rails#app().relglob,a:000,rails#app()),"\n") +endfunction + +function! s:helperList(A,L,P) + return s:autocamelize(rails#app().relglob("app/helpers/","**/*","_helper.rb"),a:A) +endfunction + +function! s:controllerList(A,L,P) + let con = rails#app().relglob("app/controllers/","**/*",".rb") + call map(con,'s:sub(v:val,"_controller$","")') + return s:autocamelize(con,a:A) +endfunction + +function! s:mailerList(A,L,P) + return s:autocamelize(rails#app().relglob("app/mailers/","**/*",".rb"),a:A) +endfunction + +function! s:viewList(A,L,P) + let c = s:controller(1) + let top = rails#app().relglob("app/views/",s:fuzzyglob(a:A)) + call filter(top,'v:val !~# "\\~$"') + if c != '' && a:A !~ '/' + let local = rails#app().relglob("app/views/".c."/","*.*[^~]") + return s:completion_filter(local+top,a:A) + endif + return s:completion_filter(top,a:A) +endfunction + +function! s:layoutList(A,L,P) + return s:completion_filter(rails#app().relglob("app/views/layouts/","*"),a:A) +endfunction + +function! s:stylesheetList(A,L,P) + return s:completion_filter(rails#app().relglob("public/stylesheets/","**/*",".css"),a:A) +endfunction + +function! s:javascriptList(A,L,P) + return s:completion_filter(rails#app().relglob("public/javascripts/","**/*",".js"),a:A) +endfunction + +function! s:metalList(A,L,P) + return s:autocamelize(rails#app().relglob("app/metal/","**/*",".rb"),a:A) +endfunction + +function! s:modelList(A,L,P) + let models = rails#app().relglob("app/models/","**/*",".rb") + call filter(models,'v:val !~# "_observer$"') + return s:autocamelize(models,a:A) +endfunction + +function! s:observerList(A,L,P) + return s:autocamelize(rails#app().relglob("app/models/","**/*","_observer.rb"),a:A) +endfunction + +function! s:fixturesList(A,L,P) + return s:completion_filter(rails#app().relglob("test/fixtures/","**/*")+rails#app().relglob("spec/fixtures/","**/*"),a:A) +endfunction + +function! s:localeList(A,L,P) + return s:completion_filter(rails#app().relglob("config/locales/","**/*"),a:A) +endfunction + +function! s:migrationList(A,L,P) + if a:A =~ '^\d' + let migrations = rails#app().relglob("db/migrate/",a:A."[0-9_]*",".rb") + return map(migrations,'matchstr(v:val,"^[0-9]*")') + else + let migrations = rails#app().relglob("db/migrate/","[0-9]*[0-9]_*",".rb") + call map(migrations,'s:sub(v:val,"^[0-9]*_","")') + return s:autocamelize(migrations,a:A) + endif +endfunction + +function! s:unittestList(A,L,P) + let found = [] + if rails#app().has('test') + let found += rails#app().relglob("test/unit/","**/*","_test.rb") + endif + if rails#app().has('spec') + let found += rails#app().relglob("spec/models/","**/*","_spec.rb") + endif + return s:autocamelize(found,a:A) +endfunction + +function! s:functionaltestList(A,L,P) + let found = [] + if rails#app().has('test') + let found += rails#app().relglob("test/functional/","**/*","_test.rb") + endif + if rails#app().has('spec') + let found += rails#app().relglob("spec/controllers/","**/*","_spec.rb") + let found += rails#app().relglob("spec/mailers/","**/*","_spec.rb") + endif + return s:autocamelize(found,a:A) +endfunction + +function! s:integrationtestList(A,L,P) + if a:A =~# '^\u' + return s:autocamelize(rails#app().relglob("test/integration/","**/*","_test.rb"),a:A) + endif + let found = [] + if rails#app().has('test') + let found += rails#app().relglob("test/integration/","**/*","_test.rb") + endif + if rails#app().has('spec') + let found += rails#app().relglob("spec/integration/","**/*","_spec.rb") + endif + if rails#app().has('cucumber') + let found += rails#app().relglob("features/","**/*",".feature") + endif + return s:completion_filter(found,a:A) +endfunction + +function! s:specList(A,L,P) + return s:completion_filter(rails#app().relglob("spec/","**/*","_spec.rb"),a:A) +endfunction + +function! s:pluginList(A,L,P) + if a:A =~ '/' + return s:completion_filter(rails#app().relglob('vendor/plugins/',matchstr(a:A,'.\{-\}/').'**/*'),a:A) + else + return s:completion_filter(rails#app().relglob('vendor/plugins/',"*","/init.rb"),a:A) + endif +endfunction + +" Task files, not actual rake tasks +function! s:taskList(A,L,P) + let all = rails#app().relglob("lib/tasks/","**/*",".rake") + if RailsFilePath() =~ '\','".name."',\"".prefix."\",".string(suffix).",".string(filter).",".string(default).",)" + let cmd = strpart(cmds,0,1) + let cmds = strpart(cmds,1) + endwhile +endfunction + +function! s:CommandList(A,L,P) + let cmd = matchstr(a:L,'\CR[A-Z]\=\w\+') + exe cmd." &" + let lp = s:last_prefix . "\n" + let res = [] + while lp != "" + let p = matchstr(lp,'.\{-\}\ze\n') + let lp = s:sub(lp,'.{-}\n','') + let res += rails#app().relglob(p,s:last_filter,s:last_suffix) + endwhile + if s:last_camelize + return s:autocamelize(res,a:A) + else + return s:completion_filter(res,a:A) + endif +endfunction + +function! s:CommandEdit(cmd,name,prefix,suffix,filter,default,...) + if a:0 && a:1 == "&" + let s:last_prefix = a:prefix + let s:last_suffix = a:suffix + let s:last_filter = a:filter + let s:last_camelize = (a:suffix =~# '\.rb$') + else + if a:default == "both()" + if s:model() != "" + let default = s:model() + else + let default = s:controller() + endif + elseif a:default == "model()" + let default = s:model(1) + elseif a:default == "controller()" + let default = s:controller(1) + else + let default = a:default + endif + call s:EditSimpleRb(a:cmd,a:name,a:0 ? a:1 : default,a:prefix,a:suffix) + endif +endfunction + +function! s:EditSimpleRb(cmd,name,target,prefix,suffix,...) + let cmd = s:findcmdfor(a:cmd) + if a:target == "" + " Good idea to emulate error numbers like this? + return s:error("E471: Argument required") + endif + let f = a:0 ? a:target : rails#underscore(a:target) + let jump = matchstr(f,'[#!].*\|:\d*\%(:in\)\=$') + let f = s:sub(f,'[#!].*|:\d*%(:in)=$','') + if jump =~ '^!' + let cmd = s:editcmdfor(cmd) + endif + if f == '.' + let f = s:sub(f,'\.$','') + else + let f .= a:suffix.jump + endif + let f = s:gsub(a:prefix,'\n',f.'\n').f + return s:findedit(cmd,f) +endfunction + +function! s:app_migration(file) dict + let arg = a:file + if arg =~ '^0$\|^0\=[#:]' + let suffix = s:sub(arg,'^0*','') + if self.has_file('db/schema.rb') + return 'db/schema.rb'.suffix + elseif self.has_file('db/'.s:environment().'_structure.sql') + return 'db/'.s:environment().'_structure.sql'.suffix + else + return 'db/schema.rb'.suffix + endif + elseif arg =~ '^\d$' + let glob = '00'.arg.'_*.rb' + elseif arg =~ '^\d\d$' + let glob = '0'.arg.'_*.rb' + elseif arg =~ '^\d\d\d$' + let glob = ''.arg.'_*.rb' + elseif arg == '' + let glob = '*.rb' + else + let glob = '*'.rails#underscore(arg).'*rb' + endif + let migr = s:sub(glob(self.path('db/migrate/').glob),'.*\n','') + if s:startswith(migr,self.path()) + let migr = strpart(migr,1+strlen(self.path())) + endif + return migr +endfunction + +call s:add_methods('app', ['migration']) + +function! s:migrationEdit(cmd,...) + let cmd = s:findcmdfor(a:cmd) + let arg = a:0 ? a:1 : '' + let migr = arg == "." ? "db/migrate" : rails#app().migration(arg) + if migr != '' + call s:findedit(cmd,migr) + else + return s:error("Migration not found".(arg=='' ? '' : ': '.arg)) + endif +endfunction + +function! s:fixturesEdit(cmd,...) + if a:0 + let c = rails#underscore(a:1) + else + let c = rails#pluralize(s:model(1)) + endif + if c == "" + return s:error("E471: Argument required") + endif + let e = fnamemodify(c,':e') + let e = e == '' ? e : '.'.e + let c = fnamemodify(c,':r') + let file = get(rails#app().test_suites(),0,'test').'/fixtures/'.c.e + if file =~ '\.\w\+$' && rails#app().find_file(c.e,["test/fixtures","spec/fixtures"]) ==# '' + call s:edit(a:cmd,file) + else + call s:findedit(a:cmd,rails#app().find_file(c.e,["test/fixtures","spec/fixtures"],[".yml",".csv"],file)) + endif +endfunction + +function! s:localeEdit(cmd,...) + let c = a:0 ? a:1 : rails#app().default_locale() + if c =~# '\.' + call s:edit(a:cmd,rails#app().find_file(c,'config/locales',[],'config/locales/'.c)) + else + call s:findedit(a:cmd,rails#app().find_file(c,'config/locales',['.yml','.rb'],'config/locales/'.c)) + endif +endfunction + +function! s:metalEdit(cmd,...) + if a:0 + call s:EditSimpleRb(a:cmd,"metal",a:1,"app/metal/",".rb") + else + call s:EditSimpleRb(a:cmd,"metal",'config/boot',"",".rb") + endif +endfunction + +function! s:modelEdit(cmd,...) + call s:EditSimpleRb(a:cmd,"model",a:0? a:1 : s:model(1),"app/models/",".rb") +endfunction + +function! s:observerEdit(cmd,...) + call s:EditSimpleRb(a:cmd,"observer",a:0? a:1 : s:model(1),"app/models/","_observer.rb") +endfunction + +function! s:viewEdit(cmd,...) + if a:0 && a:1 =~ '^[^!#:]' + let view = matchstr(a:1,'[^!#:]*') + elseif rails#buffer().type_name('controller','mailer') + let view = s:lastmethod(line('.')) + else + let view = '' + endif + if view == '' + return s:error("No view name given") + elseif view == '.' + return s:edit(a:cmd,'app/views') + elseif view !~ '/' && s:controller(1) != '' + let view = s:controller(1) . '/' . view + endif + if view !~ '/' + return s:error("Cannot find view without controller") + endif + let file = "app/views/".view + let found = s:findview(view) + if found != '' + let dir = fnamemodify(rails#app().path(found),':h') + if !isdirectory(dir) + if a:0 && a:1 =~ '!' + call mkdir(dir) + else + return s:error('No such directory') + endif + endif + call s:edit(a:cmd,found) + elseif file =~ '\.\w\+$' + call s:findedit(a:cmd,file) + else + let format = s:format(rails#buffer().type_name('mailer') ? 'text' : 'html') + if glob(rails#app().path(file.'.'.format).'.*[^~]') != '' + let file .= '.' . format + endif + call s:findedit(a:cmd,file) + endif +endfunction + +function! s:findview(name) + let self = rails#buffer() + let name = a:name + let pre = 'app/views/' + if name !~# '/' + let controller = self.controller_name(1) + if controller != '' + let name = controller.'/'.name + endif + endif + if name =~# '\.\w\+\.\w\+$' || name =~# '\.'.s:viewspattern().'$' + return pre.name + else + for format in ['.'.s:format('html'), ''] + for type in split(s:view_types,',') + if self.app().has_file(pre.name.format.'.'.type) + return pre.name.format.'.'.type + endif + endfor + endfor + endif + return '' +endfunction + +function! s:findlayout(name) + return s:findview("layouts/".(a:name == '' ? 'application' : a:name)) +endfunction + +function! s:layoutEdit(cmd,...) + if a:0 + return s:viewEdit(a:cmd,"layouts/".a:1) + endif + let file = s:findlayout(s:controller(1)) + if file == "" + let file = s:findlayout("application") + endif + if file == "" + let file = "app/views/layouts/application.html.erb" + endif + call s:edit(a:cmd,s:sub(file,'^/','')) +endfunction + +function! s:controllerEdit(cmd,...) + let suffix = '.rb' + if a:0 == 0 + let controller = s:controller(1) + if RailsFileType() =~ '^view\%(-layout\|-partial\)\@!' + let suffix .= '#'.expand('%:t:r') + endif + else + let controller = a:1 + endif + if rails#app().has_file("app/controllers/".controller."_controller.rb") || !rails#app().has_file("app/controllers/".controller.".rb") + let suffix = "_controller".suffix + endif + return s:EditSimpleRb(a:cmd,"controller",controller,"app/controllers/",suffix) +endfunction + +function! s:mailerEdit(cmd,...) + return s:EditSimpleRb(a:cmd,"mailer",a:0? a:1 : s:controller(1),"app/mailers/\napp/models/",".rb") +endfunction + +function! s:helperEdit(cmd,...) + return s:EditSimpleRb(a:cmd,"helper",a:0? a:1 : s:controller(1),"app/helpers/","_helper.rb") +endfunction + +function! s:stylesheetEdit(cmd,...) + let name = a:0 ? a:1 : s:controller(1) + if rails#app().has('sass') && rails#app().has_file('public/stylesheets/sass/'.name.'.sass') + return s:EditSimpleRb(a:cmd,"stylesheet",name,"public/stylesheets/sass/",".sass",1) + else + return s:EditSimpleRb(a:cmd,"stylesheet",name,"public/stylesheets/",".css",1) + endif +endfunction + +function! s:javascriptEdit(cmd,...) + return s:EditSimpleRb(a:cmd,"javascript",a:0? a:1 : "application","public/javascripts/",".js",1) +endfunction + +function! s:unittestEdit(cmd,...) + let f = rails#underscore(a:0 ? matchstr(a:1,'[^!#:]*') : s:model(1)) + let jump = a:0 ? matchstr(a:1,'[!#:].*') : '' + if jump =~ '!' + let cmd = s:editcmdfor(a:cmd) + else + let cmd = s:findcmdfor(a:cmd) + endif + let mapping = {'test': ['test/unit/','_test.rb'], 'spec': ['spec/models/','_spec.rb']} + let tests = map(filter(rails#app().test_suites(),'has_key(mapping,v:val)'),'get(mapping,v:val)') + if empty(tests) + let tests = [mapping['test']] + endif + for [prefix, suffix] in tests + if !a:0 && RailsFileType() =~# '^model-aro\>' && f != '' && f !~# '_observer$' + if rails#app().has_file(prefix.f.'_observer'.suffix) + return s:findedit(cmd,prefix.f.'_observer'.suffix.jump) + endif + endif + endfor + for [prefix, suffix] in tests + if rails#app().has_file(prefix.f.suffix) + return s:findedit(cmd,prefix.f.suffix.jump) + endif + endfor + return s:EditSimpleRb(a:cmd,"unittest",f.jump,tests[0][0],tests[0][1],1) +endfunction + +function! s:functionaltestEdit(cmd,...) + let f = rails#underscore(a:0 ? matchstr(a:1,'[^!#:]*') : s:controller(1)) + let jump = a:0 ? matchstr(a:1,'[!#:].*') : '' + if jump =~ '!' + let cmd = s:editcmdfor(a:cmd) + else + let cmd = s:findcmdfor(a:cmd) + endif + let mapping = {'test': [['test/functional/'],['_test.rb','_controller_test.rb']], 'spec': [['spec/controllers/','spec/mailers/'],['_spec.rb','_controller_spec.rb']]} + let tests = map(filter(rails#app().test_suites(),'has_key(mapping,v:val)'),'get(mapping,v:val)') + if empty(tests) + let tests = [mapping[tests]] + endif + for [prefixes, suffixes] in tests + for prefix in prefixes + for suffix in suffixes + if rails#app().has_file(prefix.f.suffix) + return s:findedit(cmd,prefix.f.suffix.jump) + endif + endfor + endfor + endfor + return s:EditSimpleRb(a:cmd,"functionaltest",f.jump,tests[0][0][0],tests[0][1][0],1) +endfunction + +function! s:integrationtestEdit(cmd,...) + if !a:0 + return s:EditSimpleRb(a:cmd,"integrationtest","test/test_helper\nfeatures/support/env\nspec/spec_helper","",".rb") + endif + let f = rails#underscore(matchstr(a:1,'[^!#:]*')) + let jump = matchstr(a:1,'[!#:].*') + if jump =~ '!' + let cmd = s:editcmdfor(a:cmd) + else + let cmd = s:findcmdfor(a:cmd) + endif + let mapping = {'test': ['test/integration/','_test.rb'], 'spec': ['spec/integration/','_spec.rb'], 'cucumber': ['features/','.feature']} + let tests = map(filter(rails#app().test_suites(),'has_key(mapping,v:val)'),'get(mapping,v:val)') + if empty(tests) + let tests = [mapping['test']] + endif + for [prefix, suffix] in tests + if rails#app().has_file(prefix.f.suffix) + return s:findedit(cmd,prefix.f.suffix.jump) + elseif rails#app().has_file(prefix.rails#underscore(f).suffix) + return s:findedit(cmd,prefix.rails#underscore(f).suffix.jump) + endif + endfor + return s:EditSimpleRb(a:cmd,"integrationtest",f.jump,tests[0][0],tests[0][1],1) +endfunction + +function! s:specEdit(cmd,...) + if a:0 + return s:EditSimpleRb(a:cmd,"spec",a:1,"spec/","_spec.rb") + else + call s:EditSimpleRb(a:cmd,"spec","spec_helper","spec/",".rb") + endif +endfunction + +function! s:pluginEdit(cmd,...) + let cmd = s:findcmdfor(a:cmd) + let plugin = "" + let extra = "" + if RailsFilePath() =~ '\','split') + let cmd = s:sub(cmd,'find>','edit') + return cmd +endfunction + +function! s:try(cmd) abort + if !exists(":try") + " I've seen at least one weird setup without :try + exe a:cmd + else + try + exe a:cmd + catch + call s:error(s:sub(v:exception,'^.{-}:\zeE','')) + return 0 + endtry + endif + return 1 +endfunction + +function! s:findedit(cmd,files,...) abort + let cmd = s:findcmdfor(a:cmd) + let files = type(a:files) == type([]) ? copy(a:files) : split(a:files,"\n") + if len(files) == 1 + let file = files[0] + else + let file = get(filter(copy(files),'rails#app().has_file(s:sub(v:val,"#.*|:\\d*$",""))'),0,get(files,0,'')) + endif + if file =~ '[#!]\|:\d*\%(:in\)\=$' + let djump = matchstr(file,'!.*\|#\zs.*\|:\zs\d*\ze\%(:in\)\=$') + let file = s:sub(file,'[#!].*|:\d*%(:in)=$','') + else + let djump = '' + endif + if file == '' + let testcmd = "edit" + elseif isdirectory(rails#app().path(file)) + let arg = file == "." ? rails#app().path() : rails#app().path(file) + let testcmd = s:editcmdfor(cmd).' '.(a:0 ? a:1 . ' ' : '').s:escarg(arg) + exe testcmd + return + elseif rails#app().path() =~ '://' || cmd =~ 'edit' || cmd =~ 'split' + if file !~ '^/' && file !~ '^\w:' && file !~ '://' + let file = s:escarg(rails#app().path(file)) + endif + let testcmd = s:editcmdfor(cmd).' '.(a:0 ? a:1 . ' ' : '').file + else + let testcmd = cmd.' '.(a:0 ? a:1 . ' ' : '').file + endif + if s:try(testcmd) + call s:djump(djump) + endif +endfunction + +function! s:edit(cmd,file,...) + let cmd = s:editcmdfor(a:cmd) + let cmd .= ' '.(a:0 ? a:1 . ' ' : '') + let file = a:file + if file !~ '^/' && file !~ '^\w:' && file !~ '://' + exe cmd."`=fnamemodify(rails#app().path(file),':.')`" + else + exe cmd.file + endif +endfunction + +function! s:Alternate(cmd,line1,line2,count,...) + if a:0 + if a:count && a:cmd !~# 'D' + return call('s:Find',[1,a:line1.a:cmd]+a:000) + elseif a:count + return call('s:Edit',[1,a:line1.a:cmd]+a:000) + else + return call('s:Edit',[1,a:cmd]+a:000) + endif + else + let file = s:getopt(a:count ? 'related' : 'alternate', 'bl') + if file == '' + let file = rails#buffer().related(a:count) + endif + if file != '' + call s:findedit(a:cmd,file) + else + call s:warn("No alternate file is defined") + endif + endif +endfunction + +function! s:Related(cmd,line1,line2,count,...) + if a:count == 0 && a:0 == 0 + return s:Alternate(a:cmd,a:line1,a:line1,a:line1) + else + return call('s:Alternate',[a:cmd,a:line1,a:line2,a:count]+a:000) + endif +endfunction + +function! s:Complete_related(A,L,P) + if a:L =~# '^[[:alpha:]]' + return s:Complete_edit(a:A,a:L,a:P) + else + return s:Complete_find(a:A,a:L,a:P) + endif +endfunction + +function! s:readable_related(...) dict abort + let f = self.name() + let t = self.type_name() + if a:0 && a:1 + let lastmethod = self.last_method(a:1) + if t =~ '^\%(controller\|mailer\)\>' && lastmethod != "" + let root = s:sub(s:sub(s:sub(f,'/application%(_controller)=\.rb$','/shared_controller.rb'),'/%(controllers|models|mailers)/','/views/'),'%(_controller)=\.rb$','/'.lastmethod) + let format = self.last_format(a:1) + if format == '' + let format = t =~# '^mailer\>' ? 'text' : 'html' + endif + if glob(self.app().path().'/'.root.'.'.format.'.*[^~]') != '' + return root . '.' . format + else + return root + endif + elseif f =~ '\' + return s:sub(s:sub(s:sub(f,'/views/','/controllers/'),'/layouts/(\k+)\..*$','/\1_controller.rb'),'' + let controller = s:sub(s:sub(f,'/views/','/controllers/'),'/(\k+%(\.\k+)=)\..*$','_controller.rb#\1') + let controller2 = s:sub(s:sub(f,'/views/','/controllers/'),'/(\k+%(\.\k+)=)\..*$','.rb#\1') + let mailer = s:sub(s:sub(f,'/views/','/mailers/'),'/(\k+%(\.\k+)=)\..*$','.rb#\1') + let model = s:sub(s:sub(f,'/views/','/models/'),'/(\k+)\..*$','.rb#\1') + if self.app().has_file(s:sub(controller,'#.{-}$','')) + return controller + elseif self.app().has_file(s:sub(controller2,'#.{-}$','')) + return controller2 + elseif self.app().has_file(s:sub(mailer,'#.{-}$','')) + return mailer + elseif self.app().has_file(s:sub(model,'#.{-}$','')) || model =~ '_mailer\.rb#' + return model + else + return controller + endif + elseif t =~ '^controller\>' + return s:sub(s:sub(f,'/controllers/','/helpers/'),'%(_controller)=\.rb$','_helper.rb') + " elseif t=~ '^helper\>' + " return s:findlayout(s:controller()) + elseif t =~ '^model-arb\>' + let table_name = matchstr(join(self.getline(1,50),"\n"),'\n\s*set_table_name\s*[:"'']\zs\w\+') + if table_name == '' + let table_name = rails#pluralize(s:gsub(s:sub(fnamemodify(f,':r'),'.{-}' + return s:sub(f,'_observer\.rb$','.rb') + elseif f =~ '\ me') + let migration = "db/migrate/".get(candidates,0,migrations[0]).".rb" + endif + return migration . (exists('l:lastmethod') && lastmethod != '' ? '#'.lastmethod : '') + elseif f =~ '\' + return "public/javascripts/application.js" + elseif f =~ '\' + let spec1 = fnamemodify(f,':s?\' + let dest = fnamemodify(f,':r:s?/layouts\>??').'/layout.'.fnamemodify(f,':e') + else + let dest = f + endif + return s:sub(s:sub(dest,'' + let api = s:sub(s:sub(f,'/controllers/','/apis/'),'_controller\.rb$','_api.rb') + return api + elseif t =~ '^api\>' + return s:sub(s:sub(f,'/apis/','/controllers/'),'_api\.rb$','_controller.rb') + elseif t =~ '^helper\>' + let controller = s:sub(s:sub(f,'/helpers/','/controllers/'),'_helper\.rb$','_controller.rb') + let controller = s:sub(controller,'application_controller','application') + let spec = s:sub(s:sub(f,'' && f =~ '\' + let file = rails#singularize(fnamemodify(f,":t:r")).'_test.rb' + return file + elseif f == '' + call s:warn("No filename present") + elseif f =~ '\' + return s:sub(s:sub(f,'' + return s:sub(file,'' + return s:sub(file,'' + return s:sub(file,'' + return s:sub(file,'test/unit/','app/models/')."\n".s:sub(file,'test/unit/','lib/') + elseif t =~ '^test-functional\>' + if file =~ '_api\.rb' + return s:sub(file,'test/functional/','app/apis/') + elseif file =~ '_controller\.rb' + return s:sub(file,'test/functional/','app/controllers/') + else + return s:sub(file,'test/functional/','') + endif + elseif t == 'spec-lib' + return s:sub(file,'' + return s:sub(file,' 1 + return s:error("Incorrect number of arguments") + endif + if a:1 =~ '[^a-z0-9_/.]' + return s:error("Invalid partial name") + endif + let rails_root = rails#app().path() + let ext = expand("%:e") + let file = s:sub(a:1,'%(/|^)\zs_\ze[^/]*$','') + let first = a:firstline + let last = a:lastline + let range = first.",".last + if RailsFileType() =~ '^view-layout\>' + if RailsFilePath() =~ '\' + let curdir = 'app/views/shared' + if file !~ '/' + let file = "shared/" .file + endif + else + let curdir = s:sub(RailsFilePath(),'.* 0 + if bufloaded(out) + return s:error("Partial already open in buffer ".bufnr(out)) + else + exe "bwipeout ".bufnr(out) + endif + endif + " No tabs, they'll just complicate things + if ext =~? '^\%(rhtml\|erb\|dryml\)$' + let erub1 = '\<\%\s*' + let erub2 = '\s*-=\%\>' + else + let erub1 = '' + let erub2 = '' + endif + let spaces = matchstr(getline(first),"^ *") + if getline(last+1) =~ '\v^\s*'.erub1.'end'.erub2.'\s*$' + let fspaces = matchstr(getline(last+1),"^ *") + if getline(first-1) =~ '\v^'.fspaces.erub1.'for\s+(\k+)\s+in\s+([^ %>]+)'.erub2.'\s*$' + let collection = s:sub(getline(first-1),'^'.fspaces.erub1.'for\s+(\k+)\s+in\s+([^ >]+)'.erub2.'\s*$','\1>\2') + elseif getline(first-1) =~ '\v^'.fspaces.erub1.'([^ %>]+)\.each\s+do\s+\|\s*(\k+)\s*\|'.erub2.'\s*$' + let collection = s:sub(getline(first-1),'^'.fspaces.erub1.'([^ %>]+)\.each\s+do\s+\|\s*(\k+)\s*\|'.erub2.'\s*$','\2>\1') + endif + if collection != '' + let var = matchstr(collection,'^\k\+') + let collection = s:sub(collection,'^\k+\>','') + let first -= 1 + let last += 1 + endif + else + let fspaces = spaces + endif + let renderstr = "render :partial => '".fnamemodify(file,":r:r")."'" + if collection != "" + let renderstr .= ", :collection => ".collection + elseif "@".name != var + let renderstr .= ", :object => ".var + endif + if ext =~? '^\%(rhtml\|erb\|dryml\)$' + let renderstr = "<%= ".renderstr." %>" + elseif ext == "rxml" || ext == "builder" + let renderstr = "xml << ".s:sub(renderstr,"render ","render(").")" + elseif ext == "rjs" + let renderstr = "page << ".s:sub(renderstr,"render ","render(").")" + elseif ext == "haml" + let renderstr = "= ".renderstr + elseif ext == "mn" + let renderstr = "_".renderstr + endif + let buf = @@ + silent exe range."yank" + let partial = @@ + let @@ = buf + let old_ai = &ai + try + let &ai = 0 + silent exe "norm! :".first.",".last."change\".fspaces.renderstr."\.\" + finally + let &ai = old_ai + endtry + if renderstr =~ '<%' + norm ^6w + else + norm ^5w + endif + let ft = &ft + if &hidden + enew + else + new + endif + let shortout = fnamemodify(out,':.') + silent file `=shortout` + let &ft = ft + let @@ = partial + silent put + 0delete + let @@ = buf + if spaces != "" + silent! exe '%substitute/^'.spaces.'//' + endif + silent! exe '%substitute?\%(\w\|[@:"'."'".'-]\)\@?'.name.'?g' + 1 + call RailsBufInit(rails_root) + if exists("l:partial_warn") + call s:warn("Warning: partial exists!") + endif +endfunction + +" }}}1 +" Migration Inversion {{{1 + +function! s:mkeep(str) + " Things to keep (like comments) from a migration statement + return matchstr(a:str,' #[^{].*') +endfunction + +function! s:mextargs(str,num) + if a:str =~ '^\s*\w\+\s*(' + return s:sub(matchstr(a:str,'^\s*\w\+\s*\zs(\%([^,)]\+[,)]\)\{,'.a:num.'\}'),',$',')') + else + return s:sub(s:sub(matchstr(a:str,'\w\+\>\zs\s*\%([^,){ ]*[, ]*\)\{,'.a:num.'\}'),'[, ]*$',''),'^\s+',' ') + endif +endfunction + +function! s:migspc(line) + return matchstr(a:line,'^\s*') +endfunction + +function! s:invertrange(beg,end) + let str = "" + let lnum = a:beg + while lnum <= a:end + let line = getline(lnum) + let add = "" + if line == '' + let add = ' ' + elseif line =~ '^\s*\(#[^{].*\)\=$' + let add = line + elseif line =~ '\' + let add = s:migspc(line)."drop_table".s:mextargs(line,1).s:mkeep(line) + let lnum = s:endof(lnum) + elseif line =~ '\' + let add = s:sub(line,'\s*\(=\s*([^,){ ]*).*','create_table \1 do |t|'."\n".matchstr(line,'^\s*').'end').s:mkeep(line) + elseif line =~ '\' + let add = s:migspc(line).'remove_column'.s:mextargs(line,2).s:mkeep(line) + elseif line =~ '\' + let add = s:sub(line,'','add_column') + elseif line =~ '\' + let add = s:migspc(line).'remove_index'.s:mextargs(line,1) + let mat = matchstr(line,':name\s*=>\s*\zs[^ ,)]*') + if mat != '' + let add = s:sub(add,'\)=$',', :name => '.mat.'&') + else + let mat = matchstr(line,'\[^,]*,\s*\zs\%(\[[^]]*\]\|[:"'."'".']\w*["'."'".']\=\)') + if mat != '' + let add = s:sub(add,'\)=$',', :column => '.mat.'&') + endif + endif + let add .= s:mkeep(line) + elseif line =~ '\' + let add = s:sub(s:sub(line,'\s*','') + elseif line =~ '\' + let add = s:sub(line,'' + let add = s:migspc(line).'change_column'.s:mextargs(line,2).s:mkeep(line) + elseif line =~ '\' + let add = s:migspc(line).'change_column_default'.s:mextargs(line,2).s:mkeep(line) + elseif line =~ '\.update_all(\(["'."'".']\).*\1)$' || line =~ '\.update_all \(["'."'".']\).*\1$' + " .update_all('a = b') => .update_all('b = a') + let pre = matchstr(line,'^.*\.update_all[( ][}'."'".'"]') + let post = matchstr(line,'["'."'".'])\=$') + let mat = strpart(line,strlen(pre),strlen(line)-strlen(pre)-strlen(post)) + let mat = s:gsub(','.mat.',','%(,\s*)@<=([^ ,=]{-})(\s*\=\s*)([^,=]{-})%(\s*,)@=','\3\2\1') + let add = pre.s:sub(s:sub(mat,'^,',''),',$','').post + elseif line =~ '^s\*\%(if\|unless\|while\|until\|for\)\>' + let lnum = s:endof(lnum) + endif + if lnum == 0 + return -1 + endif + if add == "" + let add = s:sub(line,'^\s*\zs.*','raise ActiveRecord::IrreversibleMigration') + elseif add == " " + let add = "" + endif + let str = add."\n".str + let lnum += 1 + endwhile + let str = s:gsub(str,'(\s*raise ActiveRecord::IrreversibleMigration\n)+','\1') + return str +endfunction + +function! s:Invert(bang) + let err = "Could not parse method" + let src = "up" + let dst = "down" + let beg = search('\%('.&l:define.'\).*'.src.'\>',"w") + let end = s:endof(beg) + if beg + 1 == end + let src = "down" + let dst = "up" + let beg = search('\%('.&l:define.'\).*'.src.'\>',"w") + let end = s:endof(beg) + endif + if !beg || !end + return s:error(err) + endif + let str = s:invertrange(beg+1,end-1) + if str == -1 + return s:error(err) + endif + let beg = search('\%('.&l:define.'\).*'.dst.'\>',"w") + let end = s:endof(beg) + if !beg || !end + return s:error(err) + endif + if foldclosed(beg) > 0 + exe beg."foldopen!" + endif + if beg + 1 < end + exe (beg+1).",".(end-1)."delete _" + endif + if str != '' + exe beg.'put =str' + exe 1+beg + endif +endfunction + +" }}}1 +" Cache {{{1 + +let s:cache_prototype = {'dict': {}} + +function! s:cache_clear(...) dict + if a:0 == 0 + let self.dict = {} + elseif has_key(self,'dict') && has_key(self.dict,a:1) + unlet! self.dict[a:1] + endif +endfunction + +function! rails#cache_clear(...) + if exists('b:rails_root') + return call(rails#app().cache.clear,a:000,rails#app().cache) + endif +endfunction + +function! s:cache_get(...) dict + if a:0 == 1 + return self.dict[a:1] + else + return self.dict + endif +endfunction + +function! s:cache_has(key) dict + return has_key(self.dict,a:key) +endfunction + +function! s:cache_needs(key) dict + return !has_key(self.dict,a:key) +endfunction + +function! s:cache_set(key,value) dict + let self.dict[a:key] = a:value +endfunction + +call s:add_methods('cache', ['clear','needs','has','get','set']) + +let s:app_prototype.cache = s:cache_prototype + +" }}}1 +" Syntax {{{1 + +function! s:resetomnicomplete() + if exists("+completefunc") && &completefunc == 'syntaxcomplete#Complete' + if exists("g:loaded_syntax_completion") + " Ugly but necessary, until we have our own completion + unlet g:loaded_syntax_completion + silent! delfunction syntaxcomplete#Complete + endif + endif +endfunction + +function! s:helpermethods() + return "" + \."atom_feed audio_path audio_tag auto_discovery_link_tag auto_link " + \."benchmark button_to button_to_function button_to_remote " + \."cache capture cdata_section check_box check_box_tag collection_select concat content_for content_tag content_tag_for csrf_meta_tag current_cycle cycle " + \."date_select datetime_select debug distance_of_time_in_words distance_of_time_in_words_to_now div_for dom_class dom_id draggable_element draggable_element_js drop_receiving_element drop_receiving_element_js " + \."error_message_on error_messages_for escape_javascript escape_once evaluate_remote_response excerpt " + \."field_set_tag fields_for file_field file_field_tag form form_for form_remote_for form_remote_tag form_tag " + \."grouped_collection_select grouped_options_for_select " + \."hidden_field hidden_field_tag highlight " + \."image_path image_submit_tag image_tag input " + \."javascript_cdata_section javascript_include_tag javascript_path javascript_tag " + \."l label label_tag link_to link_to_function link_to_if link_to_remote link_to_unless link_to_unless_current localize " + \."mail_to markdown " + \."number_to_currency number_to_human_size number_to_percentage number_to_phone number_with_delimiter number_with_precision " + \."observe_field observe_form option_groups_from_collection_for_select options_for_select options_from_collection_for_select " + \."partial_path password_field password_field_tag path_to_audio path_to_image path_to_javascript path_to_stylesheet path_to_video periodically_call_remote pluralize " + \."radio_button radio_button_tag raw remote_form_for remote_function reset_cycle " + \."safe_concat sanitize sanitize_css select select_date select_datetime select_day select_hour select_minute select_month select_second select_tag select_time select_year simple_format sortable_element sortable_element_js strip_links strip_tags stylesheet_link_tag stylesheet_path submit_tag submit_to_remote " + \."t tag text_area text_area_tag text_field text_field_tag textilize textilize_without_paragraph time_ago_in_words time_select time_zone_options_for_select time_zone_select translate truncate " + \."update_page update_page_tag url_for " + \."video_path video_tag visual_effect " + \."word_wrap" +endfunction + +function! s:app_user_classes() dict + if self.cache.needs("user_classes") + let controllers = self.relglob("app/controllers/","**/*",".rb") + call map(controllers,'v:val == "application" ? v:val."_controller" : v:val') + let classes = + \ self.relglob("app/models/","**/*",".rb") + + \ controllers + + \ self.relglob("app/helpers/","**/*",".rb") + + \ self.relglob("lib/","**/*",".rb") + call map(classes,'rails#camelize(v:val)') + call self.cache.set("user_classes",classes) + endif + return self.cache.get('user_classes') +endfunction + +function! s:app_user_assertions() dict + if self.cache.needs("user_assertions") + if self.has_file("test/test_helper.rb") + let assertions = map(filter(s:readfile(self.path("test/test_helper.rb")),'v:val =~ "^ def assert_"'),'matchstr(v:val,"^ def \\zsassert_\\w\\+")') + else + let assertions = [] + endif + call self.cache.set("user_assertions",assertions) + endif + return self.cache.get('user_assertions') +endfunction + +call s:add_methods('app', ['user_classes','user_assertions']) + +function! s:BufSyntax() + if (!exists("g:rails_syntax") || g:rails_syntax) + let t = RailsFileType() + let s:javascript_functions = "$ $$ $A $F $H $R $w jQuery" + let classes = s:gsub(join(rails#app().user_classes(),' '),'::',' ') + if &syntax == 'ruby' + if classes != '' + exe "syn keyword rubyRailsUserClass ".classes." containedin=rubyClassDeclaration,rubyModuleDeclaration,rubyClass,rubyModule" + endif + if t == '' + syn keyword rubyRailsMethod params request response session headers cookies flash + endif + if t =~ '^api\>' + syn keyword rubyRailsAPIMethod api_method inflect_names + endif + if t =~ '^model$' || t =~ '^model-arb\>' + syn keyword rubyRailsARMethod default_scope named_scope scope serialize + syn keyword rubyRailsARAssociationMethod belongs_to has_one has_many has_and_belongs_to_many composed_of accepts_nested_attributes_for + syn keyword rubyRailsARCallbackMethod before_create before_destroy before_save before_update before_validation before_validation_on_create before_validation_on_update + syn keyword rubyRailsARCallbackMethod after_create after_destroy after_save after_update after_validation after_validation_on_create after_validation_on_update + syn keyword rubyRailsARClassMethod attr_accessible attr_protected establish_connection set_inheritance_column set_locking_column set_primary_key set_sequence_name set_table_name + syn keyword rubyRailsARValidationMethod validate validates validate_on_create validate_on_update validates_acceptance_of validates_associated validates_confirmation_of validates_each validates_exclusion_of validates_format_of validates_inclusion_of validates_length_of validates_numericality_of validates_presence_of validates_size_of validates_uniqueness_of + syn keyword rubyRailsMethod logger + endif + if t =~ '^model-aro\>' + syn keyword rubyRailsARMethod observe + endif + if t =~ '^mailer\>' + syn keyword rubyRailsMethod logger attachments + syn keyword rubyRailsRenderMethod mail render + syn keyword rubyRailsControllerMethod default helper helper_attr helper_method + endif + if t =~ '^controller\>' || t =~ '^view\>' || t=~ '^helper\>' + syn keyword rubyRailsMethod params request response session headers cookies flash + syn keyword rubyRailsRenderMethod render + syn keyword rubyRailsMethod logger + endif + if t =~ '^helper\>' || t=~ '^view\>' + exe "syn keyword rubyRailsHelperMethod ".s:gsub(s:helpermethods(),'<%(content_for|select)\s+','') + syn match rubyRailsHelperMethod '\\%(\s*{\|\s*do\>\|\s*(\=\s*&\)\@!' + syn match rubyRailsHelperMethod '\<\%(content_for?\=\|current_page?\)' + syn match rubyRailsViewMethod '\.\@' + if t =~ '\' + syn keyword rubyRailsMethod local_assigns + endif + elseif t =~ '^controller\>' + syn keyword rubyRailsControllerMethod helper helper_attr helper_method filter layout url_for serialize exempt_from_layout filter_parameter_logging hide_action cache_sweeper protect_from_forgery caches_page cache_page caches_action expire_page expire_action rescue_from + syn keyword rubyRailsRenderMethod render_to_string redirect_to head + syn match rubyRailsRenderMethod '\?\@!' + syn keyword rubyRailsFilterMethod before_filter append_before_filter prepend_before_filter after_filter append_after_filter prepend_after_filter around_filter append_around_filter prepend_around_filter skip_before_filter skip_after_filter + syn keyword rubyRailsFilterMethod verify + endif + if t =~ '^\%(db-\)\=\%(migration\|schema\)\>' + syn keyword rubyRailsMigrationMethod create_table change_table drop_table rename_table add_column rename_column change_column change_column_default remove_column add_index remove_index + endif + if t =~ '^test\>' + if !empty(rails#app().user_assertions()) + exe "syn keyword rubyRailsUserMethod ".join(rails#app().user_assertions()) + endif + syn keyword rubyRailsTestMethod add_assertion assert assert_block assert_equal assert_in_delta assert_instance_of assert_kind_of assert_match assert_nil assert_no_match assert_not_equal assert_not_nil assert_not_same assert_nothing_raised assert_nothing_thrown assert_operator assert_raise assert_respond_to assert_same assert_send assert_throws assert_recognizes assert_generates assert_routing flunk fixtures fixture_path use_transactional_fixtures use_instantiated_fixtures assert_difference assert_no_difference assert_valid + syn keyword rubyRailsTestMethod test setup teardown + if t !~ '^test-unit\>' + syn match rubyRailsTestControllerMethod '\.\@' + syn keyword rubyRailsTestControllerMethod get_via_redirect post_via_redirect put_via_redirect delete_via_redirect request_via_redirect + syn keyword rubyRailsTestControllerMethod assert_response assert_redirected_to assert_template assert_recognizes assert_generates assert_routing assert_dom_equal assert_dom_not_equal assert_select assert_select_rjs assert_select_encoded assert_select_email assert_tag assert_no_tag + endif + elseif t=~ '^spec\>' + syn keyword rubyRailsTestMethod describe context it its specify it_should_behave_like before after subject fixtures controller_name helper_name + syn keyword rubyRailsTestMethod violated pending expect double mock mock_model stub_model + syn match rubyRailsTestMethod '\.\@!\@!' + if t !~ '^spec-model\>' + syn match rubyRailsTestControllerMethod '\.\@' + syn keyword rubyRailsTestControllerMethod integrate_views + syn keyword rubyRailsMethod params request response session flash + endif + endif + if t =~ '^task\>' + syn match rubyRailsRakeMethod '^\s*\zs\%(task\|file\|namespace\|desc\|before\|after\|on\)\>\%(\s*=\)\@!' + endif + if t =~ '^model-awss\>' + syn keyword rubyRailsMethod member + endif + if t =~ '^config-routes\>' + syn match rubyRailsMethod '\.\zs\%(connect\|named_route\)\>' + syn keyword rubyRailsMethod match get put post delete redirect root resource resources collection member nested scope namespace controller constraints + endif + syn keyword rubyRailsMethod debugger + syn keyword rubyRailsMethod alias_attribute alias_method_chain attr_accessor_with_default attr_internal attr_internal_accessor attr_internal_reader attr_internal_writer delegate mattr_accessor mattr_reader mattr_writer superclass_delegating_accessor superclass_delegating_reader superclass_delegating_writer + syn keyword rubyRailsMethod cattr_accessor cattr_reader cattr_writer class_inheritable_accessor class_inheritable_array class_inheritable_array_writer class_inheritable_hash class_inheritable_hash_writer class_inheritable_option class_inheritable_reader class_inheritable_writer inheritable_attributes read_inheritable_attribute reset_inheritable_attributes write_inheritable_array write_inheritable_attribute write_inheritable_hash + syn keyword rubyRailsInclude require_dependency gem + + syn region rubyString matchgroup=rubyStringDelimiter start=+\%(:order\s*=>\s*\)\@<="+ skip=+\\\\\|\\"+ end=+"+ contains=@rubyStringSpecial,railsOrderSpecial + syn region rubyString matchgroup=rubyStringDelimiter start=+\%(:order\s*=>\s*\)\@<='+ skip=+\\\\\|\\'+ end=+'+ contains=@rubyStringSpecial,railsOrderSpecial + syn match railsOrderSpecial +\c\<\%(DE\|A\)SC\>+ contained + syn region rubyString matchgroup=rubyStringDelimiter start=+\%(:conditions\s*=>\s*\[\s*\)\@<="+ skip=+\\\\\|\\"+ end=+"+ contains=@rubyStringSpecial,railsConditionsSpecial + syn region rubyString matchgroup=rubyStringDelimiter start=+\%(:conditions\s*=>\s*\[\s*\)\@<='+ skip=+\\\\\|\\'+ end=+'+ contains=@rubyStringSpecial,railsConditionsSpecial + syn match railsConditionsSpecial +?\|:\h\w*+ contained + syn cluster rubyNotTop add=railsOrderSpecial,railsConditionsSpecial + + " XHTML highlighting inside %Q<> + unlet! b:current_syntax + let removenorend = !exists("g:html_no_rendering") + let g:html_no_rendering = 1 + syn include @htmlTop syntax/xhtml.vim + if removenorend + unlet! g:html_no_rendering + endif + let b:current_syntax = "ruby" + " Restore syn sync, as best we can + if !exists("g:ruby_minlines") + let g:ruby_minlines = 50 + endif + syn sync fromstart + exe "syn sync minlines=" . g:ruby_minlines + syn case match + syn region rubyString matchgroup=rubyStringDelimiter start=+%Q\=<+ end=+>+ contains=@htmlTop,@rubyStringSpecial + syn cluster htmlArgCluster add=@rubyStringSpecial + syn cluster htmlPreProc add=@rubyStringSpecial + + elseif &syntax == "eruby" || &syntax == "haml" + syn case match + if classes != '' + exe "syn keyword erubyRailsUserClass ".classes." contained containedin=@erubyRailsRegions" + endif + if &syntax == "haml" + syn cluster erubyRailsRegions contains=hamlRubyCodeIncluded,hamlRubyCode,hamlRubyHash,@hamlEmbeddedRuby,rubyInterpolation + else + syn cluster erubyRailsRegions contains=erubyOneLiner,erubyBlock,erubyExpression,rubyInterpolation + endif + exe "syn keyword erubyRailsHelperMethod ".s:gsub(s:helpermethods(),'<%(content_for|select)\s+','')." contained containedin=@erubyRailsRegions" + syn match erubyRailsHelperMethod '\\%(\s*{\|\s*do\>\|\s*(\=\s*&\)\@!' contained containedin=@erubyRailsRegions + syn match erubyRailsHelperMethod '\<\%(content_for?\=\|current_page?\)' contained containedin=@erubyRailsRegions + syn keyword erubyRailsMethod debugger logger contained containedin=@erubyRailsRegions + syn keyword erubyRailsMethod params request response session headers cookies flash contained containedin=@erubyRailsRegions + syn match erubyRailsViewMethod '\.\@' contained containedin=@erubyRailsRegions + if t =~ '\' + syn keyword erubyRailsMethod local_assigns contained containedin=@erubyRailsRegions + endif + syn keyword erubyRailsRenderMethod render contained containedin=@erubyRailsRegions + syn case match + set isk+=$ + exe "syn keyword javascriptRailsFunction contained ".s:javascript_functions + syn cluster htmlJavaScript add=javascriptRailsFunction + elseif &syntax == "yaml" + syn case match + " Modeled after syntax/eruby.vim + unlet! b:current_syntax + let g:main_syntax = 'eruby' + syn include @rubyTop syntax/ruby.vim + unlet g:main_syntax + syn cluster yamlRailsRegions contains=yamlRailsOneLiner,yamlRailsBlock,yamlRailsExpression + syn region yamlRailsOneLiner matchgroup=yamlRailsDelimiter start="^%%\@!" end="$" contains=@rubyRailsTop containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment keepend oneline + syn region yamlRailsBlock matchgroup=yamlRailsDelimiter start="<%%\@!" end="%>" contains=@rubyTop containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment + syn region yamlRailsExpression matchgroup=yamlRailsDelimiter start="<%=" end="%>" contains=@rubyTop containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment + syn region yamlRailsComment matchgroup=yamlRailsDelimiter start="<%#" end="%>" contains=rubyTodo,@Spell containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment keepend + syn match yamlRailsMethod '\.\@' contained containedin=@yamlRailsRegions + if classes != '' + exe "syn keyword yamlRailsUserClass ".classes." contained containedin=@yamlRailsRegions" + endif + let b:current_syntax = "yaml" + elseif &syntax == "html" + syn case match + set isk+=$ + exe "syn keyword javascriptRailsFunction contained ".s:javascript_functions + syn cluster htmlJavaScript add=javascriptRailsFunction + elseif &syntax == "javascript" + " The syntax file included with Vim incorrectly sets syn case ignore. + syn case match + set isk+=$ + exe "syn keyword javascriptRailsFunction ".s:javascript_functions + + endif + endif + call s:HiDefaults() +endfunction + +function! s:HiDefaults() + hi def link rubyRailsAPIMethod rubyRailsMethod + hi def link rubyRailsARAssociationMethod rubyRailsARMethod + hi def link rubyRailsARCallbackMethod rubyRailsARMethod + hi def link rubyRailsARClassMethod rubyRailsARMethod + hi def link rubyRailsARValidationMethod rubyRailsARMethod + hi def link rubyRailsARMethod rubyRailsMethod + hi def link rubyRailsRenderMethod rubyRailsMethod + hi def link rubyRailsHelperMethod rubyRailsMethod + hi def link rubyRailsViewMethod rubyRailsMethod + hi def link rubyRailsMigrationMethod rubyRailsMethod + hi def link rubyRailsControllerMethod rubyRailsMethod + hi def link rubyRailsFilterMethod rubyRailsMethod + hi def link rubyRailsTestControllerMethod rubyRailsTestMethod + hi def link rubyRailsTestMethod rubyRailsMethod + hi def link rubyRailsRakeMethod rubyRailsMethod + hi def link rubyRailsMethod railsMethod + hi def link rubyRailsInclude rubyInclude + hi def link rubyRailsUserClass railsUserClass + hi def link rubyRailsUserMethod railsUserMethod + hi def link erubyRailsHelperMethod erubyRailsMethod + hi def link erubyRailsViewMethod erubyRailsMethod + hi def link erubyRailsRenderMethod erubyRailsMethod + hi def link erubyRailsMethod railsMethod + hi def link erubyRailsUserMethod railsUserMethod + hi def link railsUserMethod railsMethod + hi def link erubyRailsUserClass railsUserClass + hi def link yamlRailsDelimiter Delimiter + hi def link yamlRailsMethod railsMethod + hi def link yamlRailsComment Comment + hi def link yamlRailsUserClass railsUserClass + hi def link yamlRailsUserMethod railsUserMethod + hi def link javascriptRailsFunction railsMethod + hi def link railsUserClass railsClass + hi def link railsMethod Function + hi def link railsClass Type + hi def link railsOrderSpecial railsStringSpecial + hi def link railsConditionsSpecial railsStringSpecial + hi def link railsStringSpecial Identifier +endfunction + +function! rails#log_syntax() + syn match railslogRender '^\s*\<\%(Processing\|Rendering\|Rendered\|Redirected\|Completed\)\>' + syn match railslogComment '^\s*# .*' + syn match railslogModel '^\s*\u\%(\w\|:\)* \%(Load\%( Including Associations\| IDs For Limited Eager Loading\)\=\|Columns\|Count\|Create\|Update\|Destroy\|Delete all\)\>' skipwhite nextgroup=railslogModelNum + syn match railslogModel '^\s*SQL\>' skipwhite nextgroup=railslogModelNum + syn region railslogModelNum start='(' end=')' contains=railslogNumber contained skipwhite nextgroup=railslogSQL + syn match railslogSQL '\u.*$' contained + " Destroy generates multiline SQL, ugh + syn match railslogSQL '^ \%(FROM\|WHERE\|ON\|AND\|OR\|ORDER\) .*$' + syn match railslogNumber '\<\d\+\>%' + syn match railslogNumber '[ (]\@<=\<\d\+\.\d\+\>' + syn region railslogString start='"' skip='\\"' end='"' oneline contained + syn region railslogHash start='{' end='}' oneline contains=railslogHash,railslogString + syn match railslogIP '\<\d\{1,3\}\%(\.\d\{1,3}\)\{3\}\>' + syn match railslogTimestamp '\<\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\>' + syn match railslogSessionID '\<\x\{32\}\>' + syn match railslogIdentifier '^\s*\%(Session ID\|Parameters\)\ze:' + syn match railslogSuccess '\<2\d\d \u[A-Za-z0-9 ]*\>' + syn match railslogRedirect '\<3\d\d \u[A-Za-z0-9 ]*\>' + syn match railslogError '\<[45]\d\d \u[A-Za-z0-9 ]*\>' + syn match railslogError '^DEPRECATION WARNING\>' + syn keyword railslogHTTP OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT + syn region railslogStackTrace start=":\d\+:in `\w\+'$" end="^\s*$" keepend fold + hi def link railslogComment Comment + hi def link railslogRender Keyword + hi def link railslogModel Type + hi def link railslogSQL PreProc + hi def link railslogNumber Number + hi def link railslogString String + hi def link railslogSessionID Constant + hi def link railslogIdentifier Identifier + hi def link railslogRedirect railslogSuccess + hi def link railslogSuccess Special + hi def link railslogError Error + hi def link railslogHTTP Special +endfunction + +" }}}1 +" Statusline {{{1 + +function! s:addtostatus(letter,status) + let status = a:status + if status !~ 'rails' && g:rails_statusline + let status=substitute(status,'\C%'.tolower(a:letter),'%'.tolower(a:letter).'%{rails#statusline()}','') + if status !~ 'rails' + let status=substitute(status,'\C%'.toupper(a:letter),'%'.toupper(a:letter).'%{rails#STATUSLINE()}','') + endif + endif + return status +endfunction + +function! s:BufInitStatusline() + if g:rails_statusline + if &l:statusline == '' + let &l:statusline = &g:statusline + endif + if &l:statusline == '' + let &l:statusline='%<%f %h%m%r%=' + if &ruler + let &l:statusline .= '%-16( %l,%c-%v %)%P' + endif + endif + let &l:statusline = s:InjectIntoStatusline(&l:statusline) + endif +endfunction + +function! s:InitStatusline() + if g:rails_statusline + if &g:statusline == '' + let &g:statusline='%<%f %h%m%r%=' + if &ruler + let &g:statusline .= '%-16( %l,%c-%v %)%P' + endif + endif + let &g:statusline = s:InjectIntoStatusline(&g:statusline) + endif +endfunction + +function! s:InjectIntoStatusline(status) + let status = a:status + if status !~ 'rails' + let status = s:addtostatus('y',status) + let status = s:addtostatus('r',status) + let status = s:addtostatus('m',status) + let status = s:addtostatus('w',status) + let status = s:addtostatus('h',status) + if status !~ 'rails' + let status=substitute(status,'%=','%{rails#statusline()}%=','') + endif + if status !~ 'rails' && status != '' + let status .= '%{rails#statusline()}' + endif + endif + return status +endfunction + +function! rails#statusline(...) + if exists("b:rails_root") + let t = RailsFileType() + if t != "" && a:0 && a:1 + return "[Rails-".t."]" + else + return "[Rails]" + endif + else + return "" + endif +endfunction + +function! rails#STATUSLINE(...) + if exists("b:rails_root") + let t = RailsFileType() + if t != "" && a:0 && a:1 + return ",RAILS-".toupper(t) + else + return ",RAILS" + endif + else + return "" + endif +endfunction + +" }}}1 +" Mappings {{{1 + +function! s:BufMappings() + nnoremap RailsAlternate :A + nnoremap RailsRelated :R + nnoremap RailsFind :REfind + nnoremap RailsSplitFind :RSfind + nnoremap RailsVSplitFind :RVfind + nnoremap RailsTabFind :RTfind + if g:rails_mappings + if !hasmapto("RailsFind") + nmap gf RailsFind + endif + if !hasmapto("RailsSplitFind") + nmap f RailsSplitFind + endif + if !hasmapto("RailsTabFind") + nmap gf RailsTabFind + endif + if !hasmapto("RailsAlternate") + nmap [f RailsAlternate + endif + if !hasmapto("RailsRelated") + nmap ]f RailsRelated + endif + if exists("$CREAM") + imap RailsFind + imap RailsAlternate + imap RailsRelated + endif + endif + " SelectBuf you're a dirty hack + let v:errmsg = "" +endfunction + +" }}}1 +" Project {{{ + +function! s:Project(bang,arg) + let rr = rails#app().path() + exe "Project ".a:arg + let line = search('^[^ =]*="'.s:gsub(rr,'[\/]','[\\/]').'"') + let projname = s:gsub(fnamemodify(rr,':t'),'\=','-') " .'_on_rails' + if line && a:bang + let projname = matchstr(getline('.'),'^[^=]*') + " Most of this would be unnecessary if the project.vim author had just put + " the newlines AFTER each project rather than before. Ugh. + norm zR0"_d% + if line('.') > 2 + delete _ + endif + if line('.') != line('$') + .-2 + endif + let line = 0 + elseif !line + $ + endif + if !line + if line('.') > 1 + append + +. + endif + let line = line('.')+1 + call s:NewProject(projname,rr) + endif + normal! zMzo + if search("^ app=app {","W",line+10) + normal! zo + exe line + endif + normal! 0zt +endfunction + +function! s:NewProject(proj,rr) + let line = line('.')+1 + let template = s:NewProjectTemplate(a:proj,a:rr) + silent put =template + exe line + " Ugh. how else can I force detecting folds? + setlocal foldmethod=manual + norm! $% + silent exe "doautocmd User ".s:escarg(a:rr)."/Rproject" + let newline = line('.') + exe line + norm! $% + if line('.') != newline + call s:warn("Warning: Rproject autocommand failed to leave cursor at end of project") + endif + exe line + setlocal foldmethod=marker + setlocal nomodified + " FIXME: make undo stop here + if !exists("g:maplocalleader") + silent! normal \R + else " Needs to be tested + exe 'silent! normal '.g:maplocalleader.'R' + endif +endfunction + +function! s:NewProjectTemplate(proj,rr) + let str = a:proj.'="'.a:rr."\" CD=. filter=\"*\" {\n" + let str .= " app=app {\n" + for dir in ['apis','controllers','helpers','models','views'] + let str .= s:addprojectdir(a:rr,'app',dir) + endfor + let str .= " }\n" + let str .= " config=config {\n environments=environments {\n }\n }\n" + let str .= " db=db {\n" + let str .= s:addprojectdir(a:rr,'db','migrate') + let str .= " }\n" + let str .= " lib=lib filter=\"* */**/*.rb \" {\n tasks=tasks filter=\"**/*.rake\" {\n }\n }\n" + let str .= " public=public {\n images=images {\n }\n javascripts=javascripts {\n }\n stylesheets=stylesheets {\n }\n }\n" + if isdirectory(a:rr.'/spec') + let str .= " spec=spec {\n" + for dir in ['controllers','fixtures','helpers','models','views'] + let str .= s:addprojectdir(a:rr,'spec',dir) + endfor + let str .= " }\n" + endif + if isdirectory(a:rr.'/test') + let str .= " test=test {\n" + for dir in ['fixtures','functional','integration','mocks','unit'] + let str .= s:addprojectdir(a:rr,'test',dir) + endfor + let str .= " }\n" + end + let str .= "}\n" + return str +endfunction + +function! s:addprojectdir(rr,parentdir,dir) + if isdirectory(a:rr.'/'.a:parentdir.'/'.a:dir) + return ' '.a:dir.'='.a:dir." filter=\"**\" {\n }\n" + else + return '' + endif +endfunction + +" }}}1 +" Database {{{1 + +function! s:extractdbvar(str,arg) + return matchstr("\n".a:str."\n",'\n'.a:arg.'=\zs.\{-\}\ze\n') +endfunction + +function! s:app_dbext_settings(environment) dict + if self.cache.needs('dbext_settings') + call self.cache.set('dbext_settings',{}) + endif + let cache = self.cache.get('dbext_settings') + if !has_key(cache,a:environment) + let dict = {} + if self.has_file("config/database.yml") + let cmdb = 'require %{yaml}; File.open(%q{'.self.path().'/config/database.yml}) {|f| y = YAML::load(f); e = y[%{' + let cmde = '}]; i=0; e=y[e] while e.respond_to?(:to_str) && (i+=1)<16; e.each{|k,v|puts k.to_s+%{=}+v.to_s}}' + let out = self.lightweight_ruby_eval(cmdb.a:environment.cmde) + let adapter = s:extractdbvar(out,'adapter') + let adapter = get({'postgresql': 'pgsql', 'sqlite3': 'sqlite', 'sqlserver': 'sqlsrv', 'sybase': 'asa', 'oci': 'ora'},adapter,adapter) + let dict['type'] = toupper(adapter) + let dict['user'] = s:extractdbvar(out,'username') + let dict['passwd'] = s:extractdbvar(out,'password') + if dict['passwd'] == '' && adapter == 'mysql' + " Hack to override password from .my.cnf + let dict['extra'] = ' --password=' + else + let dict['extra'] = '' + endif + let dict['dbname'] = s:extractdbvar(out,'database') + if dict['dbname'] == '' + let dict['dbname'] = s:extractdbvar(out,'dbfile') + endif + if dict['dbname'] != '' && dict['dbname'] !~ '^:' && adapter =~? '^sqlite' + let dict['dbname'] = self.path(dict['dbname']) + endif + let dict['profile'] = '' + let dict['srvname'] = s:extractdbvar(out,'host') + let dict['host'] = s:extractdbvar(out,'host') + let dict['port'] = s:extractdbvar(out,'port') + let dict['dsnname'] = s:extractdbvar(out,'dsn') + if dict['host'] =~? '^\cDBI:' + if dict['host'] =~? '\c\' + let dict['integratedlogin'] = 1 + endif + let dict['host'] = matchstr(dict['host'],'\c\<\%(Server\|Data Source\)\s*=\s*\zs[^;]*') + endif + call filter(dict,'v:val != ""') + endif + let cache[a:environment] = dict + endif + return cache[a:environment] +endfunction + +function! s:BufDatabase(...) + if exists("s:lock_database") || !exists('g:loaded_dbext') || !exists('b:rails_root') + return + endif + let self = rails#app() + let s:lock_database = 1 + if (a:0 && a:1 > 1) + call self.cache.clear('dbext_settings') + endif + if (a:0 > 1 && a:2 != '') + let env = a:2 + else + let env = s:environment() + endif + if (!self.cache.has('dbext_settings') || !has_key(self.cache.get('dbext_settings'),env)) && (a:0 ? a:1 : 0) <= 0 + unlet! s:lock_database + return + endif + let dict = self.dbext_settings(env) + for key in ['type', 'profile', 'bin', 'user', 'passwd', 'dbname', 'srvname', 'host', 'port', 'dsnname', 'extra', 'integratedlogin'] + let b:dbext_{key} = get(dict,key,'') + endfor + if b:dbext_type == 'PGSQL' + let $PGPASSWORD = b:dbext_passwd + elseif exists('$PGPASSWORD') + let $PGPASSWORD = '' + endif + unlet! s:lock_database +endfunction + +call s:add_methods('app', ['dbext_settings']) + +" }}}1 +" Abbreviations {{{1 + +function! s:selectiveexpand(pat,good,default,...) + if a:0 > 0 + let nd = a:1 + else + let nd = "" + endif + let c = nr2char(getchar(0)) + let good = a:good + if c == "" " ^] + return s:sub(good.(a:0 ? " ".a:1 : ''),'\s+$','') + elseif c == "\t" + return good.(a:0 ? " ".a:1 : '') + elseif c =~ a:pat + return good.c.(a:0 ? a:1 : '') + else + return a:default.c + endif +endfunction + +function! s:TheCWord() + let l = s:linepeak() + if l =~ '\<\%(find\|first\|last\|all\|paginate\)\>' + return s:selectiveexpand('..',':conditions => ',':c') + elseif l =~ '\\s*' + return s:selectiveexpand('..',':collection => ',':c') + elseif l =~ '\<\%(url_for\|link_to\|form_tag\)\>' || l =~ ':url\s*=>\s*{\s*' + return s:selectiveexpand('..',':controller => ',':c') + else + return s:selectiveexpand('..',':conditions => ',':c') + endif +endfunction + +function! s:AddSelectiveExpand(abbr,pat,expn,...) + let expn = s:gsub(s:gsub(a:expn ,'[\"|]','\\&'),'\<','\\') + let expn2 = s:gsub(s:gsub(a:0 ? a:1 : '','[\"|]','\\&'),'\<','\\') + if a:0 + exe "inoreabbrev ".a:abbr." =selectiveexpand(".string(a:pat).",\"".expn."\",".string(a:abbr).",\"".expn2."\")" + else + exe "inoreabbrev ".a:abbr." =selectiveexpand(".string(a:pat).",\"".expn."\",".string(a:abbr).")" + endif +endfunction + +function! s:AddTabExpand(abbr,expn) + call s:AddSelectiveExpand(a:abbr,'..',a:expn) +endfunction + +function! s:AddBracketExpand(abbr,expn) + call s:AddSelectiveExpand(a:abbr,'[[.]',a:expn) +endfunction + +function! s:AddColonExpand(abbr,expn) + call s:AddSelectiveExpand(a:abbr,'[:.]',a:expn) +endfunction + +function! s:AddParenExpand(abbr,expn,...) + if a:0 + call s:AddSelectiveExpand(a:abbr,'(',a:expn,a:1) + else + call s:AddSelectiveExpand(a:abbr,'(',a:expn,'') + endif +endfunction + +function! s:BufAbbreviations() + command! -buffer -bar -nargs=* -bang Rabbrev :call s:Abbrev(0,) + " Some of these were cherry picked from the TextMate snippets + if g:rails_abbreviations + let t = RailsFileType() + " Limit to the right filetypes. But error on the liberal side + if t =~ '^\(controller\|view\|helper\|test-functional\|test-integration\)\>' + Rabbrev pa[ params + Rabbrev rq[ request + Rabbrev rs[ response + Rabbrev se[ session + Rabbrev hd[ headers + Rabbrev co[ cookies + Rabbrev fl[ flash + Rabbrev rr( render + Rabbrev ra( render :action\ =>\ + Rabbrev rc( render :controller\ =>\ + Rabbrev rf( render :file\ =>\ + Rabbrev ri( render :inline\ =>\ + Rabbrev rj( render :json\ =>\ + Rabbrev rl( render :layout\ =>\ + Rabbrev rp( render :partial\ =>\ + Rabbrev rt( render :text\ =>\ + Rabbrev rx( render :xml\ =>\ + endif + if t =~ '^\%(view\|helper\)\>' + Rabbrev dotiw distance_of_time_in_words + Rabbrev taiw time_ago_in_words + endif + if t =~ '^controller\>' + Rabbrev re( redirect_to + Rabbrev rea( redirect_to :action\ =>\ + Rabbrev rec( redirect_to :controller\ =>\ + Rabbrev rst( respond_to + endif + if t =~ '^model-arb\>' || t =~ '^model$' + Rabbrev bt( belongs_to + Rabbrev ho( has_one + Rabbrev hm( has_many + Rabbrev habtm( has_and_belongs_to_many + Rabbrev co( composed_of + Rabbrev va( validates_associated + Rabbrev vb( validates_acceptance_of + Rabbrev vc( validates_confirmation_of + Rabbrev ve( validates_exclusion_of + Rabbrev vf( validates_format_of + Rabbrev vi( validates_inclusion_of + Rabbrev vl( validates_length_of + Rabbrev vn( validates_numericality_of + Rabbrev vp( validates_presence_of + Rabbrev vu( validates_uniqueness_of + endif + if t =~ '^\%(db-\)\=\%(migration\|schema\)\>' + Rabbrev mac( add_column + Rabbrev mrnc( rename_column + Rabbrev mrc( remove_column + Rabbrev mct( create_table + Rabbrev mcht( change_table + Rabbrev mrnt( rename_table + Rabbrev mdt( drop_table + Rabbrev mcc( t.column + endif + if t =~ '^test\>' + Rabbrev ase( assert_equal + Rabbrev asko( assert_kind_of + Rabbrev asnn( assert_not_nil + Rabbrev asr( assert_raise + Rabbrev asre( assert_response + Rabbrev art( assert_redirected_to + endif + Rabbrev :a :action\ =>\ + " hax + Rabbrev :c :co________\ =>\ + inoreabbrev :c =TheCWord() + Rabbrev :i :id\ =>\ + Rabbrev :o :object\ =>\ + Rabbrev :p :partial\ =>\ + Rabbrev logd( logger.debug + Rabbrev logi( logger.info + Rabbrev logw( logger.warn + Rabbrev loge( logger.error + Rabbrev logf( logger.fatal + Rabbrev fi( find + Rabbrev AR:: ActiveRecord + Rabbrev AV:: ActionView + Rabbrev AC:: ActionController + Rabbrev AD:: ActionDispatch + Rabbrev AS:: ActiveSupport + Rabbrev AM:: ActionMailer + Rabbrev AO:: ActiveModel + Rabbrev AE:: ActiveResource + Rabbrev AWS:: ActionWebService + endif +endfunction + +function! s:Abbrev(bang,...) abort + if !exists("b:rails_abbreviations") + let b:rails_abbreviations = {} + endif + if a:0 > 3 || (a:bang && (a:0 != 1)) + return s:error("Rabbrev: invalid arguments") + endif + if a:0 == 0 + for key in sort(keys(b:rails_abbreviations)) + echo key . join(b:rails_abbreviations[key],"\t") + endfor + return + endif + let lhs = a:1 + let root = s:sub(lhs,'%(::|\(|\[)$','') + if a:bang + if has_key(b:rails_abbreviations,root) + call remove(b:rails_abbreviations,root) + endif + exe "iunabbrev ".root + return + endif + if a:0 > 3 || a:0 < 2 + return s:error("Rabbrev: invalid arguments") + endif + let rhs = a:2 + if has_key(b:rails_abbreviations,root) + call remove(b:rails_abbreviations,root) + endif + if lhs =~ '($' + let b:rails_abbreviations[root] = ["(", rhs . (a:0 > 2 ? "\t".a:3 : "")] + if a:0 > 2 + call s:AddParenExpand(root,rhs,a:3) + else + call s:AddParenExpand(root,rhs) + endif + return + endif + if a:0 > 2 + return s:error("Rabbrev: invalid arguments") + endif + if lhs =~ ':$' + call s:AddColonExpand(root,rhs) + elseif lhs =~ '\[$' + call s:AddBracketExpand(root,rhs) + elseif lhs =~ '\w$' + call s:AddTabExpand(lhs,rhs) + else + return s:error("Rabbrev: unimplemented") + endif + let b:rails_abbreviations[root] = [matchstr(lhs,'\W*$'),rhs] +endfunction + +" }}}1 +" Settings {{{1 + +function! s:Set(bang,...) + let c = 1 + let defscope = '' + for arg in a:000 + if arg =~? '^<[abgl]\=>$' + let defscope = (matchstr(arg,'<\zs.*\ze>')) + elseif arg !~ '=' + if defscope != '' && arg !~ '^\w:' + let arg = defscope.':'.opt + endif + let val = s:getopt(arg) + if val == '' && !has_key(s:opts(),arg) + call s:error("No such rails.vim option: ".arg) + else + echo arg."=".val + endif + else + let opt = matchstr(arg,'[^=]*') + let val = s:sub(arg,'^[^=]*\=','') + if defscope != '' && opt !~ '^\w:' + let opt = defscope.':'.opt + endif + call s:setopt(opt,val) + endif + endfor +endfunction + +function! s:getopt(opt,...) + let app = rails#app() + let opt = a:opt + if a:0 + let scope = a:1 + elseif opt =~ '^[abgl]:' + let scope = tolower(matchstr(opt,'^\w')) + let opt = s:sub(opt,'^\w:','') + else + let scope = 'abgl' + endif + let lnum = a:0 > 1 ? a:2 : line('.') + if scope =~ 'l' && &filetype != 'ruby' + let scope = s:sub(scope,'l','b') + endif + if scope =~ 'l' + call s:LocalModelines(lnum) + endif + let var = s:sname().'_'.opt + let lastmethod = s:lastmethod(lnum) + if lastmethod == '' | let lastmethod = ' ' | endif + " Get buffer option + if scope =~ 'l' && exists('b:_'.var) && has_key(b:_{var},lastmethod) + return b:_{var}[lastmethod] + elseif exists('b:'.var) && (scope =~ 'b' || (scope =~ 'l' && lastmethod == ' ')) + return b:{var} + elseif scope =~ 'a' && has_key(app,'options') && has_key(app.options,opt) + return app.options[opt] + elseif scope =~ 'g' && exists("g:".s:sname()."_".opt) + return g:{var} + else + return "" + endif +endfunction + +function! s:setopt(opt,val) + let app = rails#app() + if a:opt =~? '[abgl]:' + let scope = matchstr(a:opt,'^\w') + let opt = s:sub(a:opt,'^\w:','') + else + let scope = '' + let opt = a:opt + endif + let defscope = get(s:opts(),opt,'a') + if scope == '' + let scope = defscope + endif + if &filetype != 'ruby' && (scope ==# 'B' || scope ==# 'l') + let scope = 'b' + endif + let var = s:sname().'_'.opt + if opt =~ '\W' + return s:error("Invalid option ".a:opt) + elseif scope ==# 'B' && defscope == 'l' + if !exists('b:_'.var) | let b:_{var} = {} | endif + let b:_{var}[' '] = a:val + elseif scope =~? 'b' + let b:{var} = a:val + elseif scope =~? 'a' + if !has_key(app,'options') | let app.options = {} | endif + let app.options[opt] = a:val + elseif scope =~? 'g' + let g:{var} = a:val + elseif scope =~? 'l' + if !exists('b:_'.var) | let b:_{var} = {} | endif + let lastmethod = s:lastmethod(lnum) + let b:_{var}[lastmethod == '' ? ' ' : lastmethod] = a:val + else + return s:error("Invalid scope for ".a:opt) + endif +endfunction + +function! s:opts() + return {'alternate': 'b', 'controller': 'b', 'gnu_screen': 'a', 'model': 'b', 'preview': 'l', 'task': 'b', 'related': 'l', 'root_url': 'a'} +endfunction + +function! s:Complete_set(A,L,P) + if a:A =~ '=' + let opt = matchstr(a:A,'[^=]*') + return [opt."=".s:getopt(opt)] + else + let extra = matchstr(a:A,'^[abgl]:') + return filter(sort(map(keys(s:opts()),'extra.v:val')),'s:startswith(v:val,a:A)') + endif + return [] +endfunction + +function! s:BufModelines() + if !g:rails_modelines + return + endif + let lines = getline("$")."\n".getline(line("$")-1)."\n".getline(1)."\n".getline(2)."\n".getline(3)."\n" + let pat = '\s\+\zs.\{-\}\ze\%(\n\|\s\s\|#{\@!\|%>\|-->\|$\)' + let cnt = 1 + let mat = matchstr(lines,'\C\ ".mat + endif + let mat = matchstr(lines,'\C\ ".mat + endif + let mat = matchstr(lines,'\C\ 0 + if !exists("g:RAILS_HISTORY") + let g:RAILS_HISTORY = "" + endif + let path = a:path + let g:RAILS_HISTORY = s:scrub(g:RAILS_HISTORY,path) + if has("win32") + let g:RAILS_HISTORY = s:scrub(g:RAILS_HISTORY,s:gsub(path,'\\','/')) + endif + let path = fnamemodify(path,':p:~:h') + let g:RAILS_HISTORY = s:scrub(g:RAILS_HISTORY,path) + if has("win32") + let g:RAILS_HISTORY = s:scrub(g:RAILS_HISTORY,s:gsub(path,'\\','/')) + endif + let g:RAILS_HISTORY = path."\n".g:RAILS_HISTORY + let g:RAILS_HISTORY = s:sub(g:RAILS_HISTORY,'%(.{-}\n){,'.g:rails_history_size.'}\zs.*','') + endif + call app.source_callback("config/syntax.vim") + if &ft == "mason" + setlocal filetype=eruby + elseif &ft =~ '^\%(conf\|ruby\)\=$' && expand("%:e") =~ '^\%(rjs\|rxml\|builder\|rake\|mab\)$' + setlocal filetype=ruby + elseif &ft =~ '^\%(conf\|ruby\)\=$' && expand("%:t") =~ '^\%(Rake\|Gem\|Cap\)file$' + setlocal filetype=ruby + elseif &ft =~ '^\%(liquid\)\=$' && expand("%:e") == "liquid" + setlocal filetype=liquid + elseif &ft =~ '^\%(haml\|x\=html\)\=$' && expand("%:e") == "haml" + setlocal filetype=haml + elseif &ft =~ '^\%(sass\|conf\)\=$' && expand("%:e") == "sass" + setlocal filetype=sass + elseif &ft =~ '^\%(dryml\)\=$' && expand("%:e") == "dryml" + setlocal filetype=dryml + elseif (&ft == "" || v:version < 701) && expand("%:e") =~ '^\%(rhtml\|erb\)$' + setlocal filetype=eruby + elseif (&ft == "" || v:version < 700) && expand("%:e") == 'yml' + setlocal filetype=yaml + elseif &ft =~ '^\%(conf\|yaml\)\=$' && expand("%:t") =~ '\.yml\.example$' + setlocal filetype=yaml + elseif firsttime + " Activate custom syntax + let &syntax = &syntax + endif + if firsttime + call s:BufInitStatusline() + endif + if expand("%:e") == "log" + setlocal modifiable filetype=railslog + silent! %s/\%(\e\[[0-9;]*m\|\r$\)//g + setlocal readonly nomodifiable noswapfile autoread foldmethod=syntax + nnoremap R :checktime + nnoremap G :checktime$ + nnoremap q :bwipe + $ + endif + call s:BufSettings() + call s:BufCommands() + call s:BufAbbreviations() + " snippetsEmu.vim + if exists('g:loaded_snippet') + silent! runtime! ftplugin/rails_snippets.vim + " filetype snippets need to come last for higher priority + exe "silent! runtime! ftplugin/".&filetype."_snippets.vim" + endif + let t = RailsFileType() + let t = "-".t + let f = '/'.RailsFilePath() + if f =~ '[ !#$%\,]' + let f = '' + endif + runtime! macros/rails.vim + silent doautocmd User Rails + if t != '-' + exe "silent doautocmd User Rails".s:gsub(t,'-','.') + endif + if f != '' + exe "silent doautocmd User Rails".f + endif + call app.source_callback("config/rails.vim") + call s:BufModelines() + call s:BufMappings() + return b:rails_root +endfunction + +function! s:SetBasePath() + let self = rails#buffer() + if self.app().path() =~ '://' + return + endif + let transformed_path = s:pathsplit(s:pathjoin([self.app().path()]))[0] + let add_dot = self.getvar('&path') =~# '^\.\%(,\|$\)' + let old_path = s:pathsplit(s:sub(self.getvar('&path'),'^\.%(,|$)','')) + call filter(old_path,'!s:startswith(v:val,transformed_path)') + + let path = ['app', 'app/models', 'app/controllers', 'app/helpers', 'config', 'lib', 'app/views'] + if self.controller_name() != '' + let path += ['app/views/'.self.controller_name(), 'public'] + endif + if self.app().has('test') + let path += ['test', 'test/unit', 'test/functional', 'test/integration'] + endif + if self.app().has('spec') + let path += ['spec', 'spec/models', 'spec/controllers', 'spec/helpers', 'spec/views', 'spec/lib', 'spec/integration'] + endif + let path += ['app/*', 'vendor', 'vendor/plugins/*/lib', 'vendor/plugins/*/test', 'vendor/rails/*/lib', 'vendor/rails/*/test'] + call map(path,'self.app().path(v:val)') + call self.setvar('&path',(add_dot ? '.,' : '').s:pathjoin([self.app().path()],path,old_path)) +endfunction + +function! s:BufSettings() + if !exists('b:rails_root') + return '' + endif + let self = rails#buffer() + call s:SetBasePath() + let rp = s:gsub(self.app().path(),'[ ,]','\\&') + if stridx(&tags,rp) == -1 + let &l:tags = rp . "/tmp/tags," . &tags . "," . rp . "/tags" + endif + if has("gui_win32") || has("gui_running") + let code = '*.rb;*.rake;Rakefile' + let templates = '*.'.s:gsub(s:view_types,',',';*.') + let fixtures = '*.yml;*.csv' + let statics = '*.html;*.css;*.js;*.xml;*.xsd;*.sql;.htaccess;README;README_FOR_APP' + let b:browsefilter = "" + \."All Rails Files\t".code.';'.templates.';'.fixtures.';'.statics."\n" + \."Source Code (*.rb, *.rake)\t".code."\n" + \."Templates (*.rhtml, *.rxml, *.rjs)\t".templates."\n" + \."Fixtures (*.yml, *.csv)\t".fixtures."\n" + \."Static Files (*.html, *.css, *.js)\t".statics."\n" + \."All Files (*.*)\t*.*\n" + endif + call self.setvar('&includeexpr','RailsIncludeexpr()') + call self.setvar('&suffixesadd', ".rb,.".s:gsub(s:view_types,',',',.').",.css,.js,.yml,.csv,.rake,.sql,.html,.xml") + let ft = self.getvar('&filetype') + if ft =~ '^\%(e\=ruby\|[yh]aml\|javascript\|css\|sass\)$' + call self.setvar('&shiftwidth',2) + call self.setvar('&softtabstop',2) + call self.setvar('&expandtab',1) + if exists('+completefunc') && self.getvar('&completefunc') == '' + call self.setvar('&completefunc','syntaxcomplete#Complete') + endif + endif + if ft == 'ruby' + call self.setvar('&suffixesadd',".rb,.".s:gsub(s:view_types,',',',.').",.yml,.csv,.rake,s.rb") + call self.setvar('&define',self.define_pattern()) + " This really belongs in after/ftplugin/ruby.vim but we'll be nice + if exists('g:loaded_surround') && self.getvar('surround_101') == '' + call self.setvar('surround_5', "\r\nend") + call self.setvar('surround_69', "\1expr: \1\rend") + call self.setvar('surround_101', "\r\nend") + endif + elseif ft == 'yaml' || fnamemodify(self.name(),':e') == 'yml' + call self.setvar('&define',self.define_pattern()) + call self.setvar('&suffixesadd',".yml,.csv,.rb,.".s:gsub(s:view_types,',',',.').",.rake,s.rb") + elseif ft == 'eruby' + call self.setvar('&suffixesadd',".".s:gsub(s:view_types,',',',.').",.rb,.css,.js,.html,.yml,.csv") + if exists("g:loaded_allml") + call self.setvar('allml_stylesheet_link_tag', "<%= stylesheet_link_tag '\r' %>") + call self.setvar('allml_javascript_include_tag', "<%= javascript_include_tag '\r' %>") + call self.setvar('allml_doctype_index', 10) + endif + if exists("g:loaded_ragtag") + call self.setvar('ragtag_stylesheet_link_tag', "<%= stylesheet_link_tag '\r' %>") + call self.setvar('ragtag_javascript_include_tag', "<%= javascript_include_tag '\r' %>") + call self.setvar('ragtag_doctype_index', 10) + endif + elseif ft == 'haml' + if exists("g:loaded_allml") + call self.setvar('allml_stylesheet_link_tag', "= stylesheet_link_tag '\r'") + call self.setvar('allml_javascript_include_tag', "= javascript_include_tag '\r'") + call self.setvar('allml_doctype_index', 10) + endif + if exists("g:loaded_ragtag") + call self.setvar('ragtag_stylesheet_link_tag', "= stylesheet_link_tag '\r'") + call self.setvar('ragtag_javascript_include_tag', "= javascript_include_tag '\r'") + call self.setvar('ragtag_doctype_index', 10) + endif + endif + if ft == 'eruby' || ft == 'yaml' + " surround.vim + if exists("g:loaded_surround") + " The idea behind the || part here is that one can normally define the + " surrounding to omit the hyphen (since standard ERuby does not use it) + " but have it added in Rails ERuby files. Unfortunately, this makes it + " difficult if you really don't want a hyphen in Rails ERuby files. If + " this is your desire, you will need to accomplish it via a rails.vim + " autocommand. + if self.getvar('surround_45') == '' || self.getvar('surround_45') == "<% \r %>" " - + call self.setvar('surround_45', "<% \r -%>") + endif + if self.getvar('surround_61') == '' " = + call self.setvar('surround_61', "<%= \r %>") + endif + if self.getvar("surround_35") == '' " # + call self.setvar('surround_35', "<%# \r %>") + endif + if self.getvar('surround_101') == '' || self.getvar('surround_101')== "<% \r %>\n<% end %>" "e + call self.setvar('surround_5', "<% \r -%>\n<% end -%>") + call self.setvar('surround_69', "<% \1expr: \1 -%>\r<% end -%>") + call self.setvar('surround_101', "<% \r -%>\n<% end -%>") + endif + endif + endif +endfunction + +" }}}1 +" Autocommands {{{1 + +augroup railsPluginAuto + autocmd! + autocmd User BufEnterRails call s:RefreshBuffer() + autocmd User BufEnterRails call s:resetomnicomplete() + autocmd User BufEnterRails call s:BufDatabase(-1) + autocmd User dbextPreConnection call s:BufDatabase(1) + autocmd BufWritePost */config/database.yml call rails#cache_clear("dbext_settings") + autocmd BufWritePost */test/test_helper.rb call rails#cache_clear("user_assertions") + autocmd BufWritePost */config/routes.rb call rails#cache_clear("named_routes") + autocmd BufWritePost */config/environment.rb call rails#cache_clear("default_locale") + autocmd BufWritePost */config/environments/*.rb call rails#cache_clear("environments") + autocmd BufWritePost */tasks/**.rake call rails#cache_clear("rake_tasks") + autocmd BufWritePost */generators/** call rails#cache_clear("generators") + autocmd FileType * if exists("b:rails_root") | call s:BufSettings() | endif + autocmd Syntax ruby,eruby,yaml,haml,javascript,railslog if exists("b:rails_root") | call s:BufSyntax() | endif + autocmd QuickFixCmdPre make* call s:push_chdir() + autocmd QuickFixCmdPost make* call s:pop_command() +augroup END + +" }}}1 +" Initialization {{{1 + +map xx xx +let s:sid = s:sub(maparg("xx"),'xx$','') +unmap xx +let s:file = expand(':p') + +if !exists('s:apps') + let s:apps = {} +endif + +" }}}1 + +let &cpo = s:cpo_save + +" vim:set sw=2 sts=2: diff --git a/vim/autoload/ruby_debugger.vim b/vim/autoload/ruby_debugger.vim new file mode 100644 index 0000000..ebf358a --- /dev/null +++ b/vim/autoload/ruby_debugger.vim @@ -0,0 +1,1979 @@ +" Init section - set default values, highlight colors + +let s:rdebug_port = 39767 +let s:debugger_port = 39768 +" hostname() returns something strange in Windows (E98BD9A419BB41D), so set hostname explicitly +let s:hostname = 'localhost' "hostname() +" ~/.vim for Linux, vimfiles for Windows +let s:runtime_dir = expand(':h:h') +" File for communicating between intermediate Ruby script ruby_debugger.rb and +" this plugin +let s:tmp_file = s:runtime_dir . '/tmp/ruby_debugger' +let s:server_output_file = s:runtime_dir . '/tmp/ruby_debugger_output' +" Default id for sign of current line +let s:current_line_sign_id = 120 +let s:separator = "++vim-ruby-debugger separator++" +let s:sign_id = 0 + +" Create tmp directory if it doesn't exist +if !isdirectory(s:runtime_dir . '/tmp') + call mkdir(s:runtime_dir . '/tmp') +endif + +" Init breakpoint signs +hi def link Breakpoint Error +sign define breakpoint linehl=Breakpoint text=xx + +" Init current line signs +hi def link CurrentLine DiffAdd +sign define current_line linehl=CurrentLine text=>> + +" Loads this file. Required for autoloading the code for this plugin +fun! ruby_debugger#load_debugger() + if !s:check_prerequisites() + finish + endif +endf + + +" Check all requirements for the current plugin +fun! s:check_prerequisites() + let problems = [] + if v:version < 700 + call add(problems, "RubyDebugger: This plugin requires Vim >= 7.") + endif + if !has("clientserver") + call add(problems, "RubyDebugger: This plugin requires +clientserver option") + endif + if !executable("rdebug-ide") + call add(problems, "RubyDebugger: You don't have installed 'ruby-debug-ide' gem or executable 'rdebug-ide' can't be found in your PATH") + endif + if !(has("win32") || has("win64")) && !executable("lsof") + call add(problems, "RubyDebugger: You don't have 'lsof' installed or executable 'lsof' can't be found in your PATH") + endif + if g:ruby_debugger_builtin_sender && !has("ruby") + call add(problems, "RubyDebugger: You are trying to use built-in Ruby in Vim, but your Vim doesn't compiled with +ruby. Set g:ruby_debugger_builtin_sender = 0 in your .vimrc to resolve that issue.") + end + if empty(problems) + return 1 + else + for p in problems + echoerr p + endfor + return 0 + endif +endf + + +" End of init section + + +" *** Common (global) functions + +" Split string of tags to List. E.g., +" +" will be splitted to +" [ '', '' ] +function! s:get_tags(cmd) + let tags = [] + let cmd = a:cmd + " Remove wrap tags + let inner_tags_match = s:get_inner_tags(cmd) + if !empty(inner_tags_match) + " Then find every tag and remove it from source string + let pattern = '<.\{-}\/>' + let inner_tags = inner_tags_match[1] + let tagmatch = matchlist(inner_tags, pattern) + while empty(tagmatch) == 0 + call add(tags, tagmatch[0]) + " These symbols are interpretated as special, we need to escape them + let tagmatch[0] = escape(tagmatch[0], '[]~*\') + " Remove it from source string + let inner_tags = substitute(inner_tags, tagmatch[0], '', '') + " Find next tag + let tagmatch = matchlist(inner_tags, pattern) + endwhile + endif + return tags +endfunction + + +" Return match of inner tags without wrap tags. E.g.: +" mathes only +function! s:get_inner_tags(cmd) + return matchlist(a:cmd, '^<.\{-}>\(.\{-}\)<\/.\{-}>$') +endfunction + + +" Return Dict of attributes. +" E.g., from it returns +" {'name' : 'a', 'value' : 'b'} +function! s:get_tag_attributes(cmd) + let attributes = {} + let cmd = a:cmd + " Find type of used quotes (" or ') + let quote_match = matchlist(cmd, "\\w\\+=\\(.\\)") + let quote = empty(quote_match) ? "\"" : escape(quote_match[1], "'\"") + let pattern = "\\(\\w\\+\\)=" . quote . "\\(.\\{-}\\)" . quote + " Find every attribute and remove it from source string + let attrmatch = matchlist(cmd, pattern) + while !empty(attrmatch) + " Values of attributes can be escaped by HTML entities, unescape them + let attributes[attrmatch[1]] = s:unescape_html(attrmatch[2]) + " These symbols are interpretated as special, we need to escape them + let attrmatch[0] = escape(attrmatch[0], '[]~*\') + " Remove it from source string + let cmd = substitute(cmd, attrmatch[0], '', '') + " Find next attribute + let attrmatch = matchlist(cmd, pattern) + endwhile + return attributes +endfunction + + +" Unescape HTML entities +function! s:unescape_html(html) + let result = substitute(a:html, "&", "\\&", "g") + let result = substitute(result, """, "\"", "g") + let result = substitute(result, "<", "<", "g") + let result = substitute(result, ">", ">", "g") + return result +endfunction + + +function! s:quotify(exp) + let quoted = a:exp + let quoted = substitute(quoted, "\"", "\\\\\"", 'g') + return quoted +endfunction + + +" Get filename of current buffer +function! s:get_filename() + return expand("%:p") +endfunction + + +" Send message to debugger. This function should never be used explicitly, +" only through g:RubyDebugger.send_command function +function! s:send_message_to_debugger(message) + if g:ruby_debugger_fast_sender + call system(s:runtime_dir . "/bin/socket " . s:hostname . " " . s:debugger_port . " \"" . a:message . "\"") + else + if g:ruby_debugger_builtin_sender +ruby << RUBY + require 'socket' + attempts = 0 + a = nil + host = VIM::evaluate("s:hostname") + port = VIM::evaluate("s:debugger_port") + message = VIM::evaluate("a:message").gsub("\\\"", '"') + begin + a = TCPSocket.open(host, port) + a.puts(message) + a.close + rescue Errno::ECONNREFUSED + attempts += 1 + if attempts < 400 + sleep 0.05 + retry + else + puts("#{host}:#{port} can not be opened") + exit + end + ensure + a.close if a && !a.closed? + end +RUBY + else + let script = "ruby -e \"require 'socket'; " + let script .= "attempts = 0; " + let script .= "a = nil; " + let script .= "begin; " + let script .= "a = TCPSocket.open('" . s:hostname . "', " . s:debugger_port . "); " + let script .= "a.puts(%q[" . substitute(substitute(a:message, '[', '\[', 'g'), ']', '\]', 'g') . "]);" + let script .= "a.close; " + let script .= "rescue Errno::ECONNREFUSED; " + let script .= "attempts += 1; " + let script .= "if attempts < 400; " + let script .= "sleep 0.05; " + let script .= "retry; " + let script .= "else; " + let script .= "puts('" . s:hostname . ":" . s:debugger_port . " can not be opened'); " + let script .= "exit; " + let script .= "end; " + let script .= "ensure; " + let script .= "a.close if a && !a.closed?; " + let script .= "end; \"" + let output = system(script) + if output =~ 'can not be opened' + call g:RubyDebugger.logger.put("Can't send a message to rdebug - port is not opened") + endif + endif + endif +endfunction + + +function! s:unplace_sign_of_current_line() + if has("signs") + exe ":sign unplace " . s:current_line_sign_id + endif +endfunction + + +" Remove all variables of current line, remove current line sign. Usually it +" is needed before next/step/cont commands +function! s:clear_current_state() + call s:unplace_sign_of_current_line() + let g:RubyDebugger.variables = {} + let g:RubyDebugger.frames = [] + " Clear variables and frames window (just show our empty variables Dict) + if s:variables_window.is_open() + call s:variables_window.open() + endif + if s:frames_window.is_open() + call s:frames_window.open() + endif +endfunction + + +" Open given file and jump to given line +" (stolen from NERDTree) +function! s:jump_to_file(file, line) + "if the file is already open in this tab then just stick the cursor in it + let window_number = bufwinnr('^' . a:file . '$') + if window_number != -1 + exe window_number . "wincmd w" + else + " Check if last accessed window is usable to use it + " Usable window - not quickfix, explorer, modified, etc + if !s:is_window_usable(winnr("#")) + exe s:first_normal_window() . "wincmd w" + else + " If it is usable, jump to it + exe 'wincmd p' + endif + exe "edit " . a:file + endif + exe "normal " . a:line . "G" +endfunction + + +" Return 1 if window is usable (not quickfix, explorer, modified, only one +" window, ...) +function! s:is_window_usable(winnumber) + "If there is only one window (winnr("$") - windows count) + if winnr("$") ==# 1 + return 0 + endif + + " Current window number + let oldwinnr = winnr() + + " Switch to given window and check it + exe a:winnumber . "wincmd p" + let specialWindow = getbufvar("%", '&buftype') != '' || getwinvar('%', '&previewwindow') + let modified = &modified + + exe oldwinnr . "wincmd p" + + "if it is a special window, e.g. quickfix or another explorer plugin + if specialWindow + return 0 + endif + + if &hidden + return 1 + endif + + " If this window is modified, but there is another opened window with + " current file, return 1. Otherwise - 0 + return !modified || s:buf_in_windows(winbufnr(a:winnumber)) >= 2 +endfunction + + +" Determine the number of windows open to this buffer number. +function! s:buf_in_windows(buffer_number) + let count = 0 + let window_number = 1 + while 1 + let buffer_number = winbufnr(window_number) + if buffer_number < 0 + break + endif + if buffer_number ==# a:buffer_number + let count = count + 1 + endif + let window_number = window_number + 1 + endwhile + + return count +endfunction + + +" Find first 'normal' window (not quickfix, explorer, etc) +function! s:first_normal_window() + let i = 1 + while i <= winnr("$") + let bnum = winbufnr(i) + if bnum != -1 && getbufvar(bnum, '&buftype') ==# '' && !getwinvar(i, '&previewwindow') + return i + endif + let i += 1 + endwhile + return -1 +endfunction + +" *** Queue class (start) + +let s:Queue = {} + +" ** Public methods + +" Constructor of new queue. +function! s:Queue.new() dict + let var = copy(self) + let var.queue = [] + let var.after = "" + return var +endfunction + + +" Execute next command in the queue and remove it from queue +function! s:Queue.execute() dict + if !empty(self.queue) + let message = join(self.queue, s:separator) + call self.empty() + call g:RubyDebugger.send_command(message) + endif +endfunction + + +" Execute 'after' hook only if queue is empty +function! s:Queue.after_hook() dict + if self.after != "" && empty(self.queue) + call self.after() + endif +endfunction + + +function! s:Queue.add(element) dict + call add(self.queue, a:element) +endfunction + + +function! s:Queue.empty() dict + let self.queue = [] +endfunction + + +" *** Queue class (end) + + + + +" *** Public interface (start) + +let RubyDebugger = { 'commands': {}, 'variables': {}, 'settings': {}, 'breakpoints': [], 'frames': [], 'exceptions': [] } +let g:RubyDebugger.queue = s:Queue.new() + + +" Run debugger server. It takes one optional argument with path to debugged +" ruby script ('script/server webrick' by default) +function! RubyDebugger.start(...) dict + let g:RubyDebugger.server = s:Server.new(s:hostname, s:rdebug_port, s:debugger_port, s:runtime_dir, s:tmp_file, s:server_output_file) + let script_string = a:0 && !empty(a:1) ? a:1 : 'script/server webrick' + if script_string[0] != '/' + let script_string = "'" . getcwd() . '/' . substitute(script_string, "'", "", "g") . "'" + endif + + echo "Loading debugger..." + call g:RubyDebugger.server.start(script_string) + + let g:RubyDebugger.exceptions = [] + for breakpoint in g:RubyDebugger.breakpoints + call g:RubyDebugger.queue.add(breakpoint.command()) + endfor + call g:RubyDebugger.queue.add('start') + echo "Debugger started" + call g:RubyDebugger.queue.execute() +endfunction + + +" Stop running server. +function! RubyDebugger.stop() dict + if has_key(g:RubyDebugger, 'server') + call g:RubyDebugger.server.stop() + endif +endfunction + + +" This function receives commands from the debugger. When ruby_debugger.rb +" gets output from rdebug-ide, it writes it to the special file and 'kick' +" the plugin by remotely calling RubyDebugger.receive_command(), e.g.: +" vim --servername VIM --remote-send 'call RubyDebugger.receive_command()' +" That's why +clientserver is required +" This function analyzes the special file and gives handling to right command +function! RubyDebugger.receive_command() dict + let file_contents = join(readfile(s:tmp_file), "") + call g:RubyDebugger.logger.put("Received command: " . file_contents) + let commands = split(file_contents, s:separator) + for cmd in commands + if !empty(cmd) + if match(cmd, '') != -1 + call g:RubyDebugger.commands.set_variables(cmd) + elseif match(cmd, '') != -1 + call g:RubyDebugger.commands.error(cmd) + elseif match(cmd, '') != -1 + call g:RubyDebugger.commands.message(cmd) + elseif match(cmd, '') != -1 + call g:RubyDebugger.commands.trace(cmd) + endif + endif + endfor + call g:RubyDebugger.queue.after_hook() + call g:RubyDebugger.queue.execute() +endfunction + + +function! RubyDebugger.send_command_wrapper(command) + call g:RubyDebugger.send_command(a:command) +endfunction + +" We set function this way, because we want have possibility to mock it by +" other function in tests +let RubyDebugger.send_command = function("send_message_to_debugger") + + +" Open variables window +function! RubyDebugger.open_variables() dict + call s:variables_window.toggle() + call g:RubyDebugger.logger.put("Opened variables window") + call g:RubyDebugger.queue.execute() +endfunction + + +" Open breakpoints window +function! RubyDebugger.open_breakpoints() dict + call s:breakpoints_window.toggle() + call g:RubyDebugger.logger.put("Opened breakpoints window") + call g:RubyDebugger.queue.execute() +endfunction + + +" Open frames window +function! RubyDebugger.open_frames() dict + call s:frames_window.toggle() + call g:RubyDebugger.logger.put("Opened frames window") + call g:RubyDebugger.queue.execute() +endfunction + + +" Set/remove breakpoint at current position. If argument +" is given, it will set conditional breakpoint (argument is condition) +function! RubyDebugger.toggle_breakpoint(...) dict + let line = line(".") + let file = s:get_filename() + let existed_breakpoints = filter(copy(g:RubyDebugger.breakpoints), 'v:val.line == ' . line . ' && v:val.file == "' . escape(file, '\') . '"') + " If breakpoint with current file/line doesn't exist, create it. Otherwise - + " remove it + if empty(existed_breakpoints) + let breakpoint = s:Breakpoint.new(file, line) + call add(g:RubyDebugger.breakpoints, breakpoint) + call breakpoint.send_to_debugger() + else + let breakpoint = existed_breakpoints[0] + call filter(g:RubyDebugger.breakpoints, 'v:val.id != ' . breakpoint.id) + call breakpoint.delete() + endif + " Update info in Breakpoints window + if s:breakpoints_window.is_open() + call s:breakpoints_window.open() + exe "wincmd p" + endif + call g:RubyDebugger.queue.execute() +endfunction + + +" Remove all breakpoints +function! RubyDebugger.remove_breakpoints() dict + for breakpoint in g:RubyDebugger.breakpoints + call breakpoint.delete() + endfor + let g:RubyDebugger.breakpoints = [] + call g:RubyDebugger.queue.execute() +endfunction + + +" Eval the passed in expression +function! RubyDebugger.eval(exp) dict + let quoted = s:quotify(a:exp) + call g:RubyDebugger.queue.add("eval " . quoted) + call g:RubyDebugger.queue.execute() +endfunction + + +" Sets conditional breakpoint where cursor is placed +function! RubyDebugger.conditional_breakpoint(exp) dict + let line = line(".") + let file = s:get_filename() + let existed_breakpoints = filter(copy(g:RubyDebugger.breakpoints), 'v:val.line == ' . line . ' && v:val.file == "' . escape(file, '\') . '"') + " If breakpoint with current file/line doesn't exist, create it. Otherwise - + " remove it + if empty(existed_breakpoints) + echo "You can set condition only to already set breakpoints. Move cursor to set breakpoint and add condition" + else + let breakpoint = existed_breakpoints[0] + let quoted = s:quotify(a:exp) + call breakpoint.add_condition(quoted) + " Update info in Breakpoints window + if s:breakpoints_window.is_open() + call s:breakpoints_window.open() + exe "wincmd p" + endif + call g:RubyDebugger.queue.execute() + endif +endfunction + + +" Catch all exceptions with given name +function! RubyDebugger.catch_exception(exp) dict + if has_key(g:RubyDebugger, 'server') && g:RubyDebugger.server.is_running() + let quoted = s:quotify(a:exp) + let exception = s:Exception.new(quoted) + call add(g:RubyDebugger.exceptions, exception) + if s:breakpoints_window.is_open() + call s:breakpoints_window.open() + exe "wincmd p" + endif + call g:RubyDebugger.queue.execute() + else + echo "Sorry, but you can set Exceptional Breakpoints only with running debugger" + endif +endfunction + + +" Next +function! RubyDebugger.next() dict + call g:RubyDebugger.queue.add("next") + call s:clear_current_state() + call g:RubyDebugger.logger.put("Step over") + call g:RubyDebugger.queue.execute() +endfunction + + +" Step +function! RubyDebugger.step() dict + call g:RubyDebugger.queue.add("step") + call s:clear_current_state() + call g:RubyDebugger.logger.put("Step into") + call g:RubyDebugger.queue.execute() +endfunction + + +" Finish +function! RubyDebugger.finish() dict + call g:RubyDebugger.queue.add("finish") + call s:clear_current_state() + call g:RubyDebugger.logger.put("Step out") + call g:RubyDebugger.queue.execute() +endfunction + + +" Continue +function! RubyDebugger.continue() dict + call g:RubyDebugger.queue.add("cont") + call s:clear_current_state() + call g:RubyDebugger.logger.put("Continue") + call g:RubyDebugger.queue.execute() +endfunction + + +" Exit +function! RubyDebugger.exit() dict + call g:RubyDebugger.queue.add("exit") + call s:clear_current_state() + call g:RubyDebugger.queue.execute() +endfunction + + +" Show output log of Ruby script +function! RubyDebugger.show_log() dict + exe "view " . s:server_output_file + setlocal autoread + " Per gorkunov's request + setlocal wrap + setlocal nonumber + if exists(":AnsiEsc") + exec ":AnsiEsc" + endif +endfunction + + +" Debug current opened test +function! RubyDebugger.run_test() dict + let file = s:get_filename() + if file =~ '_spec\.rb$' + call g:RubyDebugger.start(g:ruby_debugger_spec_path . ' ' . file) + elseif file =~ '\.feature$' + call g:RubyDebugger.start(g:ruby_debugger_cucumber_path . ' ' . file) + elseif file =~ '_test\.rb$' + call g:RubyDebugger.start(file) + endif +endfunction + + +" *** Public interface (end) + + + + +" *** RubyDebugger Commands (what debugger returns) + + +" +" +" Jump to file/line where execution was suspended, set current line sign and get local variables +function! RubyDebugger.commands.jump_to_breakpoint(cmd) dict + let attrs = s:get_tag_attributes(a:cmd) + call s:jump_to_file(attrs.file, attrs.line) + call g:RubyDebugger.logger.put("Jumped to breakpoint " . attrs.file . ":" . attrs.line) + + if has("signs") + exe ":sign place " . s:current_line_sign_id . " line=" . attrs.line . " name=current_line file=" . attrs.file + endif +endfunction + + +" +" Show message error and jump to given file/line +function! RubyDebugger.commands.handle_exception(cmd) dict + let message_match = matchlist(a:cmd, 'message="\(.\{-}\)"') + call g:RubyDebugger.commands.jump_to_breakpoint(a:cmd) + echo "Exception message: " . s:unescape_html(message_match[1]) +endfunction + + +" +" Confirm setting of exception catcher +function! RubyDebugger.commands.set_exception(cmd) dict + let attrs = s:get_tag_attributes(a:cmd) + call g:RubyDebugger.logger.put("Exception successfully set: " . attrs.exception) +endfunction + + +" +" Add debugger info to breakpoints (pid of debugger, debugger breakpoint's id) +" Assign rest breakpoints to debugger recursively, if there are breakpoints +" from old server runnings or not assigned breakpoints (e.g., if you at first +" set some breakpoints, and then run the debugger by :Rdebugger) +function! RubyDebugger.commands.set_breakpoint(cmd) + let attrs = s:get_tag_attributes(a:cmd) + let file_match = matchlist(attrs.location, '\(.*\):\(.*\)') + let pid = g:RubyDebugger.server.rdebug_pid + + " Find added breakpoint in array and assign debugger's info to it + for breakpoint in g:RubyDebugger.breakpoints + if expand(breakpoint.file) == expand(file_match[1]) && expand(breakpoint.line) == expand(file_match[2]) + let breakpoint.debugger_id = attrs.no + let breakpoint.rdebug_pid = pid + if has_key(breakpoint, 'condition') + call breakpoint.add_condition(breakpoint.condition) + endif + endif + endfor + + call g:RubyDebugger.logger.put("Breakpoint is set: " . file_match[1] . ":" . file_match[2]) + call g:RubyDebugger.queue.execute() +endfunction + + +" +" +" +" Assign list of got variables to parent variable and (optionally) show them +function! RubyDebugger.commands.set_variables(cmd) + let tags = s:get_tags(a:cmd) + let list_of_variables = [] + + " Create hash from list of tags + for tag in tags + let attrs = s:get_tag_attributes(tag) + let variable = s:Var.new(attrs) + call add(list_of_variables, variable) + endfor + + " If there is no variables, create unnamed root variable. Local variables + " will be chilren of this variable + if g:RubyDebugger.variables == {} + let g:RubyDebugger.variables = s:VarParent.new({'hasChildren': 'true'}) + let g:RubyDebugger.variables.is_open = 1 + let g:RubyDebugger.variables.children = [] + endif + + " If g:RubyDebugger.current_variable exists, then it contains parent + " variable of got subvariables. Assign them to it. + if has_key(g:RubyDebugger, 'current_variable') + let variable = g:RubyDebugger.current_variable + if variable != {} + call variable.add_childs(list_of_variables) + call g:RubyDebugger.logger.put("Opening child variable: " . variable.attributes.objectId) + " Variables Window is always open if we got subvariables + call s:variables_window.open() + else + call g:RubyDebugger.logger.put("Can't found variable") + endif + unlet g:RubyDebugger.current_variable + else + " Otherwise, assign them to unnamed root variable + if g:RubyDebugger.variables.children == [] + call g:RubyDebugger.variables.add_childs(list_of_variables) + call g:RubyDebugger.logger.put("Initializing local variables") + if s:variables_window.is_open() + " show variables only if Variables Window is open + call s:variables_window.open() + endif + endif + endif + +endfunction + + +" +" Just show result of evaluation +function! RubyDebugger.commands.eval(cmd) + " rdebug-ide-gem doesn't escape attributes of tag properly, so we should not + " use usual attribute extractor here... + let match = matchlist(a:cmd, "") + echo "Evaluated expression:\n" . s:unescape_html(match[1]) ."\nResulted value is:\n" . match[2] . "\n" +endfunction + + +" +" Just show exception message +function! RubyDebugger.commands.processing_exception(cmd) + let attrs = s:get_tag_attributes(a:cmd) + let message = "RubyDebugger Exception, type: " . attrs.type . ", message: " . attrs.message + echo message + call g:RubyDebugger.logger.put(message) +endfunction + + +" +" +" +" +" Assign all frames, fill Frames window by them +function! RubyDebugger.commands.trace(cmd) + let tags = s:get_tags(a:cmd) + let list_of_frames = [] + + " Create hash from list of tags + for tag in tags + let attrs = s:get_tag_attributes(tag) + let frame = s:Frame.new(attrs) + call add(list_of_frames, frame) + endfor + + let g:RubyDebugger.frames = list_of_frames + + if s:frames_window.is_open() + " show backtrace only if Backtrace Window is open + call s:frames_window.open() + endif +endfunction + + +" Error +" Just show error +function! RubyDebugger.commands.error(cmd) + let error_match = s:get_inner_tags(a:cmd) + if !empty(error_match) + let error = error_match[1] + echo "RubyDebugger Error: " . error + call g:RubyDebugger.logger.put("Got error: " . error) + endif +endfunction + + +" Message +" Just show message +function! RubyDebugger.commands.message(cmd) + let message_match = s:get_inner_tags(a:cmd) + if !empty(message_match) + let message = message_match[1] + echo "RubyDebugger Message: " . message + call g:RubyDebugger.logger.put("Got message: " . message) + endif +endfunction + + +" *** End of debugger Commands + + + +" *** Window class (start). Abstract Class for creating window. +" Must be inherited. Mostly, stolen from the NERDTree. + +let s:Window = {} +let s:Window['next_buffer_number'] = 1 +let s:Window['position'] = 'botright' +let s:Window['size'] = 10 + +" ** Public methods + +" Constructs new window +function! s:Window.new(name, title) dict + let new_variable = copy(self) + let new_variable.name = a:name + let new_variable.title = a:title + return new_variable +endfunction + + +" Clear all data from window +function! s:Window.clear() dict + silent 1,$delete _ +endfunction + + +" Close window +function! s:Window.close() dict + if !self.is_open() + throw "RubyDebug: Window " . self.name . " is not open" + endif + + if winnr("$") != 1 + call self.focus() + close + exe "wincmd p" + else + " If this is only one window, just quit + :q + endif + call self._log("Closed window with name: " . self.name) +endfunction + + +" Get window number +function! s:Window.get_number() dict + if self._exist_for_tab() + return bufwinnr(self._buf_name()) + else + return -1 + endif +endfunction + + +" Display data to the window +function! s:Window.display() + call self._log("Start displaying data in window with name: " . self.name) + call self.focus() + setlocal modifiable + + let current_line = line(".") + let current_column = col(".") + let top_line = line("w0") + + call self.clear() + + call self._insert_data() + call self._restore_view(top_line, current_line, current_column) + + setlocal nomodifiable + call self._log("Complete displaying data in window with name: " . self.name) +endfunction + + +" Put cursor to the window +function! s:Window.focus() dict + exe self.get_number() . " wincmd w" + call self._log("Set focus to window with name: " . self.name) +endfunction + + +" Return 1 if window is opened +function! s:Window.is_open() dict + return self.get_number() != -1 +endfunction + + +" Open window and display data (stolen from NERDTree) +function! s:Window.open() dict + if !self.is_open() + " create the window + silent exec self.position . ' ' . self.size . ' new' + + if !self._exist_for_tab() + " If the window is not opened/exists, create new + call self._set_buf_name(self._next_buffer_name()) + silent! exec "edit " . self._buf_name() + " This function does not exist in Window class and should be declared in + " descendants + call self.bind_mappings() + else + " Or just jump to opened buffer + silent! exec "buffer " . self._buf_name() + endif + + " set buffer options + setlocal winfixheight + setlocal noswapfile + setlocal buftype=nofile + setlocal nowrap + setlocal foldcolumn=0 + setlocal nobuflisted + setlocal nospell + setlocal nolist + iabc + setlocal cursorline + setfiletype ruby_debugger_window + call self._log("Opened window with name: " . self.name) + endif + + if has("syntax") && exists("g:syntax_on") && !has("syntax_items") + call self.setup_syntax_highlighting() + endif + + call self.display() +endfunction + + +" Open/close window +function! s:Window.toggle() dict + call self._log("Toggling window with name: " . self.name) + if self._exist_for_tab() && self.is_open() + call self.close() + else + call self.open() + end +endfunction + + +" ** Private methods + + +" Return buffer name, that is stored in tab variable +function! s:Window._buf_name() dict + return t:window_{self.name}_buf_name +endfunction + + +" Return 1 if the window exists in current tab +function! s:Window._exist_for_tab() dict + return exists("t:window_" . self.name . "_buf_name") +endfunction + + +" Insert data to the window +function! s:Window._insert_data() dict + let old_p = @p + " Put data to the register and then show it by 'put' command + let @p = self.render() + silent exe "normal \"pP" + let @p = old_p + call self._log("Inserted data to window with name: " . self.name) +endfunction + + +function! s:Window._log(string) dict + if has_key(self, 'logger') + call self.logger.put(a:string) + endif +endfunction + + +" Calculate correct name for the window +function! s:Window._next_buffer_name() dict + let name = self.name . s:Window.next_buffer_number + let s:Window.next_buffer_number += 1 + return name +endfunction + + +" Restore the view +function! s:Window._restore_view(top_line, current_line, current_column) dict + let old_scrolloff=&scrolloff + let &scrolloff=0 + call cursor(a:top_line, 1) + normal! zt + call cursor(a:current_line, a:current_column) + let &scrolloff = old_scrolloff + call self._log("Restored view of window with name: " . self.name) +endfunction + + +function! s:Window._set_buf_name(name) dict + let t:window_{self.name}_buf_name = a:name +endfunction + + +" *** Window class (end) + + + +" *** WindowVariables class (start) + +" Inherits variables window from abstract window class +let s:WindowVariables = copy(s:Window) + +" ** Public methods + +function! s:WindowVariables.bind_mappings() + nnoremap <2-leftmouse> :call window_variables_activate_node() + nnoremap o :call window_variables_activate_node()" +endfunction + + +" Returns string that contains all variables (for Window.display()) +function! s:WindowVariables.render() dict + let variables = self.title . "\n" + let variables .= (g:RubyDebugger.variables == {} ? '' : g:RubyDebugger.variables.render()) + return variables +endfunction + + +" TODO: Is there some way to call s:WindowVariables.activate_node from mapping +" command? +" Expand/collapse variable under cursor +function! s:window_variables_activate_node() + let variable = s:Var.get_selected() + if variable != {} && variable.type == "VarParent" + if variable.is_open + call variable.close() + else + call variable.open() + endif + endif + call g:RubyDebugger.queue.execute() +endfunction + + +" Add syntax highlighting +function! s:WindowVariables.setup_syntax_highlighting() + execute "syn match rdebugTitle #" . self.title . "#" + + syn match rdebugPart #[| `]\+# + syn match rdebugPartFile #[| `]\+-# contains=rdebugPart nextgroup=rdebugChild contained + syn match rdebugChild #.\{-}\t# nextgroup=rdebugType contained + + syn match rdebugClosable #[| `]\+\~# contains=rdebugPart nextgroup=rdebugParent contained + syn match rdebugOpenable #[| `]\++# contains=rdebugPart nextgroup=rdebugParent contained + syn match rdebugParent #.\{-}\t# nextgroup=rdebugType contained + + syn match rdebugType #.\{-}\t# nextgroup=rdebugValue contained + syn match rdebugValue #.*\t#he=e-1 nextgroup=rdebugId contained + syn match rdebugId #.*# contained + + syn match rdebugParentLine '[| `]\+[+\~].*' contains=rdebugClosable,rdebugOpenable transparent + syn match rdebugChildLine '[| `]\+-.*' contains=rdebugPartFile transparent + + hi def link rdebugTitle Identifier + hi def link rdebugClosable Type + hi def link rdebugOpenable Title + hi def link rdebugPart Special + hi def link rdebugPartFile Type + hi def link rdebugChild Normal + hi def link rdebugParent Directory + hi def link rdebugType Type + hi def link rdebugValue Special + hi def link rdebugId Ignore +endfunction + + +" *** WindowVariables class (end) + + + +" *** WindowBreakpoints class (start) + +" Inherits WindowBreakpoints from Window +let s:WindowBreakpoints = copy(s:Window) + +" ** Public methods + +function! s:WindowBreakpoints.bind_mappings() + nnoremap <2-leftmouse> :call window_breakpoints_activate_node() + nnoremap o :call window_breakpoints_activate_node() + nnoremap d :call window_breakpoints_delete_node() +endfunction + + +" Returns string that contains all breakpoints (for Window.display()) +function! s:WindowBreakpoints.render() dict + let breakpoints = "" + let breakpoints .= self.title . "\n" + for breakpoint in g:RubyDebugger.breakpoints + let breakpoints .= breakpoint.render() + endfor + let exceptions = map(copy(g:RubyDebugger.exceptions), 'v:val.render()') + let breakpoints .= "\nException breakpoints: " . join(exceptions, ", ") + return breakpoints +endfunction + + +" TODO: Is there some way to call s:WindowBreakpoints.activate_node from mapping +" command? +" Open breakpoint under cursor +function! s:window_breakpoints_activate_node() + let breakpoint = s:Breakpoint.get_selected() + if breakpoint != {} + call breakpoint.open() + endif +endfunction + + +" Delete breakpoint under cursor +function! s:window_breakpoints_delete_node() + let breakpoint = s:Breakpoint.get_selected() + if breakpoint != {} + call breakpoint.delete() + call filter(g:RubyDebugger.breakpoints, "v:val.id != " . breakpoint.id) + call s:breakpoints_window.open() + endif +endfunction + + +" Add syntax highlighting +function! s:WindowBreakpoints.setup_syntax_highlighting() dict + execute "syn match rdebugTitle #" . self.title . "#" + + syn match rdebugId "^\d\+\s" contained nextgroup=rdebugDebuggerId + syn match rdebugDebuggerId "\d*\s" contained nextgroup=rdebugFile + syn match rdebugFile ".*:" contained nextgroup=rdebugLine + syn match rdebugLine "\d\+" contained + + syn match rdebugWrapper "^\d\+.*" contains=rdebugId transparent + + hi def link rdebugId Directory + hi def link rdebugDebuggerId Type + hi def link rdebugFile Normal + hi def link rdebugLine Special +endfunction + + +" *** WindowBreakpoints class (end) + + + +" *** WindowFrames class (start) + +" Inherits WindowFrames from Window +let s:WindowFrames = copy(s:Window) + +" ** Public methods + +function! s:WindowFrames.bind_mappings() + nnoremap <2-leftmouse> :call window_frames_activate_node() + nnoremap o :call window_frames_activate_node() +endfunction + + +" Returns string that contains all frames (for Window.display()) +function! s:WindowFrames.render() dict + let frames = "" + let frames .= self.title . "\n" + for frame in g:RubyDebugger.frames + let frames .= frame.render() + endfor + return frames +endfunction + + +" Open frame under cursor +function! s:window_frames_activate_node() + let frame = s:Frame.get_selected() + if frame != {} + call frame.open() + endif +endfunction + + +" Add syntax highlighting +function! s:WindowFrames.setup_syntax_highlighting() dict + execute "syn match rdebugTitle #" . self.title . "#" + + syn match rdebugId "^\d\+\s" contained nextgroup=rdebugFile + syn match rdebugFile ".*:" contained nextgroup=rdebugLine + syn match rdebugLine "\d\+" contained + + syn match rdebugWrapper "^\d\+.*" contains=rdebugId transparent + + hi def link rdebugId Directory + hi def link rdebugFile Normal + hi def link rdebugLine Special +endfunction + + +" *** WindowFrames class (end) + + + + +" *** Var proxy class (start) + +let s:Var = { 'id' : 0 } + +" ** Public methods + +" This is a proxy method for creating new variable +function! s:Var.new(attrs) + if has_key(a:attrs, 'hasChildren') && a:attrs['hasChildren'] == 'true' + return s:VarParent.new(a:attrs) + else + return s:VarChild.new(a:attrs) + end +endfunction + + +" Get variable under cursor +function! s:Var.get_selected() + let line = getline(".") + " Get its id - it is last in the string + let match = matchlist(line, '.*\t\(\d\+\)$') + let id = get(match, 1) + if id + let variable = g:RubyDebugger.variables.find_variable({'id' : id}) + return variable + else + return {} + endif +endfunction + + +" *** Var proxy class (end) + + + +" *** VarChild class (start) + +let s:VarChild = {} + +" ** Public methods + +" Constructs new variable without childs +function! s:VarChild.new(attrs) + let new_variable = copy(self) + let new_variable.attributes = a:attrs + let new_variable.parent = {} + let new_variable.level = 0 + let new_variable.type = "VarChild" + let s:Var.id += 1 + let new_variable.id = s:Var.id + return new_variable +endfunction + + +" Renders data of the variable +function! s:VarChild.render() + return self._render(0, 0, [], len(self.parent.children) ==# 1) +endfunction + + +" VarChild can't be opened because it can't have children. But VarParent can +function! s:VarChild.open() + return 0 +endfunction + + +" VarChild can't be closed because it can't have children. But VarParent can +function! s:VarChild.close() + return 0 +endfunction + + +" VarChild can't be parent. But VarParent can. If Var have hasChildren == +" true, then it is parent +function! s:VarChild.is_parent() + return has_key(self.attributes, 'hasChildren') && get(self.attributes, 'hasChildren') ==# 'true' +endfunction + + +" Output format for Variables Window +function! s:VarChild.to_s() + return get(self.attributes, "name", "undefined") . "\t" . get(self.attributes, "type", "undefined") . "\t" . get(self.attributes, "value", "undefined") . "\t" . get(self, "id", "0") +endfunction + + +" Find and return variable by given Dict of attrs, e.g.: {'name' : 'var1'} +function! s:VarChild.find_variable(attrs) + if self._match_attributes(a:attrs) + return self + else + return {} + endif +endfunction + + +" Find and return array of variables that match given Dict of attrs +function! s:VarChild.find_variables(attrs) + let variables = [] + if self._match_attributes(a:attrs) + call add(variables, self) + endif + return variables +endfunction + + +" ** Private methods + + +" Recursive function, that renders Variable and all its childs (if they are +" presented). Stolen from NERDTree +function! s:VarChild._render(depth, draw_text, vertical_map, is_last_child) + let output = "" + if a:draw_text ==# 1 + let tree_parts = '' + + " get all the leading spaces and vertical tree parts for this line + if a:depth > 1 + for j in a:vertical_map[0:-2] + if j ==# 1 + let tree_parts = tree_parts . '| ' + else + let tree_parts = tree_parts . ' ' + endif + endfor + endif + + " get the last vertical tree part for this line which will be different + " if this node is the last child of its parent + if a:is_last_child + let tree_parts = tree_parts . '`' + else + let tree_parts = tree_parts . '|' + endif + + " smack the appropriate dir/file symbol on the line before the file/dir + " name itself + if self.is_parent() + if self.is_open + let tree_parts = tree_parts . '~' + else + let tree_parts = tree_parts . '+' + endif + else + let tree_parts = tree_parts . '-' + endif + let line = tree_parts . self.to_s() + let output = output . line . "\n" + + endif + + if self.is_parent() && self.is_open + if len(self.children) > 0 + + " draw all the nodes children except the last + let last_index = len(self.children) - 1 + if last_index > 0 + for i in self.children[0:last_index - 1] + let output = output . i._render(a:depth + 1, 1, add(copy(a:vertical_map), 1), 0) + endfor + endif + + " draw the last child, indicating that it IS the last + let output = output . self.children[last_index]._render(a:depth + 1, 1, add(copy(a:vertical_map), 0), 1) + + endif + endif + + return output + +endfunction + + +" Return 1 if *all* given attributes (pairs key/value) match to current +" variable +function! s:VarChild._match_attributes(attrs) + let conditions = 1 + for attr in keys(a:attrs) + if has_key(self.attributes, attr) + " If current key is contained in attributes of variable (they were + " attributes in tag, then trying to match there. + let conditions = conditions && self.attributes[attr] == a:attrs[attr] + elseif has_key(self, attr) + " Otherwise, if current key is contained in auxiliary attributes of the + " variable, trying to match there + let conditions = conditions && self[attr] == a:attrs[attr] + else + " Otherwise, this variable is not match + let conditions = 0 + break + endif + endfor + return conditions +endfunction + + +" *** VarChild class (end) + + + + +" *** VarParent class (start) + +" Inherits VarParent from VarChild +let s:VarParent = copy(s:VarChild) + +" ** Public methods + + +" Initializes new variable with childs +function! s:VarParent.new(attrs) + if !has_key(a:attrs, 'hasChildren') || a:attrs['hasChildren'] != 'true' + throw "RubyDebug: VarParent must be initialized with hasChildren = true" + endif + let new_variable = copy(self) + let new_variable.attributes = a:attrs + let new_variable.parent = {} + let new_variable.is_open = 0 + let new_variable.level = 0 + let new_variable.children = [] + let new_variable.type = "VarParent" + let s:Var.id += 1 + let new_variable.id = s:Var.id + return new_variable +endfunction + + +" Open variable, init its children and display them +function! s:VarParent.open() + let self.is_open = 1 + call self._init_children() + return 0 +endfunction + + +" Close variable and display it +function! s:VarParent.close() + let self.is_open = 0 + call s:variables_window.display() + if has_key(g:RubyDebugger, "current_variable") + unlet g:RubyDebugger.current_variable + endif + return 0 +endfunction + + +" Renders data of the variable +function! s:VarParent.render() + return self._render(0, 0, [], len(self.children) ==# 1) +endfunction + + + +" Add childs to the variable. You always should use this method instead of +" explicit assigning to children property (like 'add(self.children, variables)') +function! s:VarParent.add_childs(childs) + " If children are given by array, extend self.children by this array + if type(a:childs) == type([]) + for child in a:childs + let child.parent = self + let child.level = self.level + 1 + endfor + call extend(self.children, a:childs) + else + " Otherwise, add child to self.children + let a:childs.parent = self + let child.level = self.level + 1 + call add(self.children, a:childs) + end +endfunction + + +" Find and return variable by given Dict of attrs, e.g.: {'name' : 'var1'} +" If current variable doesn't match these attributes, try to find in children +function! s:VarParent.find_variable(attrs) + if self._match_attributes(a:attrs) + return self + else + for child in self.children + let result = child.find_variable(a:attrs) + if result != {} + return result + endif + endfor + endif + return {} +endfunction + + +" Find and return array of variables that match given Dict of attrs. +" Try to match current variable and its children +function! s:VarParent.find_variables(attrs) + let variables = [] + if self._match_attributes(a:attrs) + call add(variables, self) + endif + for child in self.children + call extend(variables, child.find_variables(a:attrs)) + endfor + return variables +endfunction + + +" ** Private methods + + +" Update children of the variable +function! s:VarParent._init_children() + " Remove all the current child nodes + let self.children = [] + + " Get children + if has_key(self.attributes, 'objectId') + let g:RubyDebugger.current_variable = self + call g:RubyDebugger.queue.add('var instance ' . self.attributes.objectId) + endif + +endfunction + + +" *** VarParent class (end) + + + +" *** Logger class (start) + + +let s:Logger = {} + +function! s:Logger.new(file) + let new_variable = copy(self) + let new_variable.file = a:file + call writefile([], new_variable.file) + return new_variable +endfunction + + +" Log datetime and then message +function! s:Logger.put(string) + let file = readfile(self.file) + let string = strftime("%Y/%m/%d %H:%M:%S") . ' ' . a:string + call add(file, string) + call writefile(file, self.file) +endfunction + + +" *** Logger class (end) + + +" *** Breakpoint class (start) + +let s:Breakpoint = { 'id': 0 } + +" ** Public methods + +" Constructor of new brekpoint. Create new breakpoint and set sign. +function! s:Breakpoint.new(file, line) + let var = copy(self) + let var.file = a:file + let var.line = a:line + let s:Breakpoint.id += 1 + let var.id = s:Breakpoint.id + + call var._set_sign() + call var._log("Set breakpoint to: " . var.file . ":" . var.line) + return var +endfunction + + +" Destroyer of the breakpoint. It just sends commands to debugger and destroys +" sign, but you should manually remove it from breakpoints array +function! s:Breakpoint.delete() dict + call self._unset_sign() + call self._send_delete_to_debugger() +endfunction + + +" Add condition to breakpoint. If server is not running, just store it, it +" will be evaluated after starting the server +function! s:Breakpoint.add_condition(condition) dict + let self.condition = a:condition + if has_key(g:RubyDebugger, 'server') && g:RubyDebugger.server.is_running() && has_key(self, 'debugger_id') + call g:RubyDebugger.queue.add(self.condition_command()) + endif +endfunction + + + +" Send adding breakpoint message to debugger, if it is run +function! s:Breakpoint.send_to_debugger() dict + if has_key(g:RubyDebugger, 'server') && g:RubyDebugger.server.is_running() + call g:RubyDebugger.queue.add(self.command()) + endif +endfunction + + +" Command for setting breakpoint (e.g.: 'break /path/to/file:23') +function! s:Breakpoint.command() dict + return 'break ' . self.file . ':' . self.line +endfunction + + +" Command for adding condition to breakpoin (e.g.: 'condition 1 x>5') +function! s:Breakpoint.condition_command() dict + return 'condition ' . self.debugger_id . ' ' . self.condition +endfunction + + +" Find and return breakpoint under cursor +function! s:Breakpoint.get_selected() dict + let line = getline(".") + let match = matchlist(line, '^\(\d\+\)') + let id = get(match, 1) + let breakpoints = filter(copy(g:RubyDebugger.breakpoints), "v:val.id == " . id) + if !empty(breakpoints) + return breakpoints[0] + else + return {} + endif +endfunction + + +" Output format for Breakpoints Window +function! s:Breakpoint.render() dict + let output = self.id . " " . (exists("self.debugger_id") ? self.debugger_id : '') . " " . self.file . ":" . self.line + if exists("self.condition") + let output .= " " . self.condition + endif + return output . "\n" +endfunction + + +" Open breakpoint in existed/new window +function! s:Breakpoint.open() dict + call s:jump_to_file(self.file, self.line) +endfunction + + +" ** Private methods + + +function! s:Breakpoint._set_sign() dict + if has("signs") + exe ":sign place " . self.id . " line=" . self.line . " name=breakpoint file=" . self.file + endif +endfunction + + +function! s:Breakpoint._unset_sign() dict + if has("signs") + exe ":sign unplace " . self.id + endif +endfunction + + +function! s:Breakpoint._log(string) dict + call g:RubyDebugger.logger.put(a:string) +endfunction + + +" Send deleting breakpoint message to debugger, if it is run +" (e.g.: 'delete 5') +function! s:Breakpoint._send_delete_to_debugger() dict + if has_key(g:RubyDebugger, 'server') && g:RubyDebugger.server.is_running() + let message = 'delete ' . self.debugger_id + call g:RubyDebugger.queue.add(message) + endif +endfunction + + +" *** Breakpoint class (end) + +" *** Exception class (start) +" These are ruby exceptions we catch with 'catch Exception' command +" (:RdbCatch) + +let s:Exception = { } + +" ** Public methods + +" Constructor of new exception. +function! s:Exception.new(name) + let var = copy(self) + let var.name = a:name + call var._log("Trying to set exception: " . var.name) + call g:RubyDebugger.queue.add(var.command()) + return var +endfunction + + +" Command for setting exception (e.g.: 'catch NameError') +function! s:Exception.command() dict + return 'catch ' . self.name +endfunction + + +" Output format for Breakpoints Window +function! s:Exception.render() dict + return self.name +endfunction + + +" ** Private methods + + +function! s:Exception._log(string) dict + call g:RubyDebugger.logger.put(a:string) +endfunction + + +" *** Exception class (end) + + + + +" *** Frame class (start) + +let s:Frame = { } + +" ** Public methods + +" Constructor of new frame. +" Create new frame and set sign to it. +function! s:Frame.new(attrs) + let var = copy(self) + let var.no = a:attrs.no + let var.file = a:attrs.file + let var.line = a:attrs.line + if has_key(a:attrs, 'current') + let var.current = (a:attrs.current == 'true') + else + let var.current = 0 + endif + "let s:sign_id += 1 + "let var.sign_id = s:sign_id + "call var._set_sign() + return var +endfunction + + +" Find and return frame under cursor +function! s:Frame.get_selected() dict + let line = getline(".") + let match = matchlist(line, '^\(\d\+\)') + let no = get(match, 1) + let frames = filter(copy(g:RubyDebugger.frames), "v:val.no == " . no) + if !empty(frames) + return frames[0] + else + return {} + endif +endfunction + + +" Output format for Frame Window +function! s:Frame.render() dict + return self.no . (self.current ? ' Current' : ''). " " . self.file . ":" . self.line . "\n" +endfunction + + +" Open frame in existed/new window +function! s:Frame.open() dict + call s:jump_to_file(self.file, self.line) +endfunction + + +" ** Private methods + +function! s:Frame._log(string) dict + call g:RubyDebugger.logger.put(a:string) +endfunction + + +function! s:Frame._set_sign() dict + if has("signs") + exe ":sign place " . self.sign_id . " line=" . self.line . " name=frame file=" . self.file + endif +endfunction + + +function! s:Frame._unset_sign() dict + if has("signs") + exe ":sign unplace " . self.sign_id + endif +endfunction + + +" *** Frame class (end) + + + +" *** Server class (start) + +let s:Server = {} + +" ** Public methods + +" Constructor of new server. Just inits it, not runs +function! s:Server.new(hostname, rdebug_port, debugger_port, runtime_dir, tmp_file, output_file) dict + let var = copy(self) + let var.hostname = a:hostname + let var.rdebug_port = a:rdebug_port + let var.debugger_port = a:debugger_port + let var.runtime_dir = a:runtime_dir + let var.tmp_file = a:tmp_file + let var.output_file = a:output_file + return var +endfunction + + +" Start the server. It will kill any listeners on given ports before. +function! s:Server.start(script) dict + call self._stop_server(self.rdebug_port) + call self._stop_server(self.debugger_port) + " Remove leading and trailing quotes + let script_name = substitute(a:script, "\\(^['\"]\\|['\"]$\\)", '', 'g') + let rdebug = 'rdebug-ide -p ' . self.rdebug_port . ' -- ' . script_name + let os = has("win32") || has("win64") ? 'win' : 'posix' + " Example - ruby ~/.vim/bin/ruby_debugger.rb 39767 39768 vim VIM /home/anton/.vim/tmp/ruby_debugger posix + let debugger_parameters = ' ' . self.hostname . ' ' . self.rdebug_port . ' ' . self.debugger_port . ' ' . g:ruby_debugger_progname . ' ' . v:servername . ' "' . self.tmp_file . '" ' . os + + " Start in background + if has("win32") || has("win64") + silent exe '! start ' . rdebug + let debugger = 'ruby "' . expand(self.runtime_dir . "/bin/ruby_debugger.rb") . '"' . debugger_parameters + silent exe '! start ' . debugger + else + call system(rdebug . ' > ' . self.output_file . ' 2>&1 &') + let debugger = 'ruby ' . expand(self.runtime_dir . "/bin/ruby_debugger.rb") . debugger_parameters + call system(debugger. ' &') + endif + + " Set PIDs of processes + let self.rdebug_pid = self._get_pid(self.rdebug_port, 1) + let self.debugger_pid = self._get_pid(self.debugger_port, 1) + + call g:RubyDebugger.logger.put("Start debugger") +endfunction + + +" Kill servers and empty PIDs +function! s:Server.stop() dict + call self._kill_process(self.rdebug_pid) + call self._kill_process(self.debugger_pid) + let self.rdebug_pid = "" + let self.debugger_pid = "" +endfunction + + +" Return 1 if processes with set PID exist. +function! s:Server.is_running() dict + return (self._get_pid(self.rdebug_port, 0) =~ '^\d\+$') && (self._get_pid(self.debugger_port, 0) =~ '^\d\+$') +endfunction + + +" ** Private methods + + +" Get PID of process, that listens given port on given host. If must_get_pid +" parameter is true, it will try to get PID for 20 seconds. +function! s:Server._get_pid(port, must_get_pid) + let attempt = 0 + let pid = self._get_pid_attempt(a:port) + while a:must_get_pid && pid == "" && attempt < 2000 + sleep 10m + let attempt += 1 + let pid = self._get_pid_attempt(a:port) + endwhile + return pid +endfunction + + +" Just try to get PID of process and return empty string if it was +" unsuccessful +function! s:Server._get_pid_attempt(port) + if has("win32") || has("win64") + let netstat = system("netstat -anop tcp") + let pid_match = matchlist(netstat, ':' . a:port . '\s.\{-}LISTENING\s\+\(\d\+\)') + let pid = len(pid_match) > 0 ? pid_match[1] : "" + elseif executable('lsof') + let pid = system("lsof -i tcp:" . a:port . " | grep LISTEN | awk '{print $2}'") + let pid = substitute(pid, '\n', '', '') + else + let pid = "" + endif + return pid +endfunction + + +" Kill listener of given host/port +function! s:Server._stop_server(port) dict + let pid = self._get_pid(a:port, 0) + if pid =~ '^\d\+$' + call self._kill_process(pid) + endif +endfunction + + +" Kill process with given PID +function! s:Server._kill_process(pid) dict + echo "Killing server with pid " . a:pid + call system("ruby -e 'Process.kill(9," . a:pid . ")'") + sleep 100m + call self._log("Killed server with pid: " . a:pid) +endfunction + + +function! s:Server._log(string) dict + call g:RubyDebugger.logger.put(a:string) +endfunction + + +" *** Server class (end) + + + +" *** Creating instances (start) + +if !exists("g:ruby_debugger_fast_sender") + let g:ruby_debugger_fast_sender = 0 +endif +" This variable allows to use built-in Ruby (see ':help ruby' and s:send_message_to_debugger function) +if !exists("g:ruby_debugger_builtin_sender") + if has("ruby") + let g:ruby_debugger_builtin_sender = 1 + else + let g:ruby_debugger_builtin_sender = 0 + endif +endif +if !exists("g:ruby_debugger_spec_path") + let g:ruby_debugger_spec_path = '/usr/bin/spec' +endif +if !exists("g:ruby_debugger_cucumber_path") + let g:ruby_debugger_cucumber_path = '/usr/bin/cucumber' +endif +if !exists("g:ruby_debugger_progname") + let g:ruby_debugger_progname = v:progname +endif + +" Creating windows +let s:variables_window = s:WindowVariables.new("variables", "Variables_Window") +let s:breakpoints_window = s:WindowBreakpoints.new("breakpoints", "Breakpoints_Window") +let s:frames_window = s:WindowFrames.new("frames", "Backtrace_Window") + +" Init logger. The plugin logs all its actions. If you have some troubles, +" this file can help +let s:logger_file = s:runtime_dir . '/tmp/ruby_debugger_log' +let RubyDebugger.logger = s:Logger.new(s:logger_file) +let s:variables_window.logger = RubyDebugger.logger +let s:breakpoints_window.logger = RubyDebugger.logger +let s:frames_window.logger = RubyDebugger.logger + +" *** Creating instances (end) + diff --git a/vim/autoload/ruby_focused_unit_test.vim b/vim/autoload/ruby_focused_unit_test.vim new file mode 100644 index 0000000..49e881d --- /dev/null +++ b/vim/autoload/ruby_focused_unit_test.vim @@ -0,0 +1,174 @@ +"if !has("ruby") +" finish +"end + +command RunRubyFocusedUnitTest :call RunRubyFocusedUnitTest() +command RunRubyFocusedContext :call RunRubyFocusedContext() +command RunAllRubyTests :call RunAllRubyTests() +command RunLastRubyTest :call RunLastRubyTest() + +function! s:RunRubyFocusedUnitTest() + ruby RubyFocusedUnitTest.new.run_test +endfunction + +function! s:RunRubyFocusedContext() + ruby RubyFocusedUnitTest.new.run_context +endfunction + +function! s:RunAllRubyTests() + ruby RubyFocusedUnitTest.new.run_all +endfunction + +function! s:RunLastRubyTest() + ruby RubyFocusedUnitTest.new.run_last +endfunction + +ruby << EOF +module VIM + class Buffer + class << self + include Enumerable + + def each(&block) + (0...VIM::Buffer.count).each do |index| + yield self[index] + end + end + + def create(name, opts={}) + location = opts[:location] || :below + VIM.command("#{location} new #{name}") + buf = VIM::Buffer.current + if opts[:text] + buf.text = opts[:text] + end + buf + end + end + + def text=(content) + content.split("\n").each_with_index do |line,index| + self.append index, line + end + end + + def method_missing(method, *args, &block) + VIM.command "#{method} #{self.name}" + end + end +end + +class RubyFocusedUnitTest + DEFAULT_OUTPUT_BUFFER = "rb_test_output" + SAVED_TEST_COMMAND_FILE = '/tmp/last_ruby_focused_unit_test' + + def write_output_to_buffer(test_command) + save_test_command(test_command) + + if buffer = VIM::Buffer.find { |b| b.name =~ /#{DEFAULT_OUTPUT_BUFFER}/ } + buffer.bdelete! + end + + buffer = VIM::Buffer.create DEFAULT_OUTPUT_BUFFER, :location => :below, :text => "--- Run Focused Unit Test ---\n\n" + VIM.command("setlocal buftype=nowrite") + VIM.command "redraw" + + IO.popen("#{test_command} 2>&1", "r") do |io| + begin + loop do + input = io.readpartial(10) + first, *rest = input.split(/\n/, -1) + buffer[buffer.length] = buffer[buffer.length] + first + rest.each {|l| buffer.append buffer.length, l } + VIM.command "redraw" + end + rescue EOFError + end + end + end + + def save_test_command(test_command) + File.open(SAVED_TEST_COMMAND_FILE, 'w') { |f| f.write(test_command) } + end + + def current_file + VIM::Buffer.current.name + end + + def spec_file? + current_file =~ /spec_|_spec/ + end + + def line_number + VIM::Buffer.current.line_number + end + + def run_spec + write_output_to_buffer("spec #{current_file} -l #{line_number}") + end + + def run_unit_test + method_name = nil + + (line_number + 1).downto(1) do |line_number| + if VIM::Buffer.current[line_number] =~ /def (test_\w+)/ + method_name = $1 + break + elsif VIM::Buffer.current[line_number] =~ /test "([^"]+)"/ || + VIM::Buffer.current[line_number] =~ /test '([^']+)'/ + method_name = "test_" + $1.split(" ").join("_") + break + elsif VIM::Buffer.current[line_number] =~ /should "([^"]+)"/ || + VIM::Buffer.current[line_number] =~ /should '([^']+)'/ + method_name = "\"/#{Regexp.escape($1)}/\"" + break + end + end + + write_output_to_buffer("ruby #{current_file} -n #{method_name}") if method_name + end + + def run_test + if spec_file? + run_spec + else + run_unit_test + end + end + + def run_context + method_name = nil + context_line_number = nil + + (line_number + 1).downto(1) do |line_number| + if VIM::Buffer.current[line_number] =~ /(context|describe) "([^"]+)"/ || + VIM::Buffer.current[line_number] =~ /(context|describe) '([^']+)'/ + method_name = $2 + context_line_number = line_number + break + end + end + + if method_name + if spec_file? + write_output_to_buffer("spec #{current_file} -l #{context_line_number}") + else + method_name = "\"/#{Regexp.escape(method_name)}/\"" + write_output_to_buffer("ruby #{current_file} -n #{method_name}") + end + end + end + + def run_all + if spec_file? + write_output_to_buffer("spec #{current_file}") + else + write_output_to_buffer("ruby #{current_file}") + end + end + + def run_last + write_output_to_buffer(File.read(SAVED_TEST_COMMAND_FILE)) + end +end +EOF diff --git a/vim/autoload/rubycomplete.vim b/vim/autoload/rubycomplete.vim new file mode 100644 index 0000000..6fb00a2 --- /dev/null +++ b/vim/autoload/rubycomplete.vim @@ -0,0 +1,801 @@ +" Vim completion script +" Language: Ruby +" Maintainer: Mark Guzman +" URL: http://vim-ruby.rubyforge.org +" Anon CVS: See above site +" Release Coordinator: Doug Kearns +" Maintainer Version: 0.8.1 +" ---------------------------------------------------------------------------- +" +" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com) +" ---------------------------------------------------------------------------- + +" {{{ requirement checks +if !has('ruby') + s:ErrMsg( "Error: Rubycomplete requires vim compiled with +ruby" ) + s:ErrMsg( "Error: falling back to syntax completion" ) + " lets fall back to syntax completion + setlocal omnifunc=syntaxcomplete#Complete + finish +endif + +if version < 700 + s:ErrMsg( "Error: Required vim >= 7.0" ) + finish +endif +" }}} requirement checks + +" {{{ configuration failsafe initialization +if !exists("g:rubycomplete_rails") + let g:rubycomplete_rails = 0 +endif + +if !exists("g:rubycomplete_classes_in_global") + let g:rubycomplete_classes_in_global = 0 +endif + +if !exists("g:rubycomplete_buffer_loading") + let g:rubycomplete_buffer_loading = 0 +endif + +if !exists("g:rubycomplete_include_object") + let g:rubycomplete_include_object = 0 +endif + +if !exists("g:rubycomplete_include_objectspace") + let g:rubycomplete_include_objectspace = 0 +endif +" }}} configuration failsafe initialization + +" {{{ vim-side support functions +let s:rubycomplete_debug = 0 + +function! s:ErrMsg(msg) + echohl ErrorMsg + echo a:msg + echohl None +endfunction + +function! s:dprint(msg) + if s:rubycomplete_debug == 1 + echom a:msg + endif +endfunction + +function! s:GetBufferRubyModule(name, ...) + if a:0 == 1 + let [snum,enum] = s:GetBufferRubyEntity(a:name, "module", a:1) + else + let [snum,enum] = s:GetBufferRubyEntity(a:name, "module") + endif + return snum . '..' . enum +endfunction + +function! s:GetBufferRubyClass(name, ...) + if a:0 >= 1 + let [snum,enum] = s:GetBufferRubyEntity(a:name, "class", a:1) + else + let [snum,enum] = s:GetBufferRubyEntity(a:name, "class") + endif + return snum . '..' . enum +endfunction + +function! s:GetBufferRubySingletonMethods(name) +endfunction + +function! s:GetBufferRubyEntity( name, type, ... ) + let lastpos = getpos(".") + let lastline = lastpos + if (a:0 >= 1) + let lastline = [ 0, a:1, 0, 0 ] + call cursor( a:1, 0 ) + endif + + let stopline = 1 + + let crex = '^\s*\<' . a:type . '\>\s*\<' . a:name . '\>\s*\(<\s*.*\s*\)\?' + let [lnum,lcol] = searchpos( crex, 'w' ) + "let [lnum,lcol] = searchpairpos( crex . '\zs', '', '\(end\|}\)', 'w' ) + + if lnum == 0 && lcol == 0 + call cursor(lastpos[1], lastpos[2]) + return [0,0] + endif + + let curpos = getpos(".") + let [enum,ecol] = searchpairpos( crex, '', '\(end\|}\)', 'wr' ) + call cursor(lastpos[1], lastpos[2]) + + if lnum > enum + return [0,0] + endif + " we found a the class def + return [lnum,enum] +endfunction + +function! s:IsInClassDef() + return s:IsPosInClassDef( line('.') ) +endfunction + +function! s:IsPosInClassDef(pos) + let [snum,enum] = s:GetBufferRubyEntity( '.*', "class" ) + let ret = 'nil' + + if snum < a:pos && a:pos < enum + let ret = snum . '..' . enum + endif + + return ret +endfunction + +function! s:GetRubyVarType(v) + let stopline = 1 + let vtp = '' + let pos = getpos('.') + let sstr = '^\s*#\s*@var\s*'.a:v.'\>\s\+[^ \t]\+\s*$' + let [lnum,lcol] = searchpos(sstr,'nb',stopline) + if lnum != 0 && lcol != 0 + call setpos('.',pos) + let str = getline(lnum) + let vtp = substitute(str,sstr,'\1','') + return vtp + endif + call setpos('.',pos) + let ctors = '\(now\|new\|open\|get_instance' + if exists('g:rubycomplete_rails') && g:rubycomplete_rails == 1 && s:rubycomplete_rails_loaded == 1 + let ctors = ctors.'\|find\|create' + else + endif + let ctors = ctors.'\)' + + let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)' + let sstr = ''.a:v.'\>\s*[+\-*/]*'.fstr + let [lnum,lcol] = searchpos(sstr,'nb',stopline) + if lnum != 0 && lcol != 0 + let str = matchstr(getline(lnum),fstr,lcol) + let str = substitute(str,'^=\s*','','') + + call setpos('.',pos) + if str == '"' || str == '''' || stridx(tolower(str), '%q[') != -1 + return 'String' + elseif str == '[' || stridx(str, '%w[') != -1 + return 'Array' + elseif str == '{' + return 'Hash' + elseif str == '/' || str == '%r{' + return 'Regexp' + elseif strlen(str) >= 4 && stridx(str,'..') != -1 + return 'Range' + elseif stridx(str, 'lambda') != -1 || str == '&' + return 'Proc' + elseif strlen(str) > 4 + let l = stridx(str,'.') + return str[0:l-1] + end + return '' + endif + call setpos('.',pos) + return '' +endfunction + +"}}} vim-side support functions + +"{{{ vim-side completion function +function! rubycomplete#Init() + execute "ruby VimRubyCompletion.preload_rails" +endfunction + +function! rubycomplete#Complete(findstart, base) + "findstart = 1 when we need to get the text length + if a:findstart + let line = getline('.') + let idx = col('.') + while idx > 0 + let idx -= 1 + let c = line[idx-1] + if c =~ '\w' + continue + elseif ! c =~ '\.' + idx = -1 + break + else + break + endif + endwhile + + return idx + "findstart = 0 when we need to return the list of completions + else + let g:rubycomplete_completions = [] + execute "ruby VimRubyCompletion.get_completions('" . a:base . "')" + return g:rubycomplete_completions + endif +endfunction +"}}} vim-side completion function + +"{{{ ruby-side code +function! s:DefRuby() +ruby << RUBYEOF +# {{{ ruby completion + +begin + require 'rubygems' # let's assume this is safe...? +rescue Exception + #ignore? +end +class VimRubyCompletion +# {{{ constants + @@debug = false + @@ReservedWords = [ + "BEGIN", "END", + "alias", "and", + "begin", "break", + "case", "class", + "def", "defined", "do", + "else", "elsif", "end", "ensure", + "false", "for", + "if", "in", + "module", + "next", "nil", "not", + "or", + "redo", "rescue", "retry", "return", + "self", "super", + "then", "true", + "undef", "unless", "until", + "when", "while", + "yield", + ] + + @@Operators = [ "%", "&", "*", "**", "+", "-", "/", + "<", "<<", "<=", "<=>", "==", "===", "=~", ">", ">=", ">>", + "[]", "[]=", "^", ] +# }}} constants + +# {{{ buffer analysis magic + def load_requires + buf = VIM::Buffer.current + enum = buf.line_number + nums = Range.new( 1, enum ) + nums.each do |x| + ln = buf[x] + begin + eval( "require %s" % $1 ) if /.*require\s*(.*)$/.match( ln ) + rescue Exception + #ignore? + end + end + end + + def load_buffer_class(name) + dprint "load_buffer_class(%s) START" % name + classdef = get_buffer_entity(name, 's:GetBufferRubyClass("%s")') + return if classdef == nil + + pare = /^\s*class\s*(.*)\s*<\s*(.*)\s*\n/.match( classdef ) + load_buffer_class( $2 ) if pare != nil && $2 != name # load parent class if needed + + mixre = /.*\n\s*include\s*(.*)\s*\n/.match( classdef ) + load_buffer_module( $2 ) if mixre != nil && $2 != name # load mixins if needed + + begin + eval classdef + rescue Exception + VIM::evaluate( "s:ErrMsg( 'Problem loading class \"%s\", was it already completed?' )" % name ) + end + dprint "load_buffer_class(%s) END" % name + end + + def load_buffer_module(name) + dprint "load_buffer_module(%s) START" % name + classdef = get_buffer_entity(name, 's:GetBufferRubyModule("%s")') + return if classdef == nil + + begin + eval classdef + rescue Exception + VIM::evaluate( "s:ErrMsg( 'Problem loading module \"%s\", was it already completed?' )" % name ) + end + dprint "load_buffer_module(%s) END" % name + end + + def get_buffer_entity(name, vimfun) + loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading") + return nil if loading_allowed.to_i.zero? + return nil if /(\"|\')+/.match( name ) + buf = VIM::Buffer.current + nums = eval( VIM::evaluate( vimfun % name ) ) + return nil if nums == nil + return nil if nums.min == nums.max && nums.min == 0 + + dprint "get_buffer_entity START" + visited = [] + clscnt = 0 + bufname = VIM::Buffer.current.name + classdef = "" + cur_line = VIM::Buffer.current.line_number + while (nums != nil && !(nums.min == 0 && nums.max == 0) ) + dprint "visited: %s" % visited.to_s + break if visited.index( nums ) + visited << nums + + nums.each do |x| + if x != cur_line + next if x == 0 + ln = buf[x] + if /^\s*(module|class|def|include)\s+/.match(ln) + clscnt += 1 if $1 == "class" + #dprint "\$1$1 + classdef += "%s\n" % ln + classdef += "end\n" if /def\s+/.match(ln) + dprint ln + end + end + end + + nm = "%s(::.*)*\", %s, \"" % [ name, nums.last ] + nums = eval( VIM::evaluate( vimfun % nm ) ) + dprint "nm: \"%s\"" % nm + dprint "vimfun: %s" % (vimfun % nm) + dprint "got nums: %s" % nums.to_s + end + if classdef.length > 1 + classdef += "end\n"*clscnt + # classdef = "class %s\n%s\nend\n" % [ bufname.gsub( /\/|\\/, "_" ), classdef ] + end + + dprint "get_buffer_entity END" + dprint "classdef====start" + lns = classdef.split( "\n" ) + lns.each { |x| dprint x } + dprint "classdef====end" + return classdef + end + + def get_var_type( receiver ) + if /(\"|\')+/.match( receiver ) + "String" + else + VIM::evaluate("s:GetRubyVarType('%s')" % receiver) + end + end + + def dprint( txt ) + print txt if @@debug + end + + def get_buffer_entity_list( type ) + # this will be a little expensive. + loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading") + allow_aggressive_load = VIM::evaluate("exists('g:rubycomplete_classes_in_global') && g:rubycomplete_classes_in_global") + return [] if allow_aggressive_load.to_i.zero? || loading_allowed.to_i.zero? + + buf = VIM::Buffer.current + eob = buf.length + ret = [] + rg = 1..eob + re = eval( "/^\s*%s\s*([A-Za-z0-9_:-]*)(\s*<\s*([A-Za-z0-9_:-]*))?\s*/" % type ) + + rg.each do |x| + if re.match( buf[x] ) + next if type == "def" && eval( VIM::evaluate("s:IsPosInClassDef(%s)" % x) ) != nil + ret.push $1 + end + end + + return ret + end + + def get_buffer_modules + return get_buffer_entity_list( "modules" ) + end + + def get_buffer_methods + return get_buffer_entity_list( "def" ) + end + + def get_buffer_classes + return get_buffer_entity_list( "class" ) + end + + + def load_rails + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + return if allow_rails.to_i.zero? + + buf_path = VIM::evaluate('expand("%:p")') + file_name = VIM::evaluate('expand("%:t")') + vim_dir = VIM::evaluate('getcwd()') + file_dir = buf_path.gsub( file_name, '' ) + file_dir.gsub!( /\\/, "/" ) + vim_dir.gsub!( /\\/, "/" ) + vim_dir << "/" + dirs = [ vim_dir, file_dir ] + sdirs = [ "", "./", "../", "../../", "../../../", "../../../../" ] + rails_base = nil + + dirs.each do |dir| + sdirs.each do |sub| + trail = "%s%s" % [ dir, sub ] + tcfg = "%sconfig" % trail + + if File.exists?( tcfg ) + rails_base = trail + break + end + end + break if rails_base + end + + return if rails_base == nil + $:.push rails_base unless $:.index( rails_base ) + + rails_config = rails_base + "config/" + rails_lib = rails_base + "lib/" + $:.push rails_config unless $:.index( rails_config ) + $:.push rails_lib unless $:.index( rails_lib ) + + bootfile = rails_config + "boot.rb" + envfile = rails_config + "environment.rb" + if File.exists?( bootfile ) && File.exists?( envfile ) + begin + require bootfile + require envfile + begin + require 'console_app' + require 'console_with_helpers' + rescue Exception + dprint "Rails 1.1+ Error %s" % $! + # assume 1.0 + end + #eval( "Rails::Initializer.run" ) #not necessary? + VIM::command('let s:rubycomplete_rails_loaded = 1') + dprint "rails loaded" + rescue Exception + dprint "Rails Error %s" % $! + VIM::evaluate( "s:ErrMsg('Error loading rails environment')" ) + end + end + end + + def get_rails_helpers + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded') + return [] if allow_rails.to_i.zero? || rails_loaded.to_i.zero? + + buf_path = VIM::evaluate('expand("%:p")') + buf_path.gsub!( /\\/, "/" ) + path_elm = buf_path.split( "/" ) + dprint "buf_path: %s" % buf_path + types = [ "app", "db", "lib", "test", "components", "script" ] + + i = nil + ret = [] + type = nil + types.each do |t| + i = path_elm.index( t ) + break if i + end + type = path_elm[i] + type.downcase! + + dprint "type: %s" % type + case type + when "app" + i += 1 + subtype = path_elm[i] + subtype.downcase! + + dprint "subtype: %s" % subtype + case subtype + when "views" + ret += ActionView::Base.instance_methods + ret += ActionView::Base.methods + when "controllers" + ret += ActionController::Base.instance_methods + ret += ActionController::Base.methods + when "models" + ret += ActiveRecord::Base.instance_methods + ret += ActiveRecord::Base.methods + end + + when "db" + ret += ActiveRecord::ConnectionAdapters::SchemaStatements.instance_methods + ret += ActiveRecord::ConnectionAdapters::SchemaStatements.methods + end + + + return ret + end + + def add_rails_columns( cls ) + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded') + return [] if allow_rails.to_i.zero? || rails_loaded.to_i.zero? + + begin + eval( "#{cls}.establish_connection" ) + return [] unless eval( "#{cls}.ancestors.include?(ActiveRecord::Base).to_s" ) + col = eval( "#{cls}.column_names" ) + return col if col + rescue + dprint "add_rails_columns err: (cls: %s) %s" % [ cls, $! ] + return [] + end + return [] + end + + def clean_sel(sel, msg) + sel.delete_if { |x| x == nil } + sel.uniq! + sel.grep(/^#{Regexp.quote(msg)}/) if msg != nil + end + + def get_rails_view_methods + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded') + return [] if allow_rails.to_i.zero? || rails_loaded.to_i.zero? + + buf_path = VIM::evaluate('expand("%:p")') + buf_path.gsub!( /\\/, "/" ) + pelm = buf_path.split( "/" ) + idx = pelm.index( "views" ) + + return [] unless idx + idx += 1 + + clspl = pelm[idx].camelize.pluralize + cls = clspl.singularize + + ret = [] + begin + ret += eval( "#{cls}.instance_methods" ) + ret += eval( "#{clspl}Helper.instance_methods" ) + rescue Exception + dprint "Error: Unable to load rails view helpers for %s: %s" % [ cls, $! ] + end + + return ret + end +# }}} buffer analysis magic + +# {{{ main completion code + def self.preload_rails + a = VimRubyCompletion.new + require 'Thread' + Thread.new(a) do |b| + begin + b.load_rails + rescue + end + end + a.load_rails + rescue + end + + def self.get_completions(base) + b = VimRubyCompletion.new + b.get_completions base + end + + def get_completions(base) + loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading") + if loading_allowed.to_i == 1 + load_requires + load_rails + end + + input = VIM::Buffer.current.line + cpos = VIM::Window.current.cursor[1] - 1 + input = input[0..cpos] + input += base + input.sub!(/.*[ \t\n\"\\'`><=;|&{(]/, '') # Readline.basic_word_break_characters + input.sub!(/self\./, '') + input.sub!(/.*((\.\.[\[(]?)|([\[(]))/, '') + + dprint 'input %s' % input + message = nil + receiver = nil + methods = [] + variables = [] + classes = [] + constants = [] + + case input + when /^(\/[^\/]*\/)\.([^.]*)$/ # Regexp + receiver = $1 + message = Regexp.quote($2) + methods = Regexp.instance_methods(true) + + when /^([^\]]*\])\.([^.]*)$/ # Array + receiver = $1 + message = Regexp.quote($2) + methods = Array.instance_methods(true) + + when /^([^\}]*\})\.([^.]*)$/ # Proc or Hash + receiver = $1 + message = Regexp.quote($2) + methods = Proc.instance_methods(true) | Hash.instance_methods(true) + + when /^(:[^:.]*)$/ # Symbol + dprint "symbol" + if Symbol.respond_to?(:all_symbols) + receiver = $1 + message = $1.sub( /:/, '' ) + methods = Symbol.all_symbols.collect{|s| s.id2name} + methods.delete_if { |c| c.match( /'/ ) } + end + + when /^::([A-Z][^:\.\(]*)$/ # Absolute Constant or class methods + dprint "const or cls" + receiver = $1 + methods = Object.constants + methods.grep(/^#{receiver}/).collect{|e| "::" + e} + + when /^(((::)?[A-Z][^:.\(]*)+?)::?([^:.]*)$/ # Constant or class methods + receiver = $1 + message = Regexp.quote($4) + dprint "const or cls 2 [recv: \'%s\', msg: \'%s\']" % [ receiver, message ] + load_buffer_class( receiver ) + begin + classes = eval("#{receiver}.constants") + #methods = eval("#{receiver}.methods") + rescue Exception + dprint "exception: %s" % $! + methods = [] + end + methods.grep(/^#{message}/).collect{|e| receiver + "::" + e} + + when /^(:[^:.]+)\.([^.]*)$/ # Symbol + dprint "symbol" + receiver = $1 + message = Regexp.quote($2) + methods = Symbol.instance_methods(true) + + when /^([0-9_]+(\.[0-9_]+)?(e[0-9]+)?)\.([^.]*)$/ # Numeric + dprint "numeric" + receiver = $1 + message = Regexp.quote($4) + begin + methods = eval(receiver).methods + rescue Exception + methods = [] + end + + when /^(\$[^.]*)$/ #global + dprint "global" + methods = global_variables.grep(Regexp.new(Regexp.quote($1))) + + when /^((\.?[^.]+)+?)\.([^.]*)$/ # variable + dprint "variable" + receiver = $1 + message = Regexp.quote($3) + load_buffer_class( receiver ) + + cv = eval("self.class.constants") + vartype = get_var_type( receiver ) + dprint "vartype: %s" % vartype + if vartype != '' + load_buffer_class( vartype ) + + begin + methods = eval("#{vartype}.instance_methods") + variables = eval("#{vartype}.instance_variables") + rescue Exception + dprint "load_buffer_class err: %s" % $! + end + elsif (cv).include?(receiver) + # foo.func and foo is local var. + methods = eval("#{receiver}.methods") + vartype = receiver + elsif /^[A-Z]/ =~ receiver and /\./ !~ receiver + vartype = receiver + # Foo::Bar.func + begin + methods = eval("#{receiver}.methods") + rescue Exception + end + else + # func1.func2 + ObjectSpace.each_object(Module){|m| + next if m.name != "IRB::Context" and + /^(IRB|SLex|RubyLex|RubyToken)/ =~ m.name + methods.concat m.instance_methods(false) + } + end + variables += add_rails_columns( "#{vartype}" ) if vartype && vartype.length > 0 + + when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/ + message = $1 + methods = Range.instance_methods(true) + + when /^\.([^.]*)$/ # unknown(maybe String) + message = Regexp.quote($1) + methods = String.instance_methods(true) + + else + dprint "default/other" + inclass = eval( VIM::evaluate("s:IsInClassDef()") ) + + if inclass != nil + dprint "inclass" + classdef = "%s\n" % VIM::Buffer.current[ inclass.min ] + found = /^\s*class\s*([A-Za-z0-9_-]*)(\s*<\s*([A-Za-z0-9_:-]*))?\s*\n$/.match( classdef ) + + if found != nil + receiver = $1 + message = input + load_buffer_class( receiver ) + begin + methods = eval( "#{receiver}.instance_methods" ) + variables += add_rails_columns( "#{receiver}" ) + rescue Exception + found = nil + end + end + end + + if inclass == nil || found == nil + dprint "inclass == nil" + methods = get_buffer_methods + methods += get_rails_view_methods + + cls_const = Class.constants + constants = cls_const.select { |c| /^[A-Z_-]+$/.match( c ) } + classes = eval("self.class.constants") - constants + classes += get_buffer_classes + classes += get_buffer_modules + + include_objectspace = VIM::evaluate("exists('g:rubycomplete_include_objectspace') && g:rubycomplete_include_objectspace") + ObjectSpace.each_object(Class) { |cls| classes << cls.to_s } if include_objectspace == "1" + message = receiver = input + end + + methods += get_rails_helpers + methods += Kernel.public_methods + end + + + include_object = VIM::evaluate("exists('g:rubycomplete_include_object') && g:rubycomplete_include_object") + methods = clean_sel( methods, message ) + methods = (methods-Object.instance_methods) if include_object == "0" + rbcmeth = (VimRubyCompletion.instance_methods-Object.instance_methods) # lets remove those rubycomplete methods + methods = (methods-rbcmeth) + + variables = clean_sel( variables, message ) + classes = clean_sel( classes, message ) - ["VimRubyCompletion"] + constants = clean_sel( constants, message ) + + valid = [] + valid += methods.collect { |m| { :name => m, :type => 'm' } } + valid += variables.collect { |v| { :name => v, :type => 'v' } } + valid += classes.collect { |c| { :name => c, :type => 't' } } + valid += constants.collect { |d| { :name => d, :type => 'd' } } + valid.sort! { |x,y| x[:name] <=> y[:name] } + + outp = "" + + rg = 0..valid.length + rg.step(150) do |x| + stpos = 0+x + enpos = 150+x + valid[stpos..enpos].each { |c| outp += "{'word':'%s','item':'%s','kind':'%s'}," % [ c[:name], c[:name], c[:type] ] } + outp.sub!(/,$/, '') + + VIM::command("call extend(g:rubycomplete_completions, [%s])" % outp) + outp = "" + end + end +# }}} main completion code + +end # VimRubyCompletion +# }}} ruby completion +RUBYEOF +endfunction + +let s:rubycomplete_rails_loaded = 0 + +call s:DefRuby() +"}}} ruby-side code + + +" vim:tw=78:sw=4:ts=8:et:fdm=marker:ft=vim:norl: diff --git a/vim/autoload/snipMate.vim b/vim/autoload/snipMate.vim new file mode 100644 index 0000000..618eddd --- /dev/null +++ b/vim/autoload/snipMate.vim @@ -0,0 +1,392 @@ +fun! Filename(...) + let filename = expand('%:t:r') + if filename == '' | return a:0 == 2 ? a:2 : '' | endif + return !a:0 || a:1 == '' ? filename : substitute(a:1, '$1', filename, 'g') +endf + +fun s:RemoveSnippet() + unl g:snipPos s:curPos s:snipLen s:endSnip s:endSnipLine s:prevLen +endf + +fun snipMate#expandSnip(snip, col) + let lnum = line('.') | let col = a:col + + let snippet = s:ProcessSnippet(a:snip) + if snippet == '' | return '' | endif + + let snipLines = split(substitute(snippet, '$\d\+\|${\d\+.\{-}}', '', 'g'), "\n", 1) + + let line = getline(lnum) + let afterCursor = strpart(line, col - 1) + if afterCursor != "\t" && afterCursor != ' ' + let line = strpart(line, 0, col - 1) + let snipLines[-1] .= afterCursor + else + let afterCursor = '' + " For some reason the cursor needs to move one right after this + if line != '' && col == 1 && &ve != 'all' && &ve != 'onemore' + let col += 1 + endif + endif + + call setline(lnum, line.snipLines[0]) + + " Autoindent snippet according to previous indentation + let indent = matchend(line, '^.\{-}\ze\(\S\|$\)') + 1 + call append(lnum, map(snipLines[1:], "'".strpart(line, 0, indent - 1)."'.v:val")) + if &fen | sil! exe lnum.','.(lnum + len(snipLines) - 1).'foldopen' | endif + + let [g:snipPos, s:snipLen] = s:BuildTabStops(snippet, lnum, col - indent, indent) + + if s:snipLen + let s:curPos = 0 + let s:endSnip = g:snipPos[s:curPos][1] + let s:endSnipLine = g:snipPos[s:curPos][0] + + call cursor(g:snipPos[s:curPos][0], g:snipPos[s:curPos][1]) + let s:prevLen = [line('$'), col('$')] + if g:snipPos[s:curPos][2] != -1 | return s:SelectWord() | endif + else + unl g:snipPos s:snipLen + " Place cursor at end of snippet if no tab stop is given + let newlines = len(snipLines) - 1 + call cursor(lnum + newlines, indent + len(snipLines[-1]) - len(afterCursor) + \ + (newlines ? 0: col - 1)) + endif + return '' +endf + +fun s:ProcessSnippet(snip) + let snippet = a:snip + " Evaluate eval (`...`) expressions. + " Using a loop here instead of a regex fixes a bug with nested "\=". + if stridx(snippet, '`') != -1 + while match(snippet, '`.\{-}`') != -1 + let snippet = substitute(snippet, '`.\{-}`', + \ substitute(eval(matchstr(snippet, '`\zs.\{-}\ze`')), + \ "\n\\%$", '', ''), '') + endw + let snippet = substitute(snippet, "\r", "\n", 'g') + endif + + " Place all text after a colon in a tab stop after the tab stop + " (e.g. "${#:foo}" becomes "${:foo}foo"). + " This helps tell the position of the tab stops later. + let snippet = substitute(snippet, '${\d\+:\(.\{-}\)}', '&\1', 'g') + + " Update the a:snip so that all the $# become the text after + " the colon in their associated ${#}. + " (e.g. "${1:foo}" turns all "$1"'s into "foo") + let i = 1 + while stridx(snippet, '${'.i) != -1 + let s = matchstr(snippet, '${'.i.':\zs.\{-}\ze}') + if s != '' + let snippet = substitute(snippet, '$'.i, s.'&', 'g') + endif + let i += 1 + endw + + if &et " Expand tabs to spaces if 'expandtab' is set. + return substitute(snippet, '\t', repeat(' ', &sts ? &sts : &sw), 'g') + endif + return snippet +endf + +fun s:Count(haystack, needle) + let counter = 0 + let index = stridx(a:haystack, a:needle) + while index != -1 + let index = stridx(a:haystack, a:needle, index+1) + let counter += 1 + endw + return counter +endf + +" This function builds a list of a list of each tab stop in the +" snippet containing: +" 1.) The tab stop's line number. +" 2.) The tab stop's column number +" (by getting the length of the string between the last "\n" and the +" tab stop). +" 3.) The length of the text after the colon for the current tab stop +" (e.g. "${1:foo}" would return 3). If there is no text, -1 is returned. +" 4.) If the "${#:}" construct is given, another list containing all +" the matches of "$#", to be replaced with the placeholder. This list is +" composed the same way as the parent; the first item is the line number, +" and the second is the column. +fun s:BuildTabStops(snip, lnum, col, indent) + let snipPos = [] + let i = 1 + let withoutVars = substitute(a:snip, '$\d\+', '', 'g') + while stridx(a:snip, '${'.i) != -1 + let beforeTabStop = matchstr(withoutVars, '^.*\ze${'.i.'\D') + let withoutOthers = substitute(withoutVars, '${\('.i.'\D\)\@!\d\+.\{-}}', '', 'g') + + let j = i - 1 + call add(snipPos, [0, 0, -1]) + let snipPos[j][0] = a:lnum + s:Count(beforeTabStop, "\n") + let snipPos[j][1] = a:indent + len(matchstr(withoutOthers, '.*\(\n\|^\)\zs.*\ze${'.i.'\D')) + if snipPos[j][0] == a:lnum | let snipPos[j][1] += a:col | endif + + " Get all $# matches in another list, if ${#:name} is given + if stridx(withoutVars, '${'.i.':') != -1 + let snipPos[j][2] = len(matchstr(withoutVars, '${'.i.':\zs.\{-}\ze}')) + let dots = repeat('.', snipPos[j][2]) + call add(snipPos[j], []) + let withoutOthers = substitute(a:snip, '${\d\+.\{-}}\|$'.i.'\@!\d\+', '', 'g') + while match(withoutOthers, '$'.i.'\D') != -1 + let beforeMark = matchstr(withoutOthers, '^.\{-}\ze'.dots.'$'.i.'\D') + call add(snipPos[j][3], [0, 0]) + let snipPos[j][3][-1][0] = a:lnum + s:Count(beforeMark, "\n") + let snipPos[j][3][-1][1] = a:indent + (snipPos[j][3][-1][0] > a:lnum + \ ? len(matchstr(beforeMark, '.*\n\zs.*')) + \ : a:col + len(beforeMark)) + let withoutOthers = substitute(withoutOthers, '$'.i.'\ze\D', '', '') + endw + endif + let i += 1 + endw + return [snipPos, i - 1] +endf + +fun snipMate#jumpTabStop() + if exists('s:update') + call s:UpdatePlaceholderTabStops() + else + call s:UpdateTabStops() + endif + + let s:curPos += 1 + if s:curPos == s:snipLen + let sMode = s:endSnip == g:snipPos[s:curPos-1][1]+g:snipPos[s:curPos-1][2] + call s:RemoveSnippet() + return sMode ? "\" : TriggerSnippet() + endif + + call cursor(g:snipPos[s:curPos][0], g:snipPos[s:curPos][1]) + + let s:endSnipLine = g:snipPos[s:curPos][0] + let s:endSnip = g:snipPos[s:curPos][1] + let s:prevLen = [line('$'), col('$')] + + return g:snipPos[s:curPos][2] == -1 ? '' : s:SelectWord() +endf + +fun s:UpdatePlaceholderTabStops() + let changeLen = s:origWordLen - g:snipPos[s:curPos][2] + unl s:startSnip s:origWordLen s:update + if !exists('s:origPos') | return | endif + " Update tab stops in snippet if text has been added via "$#" + " (e.g., in "${1:foo}bar$1${2}"). + if changeLen != 0 + let curLine = line('.') + + for pos in g:snipPos[s:curPos + 1:] + let changed = pos[0] == curLine && pos[1] > s:origSnipPos + let changedVars = 0 + let endPlaceholder = pos[2] - 1 + pos[1] + " Subtract changeLen from each tab stop that was after any of + " the current tab stop's placeholders. + for [lnum, col] in s:origPos + if lnum > pos[0] | break | endif + if pos[0] == lnum + if pos[1] > col || (pos[2] == -1 && pos[1] == col) + let changed += 1 + elseif col < endPlaceholder + let changedVars += 1 + endif + endif + endfor + let pos[1] -= changeLen * changed + let pos[2] -= changeLen * changedVars " Parse variables within placeholders + " e.g., "${1:foo} ${2:$1bar}" + + if pos[2] == -1 | continue | endif + " Do the same to any placeholders in the other tab stops. + for nPos in pos[3] + let changed = nPos[0] == curLine && nPos[1] > s:origSnipPos + for [lnum, col] in s:origPos + if lnum > nPos[0] | break | endif + if nPos[0] == lnum && nPos[1] > col + let changed += 1 + endif + endfor + let nPos[1] -= changeLen * changed + endfor + endfor + endif + unl s:endSnip s:origPos s:origSnipPos +endf + +fun s:UpdateTabStops() + let changeLine = s:endSnipLine - g:snipPos[s:curPos][0] + let changeCol = s:endSnip - g:snipPos[s:curPos][1] + if exists('s:origWordLen') + let changeCol -= s:origWordLen + unl s:origWordLen + endif + let lnum = g:snipPos[s:curPos][0] + let col = g:snipPos[s:curPos][1] + " Update the line number of all proceeding tab stops if has + " been inserted. + if changeLine != 0 + let changeLine -= 1 + for pos in g:snipPos[s:curPos + 1:] + if pos[0] >= lnum + if pos[0] == lnum | let pos[1] += changeCol | endif + let pos[0] += changeLine + endif + if pos[2] == -1 | continue | endif + for nPos in pos[3] + if nPos[0] >= lnum + if nPos[0] == lnum | let nPos[1] += changeCol | endif + let nPos[0] += changeLine + endif + endfor + endfor + elseif changeCol != 0 + " Update the column of all proceeding tab stops if text has + " been inserted/deleted in the current line. + for pos in g:snipPos[s:curPos + 1:] + if pos[1] >= col && pos[0] == lnum + let pos[1] += changeCol + endif + if pos[2] == -1 | continue | endif + for nPos in pos[3] + if nPos[0] > lnum | break | endif + if nPos[0] == lnum && nPos[1] >= col + let nPos[1] += changeCol + endif + endfor + endfor + endif +endf + +fun s:SelectWord() + let s:origWordLen = g:snipPos[s:curPos][2] + let s:oldWord = strpart(getline('.'), g:snipPos[s:curPos][1] - 1, + \ s:origWordLen) + let s:prevLen[1] -= s:origWordLen + if !empty(g:snipPos[s:curPos][3]) + let s:update = 1 + let s:endSnip = -1 + let s:startSnip = g:snipPos[s:curPos][1] - 1 + endif + if !s:origWordLen | return '' | endif + let l = col('.') != 1 ? 'l' : '' + if &sel == 'exclusive' + return "\".l.'v'.s:origWordLen."l\" + endif + return s:origWordLen == 1 ? "\".l.'gh' + \ : "\".l.'v'.(s:origWordLen - 1)."l\" +endf + +" This updates the snippet as you type when text needs to be inserted +" into multiple places (e.g. in "${1:default text}foo$1bar$1", +" "default text" would be highlighted, and if the user types something, +" UpdateChangedSnip() would be called so that the text after "foo" & "bar" +" are updated accordingly) +" +" It also automatically quits the snippet if the cursor is moved out of it +" while in insert mode. +au CursorMovedI * call s:UpdateChangedSnip(0) +au InsertEnter * call s:UpdateChangedSnip(1) +fun s:UpdateChangedSnip(entering) + if exists('s:update') " If modifying a placeholder + if !exists('s:origPos') && s:curPos + 1 < s:snipLen + " Save the old snippet & word length before it's updated + " s:startSnip must be saved too, in case text is added + " before the snippet (e.g. in "foo$1${2}bar${1:foo}"). + let s:origSnipPos = s:startSnip + let s:origPos = deepcopy(g:snipPos[s:curPos][3]) + endif + let col = col('.') - 1 + + if s:endSnip != -1 + let changeLen = col('$') - s:prevLen[1] + let s:endSnip += changeLen + else " When being updated the first time, after leaving select mode + if a:entering | return | endif + let s:endSnip = col - 1 + endif + + " If the cursor moves outside the snippet, quit it + if line('.') != g:snipPos[s:curPos][0] || col < s:startSnip || + \ col - 1 > s:endSnip + unl! s:startSnip s:origWordLen s:origPos s:update + return s:RemoveSnippet() + endif + + call s:UpdateVars() + let s:prevLen[1] = col('$') + elseif exists('g:snipPos') + let col = col('.') + let lnum = line('.') + let changeLine = line('$') - s:prevLen[0] + + if lnum == s:endSnipLine + let s:endSnip += col('$') - s:prevLen[1] + let s:prevLen = [line('$'), col('$')] + endif + if changeLine != 0 + let s:endSnipLine += changeLine + let s:endSnip = col + endif + + " Delete snippet if cursor moves out of it in insert mode + if (lnum == s:endSnipLine && (col > s:endSnip || col < g:snipPos[s:curPos][1])) + \ || lnum > s:endSnipLine || lnum < g:snipPos[s:curPos][0] + call s:RemoveSnippet() + endif + endif +endf + +" This updates the variables in a snippet when a placeholder has been edited. +" (e.g., each "$1" in "${1:foo} $1bar $1bar") +fun s:UpdateVars() + let newWordLen = s:endSnip - s:startSnip + 1 + let newWord = strpart(getline('.'), s:startSnip, newWordLen) + if newWord == s:oldWord || empty(g:snipPos[s:curPos][3]) + return + endif + + let changeLen = g:snipPos[s:curPos][2] - newWordLen + let curLine = line('.') + let startCol = col('.') + let oldStartSnip = s:startSnip + let updateTabStops = changeLen != 0 + let i = 0 + + for [lnum, col] in g:snipPos[s:curPos][3] + if updateTabStops + let start = s:startSnip + if lnum == curLine && col <= start + let s:startSnip -= changeLen + let s:endSnip -= changeLen + endif + for nPos in g:snipPos[s:curPos][3][(i):] + " This list is in ascending order, so quit if we've gone too far. + if nPos[0] > lnum | break | endif + if nPos[0] == lnum && nPos[1] > col + let nPos[1] -= changeLen + endif + endfor + if lnum == curLine && col > start + let col -= changeLen + let g:snipPos[s:curPos][3][i][1] = col + endif + let i += 1 + endif + + " "Very nomagic" is used here to allow special characters. + call setline(lnum, substitute(getline(lnum), '\%'.col.'c\V'. + \ escape(s:oldWord, '\'), escape(newWord, '\&'), '')) + endfor + if oldStartSnip != s:startSnip + call cursor(0, startCol + s:startSnip - oldStartSnip) + endif + + let s:oldWord = newWord + let g:snipPos[s:curPos][2] = newWordLen +endf +" vim:noet:sw=4:ts=4:ft=vim diff --git a/vim/autoload/syntastic.vim b/vim/autoload/syntastic.vim new file mode 100755 index 0000000..30d56b8 --- /dev/null +++ b/vim/autoload/syntastic.vim @@ -0,0 +1,194 @@ +if exists("g:loaded_syntastic_autoload") + finish +endif +let g:loaded_syntastic_autoload = 1 + +let s:save_cpo = &cpo +set cpo&vim + +function! syntastic#ErrorBalloonExpr() + if !exists('b:syntastic_balloons') | return '' | endif + return get(b:syntastic_balloons, v:beval_lnum, '') +endfunction + +function! syntastic#HighlightErrors(errors, termfunc, ...) + call clearmatches() + let forcecb = a:0 && a:1 + for item in a:errors + let group = item['type'] == 'E' ? 'SpellBad' : 'SpellCap' + if item['col'] && !forcecb + let lastcol = col([item['lnum'], '$']) + let lcol = min([lastcol, item['col']]) + call matchadd(group, '\%'.item['lnum'].'l\%'.lcol.'c') + else + let term = a:termfunc(item) + if len(term) > 0 + call matchadd(group, '\%' . item['lnum'] . 'l' . term) + endif + endif + endfor +endfunction + +" initialize c/cpp syntax checker handlers +function! s:Init() + let s:handlers = [] + let s:cflags = {} + + call s:RegHandler('gtk', 'syntastic#CheckPKG', + \ ['gtk', 'gtk+-2.0', 'gtk+', 'glib-2.0', 'glib']) + call s:RegHandler('glib', 'syntastic#CheckPKG', + \ ['glib', 'glib-2.0', 'glib']) + call s:RegHandler('glade', 'syntastic#CheckPKG', + \ ['glade', 'libglade-2.0', 'libglade']) + call s:RegHandler('libsoup', 'syntastic#CheckPKG', + \ ['libsoup', 'libsoup-2.4', 'libsoup-2.2']) + call s:RegHandler('webkit', 'syntastic#CheckPKG', + \ ['webkit', 'webkit-1.0']) + call s:RegHandler('cairo', 'syntastic#CheckPKG', + \ ['cairo', 'cairo']) + call s:RegHandler('pango', 'syntastic#CheckPKG', + \ ['pango', 'pango']) + call s:RegHandler('libxml', 'syntastic#CheckPKG', + \ ['libxml', 'libxml-2.0', 'libxml']) + call s:RegHandler('freetype', 'syntastic#CheckPKG', + \ ['freetype', 'freetype2', 'freetype']) + call s:RegHandler('SDL', 'syntastic#CheckPKG', + \ ['sdl', 'sdl']) + call s:RegHandler('opengl', 'syntastic#CheckPKG', + \ ['opengl', 'gl']) + call s:RegHandler('ruby', 'syntastic#CheckRuby', []) + call s:RegHandler('Python\.h', 'syntastic#CheckPython', []) + call s:RegHandler('php\.h', 'syntastic#CheckPhp', []) +endfunction + +" search the first 100 lines for include statements that are +" given in the handlers dictionary +function! syntastic#SearchHeaders() + let includes = '' + let files = [] + let found = [] + let lines = filter(getline(1, 100), 'v:val =~# "#\s*include"') + + " search current buffer + for line in lines + let file = matchstr(line, '"\zs\S\+\ze"') + if file != '' + call add(files, file) + continue + endif + for handler in s:handlers + if line =~# handler["regex"] + let includes .= call(handler["func"], handler["args"]) + call add(found, handler["regex"]) + break + endif + endfor + endfor + + " search included headers + for hfile in files + if hfile != '' + let filename = expand('%:p:h') . ((has('win32') || has('win64')) ? + \ '\' : '/') . hfile + try + let lines = readfile(filename, '', 100) + catch /E484/ + continue + endtry + let lines = filter(lines, 'v:val =~# "#\s*include"') + for handler in s:handlers + if index(found, handler["regex"]) != -1 + continue + endif + for line in lines + if line =~# handler["regex"] + let includes .= call(handler["func"], handler["args"]) + call add(found, handler["regex"]) + break + endif + endfor + endfor + endif + endfor + + return includes +endfunction + +" try to find library with 'pkg-config' +" search possible libraries from first to last given +" argument until one is found +function! syntastic#CheckPKG(name, ...) + if executable('pkg-config') + if !has_key(s:cflags, a:name) + for i in range(a:0) + let l:cflags = system('pkg-config --cflags '.a:000[i]) + " since we cannot necessarily trust the pkg-config exit code + " we have to check for an error output as well + if v:shell_error == 0 && l:cflags !~? 'not found' + let l:cflags = ' '.substitute(l:cflags, "\n", '', '') + let s:cflags[a:name] = l:cflags + return l:cflags + endif + endfor + else + return s:cflags[a:name] + endif + endif + return '' +endfunction + +" try to find PHP includes with 'php-config' +function! syntastic#CheckPhp() + if executable('php-config') + if !exists('s:php_flags') + let s:php_flags = system('php-config --includes') + let s:php_flags = ' ' . substitute(s:php_flags, "\n", '', '') + endif + return s:php_flags + endif + return '' +endfunction + +" try to find the ruby headers with 'rbconfig' +function! syntastic#CheckRuby() + if executable('ruby') + if !exists('s:ruby_flags') + let s:ruby_flags = system('ruby -r rbconfig -e ' + \ . '''puts Config::CONFIG["archdir"]''') + let s:ruby_flags = substitute(s:ruby_flags, "\n", '', '') + let s:ruby_flags = ' -I' . s:ruby_flags + endif + return s:ruby_flags + endif + return '' +endfunction + +" try to find the python headers with distutils +function! syntastic#CheckPython() + if executable('python') + if !exists('s:python_flags') + let s:python_flags = system('python -c ''from distutils import ' + \ . 'sysconfig; print sysconfig.get_python_inc()''') + let s:python_flags = substitute(s:python_flags, "\n", '', '') + let s:python_flags = ' -I' . s:python_flags + endif + return s:python_flags + endif + return '' +endfunction + +" return a handler dictionary object +function! s:RegHandler(regex, function, args) + let handler = {} + let handler["regex"] = a:regex + let handler["func"] = function(a:function) + let handler["args"] = a:args + call add(s:handlers, handler) +endfunction + +call s:Init() + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: set et sts=4 sw=4: diff --git a/vim/autoload/tcomment.vim b/vim/autoload/tcomment.vim new file mode 100644 index 0000000..75ac268 --- /dev/null +++ b/vim/autoload/tcomment.vim @@ -0,0 +1,576 @@ +" tcomment.vim +" @Author: Tom Link (mailto:micathom AT gmail com?subject=[vim]) +" @Website: http://www.vim.org/account/profile.php?user_id=4037 +" @License: GPL (see http://www.gnu.org/licenses/gpl.txt) +" @Created: 2007-09-17. +" @Last Change: 2009-02-15. +" @Revision: 0.0.66 + +if &cp || exists("loaded_tcomment_autoload") + finish +endif +let loaded_tcomment_autoload = 1 + + +function! s:DefaultValue(option) + exec 'let '. a:option .' = &'. a:option + exec 'set '. a:option .'&' + exec 'let default = &'. a:option + exec 'let &'. a:option .' = '. a:option + return default +endf + +let s:defaultComments = s:DefaultValue('comments') +let s:defaultCommentString = s:DefaultValue('commentstring') +let s:nullCommentString = '%s' + +" tcomment#Comment(line1, line2, ?commentMode, ?commentAnyway, ?commentBegin, ?commentEnd) +" commentMode: +" G ... guess +" B ... block +" i ... maybe inline, guess +" I ... inline +" R ... right +" v ... visual +" o ... operator +function! tcomment#Comment(beg, end, ...) + " save the cursor position + let co = col('.') + let li = line('.') + let s:pos_end = getpos("'>") + let commentMode = a:0 >= 1 ? a:1 : 'G' + let commentAnyway = a:0 >= 2 ? (a:2 == '!') : 0 + " TLogVAR a:beg, a:end, a:1, commentMode, commentAnyway + if commentMode =~# 'i' + let commentMode = substitute(commentMode, '\Ci', line("'<") == line("'>") ? 'I' : 'G', 'g') + endif + if commentMode =~# 'R' || commentMode =~# 'I' + let cstart = col("'<") + if cstart == 0 + let cstart = col('.') + endif + if commentMode =~# 'R' + let commentMode = substitute(commentMode, '\CR', 'G', 'g') + let cend = 0 + else + let cend = col("'>") + if commentMode =~# 'o' + let cend += 1 + endif + endif + else + let cstart = 0 + let cend = 0 + endif + " TLogVAR commentMode, cstart, cend + " get the correct commentstring + if a:0 >= 3 && a:3 != '' + let cms = s:EncodeCommentPart(a:3) .'%s' + if a:0 >= 4 && a:4 != '' + let cms = cms . s:EncodeCommentPart(a:4) + endif + else + let [cms, commentMode] = s:GetCommentString(a:beg, a:end, commentMode) + endif + let cms0 = s:BlockGetCommentString(cms) + let cms0 = escape(cms0, '\') + " make whitespace optional; this conflicts with comments that require some + " whitespace + let cmtCheck = substitute(cms0, '\([ ]\)', '\1\\?', 'g') + " turn commentstring into a search pattern + let cmtCheck = s:SPrintF(cmtCheck, '\(\_.\{-}\)') + " set commentMode and indentStr + let [indentStr, uncomment] = s:CommentDef(a:beg, a:end, cmtCheck, commentMode, cstart, cend) + " TLogVAR indentStr, uncomment + if commentAnyway + let uncomment = 0 + endif + " go + if commentMode =~# 'B' + " We want a comment block + call s:CommentBlock(a:beg, a:end, uncomment, cmtCheck, cms, indentStr) + else + " call s:CommentLines(a:beg, a:end, cstart, cend, uncomment, cmtCheck, cms0, indentStr) + " We want commented lines + " final search pattern for uncommenting + let cmtCheck = escape('\V\^\(\s\{-}\)'. cmtCheck .'\$', '"/\') + " final pattern for commenting + let cmtReplace = escape(cms0, '"/') + silent exec a:beg .','. a:end .'s/\V'. + \ s:StartRx(cstart) . indentStr .'\zs\(\.\{-}\)'. s:EndRx(cend) .'/'. + \ '\=s:ProcessedLine('. uncomment .', submatch(0), "'. cmtCheck .'", "'. cmtReplace .'")/ge' + endif + " reposition cursor + " TLogVAR commentMode + if commentMode =~ '>' + call setpos('.', s:pos_end) + else + " TLogVAR li, co + call cursor(li, co) + endif +endf + +function! tcomment#Operator(type, ...) "{{{3 + let commentMode = a:0 >= 1 ? a:1 : '' + let bang = a:0 >= 2 ? a:2 : '' + if !exists('w:tcommentPos') + let w:tcommentPos = getpos(".") + endif + let sel_save = &selection + let &selection = "inclusive" + let reg_save = @@ + " let pos = getpos('.') + " TLogVAR a:type + try + if a:type == 'line' + silent exe "normal! '[V']" + let commentMode1 = 'G' + elseif a:type == 'block' + silent exe "normal! `[\`]" + let commentMode1 = 'I' + else + silent exe "normal! `[v`]" + let commentMode1 = 'i' + endif + if empty(commentMode) + let commentMode = commentMode1 + endif + let beg = line("'[") + let end = line("']") + norm!  + let commentMode .= g:tcommentOpModeExtra + call tcomment#Comment(beg, end, commentMode.'o', bang) + finally + let &selection = sel_save + let @@ = reg_save + if g:tcommentOpModeExtra !~ '>' + " TLogVAR pos + " call setpos('.', pos) + call setpos('.', w:tcommentPos) + unlet! w:tcommentPos + endif + endtry +endf + + +function! tcomment#OperatorLine(type) "{{{3 + call tcomment#Operator(a:type, 'G') +endf + + +function! tcomment#OperatorAnyway(type) "{{{3 + call tcomment#Operator(a:type, '', '!') +endf + + +function! tcomment#OperatorLineAnyway(type) "{{{3 + call tcomment#Operator(a:type, 'G', '!') +endf + + +" comment text as if it were of a specific filetype +function! tcomment#CommentAs(beg, end, commentAnyway, filetype, ...) + let ccount = a:0 >= 1 ? a:1 : 1 + " TLogVAR ccount + if a:filetype =~ '_block$' + let commentMode = 'B' + let ft = substitute(a:filetype, '_block$', '', '') + elseif a:filetype =~ '_inline$' + let commentMode = 'I' + let ft = substitute(a:filetype, '_inline$', '', '') + else + let commentMode = 'G' + let ft = a:filetype + endif + let [cms, commentMode] = s:GetCommentString(a:beg, a:end, commentMode, ft) + let pre = substitute(cms, '%s.*$', '', '') + let pre = substitute(pre, '%%', '%', 'g') + let post = substitute(cms, '^.\{-}%s', '', '') + let post = substitute(post, '%%', '%', 'g') + if ccount > 1 + let pre_l = matchlist(pre, '^\(\S\+\)\(.*\)$') + " TLogVAR pre_l + if !empty(get(pre_l, 1)) + let pre = repeat(pre_l[1], ccount) . pre_l[2] + endif + let post_l = matchlist(post, '^\(\s*\)\(.\+\)$') + " TLogVAR post_l + if !empty(get(post_l, 2)) + let post = post_l[1] . repeat(post_l[2], ccount) + endif + endif + keepjumps call tcomment#Comment(a:beg, a:end, commentMode, a:commentAnyway, pre, post) +endf + + +" ---------------------------------------------------------------- +" collect all variables matching ^tcomment_ +function! tcomment#CollectFileTypes() + if g:tcommentFileTypesDirty + redir => vars + silent let + redir END + let g:tcommentFileTypes = split(vars, '\n') + call filter(g:tcommentFileTypes, 'v:val =~ "tcomment_"') + call map(g:tcommentFileTypes, 'matchstr(v:val, ''tcomment_\zs\S\+'')') + call sort(g:tcommentFileTypes) + let g:tcommentFileTypesRx = '\V\^\('. join(g:tcommentFileTypes, '\|') .'\)\(\u\.\*\)\?\$' + let g:tcommentFileTypesDirty = 0 + endif +endf + +call tcomment#CollectFileTypes() + +" return a list of filetypes for which a tcomment_{&ft} is defined +function! tcomment#FileTypes(ArgLead, CmdLine, CursorPos) + " TLogVAR a:ArgLead, a:CmdLine, a:CursorPos + call tcomment#CollectFileTypes() + let types = copy(g:tcommentFileTypes) + if index(g:tcommentFileTypes, &filetype) != -1 + " TLogVAR &filetype + call insert(types, &filetype) + endif + if empty(a:ArgLead) + return types + else + return filter(types, 'v:val =~ ''\V''.a:ArgLead') + endif +endf + +function! s:EncodeCommentPart(string) + return substitute(a:string, '%', '%%', 'g') +endf + +" s:GetCommentString(beg, end, commentMode, ?filetype="") +function! s:GetCommentString(beg, end, commentMode, ...) + let ft = a:0 >= 1 ? a:1 : '' + if ft != '' + let [cms, commentMode] = s:GetCustomCommentString(ft, a:commentMode) + else + let cms = '' + let commentMode = a:commentMode + endif + if empty(cms) + if exists('b:commentstring') + let cms = b:commentstring + return s:GetCustomCommentString(&filetype, a:commentMode, cms) + elseif exists('b:commentStart') && b:commentStart != '' + let cms = s:EncodeCommentPart(b:commentStart) .' %s' + if exists('b:commentEnd') && b:commentEnd != '' + let cms = cms .' '. s:EncodeCommentPart(b:commentEnd) + endif + return s:GetCustomCommentString(&filetype, a:commentMode, cms) + elseif g:tcommentGuessFileType || (exists('g:tcommentGuessFileType_'. &filetype) + \ && g:tcommentGuessFileType_{&filetype} =~ '[^0]') + if g:tcommentGuessFileType_{&filetype} == 1 + let altFiletype = '' + else + let altFiletype = g:tcommentGuessFileType_{&filetype} + endif + return s:GuessFileType(a:beg, a:end, a:commentMode, &filetype, altFiletype) + else + return s:GetCustomCommentString(&filetype, a:commentMode, s:GuessCurrentCommentString(a:commentMode)) + endif + endif + return [cms, commentMode] +endf + +" s:SPrintF(formatstring, ?values ...) +" => string +function! s:SPrintF(string, ...) + let n = 1 + let r = '' + let s = a:string + while 1 + let i = match(s, '%\(.\)') + if i >= 0 + let x = s[i + 1] + let r = r . strpart(s, 0, i) + let s = strpart(s, i + 2) + if x == '%' + let r = r.'%' + else + if a:0 >= n + let v = a:{n} + let n = n + 1 + else + echoerr 'Malformed format string (too many arguments required): '. a:string + endif + if x ==# 's' + let r = r.v + elseif x ==# 'S' + let r = r.'"'.v.'"' + else + echoerr 'Malformed format string: '. a:string + endif + endif + else + return r.s + endif + endwh +endf + +function! s:StartRx(pos) + if a:pos == 0 + return '\^' + else + return '\%'. a:pos .'c' + endif +endf + +function! s:EndRx(pos) + if a:pos == 0 + return '\$' + else + return '\%'. a:pos .'c' + endif +endf + +function! s:GetIndentString(line, start) + let start = a:start > 0 ? a:start - 1 : 0 + return substitute(strpart(getline(a:line), start), '\V\^\s\*\zs\.\*\$', '', '') +endf + +function! s:CommentDef(beg, end, checkRx, commentMode, cstart, cend) + let mdrx = '\V'. s:StartRx(a:cstart) .'\s\*'. a:checkRx .'\s\*'. s:EndRx(0) + let line = getline(a:beg) + if a:cstart != 0 && a:cend != 0 + let line = strpart(line, 0, a:cend - 1) + endif + let uncomment = (line =~ mdrx) + let it = s:GetIndentString(a:beg, a:cstart) + let il = indent(a:beg) + let n = a:beg + 1 + while n <= a:end + if getline(n) =~ '\S' + let jl = indent(n) + if jl < il + let it = s:GetIndentString(n, a:cstart) + let il = jl + endif + if a:commentMode =~# 'G' + if !(getline(n) =~ mdrx) + let uncomment = 0 + endif + endif + endif + let n = n + 1 + endwh + if a:commentMode =~# 'B' + let t = @t + try + silent exec 'norm! '. a:beg.'G1|v'.a:end.'G$"ty' + let uncomment = (@t =~ mdrx) + finally + let @t = t + endtry + endif + return [it, uncomment] +endf + +function! s:ProcessedLine(uncomment, match, checkRx, replace) + if !(a:match =~ '\S' || g:tcommentBlankLines) + return a:match + endif + let ml = len(a:match) + if a:uncomment + let rv = substitute(a:match, a:checkRx, '\1\2', '') + else + let rv = s:SPrintF(a:replace, a:match) + endif + " let md = len(rv) - ml + let s:pos_end = getpos('.') + let s:pos_end[2] += len(rv) + " TLogVAR pe, md, a:match + let rv = escape(rv, '\ ') + let rv = substitute(rv, '\n', '\\\n', 'g') + return rv +endf + +function! s:CommentLines(beg, end, cstart, cend, uncomment, cmtCheck, cms0, indentStr) "{{{3 + " We want commented lines + " final search pattern for uncommenting + let cmtCheck = escape('\V\^\(\s\{-}\)'. a:cmtCheck .'\$', '"/\') + " final pattern for commenting + let cmtReplace = escape(a:cms0, '"/') + silent exec a:beg .','. a:end .'s/\V'. + \ s:StartRx(a:cstart) . a:indentStr .'\zs\(\.\{-}\)'. s:EndRx(a:cend) .'/'. + \ '\=s:ProcessedLine('. a:uncomment .', submatch(0), "'. a:cmtCheck .'", "'. cmtReplace .'")/ge' +endf + +function! s:CommentBlock(beg, end, uncomment, checkRx, replace, indentStr) + let t = @t + try + silent exec 'norm! '. a:beg.'G1|v'.a:end.'G$"td' + let ms = s:BlockGetMiddleString(a:replace) + let mx = escape(ms, '\') + if a:uncomment + let @t = substitute(@t, '\V\^\s\*'. a:checkRx .'\$', '\1', '') + if ms != '' + let @t = substitute(@t, '\V\n'. a:indentStr . mx, '\n'. a:indentStr, 'g') + endif + let @t = substitute(@t, '^\n', '', '') + let @t = substitute(@t, '\n\s*$', '', '') + else + let cs = s:BlockGetCommentString(a:replace) + let cs = a:indentStr . substitute(cs, '%s', '%s'. a:indentStr, '') + if ms != '' + let ms = a:indentStr . ms + let mx = a:indentStr . mx + let @t = substitute(@t, '^'. a:indentStr, '', 'g') + let @t = ms . substitute(@t, '\n'. a:indentStr, '\n'. mx, 'g') + endif + let @t = s:SPrintF(cs, "\n". @t ."\n") + endif + silent norm! "tP + finally + let @t = t + endtry +endf + +" inspired by Meikel Brandmeyer's EnhancedCommentify.vim +" this requires that a syntax names are prefixed by the filetype name +" s:GuessFileType(beg, end, commentMode, filetype, ?fallbackFiletype) +function! s:GuessFileType(beg, end, commentMode, filetype, ...) + if a:0 >= 1 && a:1 != '' + let [cms, commentMode] = s:GetCustomCommentString(a:1, a:commentMode) + if cms == '' + let cms = s:GuessCurrentCommentString(a:commentMode) + endif + else + let commentMode = s:CommentMode(a:commentMode, 'G') + let cms = s:GuessCurrentCommentString(0) + endif + let n = a:beg + " TLogVAR n, a:beg, a:end + while n <= a:end + let m = indent(n) + 1 + let le = len(getline(n)) + " TLogVAR m, le + while m < le + let syntaxName = synIDattr(synID(n, m, 1), 'name') + " TLogVAR syntaxName, n, m + let ftypeMap = get(g:tcommentSyntaxMap, syntaxName) + if !empty(ftypeMap) + " TLogVAR ftypeMap + return s:GetCustomCommentString(ftypeMap, a:commentMode, cms) + elseif syntaxName =~ g:tcommentFileTypesRx + let ft = substitute(syntaxName, g:tcommentFileTypesRx, '\1', '') + " TLogVAR ft + if exists('g:tcommentIgnoreTypes_'. a:filetype) && g:tcommentIgnoreTypes_{a:filetype} =~ '\<'.ft.'\>' + let m += 1 + else + return s:GetCustomCommentString(ft, a:commentMode, cms) + endif + elseif syntaxName == '' || syntaxName == 'None' || syntaxName =~ '^\u\+$' || syntaxName =~ '^\u\U*$' + let m += 1 + else + break + endif + endwh + let n += 1 + endwh + return [cms, commentMode] +endf + +function! s:CommentMode(commentMode, newmode) "{{{3 + return substitute(a:commentMode, '\w\+', a:newmode, 'g') +endf + +function! s:GuessCurrentCommentString(commentMode) + let valid_cms = (stridx(&commentstring, '%s') != -1) + if &commentstring != s:defaultCommentString && valid_cms + " The &commentstring appears to have been set and to be valid + return &commentstring + endif + if &comments != s:defaultComments + " the commentstring is the default one, so we assume that it wasn't + " explicitly set; we then try to reconstruct &cms from &comments + let cms = s:ConstructFromComments(a:commentMode) + if cms != s:nullCommentString + return cms + endif + endif + if valid_cms + " Before &commentstring appeared not to be set. As we don't know + " better we return it anyway if it is valid + return &commentstring + else + " &commentstring is invalid. So we return the identity string. + return s:nullCommentString + endif +endf + +function! s:ConstructFromComments(commentMode) + exec s:ExtractCommentsPart('') + if a:commentMode =~# 'G' && line != '' + return line .' %s' + endif + exec s:ExtractCommentsPart('s') + if s != '' + exec s:ExtractCommentsPart('e') + " if a:commentMode + " exec s:ExtractCommentsPart("m") + " if m != "" + " let m = "\n". m + " endif + " return s.'%s'.e.m + " else + return s.' %s '.e + " endif + endif + if line != '' + return line .' %s' + else + return s:nullCommentString + endif +endf + +function! s:ExtractCommentsPart(key) + " let key = a:key != "" ? a:key .'[^:]*' : "" + let key = a:key . '[bnflrxO0-9-]*' + let val = substitute(&comments, '^\(.\{-},\)\{-}'. key .':\([^,]\+\).*$', '\2', '') + if val == &comments + let val = '' + else + let val = substitute(val, '%', '%%', 'g') + endif + let var = a:key == '' ? 'line' : a:key + return 'let '. var .'="'. escape(val, '"') .'"' +endf + +" s:GetCustomCommentString(ft, commentMode, ?default="") +function! s:GetCustomCommentString(ft, commentMode, ...) + let commentMode = a:commentMode + let customComment = exists('g:tcomment_'. a:ft) + if commentMode =~# 'B' && exists('g:tcomment_'. a:ft .'_block') + let cms = g:tcomment_{a:ft}_block + elseif commentMode =~? 'I' && exists('g:tcomment_'. a:ft .'_inline') + let cms = g:tcomment_{a:ft}_inline + elseif customComment + let cms = g:tcomment_{a:ft} + let commentMode = s:CommentMode(commentMode, 'G') + elseif a:0 >= 1 + let cms = a:1 + let commentMode = s:CommentMode(commentMode, 'G') + else + let cms = '' + let commentMode = s:CommentMode(commentMode, 'G') + endif + return [cms, commentMode] +endf + +function! s:BlockGetCommentString(cms) + " return substitute(a:cms, '\n.*$', '', '') + return matchstr(a:cms, '^.\{-}\ze\(\n\|$\)') +endf + +function! s:BlockGetMiddleString(cms) + " let rv = substitute(a:cms, '^.\{-}\n\([^\n]*\)', '\1', '') + let rv = matchstr(a:cms, '\n\zs.*') + return rv == a:cms ? '' : rv +endf + + +redraw + diff --git a/vim/bin/ruby_debugger.rb b/vim/bin/ruby_debugger.rb new file mode 100644 index 0000000..bf48585 --- /dev/null +++ b/vim/bin/ruby_debugger.rb @@ -0,0 +1,140 @@ +require 'socket' + +class VimRubyDebugger + + def initialize(params) + @params = params + create_directory(@params[:messages_file]) + @rdebug = wait_for_opened_socket(@params[:host], @params[:rdebug_port]) + @vim_ruby_debugger = TCPServer.new(@params[:host], @params[:vim_ruby_debugger_port]) + @queue = [] + @result = [] + @separator = "++vim-ruby-debugger separator++" + run + end + + private + + def wait_for_opened_socket(host, port, &block) + attempts = 0 + begin + socket = TCPSocket.open(host, port) + yield if block_given? + rescue Errno::ECONNREFUSED => msg + attempts += 1 + # If socket wasn't be opened for 20 seconds, exit + if attempts < 400 + sleep 0.05 + retry + else + raise Errno::ECONNREFUSED, "#{host}:#{port} wasn't be opened" + end + end + socket + end + + + def create_directory(file) + dir = File.dirname(file) + Dir.mkdir(dir) unless File.exist?(dir) && File.directory?(dir) + end + + + def run + t1 = Thread.new do + while(session = @vim_ruby_debugger.accept) + input = session.gets + @queue = input.split(@separator) + handle_queue + end + end + t2 = Thread.new do + loop do + response = select([@rdebug], nil, nil) + output = read_socket(response, @rdebug) + @result << output + # If we stop at breakpoint, add taking of local variables into queue + stop_commands = [ '" : "") + system("#{@params[:vim_executable]} --servername #{@params[:vim_servername]} -u NONE -U NONE --remote-send \"#{starter}#{command}\""); + end + end + + + def have_unclosed_tag?(output) + start_match = output.match(/^<([a-zA-Z0-9\-_]+)>/) + if start_match + end_match = output.match(/<\/#{start_match[1]}>$/) + return end_match ? false : true + else + return false + end + end + +end + + +VimRubyDebugger.new( + :host => ARGV[0], + :rdebug_port => ARGV[1], + :vim_ruby_debugger_port => ARGV[2], + :vim_executable => ARGV[3], + :vim_servername => ARGV[4], + :messages_file => ARGV[5], + :os => ARGV[6] +) diff --git a/vim/bundle/showmarks/autoload/showmarks.vim b/vim/bundle/showmarks/autoload/showmarks.vim new file mode 100644 index 0000000..9188b54 --- /dev/null +++ b/vim/bundle/showmarks/autoload/showmarks.vim @@ -0,0 +1,351 @@ +" Display marks in the signs column +" Maintainer: A. Politz +" Last change: 2008-02-06 +" v0.1 + +let s:marks = 'abcdefghijklmnopqrstuvwxyz' .'ABCDEFGHIJKLMNOPQRSTUVWXYZ' .'<>' +let s:all_marks = split(s:marks . '0123456789(){}''^."','\ze') + +"Hlgroup for signs +:highlight default link hlShowMarks Question +"Which buffers have the plugin activated ? +let s:handled_buffers = [] +"Prefix for the signname +let s:sign_prefix = 'showmarks-' +"Undef signs, if plugin is inactive +let s:have_signs_defined = 0 +"Try to avoid id-conflicts +let s:sign_id_incr = 947380 +"ids for top and bottom signs +let s:top_sign_id = s:sign_id_incr - 1 +let s:bot_sign_id = s:sign_id_incr - 2 + + +"public interface +func! showmarks#ShowMarks( cmd, ... ) + let to = a:0 ? a:1 : 1 + let to = to >= 0 ? to : 1 + if a:cmd =~ 'once' + "Disable afterwards regardless of current state + let force_disable = a:0 > 1 && a:2 + call s:EnableLocalOneTime(to,force_disable) + elseif a:cmd =~ 'preview' + :call s:PreviewMarks(to) + else + let enable = a:cmd =~ 'enable' + let global = a:cmd =~ 'global' + if enable + if global + call s:EnableGlobal() + else + call s:EnableLocal() + endif + else + if global + call s:DisableGlobal() + else + call s:DisableLocal() + endif + endif + endif +endfun + + +func! s:GetWantedMarks() + if !exists('g:showmarks_marks') + let g:showmarks_marks=s:marks + return g:showmarks_marks + elseif type(g:showmarks_marks) != type('string') + return s:marks + else + return g:showmarks_marks + endif +endfun + + +func! s:UpdateSigns( ) + if !exists('b:showmarks') + "Remeber which id is displayed in which lnum. + let b:showmarks = {} + let b:showmarks.topline = 0 + let b:showmarks.botline = 0 + endif + "Find the first and last nonfolded line in the window. + let top = line('w0') + let bot = line('w$') + while foldclosed(top) >= 0 && top < bot + let top = foldclosedend(top)+1 + endwhile + if top >= bot + let top = 0 + let bot = 0 + let b:showmarks.topline = 0 + let b:showmarks.botline = 0 + else + for l in range(top+1,bot) + if foldclosed(l) < 0 + let bot=l + endif + endfor + endif + "Figure out if the windows top and bottom lines have changed. If + "not don't bother with updating the top/bot markers. + if b:showmarks.topline == top && b:showmarks.botline == bot + let do_bottop_signs = 0 + else + let b:showmarks.topline = top + let b:showmarks.botline = bot + let do_bottop_signs = 1 + endif + + if do_bottop_signs + let topsign = { 'lnum' : 1, 'mark' : '' , 'ok' : 1} + let botsign = { 'lnum' : line('$') , 'mark' : '' , 'ok' : 1} + endif + + for id in range(len(s:all_marks)) + let mark = s:all_marks[id] + "At least try! to avoid id-conflicts + let id += s:sign_id_incr "Some random value + let [ bnr, lnum ] = getpos("'".mark)[0:1] + "Sort out file and global marks ( '0-9 'A-Z ) from another + "buffer + if bnr && bnr != bufnr('%') + continue + endif + + let want_mark = s:GetWantedMarks() =~ '\V'.mark + if !lnum || !want_mark + "Mark not set, or don't want it anymore. Remove it from + "b:showmarks and undisplay the sign + if has_key(b:showmarks,id) + call remove(b:showmarks,id) + silent exec 'sign unplace '.id.' buffer='.bufnr('%') + endif + else "if lnum && want_mark + "Found a valid mark and want it. + if do_bottop_signs + "Check for a candidate for the bot and top marks + if lnum < top && lnum >= topsign.lnum + let topsign.mark = mark + let topsign.lnum = lnum + elseif lnum > bot && lnum <= botsign.lnum + let botsign.mark = mark + let botsign.lnum = lnum + elseif lnum == top + "Don't overrule real marks at this position. + let topsign.ok = 0 + elseif lnum == bot + let botsign.ok = 0 + endif + endif + + if !has_key(b:showmarks,id) + let b:showmarks[id]= 0 + endif + "Show the sign, if it's not already displayed where it + "belongs. + if b:showmarks[id] != lnum + silent! exec 'sign unplace '.id.' buffer='.bufnr('%') + silent! exec 'sign place '.id.' line='.lnum.' name='.s:sign_prefix.mark.' buffer='.bufnr('%') + let b:showmarks[id]=lnum + endif + endif + endfor + if do_bottop_signs + "Unplace,undef,def and place the top and bottom signs, if necessary. + silent! exec 'sign unplace '.s:top_sign_id.' buffer='.bufnr('%') + silent! exec 'sign undefine '.s:sign_prefix.'topline' + if topsign.ok && !empty(topsign.mark) + silent exec 'sign define '.s:sign_prefix.'topsign text=/'.(topsign.mark).' texthl=hlShowMarks' + silent exec 'sign place '.s:top_sign_id.' line='.top.' name='.s:sign_prefix.'topsign buffer='.bufnr('%') + endif + + silent! exec 'sign unplace '.s:bot_sign_id.' buffer='.bufnr('%') + silent! exec 'sign undefine '.s:sign_prefix.'botline' + if botsign.ok && !empty(botsign.mark) + silent exec 'sign define '.s:sign_prefix.'botsign text=\'.(botsign.mark).' texthl=hlShowMarks' + silent exec 'sign place '.s:bot_sign_id.' line='.bot.' name='.s:sign_prefix.'botsign buffer='.bufnr('%') + endif + endif +endfun + +func! s:PreviewMarks( ... ) " autoclose + if !exists('s:preview_tmp') + let s:preview_tmp = tempname() + endif + + let curbuf_marks = [] + let foreign_marks = [] + for mark in s:all_marks + if s:GetWantedMarks() !~ '\V'.mark + continue + endif + let [ bnr, lnum ] = getpos("'".mark)[0:1] + if !lnum + continue + endif + if !bnr || bnr == bufnr('%') + let line = ' '.mark.' ' + let line .= printf('%'.strlen(line('$')).'d',lnum).' ' + let line .= getline(lnum) + call add(curbuf_marks,{ 'mark' : mark, 'line' : line, 'lnum' : lnum }) + else + let line = ' '.mark.' ' + let line .= repeat(' ',strlen(line('$'))-1).'> ' + let line .= bufname(bnr) + call add(foreign_marks,line) + endif + endfor + + if !empty(curbuf_marks) || !empty(foreign_marks) + if a:0 && a:1 + let s:showmarks_pvw_timeout = a:1 + "autoclose + augroup showmarks-PreviewMarks + au! + au CursorHold * let s:showmarks_pvw_timeout-=1 | if s:showmarks_pvw_timeout<=0| wincmd z | exec 'au! showmarks-PreviewMarks' | unlet s:showmarks_pvw_timeout | endif + augroup END + endif + + let syntax=&syntax + silent! exec 'ped '.s:preview_tmp + wincmd P + if &previewwindow + silent %d _ + "Better than no color at all ? + exec 'set syntax='.syntax + + setl nobuflisted buftype=nofile nonu nofoldenable nowrap + setl noscrollbind stl=[Preview]ShowMarks nodiff + silent exec ':resize '.min([ &lines/2 , len(curbuf_marks)+len(foreign_marks) ]) + call sort(curbuf_marks,'s:ComparePVWLines') + call setline(1,map(curbuf_marks,'v:val.line')) + call setline(line('$')+1,foreign_marks) + call matchadd('hlShowMarks','^\s\zs.') + call matchadd('LineNr','^\s.\s*\zs\d\+') + call matchadd('Special','^\s*\S\s*\zs>\s*.*') + wincmd p + else + echohl Error | echo "Can't open the previewwindow (ShowMarks) !" | echohl None + endif + endif +endfun + +func! s:EnableLocal() + "echo 'EL in' string(s:handled_buffers) + if index(s:handled_buffers,bufnr('%')) < 0 + call add(s:handled_buffers,bufnr('%')) + if !s:have_signs_defined + call s:DefSigns() + let s:have_signs_defined = 1 + endif + augroup showmarks + au CursorHold :call s:UpdateSigns() + augroup END + endif + call s:UpdateSigns() + "echo 'EL out' string(s:handled_buffers) +endfun + +"Enable the plugin locally for the duration of timeout CursorHold +"events. Disable it, if it was not active or if force is 1. +func! s:EnableLocalOneTime( timeout, force ) + let idx = index(s:handled_buffers,bufnr('%')) + call s:EnableLocal() + if a:force || idx < 0 + let b:showmarks.timeout = a:timeout + augroup showmarks + au CursorHold let b:showmarks.timeout-=1 | if b:showmarks.timeout<=0 | exec 'silent! au! showmarks CursorHold '|call s:DisableLocal() | endif + augroup END + endif +endfun + + +func! s:DisableLocal() + "echo 'DL in' string(s:handled_buffers) + let idx = index(s:handled_buffers,bufnr('%')) + if idx >= 0 + silent! au! showmarks CursorHold + for id in filter(range(s:sign_id_incr,s:sign_id_incr+len(s:all_marks)-1),'has_key(b:showmarks,v:val)') + silent exec 'sign unplace '.id.' buffer='.bufnr('%') + endfor + silent! exec 'sign unplace '.s:bot_sign_id.' buffer='.bufnr('%') + silent! exec 'sign unplace '.s:top_sign_id.' buffer='.bufnr('%') + call remove(s:handled_buffers,idx) + unlet! b:showmarks + "if empty(s:handled_buffers) + " call s:DelSigns() + " let s:have_signs_defined = 0 + "endif + endif + "echo 'DL out' string(s:handled_buffers) +endfun + +func! s:EnableGlobal() + + silent! au! showmarks-DisableGlobal + augroup showmarks-EnableGlobal + au! + au BufRead,BufNewFile * :call s:EnableLocal() + for b in range(1,bufnr('$')) + if index(tabpagebuflist(),b) < 0 && buflisted(b) + exec 'au BufEnter :call s:EnableLocal()|au! showmarks-EnableGlobal BufEnter ' + endif + endfor + augroup END + + let win = winnr() + silent windo call s:EnableLocal() + exec win.'wincmd w' +endfun + +func! s:DisableGlobal() + + silent! au! showmarks-EnableGlobal + augroup showmarks-DisableGlobal + au! + for b in range(1,bufnr('$')) + if index(tabpagebuflist(),b) < 0 && buflisted(b) + exec 'au BufEnter :call s:DisableLocal()|au! showmarks-DisableGlobal BufEnter ' + endif + endfor + augroup END + + let win = winnr() + silent windo call s:DisableLocal() + exec win.'wincmd w' +endfun + + +func! s:ComparePVWLines( i1, i2 ) + "if a:i1.mark =~ '[A-Z0-9]' && a:i2.mark !~ '[A-Z0-9]' + " return 1 + "elseif a:i1.mark !~ '[A-Z0-9]' && a:i2.mark =~ '[A-Z0-9]' + " return -1 + "endif + return a:i1.lnum < a:i2.lnum ? -1 : a:i1.lnum > a:i2.lnum +endfun + + +func! s:DefSigns() + for m in s:all_marks + exec 'sign define '.s:sign_prefix.m.' text='.m.' texthl=hlShowMarks' + endfor +endfun + +func! s:DelSigns() + for m in s:all_marks + exec 'sign undefine '.s:sign_prefix.m + endfor + silent! exec 'sign undefine '.s:sign_prefix.'topline' + silent! exec 'sign undefine '.s:sign_prefix.'botline' +endfun + +finish +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +map :DoShowMarks +map :NoShowMarks +map :DoShowMarks! +map :NoShowMarks! diff --git a/vim/bundle/showmarks/plugin/showmarks.vim b/vim/bundle/showmarks/plugin/showmarks.vim new file mode 100644 index 0000000..140ae10 --- /dev/null +++ b/vim/bundle/showmarks/plugin/showmarks.vim @@ -0,0 +1,73 @@ +" Display marks in the signs column +" Maintainer: A. Politz +" Last change: 2008-02-06 +" v0.1 +" +"ShowMarks +" +"Give a visual aid to navigate marks, by displaying them as signs +"(obviously needs the +signs feature). +" +"commands +"-------- +" +":DoShowMarks +" show marks for current buffer +":DoShowMarks! +" show marks for all buffers +":NoShowMarks +" disable it for current buffer +":NoShowMarks! +" disable it for all buffers +" +":[count]ShowMarksOnce +" Display marks for [count] Cursorhold +" events. Mostly for mapping it like : +" nnoremap ` :ShowMarksOnce` +" +":[count]PreviewMarks +" Display marks of current buffer in pvw. +" Like ':marks', but at the top of the window ;-). +" [count] is the same sa above. +" +"variables +"-------- +" +"let g:showmarks_marks = "abcdef...." +" the marks you want to have displayed. +"hlShowMarks +" the highlight color + +"I suggest to lower the value of 'updatetime'. + +if exists('loaded_showmarks') + finish +endif + +let s:cpo=&cpo +set cpo&vim + +let loaded_showmarks = 1 + +if version < 700 + com DoShowMarks echohl Error | echo "Sorry, you need vim7 for this plugin (Showmarks)." | echohl None | delc DoShowMarks + finish +endif + +if !has('signs') + com DoShowMarks + \echohl Error + \| echo "Sorry, your version does not support signs (Showmarks). You may still use the PreviewMarks command." + \| echohl None | delc DoShowMarks +else + com -bar -bang DoShowMarks + \if 0 | call showmarks#ShowMarks('global,enable') | else | call showmarks#ShowMarks('enable,local') | endif + com -bar -bang NoShowMarks + \if 0 | call showmarks#ShowMarks('global') | else | call showmarks#ShowMarks('') | endif + com -bar -bang -count=1 ShowMarksOnce call showmarks#ShowMarks('once',,0) +endif + +com! -bar -bang -count=0 PreviewMarks call showmarks#ShowMarks('preview',) + +let &cpo=s:cpo +unlet s:cpo diff --git a/vim/bundle/vim-fugitive b/vim/bundle/vim-fugitive new file mode 160000 index 0000000..1b7e407 --- /dev/null +++ b/vim/bundle/vim-fugitive @@ -0,0 +1 @@ +Subproject commit 1b7e4070f5f7b7522422f5b00a75b323cc314daf diff --git a/vim/colors/.bashrc b/vim/colors/.bashrc new file mode 100644 index 0000000..768c8ea --- /dev/null +++ b/vim/colors/.bashrc @@ -0,0 +1,101 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +[ -z "$PS1" ] && return + +# don't put duplicate lines in the history. See bash(1) for more options +# don't overwrite GNU Midnight Commander's setting of `ignorespace'. +export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups +# ... or force ignoredups and ignorespace +export HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# make less more friendly for non-text input files, see lesspipe(1) +#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +#if [ -f ~/.bash_aliases ]; then +# . ~/.bash_aliases +#fi + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + eval "`dircolors -b`" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + #alias grep='grep --color=auto' + #alias fgrep='fgrep --color=auto' + #alias egrep='egrep --color=auto' +fi + +# some more ls aliases +#alias ll='ls -l' +#alias la='ls -A' +#alias l='ls -CF' + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if [ -f /etc/bash_completion ]; then + . /etc/bash_completion +fi + + diff --git a/vim/colors/adrian.vim b/vim/colors/adrian.vim new file mode 100644 index 0000000..ba830cd --- /dev/null +++ b/vim/colors/adrian.vim @@ -0,0 +1,97 @@ +" Vim colorscheme file +" Maintainer: Adrian Nagle +" Last Change: 2001-09-25 07:48:15 Mountain Daylight Time +" URL: http://www.naglenet.org/vim/syntax/adrian.vim +" MAIN URL: http://www.naglenet.org/vim + +" This is my custom syntax file to override the defaults provided with Vim. +" This file should be located in $HOME/vimfiles/colors. + +" This file should automatically be sourced by $RUNTIMEPATH. + +" NOTE(S): +" *(1) +" The color definitions assumes and is intended for a black or dark +" background. + +" *(2) +" This file is specifically in Unix style EOL format so that I can simply +" copy this file between Windows and Unix systems. VIM can source files in +" with the UNIX EOL format (only instead of for DOS) in any +" operating system if the 'fileformats' is not empty and there is no +" just before the on the first line. See ':help :source_crnl' and +" ':help fileformats'. +" +" *(3) +" Move this file to adrian.vim for vim6.0aw. +" + + + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "adrian" + +" Normal is for the normal (unhighlighted) text and background. +" NonText is below the last line (~ lines). +highlight Normal guibg=Black guifg=Green +highlight Cursor guibg=Grey70 guifg=White +highlight NonText guibg=Grey80 +highlight StatusLine gui=bold guibg=DarkGrey guifg=Orange +highlight StatusLineNC guibg=DarkGrey guifg=Orange + +highlight Comment term=bold ctermfg=LightGrey guifg=#d1ddff +highlight Constant term=underline ctermfg=White guifg=#ffa0a0 +"highlight Number term=underline ctermfg=Yellow guifg=Yellow +highlight Identifier term=underline ctermfg=Cyan guifg=#40ffff +highlight Statement term=bold ctermfg=Yellow gui=bold guifg=#ffff60 +highlight PreProc term=underline ctermfg=Blue guifg=#ff4500 +highlight Type term=underline ctermfg=DarkGrey gui=bold guifg=#7d96ff +highlight Special term=bold ctermfg=Magenta guifg=Orange +highlight Ignore ctermfg=black guifg=bg +highlight Error ctermfg=White ctermbg=Red guifg=White guibg=Red +highlight Todo ctermfg=Blue ctermbg=Yellow guifg=Blue guibg=Yellow + +" Change the highlight of search matches (for use with :set hls). +highlight Search ctermfg=Black ctermbg=Yellow guifg=Black guibg=Yellow + +" Change the highlight of visual highlight. +highlight Visual cterm=NONE ctermfg=Black ctermbg=LightGrey gui=NONE guifg=Black guibg=Grey70 + +highlight Float ctermfg=Blue guifg=#88AAEE +highlight Exception ctermfg=Red ctermbg=White guifg=Red guibg=White +highlight Typedef ctermfg=White ctermbg=Blue gui=bold guifg=White guibg=Blue +highlight SpecialChar ctermfg=Black ctermbg=White guifg=Black guibg=White +highlight Delimiter ctermfg=White ctermbg=Black guifg=White guibg=Black +highlight SpecialComment ctermfg=Black ctermbg=Green guifg=Black guibg=Green + +" Common groups that link to default highlighting. +" You can specify other highlighting easily. +highlight link String Constant +highlight link Character Constant +highlight link Number Constant +highlight link Boolean Statement +"highlight link Float Number +highlight link Function Identifier +highlight link Conditional Type +highlight link Repeat Type +highlight link Label Type +highlight link Operator Type +highlight link Keyword Type +"highlight link Exception Type +highlight link Include PreProc +highlight link Define PreProc +highlight link Macro PreProc +highlight link PreCondit PreProc +highlight link StorageClass Type +highlight link Structure Type +"highlight link Typedef Type +"highlight link SpecialChar Special +highlight link Tag Special +"highlight link Delimiter Special +"highlight link SpecialComment Special +highlight link Debug Special + diff --git a/vim/colors/aiseered.vim b/vim/colors/aiseered.vim new file mode 100644 index 0000000..7e71108 --- /dev/null +++ b/vim/colors/aiseered.vim @@ -0,0 +1,37 @@ +" gVim color file for working with files in GDL/VCG format. +" Works nice in conjunction with gdl.vim +" (see www.vim.org or www.aisee.com) +" Works fine for C/C++, too. + +" Author : Alexander A. Evstyugov-Babaev +" Version: 0.2 for gVim/Linux, +" tested with gVim 6.3.25 under Ubuntu Linux (Warty) +" by Jo Vermeulen +" Date : January 25th 2005 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="aiseered" + +hi Normal guifg=lightred guibg=#600000 +hi Cursor guifg=bg guibg=fg +hi ErrorMsg guibg=red ctermfg=1 +hi Search term=reverse ctermfg=darkred ctermbg=lightred guibg=lightred guifg=#060000 + +hi Comment guifg=#ffffff +hi Constant guifg=#88ddee +hi String guifg=#ffcc88 +hi Character guifg=#ffaa00 +hi Number guifg=#88ddee +hi Identifier guifg=#cfcfcf +hi Statement guifg=#eeff99 gui=bold +hi PreProc guifg=firebrick1 gui=italic +hi Type guifg=#88ffaa gui=none +hi Special guifg=#ffaa00 +hi SpecialChar guifg=#ffaa00 +hi StorageClass guifg=#ddaacc +hi Error guifg=red guibg=white diff --git a/vim/colors/aqua.vim b/vim/colors/aqua.vim new file mode 100644 index 0000000..483b6ac --- /dev/null +++ b/vim/colors/aqua.vim @@ -0,0 +1,44 @@ +" Vim color file +" Maintainer: tranquility@portugalmail.pt +" Last Change: 6 Apr 2002 + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="aqua" + +hi Normal guibg=steelblue guifg=linen +hi Cursor guibg=lightblue3 guifg=black gui=bold +hi VertSplit guifg=white guibg=navyblue gui=none +hi Folded guibg=darkblue guifg=white +hi FoldColumn guibg=lightgray guifg=navyblue +hi ModeMsg guifg=black guibg=steelblue1 +hi MoreMsg guifg=black guibg=steelblue1 +hi NonText guifg=white guibg=steelblue4 gui=none +hi Question guifg=snow +hi Search guibg=#FFFFFF guifg=midnightblue gui=bold +hi SpecialKey guifg=navyblue +hi StatusLine guibg=skyblue3 guifg=black gui=none +hi StatusLineNC guibg=skyblue1 guifg=black gui=none +hi Title guifg=bisque3 +hi Subtitle guifg=black +hi Visual guifg=white guibg=royalblue4 gui=none +hi WarningMsg guifg=salmon4 guibg=gray60 gui=bold +hi Comment guifg=lightskyblue +hi Constant guifg=turquoise gui=bold +hi Identifier guifg=lightcyan +hi Statement guifg=royalblue4 +hi PreProc guifg=black gui=bold +hi Type guifg=lightgreen +hi Special guifg=navajowhite +hi Ignore guifg=grey29 +hi Todo guibg=black guifg=white +hi WildMenu guibg=aquamarine diff --git a/vim/colors/astronaut.vim b/vim/colors/astronaut.vim new file mode 100644 index 0000000..8caec73 --- /dev/null +++ b/vim/colors/astronaut.vim @@ -0,0 +1,164 @@ +" astronaut.vim: a colorscheme +" Maintainer: Charles E. Campbell, Jr. +" Date: Feb 21, 2006 +" Version: 7 +" +" Usage: +" Put into your <.vimrc> file: +" color astronaut +" +" Optional Modifiers: +" let g:astronaut_bold=1 : term, cterm, and gui receive bold modifier +" let g:astronaut_dark=1 : dark colors used (otherwise some terminals +" make everything bold, which can be all one +" color) +" let g:astronaut_underline=1 : assume that underlining works on your terminal +" let g:astronaut_italic=1 : allows italic to be used in gui +" Examples: +" iris : let astronaut_dark=1 +" Linux xterm: no modifiers needed +" +" GetLatestVimScripts: 122 1 :AutoInstall: astronaut.vim + +set background=dark +hi clear +if exists( "syntax_on" ) + syntax reset +endif +let g:colors_name = "astronaut" +let g:loaded_astronaut = "v7" + +" --------------------------------------------------------------------- +" Default option values +if !exists("g:astronaut_bold") + " on some machines, notably SGIs, a bold qualifier means everything is + " one color (SGIs: yellow) + let g:astronaut_bold= 0 +endif +if !exists("g:astronaut_dark") + " this option, if true, means darkcolor (ex. darkred, darkmagenta, etc) + " is understood and wanted + let g:astronaut_dark= 0 +endif +if !exists("g:astronaut_underline") + let g:astronaut_underline= 1 +endif +if !exists("g:astronaut_italic") + let g:astronaut_italic= 0 +endif + +" --------------------------------------------------------------------- +" Settings based on options +if g:astronaut_bold != 0 + let s:bold=",bold" +else + let s:bold="" +endif + +if g:astronaut_italic != 0 + let s:italic= ",italic" +else + let s:italic= "" +endif + +if g:astronaut_dark != 0 + let s:black = "black" + let s:red = "darkred" + let s:green = "darkgreen" + let s:yellow = "darkyellow" + let s:blue = "darkblue" + let s:magenta = "darkmagenta" + let s:cyan = "darkcyan" + let s:white = "white" +else + let s:black = "black" + let s:red = "red" + let s:green = "green" + let s:yellow = "yellow" + let s:blue = "blue" + let s:magenta = "magenta" + let s:cyan = "cyan" + let s:white = "white" +endif + +if g:astronaut_underline != 0 + let s:underline= ",underline" + let s:ulbg = "" +else + let s:underline= "none" + if exists("g:astronaut_dark") + let s:ulbg = "ctermbg=darkmagenta guibg=magenta4" + else + let s:ulbg = "ctermbg=magenta guibg=magenta" + endif +endif + +" --------------------------------------------------------------------- +exe "hi Blue start= stop= ctermfg=".s:blue." guifg=blue guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Comment start= stop= ctermfg=".s:white." guifg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Conceal ctermfg=".s:blue." ctermbg=".s:black." guifg=Blue guibg=Black term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Constant start= stop= ctermfg=".s:yellow." guifg=yellow guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Cursor guifg=blue guibg=green term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Cyan start= stop= ctermfg=".s:cyan." guifg=cyan guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Debug start= stop= ctermfg=".s:magenta." ctermbg=".s:black." guifg=magenta guibg=black term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Delimiter start= stop= ctermfg=".s:white." guifg=white guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi DiffAdd ctermfg=".s:white." ctermbg=".s:magenta." guifg=White guibg=Magenta term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi DiffChange ctermfg=".s:yellow." ctermbg=".s:blue." guifg=Yellow guibg=Blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi DiffDelete ctermfg=".s:white." ctermbg=".s:blue." guifg=White guibg=Blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi DiffText ctermfg=".s:white." ctermbg=".s:red." guifg=White guibg=Red term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Directory start= stop= ctermfg=".s:white." guifg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Error start= stop= ctermfg=".s:white." ctermbg=".s:red." guifg=white guibg=red term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi ErrorMsg ctermfg=".s:white." ctermbg=".s:red." guifg=White guibg=Red term=standout".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi FoldColumn start= stop= ctermfg=".s:cyan." ctermbg=".s:black." guifg=Cyan guibg=Brown term=standout".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Folded start= stop= ctermfg=".s:magenta." ctermbg=".s:black." guifg=magenta guibg=black term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Function start= stop= ctermfg=".s:cyan." guifg=cyan guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Green start= stop= ctermfg=".s:green." guifg=green guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Identifier start= stop= ctermfg=".s:magenta." guifg=magenta guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Ignore ctermfg=".s:black ." guifg=bg term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi IncSearch start= stop= ctermfg=".s:black ." ctermbg=".s:green." guifg=black guibg=green term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi LineNr ctermfg=".s:yellow." ".s:ulbg." guifg=Yellow term=none".s:underline.s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Magenta start= stop= ctermfg=".s:magenta." guifg=magenta guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Menu guifg=black guibg=gray75 term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi ModeMsg ctermfg=".s:green." guifg=SeaGreen term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi MoreMsg ctermfg=".s:green." guifg=SeaGreen term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi NonText ctermfg=".s:blue." guifg=Blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Normal start= stop= ctermfg=".s:green." guifg=green guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi PreProc start= stop= ctermfg=".s:white." ctermbg=".s:blue." guifg=white guibg=blue3 term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Question start= stop= ctermfg=".s:yellow." guifg=yellow term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Red start= stop= ctermfg=".s:red." guifg=red guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Scrollbar guifg=gray80 guibg=gray70 term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Search start= stop= ctermfg=".s:yellow." ctermbg=".s:blue." guifg=yellow guibg=blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Special start= stop= ctermfg=".s:green." ctermbg=".s:blue." guifg=green guibg=blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi SpecialKey start= stop= ctermfg=".s:black." ctermbg=".s:magenta." guifg=black guibg=magenta term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Statement start= stop= ctermfg=".s:cyan." guifg=cyan guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi StatusLine start= stop= ctermfg=".s:black." ctermbg=".s:cyan." guifg=black guibg=cyan term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi StatusLineNC start= stop= ctermfg=".s:black." ctermbg=".s:green." guifg=black guibg=green term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi String start= stop= ctermfg=".s:yellow." guifg=yellow guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Subtitle start= stop= ctermfg=".s:magenta." guifg=magenta guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +if v:version >= 700 + exe "hi TabLine start= stop= ctermfg=".s:black." ctermbg=".s:blue." guifg=black guibg=blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold.s:underline.s:italic + exe "hi TabLineSel start= stop= ctermfg=".s:green." ctermbg=".s:blue." guifg=green guibg=blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold.s:underline.s:italic + exe "hi TabLineFill start= stop= ctermfg=".s:blue." ctermbg=".s:blue." guifg=blue guibg=blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +endif +exe "hi Tags start= stop= ctermfg=".s:yellow." ctermbg=".s:blue." guifg=yellow guibg=blue3 term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Title start= stop= ctermfg=".s:white." guifg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Todo start= stop= ctermfg=".s:white." ctermbg=".s:magenta." guifg=white guibg=magenta term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Type start= stop= ctermfg=".s:green." ".s:ulbg." guifg=seagreen1 term=none".s:underline.s:bold." cterm=none".s:bold.s:underline." gui=none".s:bold.s:underline +exe "hi Underlined ctermfg=".s:green." ".s:ulbg." guifg=green term=none".s:underline.s:bold." cterm=none".s:bold.s:underline." gui=none".s:bold.s:underline +exe "hi Unique start= stop= ctermfg=".s:blue." ctermbg=".s:white." guifg=blue3 guibg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi AltUnique start= stop= ctermfg=".s:magenta." ctermbg=".s:white." guifg=magenta guibg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi AltAltUnique start= stop= ctermfg=".s:black." ctermbg=".s:white." guifg=black guibg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi VertSplit start= stop= ctermfg=".s:black." ctermbg=".s:green." guifg=black guibg=green term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Visual start= stop= ctermfg=black ctermbg=green guifg=Grey guibg=fg term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi VisualNOS ".s:ulbg." term=none".s:underline.s:bold." cterm=none".s:bold.s:underline." gui=none".s:bold.s:underline +exe "hi WarningMsg start= stop= ctermfg=".s:black." ctermbg=".s:yellow." guifg=black guibg=yellow term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi White start= stop= ctermfg=".s:white." guifg=white guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi WildMenu ctermfg=".s:black." ctermbg=".s:yellow." guifg=Black guibg=Yellow term=standout".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Yellow start= stop= ctermfg=".s:yellow." guifg=yellow guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi lCursor guifg=bg guibg=fg term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi AltConstant start= stop= ctermfg=".s:yellow." ctermbg=".s:black." guifg=yellow guibg=black term=none".s:bold." cterm=none".s:bold." gui=none".s:bold.s:italic +exe "hi AltFunction start= stop= ctermfg=".s:green." ctermbg=".s:black." guifg=green guibg=black term=none".s:bold." cterm=none".s:bold." gui=none".s:bold.s:italic +exe "hi AltType start= stop= ctermfg=".s:green." ctermbg=".s:black." guifg=seagreen1 guibg=black term=none".s:underline.s:bold." cterm=none".s:bold.s:underline." gui=none".s:bold.s:underline.s:italic +exe "hi User1 ctermfg=".s:white." ctermbg=".s:blue." guifg=white guibg=blue" +exe "hi User2 ctermfg=".s:cyan." ctermbg=".s:blue." guifg=cyan guibg=blue" +" vim: nowrap diff --git a/vim/colors/asu1dark.vim b/vim/colors/asu1dark.vim new file mode 100644 index 0000000..ce5f90f --- /dev/null +++ b/vim/colors/asu1dark.vim @@ -0,0 +1,59 @@ +" Vim color file +" Maintainer: A. Sinan Unur +" Last Change: 2001/10/04 + +" Dark color scheme + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="asu1dark" + +" Console Color Scheme +hi Normal term=NONE cterm=NONE ctermfg=LightGray ctermbg=Black +hi NonText term=NONE cterm=NONE ctermfg=Brown ctermbg=Black +hi Function term=NONE cterm=NONE ctermfg=DarkCyan ctermbg=Black +hi Statement term=BOLD cterm=BOLD ctermfg=DarkBlue ctermbg=Black +hi Special term=NONE cterm=NONE ctermfg=DarkGreen ctermbg=Black +hi SpecialChar term=NONE cterm=NONE ctermfg=Cyan ctermbg=Black +hi Constant term=NONE cterm=NONE ctermfg=Blue ctermbg=Black +hi Comment term=NONE cterm=NONE ctermfg=DarkGray ctermbg=Black +hi Preproc term=NONE cterm=NONE ctermfg=DarkGreen ctermbg=Black +hi Type term=NONE cterm=NONE ctermfg=DarkMagenta ctermbg=Black +hi Identifier term=NONE cterm=NONE ctermfg=Cyan ctermbg=Black +hi StatusLine term=BOLD cterm=NONE ctermfg=Yellow ctermbg=DarkBlue +hi StatusLineNC term=NONE cterm=NONE ctermfg=Black ctermbg=Gray +hi Visual term=NONE cterm=NONE ctermfg=White ctermbg=DarkCyan +hi Search term=NONE cterm=NONE ctermbg=Yellow ctermfg=DarkBlue +hi VertSplit term=NONE cterm=NONE ctermfg=Black ctermbg=Gray +hi Directory term=NONE cterm=NONE ctermfg=Green ctermbg=Black +hi WarningMsg term=NONE cterm=NONE ctermfg=Blue ctermbg=Yellow +hi Error term=NONE cterm=NONE ctermfg=DarkRed ctermbg=Gray +hi Cursor ctermfg=Black ctermbg=Cyan +hi LineNr term=NONE cterm=NONE ctermfg=Red ctermbg=Black + +" GUI Color Scheme +hi Normal gui=NONE guifg=White guibg=#110022 +hi NonText gui=NONE guifg=#ff9999 guibg=#444444 +hi Function gui=NONE guifg=#7788ff guibg=#110022 +hi Statement gui=BOLD guifg=Yellow guibg=#110022 +hi Special gui=NONE guifg=Cyan guibg=#110022 +hi Constant gui=NONE guifg=#ff9900 guibg=#110022 +hi Comment gui=NONE guifg=#99cc99 guibg=#110022 +hi Preproc gui=NONE guifg=#33ff66 guibg=#110022 +hi Type gui=NONE guifg=#ff5577 guibg=#110022 +hi Identifier gui=NONE guifg=Cyan guibg=#110022 +hi StatusLine gui=BOLD guifg=White guibg=#336600 +hi StatusLineNC gui=NONE guifg=Black guibg=#cccccc +hi Visual gui=NONE guifg=White guibg=#00aa33 +hi Search gui=BOLD guibg=Yellow guifg=DarkBlue +hi VertSplit gui=NONE guifg=White guibg=#666666 +hi Directory gui=NONE guifg=Green guibg=#110022 +hi WarningMsg gui=STANDOUT guifg=#0000cc guibg=Yellow +hi Error gui=NONE guifg=White guibg=Red +hi Cursor guifg=White guibg=#00ff33 +hi LineNr gui=NONE guifg=#cccccc guibg=#334444 +hi ModeMsg gui=NONE guifg=Blue guibg=White +hi Question gui=NONE guifg=#66ff99 guibg=#110022 diff --git a/vim/colors/automation.vim b/vim/colors/automation.vim new file mode 100644 index 0000000..b449145 --- /dev/null +++ b/vim/colors/automation.vim @@ -0,0 +1,59 @@ +" Vim color file (automation.vim) +" Maintainer: Ken McConnell +" Last Change: 2004 Jan 15 +" +" This color scheme uses a light grey background. It was created to simulate +" the look of an IDE. It is named after the MFP Automation Team at HP Boise. +" + +" First remove all existing highlighting. +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "automation" + +hi Normal ctermbg=Black ctermfg=LightGrey guifg=Black guibg=Grey96 + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White +hi IncSearch term=reverse cterm=bold gui=bold +hi ModeMsg term=bold cterm=bold gui=bold +hi StatusLine term=bold cterm=bold gui=bold +hi StatusLineNC term=bold cterm=bold gui=bold +hi VertSplit term=bold cterm=bold gui=bold +hi Visual term=bold cterm=bold gui=bold guifg=Grey guibg=fg +hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold +hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red +hi Cursor guibg=Black guifg=Black +hi lCursor guibg=Cyan guifg=Black +hi Directory term=bold ctermfg=LightCyan guifg=DarkBlue +hi LineNr term=underline ctermfg=DarkGrey guifg=DarkGrey guibg=LightGrey +hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen +hi NonText term=bold ctermfg=LightBlue gui=bold guifg=DarkGreen guibg=grey80 +hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green +hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi SpecialKey term=bold ctermfg=DarkBlue guifg=DarkBlue +hi Title term=bold ctermfg=LightMagenta gui=bold guifg=DarkBlue +hi WarningMsg term=standout ctermfg=LightRed guifg=Red +hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue +hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue +hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue +hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta +hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan +hi Comment guifg=Blue guibg=Grey90 ctermfg=DarkGreen +hi String guifg=DarkGreen ctermfg=DarkGreen +hi Statement guifg=DarkBlue ctermfg=Blue +hi Label gui=bold guifg=DarkBlue +" Groups for syntax highlighting +hi Constant term=underline ctermfg=DarkBlue guifg=DarkBlue guibg=Grey96 +hi Special term=bold ctermfg=LightRed guifg=DarkBlue guibg=Grey96 +if &t_Co > 8 + hi Statement term=bold cterm=bold ctermfg=DarkBlue guifg=DarkBlue +endif +hi Ignore ctermfg=LightGrey guifg=grey90 + +" vim: sw=2 diff --git a/vim/colors/autumn.vim b/vim/colors/autumn.vim new file mode 100644 index 0000000..22a5ef0 --- /dev/null +++ b/vim/colors/autumn.vim @@ -0,0 +1,88 @@ +" Vim colour file +" Maintainer: Antony Scriven +" Last Change: 2003-06-12 +" +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "autumn" + +hi Normal term=none cterm=none ctermfg=black ctermbg=White gui=none guifg=Black guibg=#f0f2f0 +hi Cursor term=none cterm=none ctermfg=white ctermbg=darkgrey gui=none guifg=black guibg=red +hi DiffAdd term=bold cterm=none ctermfg=white ctermbg=DarkBlue gui=none guifg=#aaeeaa guibg=#447744 +hi DiffChange term=bold cterm=none ctermfg=white ctermbg=DarkMagenta gui=none guifg=lightyellow guibg=#ddbb55 +hi DiffDelete term=bold cterm=none ctermfg=blue ctermbg=darkcyan gui=none guifg=#336633 guibg=#aaccaa +hi difftext term=reverse cterm=bold ctermfg=white ctermbg=red gui=none guifg=lightyellow guibg=#cc7733 +hi Directory term=none cterm=none ctermfg=Red ctermbg=white gui=none guifg=Red guibg=bg +hi ErrorMsg term=standout cterm=none ctermfg=white ctermbg=DarkRed gui=none guifg=white guibg=DarkRed +hi Folded term=reverse cterm=none ctermfg=darkblue ctermbg=lightgrey gui=none guifg=darkblue guibg=lightgrey +"8 col term +hi FoldColumn term=reverse cterm=none ctermfg=darkblue ctermbg=grey gui=none guifg=darkblue guibg=grey +hi IncSearch term=reverse cterm=none ctermfg=yellow ctermbg=darkgreen gui=none guifg=yellow guibg=#449944 +hi lCursor term=reverse cterm=none ctermfg=black ctermbg=cyan gui=none guifg=black guibg=Cyan +hi LineNr term=reverse cterm=none ctermfg=darkred ctermbg=grey gui=none guifg=brown guibg=lightgrey +hi ModeMsg term=bold cterm=none ctermfg=green ctermbg=darkgreen gui=none guifg=#007700 guibg=#aaccaa +hi MoreMsg term=bold cterm=none ctermfg=darkGreen ctermbg=white gui=none guifg=darkgreen guibg=bg +hi Question term=bold cterm=none ctermfg=darkGreen ctermbg=white gui=none guifg=darkgreen guibg=bg +hi Search term=reverse cterm=none ctermfg=black ctermbg=yellow gui=none guifg=black guibg=yellow +hi SpecialKey term=italic cterm=none ctermfg=lightgrey ctermbg=white gui=none guifg=lightblue guibg=bg +hi NonText term=bold cterm=none ctermfg=lightgrey ctermbg=white gui=none guifg=#c6c6c6 guibg=bg +hi StatusLine term=reverse cterm=none ctermfg=white ctermbg=black gui=none guifg=#80624d guibg=#ddd9b8 +hi Title term=bold cterm=none ctermfg=DarkMagenta ctermbg=white gui=none guifg=DarkMagenta guibg=bg +if has("gui_running") || &t_Co > 8 + hi Visual term=reverse cterm=none ctermfg=black ctermbg=lightgrey gui=none guifg=black guibg=lightgreen + hi VertSplit term=reverse cterm=none ctermfg=darkgrey ctermbg=darkgrey gui=none guifg=#c7c7c2 guibg=#d7d7d2 + hi StatusLineNC term=reverse cterm=none ctermfg=white ctermbg=darkgrey gui=none guifg=darkgrey guibg=#d7d7d2 + hi Comment term=italic cterm=none ctermfg=grey ctermbg=white gui=none guifg=#ccaaaa guibg=bg +else + hi Visual term=reverse cterm=none ctermfg=green ctermbg=darkgreen gui=none guifg=black guibg=lightgreen + hi VertSplit term=reverse cterm=none ctermfg=darkcyan ctermbg=darkblue gui=none guifg=darkgrey guibg=darkgrey + hi StatusLineNC term=reverse cterm=none ctermfg=white ctermbg=darkblue gui=none guifg=white guibg=darkgrey + hi Comment term=italic cterm=none ctermfg=darkcyan ctermbg=white gui=none guifg=#ccaaaa guibg=bg +endif +hi VisualNOS term=bold cterm=none ctermfg=grey ctermbg=black gui=none guifg=grey guibg=black +hi WarningMsg term=standout cterm=none ctermfg=Red ctermbg=white gui=none guifg=Red guibg=bg +hi WildMenu term=bold cterm=none ctermfg=darkblue ctermbg=yellow gui=none guifg=black guibg=lightyellow + +hi Constant term=underline cterm=none ctermfg=darkred ctermbg=bg gui=none guifg=#bb6666 guibg=bg +hi Special term=bold cterm=none ctermfg=darkcyan ctermbg=white gui=none guifg=darkcyan guibg=bg +hi identifier term=underline cterm=none ctermfg=darkmagenta ctermbg=white gui=none guifg=darkcyan guibg=bg +hi statement term=bold cterm=none ctermfg=darkgreen ctermbg=white gui=none guifg=#44aa44 guibg=bg +hi preproc term=underline cterm=none ctermfg=darkgrey ctermbg=white gui=none guifg=darkgrey guibg=bg +hi type term=none cterm=none ctermfg=brown ctermbg=white gui=none guifg=#bb9900 guibg=bg +hi underlined term=underline cterm=underline ctermfg=darkmagenta ctermbg=white gui=underline guifg=darkmagenta guibg=bg +hi Ignore term=italic cterm=none ctermfg=lightgrey ctermbg=white gui=none guifg=grey guibg=bg +"hi todo term=underline cterm=bold ctermfg=yellow ctermbg=brown gui=none guifg=#333333 guibg=#ddee33 +hi todo term=bold cterm=none ctermfg=yellow ctermbg=brown gui=bold guifg=#229900 guibg=#ddd9b8 +hi function term=bold cterm=none ctermfg=blue ctermbg=white gui=none guifg=#0055cc guibg=bg + +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special +hi link vimfunction function + + +" vim: set ts=8 sw=8 et sts=8 tw=72 fo-=t ff=unix : diff --git a/vim/colors/autumn2.vim b/vim/colors/autumn2.vim new file mode 100644 index 0000000..f269b35 --- /dev/null +++ b/vim/colors/autumn2.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/14 Mon 16:41. +" version: 1.0 +" This color scheme uses a light background. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "autumn" + +hi Normal guifg=#404040 guibg=#fff4e8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#404040 guibg=#e0e040 +hi Search gui=NONE guifg=#544060 guibg=#f0c0ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi WarningMsg gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi ModeMsg gui=NONE guifg=#d06000 guibg=NONE +hi MoreMsg gui=NONE guifg=#0090a0 guibg=NONE +hi Question gui=NONE guifg=#8000ff guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#904838 +hi StatusLineNC gui=BOLD guifg=#c0b0a0 guibg=#904838 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#904838 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#ff3030 + +" Diff +hi DiffText gui=NONE guifg=#2850a0 guibg=#c0d0f0 +hi DiffChange gui=NONE guifg=#208040 guibg=#c0f0d0 +hi DiffDelete gui=NONE guifg=#ff2020 guibg=#eaf2b0 +hi DiffAdd gui=NONE guifg=#ff2020 guibg=#eaf2b0 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#0080f0 +hi lCursor gui=NONE guifg=#ffffff guibg=#8040ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8040ff + +" Fold +hi Folded gui=NONE guifg=#804030 guibg=#ffc0a0 +hi FoldColumn gui=NONE guifg=#a05040 guibg=#f8d8c4 + +" Other +hi Directory gui=NONE guifg=#7050ff guibg=NONE +hi LineNr gui=NONE guifg=#e0b090 guibg=NONE +hi NonText gui=BOLD guifg=#a05040 guibg=#ffe4d4 +hi SpecialKey gui=NONE guifg=#0080ff guibg=NONE +hi Title gui=BOLD guifg=fg guibg=NONE +hi Visual gui=NONE guifg=#804020 guibg=#ffc0a0 +" hi VisualNOS gui=NONE guifg=#604040 guibg=#e8dddd + +" Syntax group +hi Comment gui=NONE guifg=#ff5050 guibg=NONE +hi Constant gui=NONE guifg=#00884c guibg=NONE +hi Error gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi Identifier gui=NONE guifg=#b07800 guibg=NONE +hi Ignore gui=NONE guifg=bg guibg=NONE +hi PreProc gui=NONE guifg=#0090a0 guibg=NONE +hi Special gui=NONE guifg=#8040f0 guibg=NONE +hi Statement gui=BOLD guifg=#80a030 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#0080f0 guibg=NONE +hi Type gui=BOLD guifg=#b06c58 guibg=NONE +hi Underlined gui=UNDERLINE guifg=blue guibg=NONE diff --git a/vim/colors/autumnleaf.vim b/vim/colors/autumnleaf.vim new file mode 100644 index 0000000..b19d073 --- /dev/null +++ b/vim/colors/autumnleaf.vim @@ -0,0 +1,154 @@ +" Vim color file +" Maintainer: Anders Korte +" Last Change: 17 Oct 2004 + +" AutumnLeaf color scheme 1.0 + +set background=light + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name="AutumnLeaf" + + +" Colors for the User Interface. + +hi Cursor guibg=#aa7733 guifg=#ffeebb gui=bold +hi Normal guibg=#fffdfa guifg=black gui=none +hi NonText guibg=#eafaea guifg=#000099 gui=bold +hi Visual guibg=#fff8cc guifg=black gui=none +" hi VisualNOS + +hi Linenr guibg=bg guifg=#999999 gui=none + +" Uncomment these if you use Diff...?? +" hi DiffText guibg=#cc0000 guifg=white gui=none +" hi DiffAdd guibg=#0000cc guifg=white gui=none +" hi DiffChange guibg=#990099 guifg=white gui=none +" hi DiffDelete guibg=#888888 guifg=#333333 gui=none + +hi Directory guibg=bg guifg=#337700 gui=none + +hi IncSearch guibg=#c8e8ff guifg=black gui=none +hi Search guibg=#c8e8ff guifg=black gui=none +hi SpecialKey guibg=bg guifg=fg gui=none +hi Titled guibg=bg guifg=fg gui=none + +hi ErrorMsg guibg=bg guifg=#cc0000 gui=bold +hi ModeMsg guibg=bg guifg=#003399 gui=none +hi link MoreMsg ModeMsg +hi link Question ModeMsg +hi WarningMsg guibg=bg guifg=#cc0000 gui=bold + +hi StatusLine guibg=#ffeebb guifg=black gui=bold +hi StatusLineNC guibg=#aa8866 guifg=#f8e8cc gui=none +hi VertSplit guibg=#aa8866 guifg=#ffe0bb gui=none + +" hi Folded +" hi FoldColumn +" hi SignColumn + + +" Colors for Syntax Highlighting. + +hi Comment guibg=#ddeedd guifg=#002200 gui=none + +hi Constant guibg=bg guifg=#003399 gui=bold +hi String guibg=bg guifg=#003399 gui=italic +hi Character guibg=bg guifg=#003399 gui=italic +hi Number guibg=bg guifg=#003399 gui=bold +hi Boolean guibg=bg guifg=#003399 gui=bold +hi Float guibg=bg guifg=#003399 gui=bold + +hi Identifier guibg=bg guifg=#003399 gui=none +hi Function guibg=bg guifg=#0055aa gui=bold +hi Statement guibg=bg guifg=#003399 gui=none + +hi Conditional guibg=bg guifg=#aa7733 gui=bold +hi Repeat guibg=bg guifg=#aa5544 gui=bold +hi link Label Conditional +hi Operator guibg=bg guifg=#aa7733 gui=bold +hi link Keyword Statement +hi Exception guibg=bg guifg=#228877 gui=bold + +hi PreProc guibg=bg guifg=#aa7733 gui=bold +hi Include guibg=bg guifg=#558811 gui=bold +hi link Define Include +hi link Macro Include +hi link PreCondit Include + +hi Type guibg=bg guifg=#007700 gui=bold +hi link StorageClass Type +hi link Structure Type +hi Typedef guibg=bg guifg=#009900 gui=italic + +hi Special guibg=bg guifg=fg gui=none +hi SpecialChar guibg=bg guifg=fg gui=bold +hi Tag guibg=bg guifg=#003399 gui=bold +hi link Delimiter Special +hi SpecialComment guibg=#dddddd guifg=#aa0000 gui=none +hi link Debug Special + +hi Underlined guibg=bg guifg=blue gui=underline + +hi Title guibg=bg guifg=fg gui=bold +hi Ignore guibg=bg guifg=#999999 gui=none +hi Error guibg=red guifg=white gui=none +hi Todo guibg=bg guifg=#aa0000 gui=none + + + +" The same in cterm colors. +hi Cursor ctermbg=6 ctermfg=14 +hi Normal ctermbg=15 ctermfg=0 +hi NonText ctermbg=10 ctermfg=1 +hi Visual ctermbg=14 ctermfg=0 +" hi VisualNOS +hi Linenr ctermbg=bg ctermfg=7 +" hi DiffText ctermbg=4 ctermfg=15 +" hi DiffAdd ctermbg=1 ctermfg=15 +" hi DiffChange ctermbg=5 ctermfg=15 +" hi DiffDelete ctermbg=7 ctermfg=8 +hi Directory ctermbg=bg ctermfg=2 +hi IncSearch ctermbg=9 ctermfg=0 +hi Search ctermbg=9 ctermfg=0 +hi SpecialKey ctermbg=bg ctermfg=fg +hi Titled ctermbg=bg ctermfg=fg +hi ErrorMsg ctermbg=bg ctermfg=12 +hi ModeMsg ctermbg=bg ctermfg=9 +hi WarningMsg ctermbg=bg ctermfg=12 +hi StatusLine ctermbg=14 ctermfg=0 +hi StatusLineNC ctermbg=6 ctermfg=14 +hi VertSplit ctermbg=6 ctermfg=14 +" hi Folded +" hi FoldColumn +" hi SignColumn +hi Comment ctermbg=10 ctermfg=2 +hi Constant ctermbg=bg ctermfg=9 +hi String ctermbg=bg ctermfg=9 cterm=italic +hi Character ctermbg=bg ctermfg=9 cterm=italic +hi Number ctermbg=bg ctermfg=9 cterm=bold +hi Boolean ctermbg=bg ctermfg=9 cterm=bold +hi Float ctermbg=bg ctermfg=9 cterm=bold +hi Function ctermbg=bg ctermfg=9 cterm=bold +hi Statement ctermbg=bg ctermfg=9 cterm=bold +hi Conditional ctermbg=bg ctermfg=6 cterm=bold +hi Repeat ctermbg=bg ctermfg=6 cterm=bold +hi Operator ctermbg=bg ctermfg=6 cterm=bold +hi Exception ctermbg=bg ctermfg=2 cterm=bold +hi PreProc ctermbg=bg ctermfg=6 +hi Include ctermbg=bg ctermfg=2 cterm=bold +hi Type ctermbg=bg ctermfg=2 cterm=bold +hi Typedef ctermbg=bg ctermfg=2 cterm=italic +hi Special ctermbg=bg ctermfg=fg cterm=bold +hi Tag ctermbg=bg ctermfg=9 cterm=bold +hi SpecialComment ctermbg=7 ctermfg=4 +hi Underlined ctermbg=bg ctermfg=9 cterm=underline +hi Title ctermbg=bg ctermfg=fg cterm=bold +hi Ignore ctermbg=bg ctermfg=7 +hi Error ctermbg=12 ctermfg=15 +hi Todo ctermbg=bg ctermfg=15 diff --git a/vim/colors/baycomb.vim b/vim/colors/baycomb.vim new file mode 100644 index 0000000..bf3a309 --- /dev/null +++ b/vim/colors/baycomb.vim @@ -0,0 +1,319 @@ +" Vim color file +" baycomb v2.4 +" http://www.vim.org/scripts/script.php?script_id=1454 +" +" Maintainer: Shawn Axsom +" +" * Place :colo baycomb in your VimRC/GVimRC file +" * Also add :set background=dark or :setbackground=light +" depending on your preference. +" +" - Thanks to Desert and OceanDeep for their color scheme +" file layouts +" - Thanks to Raimon Grau and Bob Lied for their feedback + +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name="baycomb" + +if &background == "dark" +hi Normal guifg=#a0b4e0 guibg=#11121a "1a1823 +hi NonText guifg=#382920 guibg=bg + +hi Folded guibg=#232235 guifg=grey +hi FoldColumn guibg=#0a0a18 guifg=#dbcaa5 +hi LineNr guibg=#101124 guifg=#206aa9 +hi StatusLine guibg=#354070 guifg=#6880ea gui=none +hi StatusLineNC guibg=#2c3054 guifg=#5c6dbe gui=none +hi VertSplit guibg=#22253c guifg=#223355 gui=none + +hi tablinesel guibg=#515a71 guifg=#50aae5 gui=none +hi tabline guibg=#4d4d5f guifg=#5b7098 gui=none +hi tablinefill guibg=#2d2d3f guifg=#aaaaaa gui=none + +"hi SpellBad +"hi SpellCap +"hi SpellLocal +"hi SpellRare + +hi MatchParen guibg=#7b5a55 guifg=#001122 + +" syntax highlighting """""""""""""""""""""""""""""""""""""""" + + +hi Comment guifg=#349d58 guibg=bg +hi Title guifg=#e5e5ca gui=none +hi Underlined guifg=#bac5ba gui=none + +hi Statement guifg=#fca8ad gui=none "a080aa +hi Type guifg=#0490e8 gui=bold +hi Constant guifg=#5c78f0 "guibg=#111a2a +hi Number guifg=#4580b4 "guibg=#111a2a +hi PreProc guifg=#ba75cf +hi Special guifg=#aaaaca +hi Ignore guifg=grey40 +hi Todo guifg=orangered guibg=yellow2 +hi Error guibg=#b03452 +hi Function guifg=#bab588 guibg=bg gui=bold +hi Identifier guifg=#5094c4 +"""""this section borrowed from OceanDeep/Midnight""""" +highlight Conditional gui=None guifg=#d0688d guibg=bg +highlight Repeat gui=None guifg=#e06070 guibg=bg +"hi Label gui=None guifg=LightGreen guibg=bg +highlight Operator gui=None guifg=#e8cdc0 guibg=bg +highlight Keyword gui=bold guifg=grey guibg=bg +highlight Exception gui=bold guifg=#d0a8ad guibg=bg +""""""""""""""""""""""""""""""""""""""""""""""""""""""" +"end syntax highlighting """"""""""""""""""""""""""""""""""""" + +" highlight groups +"hi CursorIM +hi Directory guifg=#bbd0df +hi DiffText guibg=#004335 +hi DiffChange guibg=#685b5c +hi DiffAdd guibg=#0a4b8c +hi DiffDelete guifg=#300845 guibg=#200845 +hi ErrorMsg guibg=#ff4545 + +hi Cursor guibg=#cad5c0 guifg=#0000aa + + +hi Search guibg=darkyellow guifg=black +hi IncSearch guifg=#babeaa guibg=#3a4520 + +hi ModeMsg guifg=#00AACC +hi MoreMsg guifg=SeaGreen +hi Question guifg=#AABBCC +hi SpecialKey guifg=#90dcb0 +hi Visual guifg=#102030 guibg=#80a0f0 +hi VisualNOS guifg=#201a30 guibg=#a3a5FF +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar guibg=grey30 guifg=tan +"hi Tooltip + + +" new Vim 7.0 items +hi Pmenu guibg=#3a6595 guifg=#9aadd5 +hi PmenuSel guibg=#4a85ba guifg=#b0d0f0 + + + + + +" color terminal definitions +hi Cursor ctermfg=black ctermbg=white +hi Normal ctermfg=grey ctermbg=black +hi Number ctermfg=darkgreen +highlight Operator ctermfg=yellow +highlight Conditional ctermfg=darkred +highlight Repeat ctermfg=darkred +hi Exception ctermfg=darkred +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkgrey +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch ctermfg=yellow ctermbg=darkyellow cterm=NONE +hi Search ctermfg=black ctermbg=darkyellow cterm=NONE +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=darkcyan ctermbg=black +hi Question ctermfg=green +hi StatusLine ctermfg=yellow ctermbg=darkblue cterm=NONE +hi StatusLineNC ctermfg=grey ctermbg=darkblue cterm=NONE +hi VertSplit ctermfg=black ctermbg=darkgrey cterm=NONE +hi Title ctermfg=yellow cterm=NONE +hi Visual ctermbg=grey ctermfg=blue cterm=NONE +hi VisualNOS ctermbg=grey ctermfg=blue cterm=NONE +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgreen ctermbg=darkblue cterm=NONE +hi FoldColumn ctermfg=yellow ctermbg=black +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkgreen ctermbg=black +hi Identifier ctermfg=cyan + +"set comments to grey on non-Windows OS's to make sure +"it is readable +if &term == "builtin_gui" || &term == "win32" + hi function ctermfg=grey + hi Type ctermfg=darkyellow ctermbg=darkblue + hi IncSearch ctermfg=black ctermbg=grey cterm=NONE + hi Search ctermfg=black ctermbg=darkgrey cterm=NONE +else + hi function ctermfg=white + hi Type ctermfg=grey + hi IncSearch ctermfg=yellow ctermbg=darkyellow cterm=NONE + hi Search ctermfg=black ctermbg=darkyellow cterm=NONE +endif +"""""""""""""""""""""""""""""""""""""""""""""""""""""" + +hi Constant ctermfg=darkcyan +hi Special ctermfg=white +hi Statement ctermfg=yellow +hi PreProc ctermfg=darkred +hi Underlined ctermfg=cyan cterm=NONE +hi Ignore cterm=bold ctermfg=7 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + +" new Vim 7.0 items +hi Pmenu ctermbg=darkblue ctermfg=lightgrey +hi PmenuSel ctermbg=lightblue ctermfg=white + +hi tablinesel ctermfg=cyan ctermbg=blue +hi tabline ctermfg=black ctermbg=blue +hi tablinefill ctermfg=green ctermbg=darkblue +"vim: sw=4 +" +hi MatchParen ctermfg=black ctermbg=green + + +elseif &background == "light" + +hi Normal guifg=#003255 guibg=#e8ebf0 "greyish blue2 +hi NonText guifg=#382920 guibg=#152555 + +" syntax highlighting """""""""""""""""""""""""""""""""""""""" + +"set comments to grey on non-Windows OS's to make sure +"it is readable +if &term == "builtin_gui" || &term == "win32" + hi Comment guifg=#daddb8 guibg=#308ae5 +else + hi Comment guifg=darkyellow guibg=#207ada +endif +"""""""""""""""""""""""""""""""""""""""""""""""""""""" + +hi Title guifg=#857540 gui=none +hi Underlined guifg=#8a758a + +hi Statement guifg=#da302a gui=none +hi Type guifg=#307aca gui=none +hi Constant guifg=#3a40aa gui=none +hi PreProc guifg=#9570b5 +hi Identifier guifg=#856075 "gui=bold +hi Special guifg=#652a7a +hi Ignore guifg=grey40 +hi Todo guifg=orangered guibg=yellow2 +hi Error guibg=#b03452 +"""""this section borrowed from OceanDeep/Midnight""""" +hi Number guifg=#006bcd +hi Function gui=None guifg=#d06d50 "or green 50b3b0 +highlight Conditional gui=None guifg=#a50a4a +highlight Repeat gui=None guifg=#700d8a +"hi Label gui=None guifg=LightGreen guibg=bg +highlight Operator gui=None guifg=#e0b045 +highlight Keyword gui=bold guifg=grey guibg=bg +highlight Exception gui=none guifg=#ea5460 +""""""""""""""""""""""""""""""""""""""""""""""""""""""" +"end syntax highlighting """"""""""""""""""""""""""""""""""""" + +" highlight groups +"hi CursorIM +hi Directory guifg=#bbd0df +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=#ff4545 + +hi Cursor guibg=#cadaca guifg=#05293d + +hi FoldColumn guibg=#409ae0 guifg=darkgrey +"hi FoldColumn guibg=#83a5cd guifg=#70459F +hi LineNr guibg=#409ae0 guifg=darkblue gui=bold +"hi LineNr guibg=#081c30 guifg=#80a0dA +hi StatusLine guibg=#20b5fd guifg=#0a150d gui=none +hi StatusLineNC guibg=#0580da guifg=#302d34 gui=none + +hi Search guibg=#babdad guifg=#3a4520 +hi IncSearch guifg=#dadeca guibg=#3a4520 + +hi VertSplit guibg=#525f95 guifg=grey50 gui=none +hi Folded guibg=#252f5d guifg=#BBDDCC +hi ModeMsg guifg=#00AACC +hi MoreMsg guifg=SeaGreen +hi Question guifg=#AABBCC +hi SpecialKey guifg=#308c70 +hi Visual guifg=#008FBF guibg=#33DFEF +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar guibg=grey30 guifg=tan +"hi Tooltip + + +" new Vim 7.0 items +hi Pmenu guibg=#3a6595 guifg=#9aadd5 +hi PmenuSel guibg=#4a85ba guifg=#b0d0f0 + + + + + +" color terminal definitions +hi Normal ctermfg=black ctermbg=white +hi Number ctermfg=blue +highlight Operator ctermfg=yellow +highlight Conditional ctermfg=magenta +highlight Repeat ctermfg=magenta +hi Exception ctermfg=red +hi function ctermfg=darkyellow +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkgrey ctermbg=grey +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch ctermfg=yellow ctermbg=darkyellow cterm=NONE +hi Search ctermfg=white ctermbg=darkyellow cterm=NONE +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=black ctermbg=blue +hi Question ctermfg=green +hi StatusLine ctermfg=cyan ctermbg=blue cterm=NONE +hi StatusLineNC ctermfg=grey ctermbg=darkblue cterm=NONE +hi VertSplit ctermfg=black ctermbg=black cterm=NONE +hi Title ctermfg=darkyellow ctermbg=white +hi Visual ctermbg=darkcyan ctermfg=cyan cterm=NONE +hi VisualNOS ctermbg=darkcyan ctermfg=white cterm=NONE +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=black ctermbg=white cterm=NONE +hi FoldColumn ctermfg=green ctermbg=blue +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 + +hi Comment ctermfg=grey ctermbg=blue + +hi Constant ctermfg=darkblue +hi Special ctermfg=darkmagenta +hi Identifier ctermfg=darkyellow cterm=NONE +hi Statement ctermfg=red +hi PreProc ctermfg=magenta +hi Type ctermfg=darkcyan "or darkcyan +hi Underlined ctermfg=black ctermbg=white +hi Ignore cterm=bold ctermfg=7 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + +" new Vim 7.0 items +hi Pmenu ctermbg=darkblue ctermfg=lightgrey +hi PmenuSel ctermbg=lightblue ctermfg=white + +"vim: sw=4 + +endif diff --git a/vim/colors/billw.vim b/vim/colors/billw.vim new file mode 100644 index 0000000..740642f --- /dev/null +++ b/vim/colors/billw.vim @@ -0,0 +1,99 @@ +" vim: set tw=0 sw=4 sts=4 et: + +" Vim color file +" Maintainer: Datila Carvalho +" Last Change: November, 3, 2003 +" Version: 0.1 + +" This is a VIM's version of the emacs color theme +" _Billw_ created by Bill White. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "billw" + + +""" Colors + +" GUI colors +hi Cursor guifg=fg guibg=cornsilk +hi CursorIM guifg=NONE guibg=cornsilk +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg gui=bold guifg=White guibg=Red +"hi VertSplit +"hi Folded +"hi FoldColumn +"hi IncSearch +"hi LineNr +hi ModeMsg gui=bold +"hi MoreMsg +"hi NonText +hi Normal guibg=black guifg=cornsilk +"hi Question +hi Search gui=bold guifg=Black guibg=cornsilk +"hi SpecialKey +hi StatusLine guifg=orange1 +hi StatusLineNC guifg=yellow4 +"hi Title +hi Visual guifg=gray35 guibg=fg +hi VisualNOS gui=bold guifg=black guibg=fg +hi WarningMsg guifg=White guibg=Tomato +"hi WildMenu + +" Colors for syntax highlighting +hi Comment guifg=gold + +hi Constant guifg=mediumspringgreen + hi String guifg=orange + hi Character guifg=orange + hi Number guifg=mediumspringgreen + hi Boolean guifg=mediumspringgreen + hi Float guifg=mediumspringgreen + +hi Identifier guifg=yellow + hi Function guifg=mediumspringgreen + +hi Statement gui=bold guifg=cyan1 + hi Conditional gui=bold guifg=cyan1 + hi Repeat gui=bold guifg=cyan1 + hi Label guifg=cyan1 + hi Operator guifg=cyan1 + "hi Keyword + "hi Exception + +hi PreProc guifg=LightSteelBlue + hi Include guifg=LightSteelBlue + hi Define guifg=LightSteelBlue + hi Macro guifg=LightSteelBlue + hi PreCondit guifg=LightSteelBlue + +hi Type guifg=yellow + hi StorageClass guifg=cyan1 + hi Structure gui=bold guifg=cyan1 + hi Typedef guifg=cyan1 + +"hi Special + ""Underline Character + "hi SpecialChar gui=underline + "hi Tag gui=bold,underline + ""Statement + "hi Delimiter gui=bold + ""Bold comment (in Java at least) + "hi SpecialComment gui=bold + "hi Debug gui=bold + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=White guibg=Red + +"hi Todo diff --git a/vim/colors/biogoo.vim b/vim/colors/biogoo.vim new file mode 100644 index 0000000..e99dd14 --- /dev/null +++ b/vim/colors/biogoo.vim @@ -0,0 +1,115 @@ +" Vim color File +" Name: biogoo +" Maintainer: Benjamin Esham +" Last Change: 2006-11-20 +" Version: 1.5 +" +" Colorful text on a light gray background. It's pretty easy on the eyes in +" my opinion. Any feedback is greatly appreciated! +" +" Installation: +" Copy to ~/.vim/colors; do :color biogoo +" +" Customization Options: +" Use a 'normal' cursor color: +" let g:biogoo_normal_cursor = 1 +" +" Props: +" Jani Nurminen's zenburn.vim as an example file. +" Scott F. and Matt F. for feature suggestions. +" Bill McCarthy for his Vim mailing list post about Vim 7 support. +" +" Version History: +" 1.5: should fully support Vim 7 now +" 1.4: more support for Vim 7: added the `MatchParen' group for ()[]{} matching +" 1.3: added support for Vim 7: added groups for the new spellchecking, and +" added a conditional to display Visual mode correctly in any version. +" 1.2: added `SpellErrors' group for use with vimspell. +" 1.1: added `IncSearch' group for improved visibility in incremental searches. +" 1.0: minor tweaks +" 0.95: initial release +" +" TODO: Add new groups as needed. E-mail me with any suggestions! + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "biogoo" + +hi Comment guifg=#0000c3 +hi Constant guifg=#0000ff +hi CursorColumn guibg=#ffffff +hi CursorLine guibg=#ffffff +hi Delimiter guifg=#00007f +hi DiffAdd guifg=#007f00 guibg=#e5e5e5 +hi DiffChange guifg=#00007f guibg=#e5e5e5 +hi DiffDelete guifg=#7f0000 guibg=#e5e5e5 +hi DiffText guifg=#ee0000 guibg=#e5e5e5 +hi Directory guifg=#b85d00 +hi Error guifg=#d6d6d6 guibg=#7f0000 +hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=bold +hi Float guifg=#b85d00 +hi FoldColumn guifg=#00007f guibg=#e5e5e5 +hi Folded guifg=#00007f guibg=#e5e5e5 +hi Function guifg=#7f0000 +hi Identifier guifg=#004000 +hi Include guifg=#295498 gui=bold +hi IncSearch guifg=#ffffff guibg=#0000ff gui=bold +hi LineNr guifg=#303030 guibg=#e5e5e5 gui=underline +hi Keyword guifg=#00007f +hi Macro guifg=#295498 +hi MatchParen guifg=#ffffff guibg=#00a000 +hi ModeMsg guifg=#00007f +hi MoreMsg guifg=#00007f +hi NonText guifg=#007f00 +hi Normal guifg=#000000 guibg=#d6d6d6 +hi Number guifg=#b85d00 +hi Operator guifg=#00007f +hi Pmenu guifg=#000000 guibg=#cc9999 +hi PmenuSel guifg=#ffffff guibg=#993333 +hi PmenuSbar guibg=#99cc99 +hi PmenuThumb guifg=#339933 +hi PreCondit guifg=#295498 gui=bold +hi PreProc guifg=#0c3b6b gui=bold +hi Question guifg=#00007f +hi Search guibg=#ffff00 +hi Special guifg=#007f00 +hi SpecialKey guifg=#00007f +hi SpellBad guifg=#ffffff guibg=#7f0000 gui=undercurl guisp=#d6d6d6 +hi SpellCap guifg=#ffffff guibg=#7f007f gui=undercurl guisp=#d6d6d6 +hi SpellLocal guifg=#ffffff guibg=#007f7f gui=undercurl guisp=#d6d6d6 +hi SpellRare guifg=#ffffff guibg=#b85d00 gui=undercurl guisp=#d6d6d6 +hi Statement guifg=#00007f gui=none +hi StatusLine guifg=#00007f guibg=#ffffff +hi StatusLineNC guifg=#676767 guibg=#ffffff +hi String guifg=#d10000 +hi TabLine guifg=#222222 guibg=#d6d6d6 +hi TabLineFill guifg=#d6d6d6 +hi TabLineSel guifg=#00007f guibg=#eeeeee gui=bold +hi Title guifg=#404040 gui=bold +hi Todo guifg=#00007f guibg=#e5e5e5 gui=underline +hi Type guifg=#540054 gui=bold +hi Underlined guifg=#b85d00 +hi VertSplit guifg=#676767 guibg=#ffffff +if version < 700 + hi Visual guifg=#7f7f7f guibg=#ffffff +else + hi Visual guifg=#ffffff guibg=#7f7f7f +endif +hi VisualNOS guifg=#007f00 guibg=#e5e5e5 +hi WarningMsg guifg=#500000 +hi WildMenu guifg=#540054 + +" Non-standard highlighting (e.g. for plugins) + +" vimspell +hi SpellErrors guifg=#ffffff guibg=#7f0000 gui=undercurl guisp=#d6d6d6 + +if !exists("g:biogoo_normal_cursor") + " use a gray-on-blue cursor + hi Cursor guifg=#ffffff guibg=#00007f +endif + +" vim:noet:ts=4 sw=4 diff --git a/vim/colors/black_angus.vim b/vim/colors/black_angus.vim new file mode 100644 index 0000000..145b639 --- /dev/null +++ b/vim/colors/black_angus.vim @@ -0,0 +1,115 @@ +" Vim color file +" Maintainer: Angus Salkeld +" Last Change: 14 September 2004 +" Version: 1.0 +" mainly green on black + +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "black_angus" + +" GUI +" ----------------------------------------------------------------------- +highlight Normal guifg=Grey80 guibg=Black +highlight Search guifg=brown gui=reverse +highlight Visual guifg=Grey25 gui=bold +highlight Cursor guifg=Yellow guibg=DarkGreen gui=bold +highlight DiffAdd guibg=#000080 gui=NONE +highlight DiffChange guibg=#800080 gui=NONE +highlight DiffDelete guifg=#80c0e0 guibg=#404040 gui=NONE +highlight DiffText guifg=Black guibg=#c0e080 gui=NONE + +" Console +" ----------------------------------------------------------------------- +highlight Normal ctermfg=LightGrey ctermbg=Black +highlight Search ctermfg=Brown cterm=reverse +highlight Visual cterm=reverse +highlight Cursor ctermfg=Yellow ctermbg=Green cterm=bold + +" both +" ----------------------------------------------------------------------- +highlight StatusLine guifg=LightGreen guibg=#003300 gui=none ctermfg=LightGreen ctermbg=DarkGreen term=none +highlight VertSplit guifg=LightGreen guibg=#003300 gui=none ctermfg=LightGreen ctermbg=DarkGreen term=none +highlight Folded guifg=#aaDDaa guibg=#333333 gui=none ctermfg=LightGray ctermbg=DarkGray term=none +highlight FoldColumn guifg=LightGreen guibg=#003300 gui=none ctermfg=LightGreen ctermbg=DarkGreen term=none +highlight SignColumn guifg=LightGreen guibg=#003300 gui=none ctermfg=LightGreen ctermbg=DarkGreen term=none +highlight WildMenu guifg=LightGreen guibg=#003300 gui=none ctermfg=LightGreen ctermbg=DarkGreen term=none + +highlight LineNr guifg=DarkGreen guibg=Black gui=none ctermfg=DarkGreen ctermbg=Black term=none +highlight Directory guifg=LightGreen ctermfg=LightGreen +highlight Comment guifg=DarkGrey ctermfg=DarkGray + +highlight Special guifg=Orange ctermfg=Brown +highlight Title guifg=Orange ctermfg=Brown +highlight Tag guifg=DarkRed ctermfg=DarkRed +highlight link Delimiter Special +highlight link SpecialChar Special +highlight link SpecialComment Special +highlight link SpecialKey Special +highlight link NonText Special + +highlight Error guifg=White guibg=DarkRed gui=none ctermfg=White ctermbg=DarkRed cterm=none +highlight Debug guifg=White guibg=DarkGreen gui=none ctermfg=White ctermbg=DarkRed cterm=none +highlight ErrorMsg guifg=White guibg=DarkBlue gui=none ctermfg=White ctermbg=DarkRed cterm=none +highlight WarningMsg guifg=White guibg=DarkBlue gui=none ctermfg=White ctermbg=DarkBlue cterm=none +highlight Todo guifg=White guibg=DarkYellow gui=none ctermfg=White ctermbg=DarkBlue cterm=none +highlight link cCommentStartError WarningMsg +highlight link cCommentError Debug + +" Preprocesor +highlight PreCondit guifg=Cyan3 ctermfg=Cyan +highlight PreProc guifg=Magenta ctermfg=Magenta +highlight Include guifg=DarkCyan ctermfg=DarkCyan +highlight ifdefIfOut guifg=DarkGray ctermfg=DarkGray +highlight link Macro Include +highlight link Define Include + +" lang +highlight Function guifg=#AAEEAA gui=none ctermfg=LightGreen +highlight Identifier guifg=#bbccbb gui=none ctermfg=Grey +highlight Statement guifg=LightGreen gui=underline ctermfg=LightGreen +highlight Operator guifg=Yellow gui=none ctermfg=Yellow +highlight Conditional guifg=lightslateblue gui=none ctermfg=LightBlue + +highlight link Exception Statement +highlight link Label Statement +highlight link Repeat Conditional + +highlight link Keyword Label + +highlight Constant guifg=LightGreen ctermfg=LightGreen gui=none +highlight link Character Constant +highlight link Number Constant +highlight link Boolean Constant +highlight link String Constant +highlight link Float Constant + +highlight Type guifg=DarkGreen ctermfg=DarkGreen gui=none +highlight link StorageClass Type +highlight link Structure Type +highlight link Typedef Type + +" ------------------------------------------------------------------------------ +" Common groups that link to other highlighting definitions. +highlight link Search IncSearch +highlight link Question Statement +highlight link VisualNOS Visual +" ------------------------------------------------------------------------------ + +" only for vim 5 +if has("unix") + if v:version<600 + highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE + highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold + highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=Grey25 gui=bold + highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue + highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue + endif +endif + + + diff --git a/vim/colors/blackbeauty.vim b/vim/colors/blackbeauty.vim new file mode 100644 index 0000000..a824ea3 --- /dev/null +++ b/vim/colors/blackbeauty.vim @@ -0,0 +1,66 @@ +" Vim color file +" Maintainer: Surya +" Last Change: 12/23/2003 10:32:41 . +" version: 1.0 +" This color scheme uses a dark background. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "koehler" +hi Normal guifg=white guibg=black +hi Scrollbar guibg=darkgray guifg=darkgray +hi Menu guifg=black guibg=gray +hi SpecialKey term=bold cterm=bold ctermfg=darkred guifg=Blue +hi NonText term=bold cterm=bold ctermfg=darkred gui=bold guifg=Blue +hi Directory term=bold cterm=bold ctermfg=brown guifg=Blue +hi ErrorMsg term=standout cterm=bold ctermfg=grey ctermbg=blue gui=bold guifg=White guibg=brown +hi Search term=reverse ctermfg=white ctermbg=red gui=bold guifg=#000000 guibg=Magenta +hi MoreMsg term=bold cterm=bold ctermfg=darkgreen gui=bold guifg=SeaGreen +hi ModeMsg term=bold cterm=bold gui=bold guifg=White guibg=Blue +hi LineNr term=underline cterm=bold ctermfg=darkcyan guibg=brown guifg=white +hi Question term=standout cterm=bold ctermfg=darkgreen gui=bold guifg=Green +hi StatusLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guibg=white guifg=brown +hi StatusLineNC term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue +hi Title term=bold cterm=bold ctermfg=darkmagenta gui=bold guifg=Magenta +hi Visual term=reverse cterm=reverse gui=reverse +hi WarningMsg term=standout cterm=bold ctermfg=darkblue gui=bold guifg=cyan guibg=Black +hi Cursor guifg=bg guibg=cyan +hi Comment term=bold cterm=bold ctermfg=cyan guifg=#80a0ff +hi Constant term=underline cterm=bold ctermfg=magenta guifg=#ffa0a0 +hi String term=underline cterm=bold ctermfg=magenta gui=bold guifg=brown guibg=darkgray +hi Number term=underline cterm=bold ctermfg=magenta guifg=#00ffff +hi Special term=bold gui=bold cterm=bold ctermfg=red guifg=Orange +hi Identifier term=underline ctermfg=brown guifg=#40ffff +hi Statement term=bold cterm=bold ctermfg=yellow gui=bold guifg=#ffff60 +hi PreProc term=underline ctermfg=darkblue guifg=#ff80ff +hi Type term=underline cterm=bold ctermfg=lightgreen gui=bold guifg=#60ff60 +hi Error gui=bold guifg=Yellow guibg=Black +hi Todo term=standout ctermfg=black ctermbg=darkcyan guifg=Blue guibg=Yellow +"hi VertSplit guifg=#00FFFF guibg=#000000 gui=bold +hi link IncSearch Visual +hi link Character Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special + diff --git a/vim/colors/blackdust.vim b/vim/colors/blackdust.vim new file mode 100644 index 0000000..0eb20a7 --- /dev/null +++ b/vim/colors/blackdust.vim @@ -0,0 +1,62 @@ +set background=dark +hi clear + +hi Boolean guifg=#dca3a3 gui=bold +hi Character guifg=#dca3a3 gui=bold +hi Comment guifg=#7f7f7f +hi Condtional guifg=#8fffff +hi Constant guifg=#dca3a3 gui=bold +hi Cursor guifg=#000000 guibg=#aeaeae +hi Debug guifg=#dca3a3 gui=bold +hi Define guifg=#ffcfaf gui=bold +hi Delimiter guifg=#8f8f8f +hi DiffAdd guibg=#613c46 +hi DiffChange guibg=#333333 +hi DiffDelete guifg=#333333 guibg=#464646 gui=none +hi DiffText guifg=#ffffff guibg=#1f1f1f gui=bold +hi Directory guifg=#ffffff gui=bold +hi Error guifg=#000000 guibg=#00ffff +hi ErrorMsg guifg=#000000 guibg=#00c0cf +hi Exception guifg=#8fffff gui=underline +hi Float guifg=#9c93b3 +hi FoldColumn guifg=#dca3a3 guibg=#464646 +hi Folded guifg=#dca3a3 guibg=#333333 +hi Function guifg=#ffff8f +hi Identifier guifg=#ffffff +hi Include guifg=#ffcfaf gui=bold +hi IncSearch guifg=#000000 guibg=#c15c66 +hi Keyword guifg=#ffffff gui=bold +hi Label guifg=#8fffff gui=underline +hi LineNr guifg=#7f7f7f guibg=#464646 +hi Macro guifg=#ffcfaf gui=bold +hi ModeMsg guifg=#dca3a3 gui=bold +hi MoreMsg guifg=#ffffff gui=bold +hi NonText guifg=#1f1f1f +hi Normal guifg=#cccccc guibg=#3f3f3f +hi Number guifg=#aca0a3 +hi Operator guifg=#ffffff +hi PreCondit guifg=#dfaf8f gui=bold +hi PreProc guifg=#ffcfaf gui=bold +hi Question guifg=#ffffff gui=bold +hi Repeat guifg=#8fffff gui=underline +hi Search guifg=#000000 guibg=#c15c66 +hi SpecialChar guifg=#dca3a3 gui=bold +hi SpecialComment guifg=#dca3a3 gui=bold +hi Special guifg=#7f7f7f +hi SpecialKey guifg=#7e7e7e +hi Statement guifg=#8fffff +hi StatusLine guifg=#333333 guibg=#f18c96 +hi StatusLineNC guifg=#333333 guibg=#cccccc +hi StorageClass guifg=#ffffff gui=bold +hi String guifg=#cc9393 +hi Structure guifg=#ffffff gui=bold,underline +hi Tag guifg=#dca3a3 gui=bold +hi Title guifg=#ffffff guibg=#333333 gui=bold +hi Todo guifg=#ffffff guibg=#000000 gui=bold +hi Typedef guifg=#ffffff gui=bold,underline +hi Type guifg=#ffffff gui=bold +hi VertSplit guifg=#333333 guibg=#cccccc +hi Visual guifg=#333333 guibg=#f18c96 gui=reverse +hi VisualNOS guifg=#333333 guibg=#f18c96 gui=bold,underline +hi WarningMsg guifg=#ffffff guibg=#333333 gui=bold +hi WildMenu guifg=#000000 guibg=#dca3a3 diff --git a/vim/colors/blacksea.vim b/vim/colors/blacksea.vim new file mode 100644 index 0000000..5cd38a3 --- /dev/null +++ b/vim/colors/blacksea.vim @@ -0,0 +1,32 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2003 Mar 20 + +" This is a dark version/opposite of "seashell". The cterm version of this is +" very similar to "evening". +" +" Only values that differ from defaults are specified. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "BlackSea" + +hi Normal guibg=Black guifg=seashell ctermfg=White +hi NonText guifg=LavenderBlush ctermfg=LightMagenta +hi DiffDelete guibg=DarkRed guifg=Black ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=DarkGreen ctermbg=DarkGreen ctermfg=White +hi DiffChange guibg=Gray30 ctermbg=DarkCyan ctermfg=White +hi DiffText gui=NONE guibg=DarkCyan ctermbg=DarkCyan ctermfg=Yellow +hi Comment guifg=LightBlue +hi Constant guifg=DeepPink +hi PreProc guifg=Magenta ctermfg=Magenta +hi StatusLine guibg=#1f001f guifg=DarkSeaGreen cterm=NONE ctermfg=White ctermbg=DarkGreen +hi StatusLineNC guifg=Gray +hi VertSplit guifg=Gray +hi Type gui=NONE +hi Identifier guifg=Cyan +hi Statement guifg=brown3 ctermfg=DarkRed +hi Search guibg=Gold3 ctermfg=White diff --git a/vim/colors/blue.vim b/vim/colors/blue.vim new file mode 100644 index 0000000..220700f --- /dev/null +++ b/vim/colors/blue.vim @@ -0,0 +1,41 @@ +" Vim color file +" Maintainer: TaQ +" Last Change: 10 October 2001 - 0.2 +" URL: http://taq.cjb.net + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark " or light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="blue" + +hi Normal ctermfg=Gray ctermbg=Black guifg=#CCCCCC guibg=#000040 +hi NonText ctermfg=Gray ctermbg=Black guifg=#0050EE guibg=#000040 + +hi Statement ctermfg=White ctermbg=Black guifg=#007FFF guibg=#000040 gui=BOLD +hi Comment ctermfg=Blue ctermbg=Black guifg=#00A0FF guibg=#000090 gui=NONE +hi Constant ctermfg=White ctermbg=Black guifg=#0050EE guibg=#000040 gui=NONE +hi Identifier ctermfg=Cyan ctermbg=Black guifg=#FFFFFF guibg=#000040 gui=NONE +hi Type ctermfg=Cyan ctermbg=Black guifg=#5050FF guibg=#000040 gui=NONE +hi Folded ctermfg=White ctermbg=Blue guifg=#00A0FF guibg=#000050 gui=BOLD +hi Special ctermfg=Blue ctermbg=Black guifg=#00A0FF guibg=#000090 gui=NONE +hi PreProc ctermfg=Blue ctermbg=Black guifg=#00FF00 guibg=#000040 gui=BOLD +hi Scrollbar ctermfg=Blue ctermbg=Black guifg=#00C0FF guibg=#000040 +hi Cursor ctermfg=white ctermbg=Black guifg=#FFFFFF guibg=#5050FF +hi ErrorMsg ctermfg=white ctermbg=Red guifg=#FFFFFF guibg=#FF0000 +hi WarningMsg ctermfg=Black ctermbg=Yellow guifg=#000000 guibg=#FFFF00 +hi VertSplit ctermfg=White ctermbg=Blue guifg=#000090 guibg=#000090 +hi Directory ctermfg=Cyan ctermbg=DarkBlue guifg=#00A0F0 guibg=#000040 +hi Visual ctermfg=Black ctermbg=Cyan guifg=#5050FF guibg=#FFFFFF +hi Title ctermfg=White ctermbg=Blue guifg=#FFFFFF guibg=#0050EE gui=NONE + +hi StatusLine term=bold cterm=bold ctermfg=White ctermbg=Blue gui=bold guifg=#FFFFFF guibg=#0050EE +hi StatusLineNC term=bold cterm=bold ctermfg=Gray ctermbg=Blue gui=bold guifg=#AAAAAA guibg=#000090 +hi LineNr term=bold cterm=bold ctermfg=White ctermbg=DarkBlue gui=bold guifg=#00A0FF guibg=#000050 + diff --git a/vim/colors/bluegreen.vim b/vim/colors/bluegreen.vim new file mode 100644 index 0000000..bdb4892 --- /dev/null +++ b/vim/colors/bluegreen.vim @@ -0,0 +1,52 @@ + + +" Vim color file +" Maintainer: +" Last Change: +" URL: + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="mine" + +hi Normal guifg=White guibg=#061A3E + +" highlight groups +hi Cursor guibg=#D74141 guifg=#e3e3e3 +hi VertSplit guibg=#C0FFFF guifg=#075554 gui=none +hi Folded guibg=#FFC0C0 guifg=black +hi FoldColumn guibg=#800080 guifg=tan +"hi IncSearch cterm=none ctermbg=blue ctermfg=grey guifg=slategrey guibg=khaki +hi ModeMsg guifg=#404040 guibg=#C0C0C0 +hi MoreMsg guifg=darkturquoise guibg=#188F90 +hi NonText guibg=#334C75 guifg=#9FADC5 +hi Question guifg=#F4BB7E +hi Search guibg=fg guifg=bg +hi SpecialKey guifg=#BF9261 +hi StatusLine guibg=#004443 guifg=#c0ffff gui=none +hi StatusLineNC guibg=#067C7B guifg=#004443 gui=bold +hi Title guifg=#8DB8C3 +hi Visual gui=bold guifg=black guibg=#C0FFC0 +hi WarningMsg guifg=#F60000 gui=underline + +" syntax highlighting groups +hi Comment guifg=#DABEA2 +hi Constant guifg=#72A5E4 gui=bold +hi Identifier guifg=#ADCBF1 +hi Statement guifg=#7E75B5 +hi PreProc guifg=#14F07C +hi Type guifg=#A9EE8A +hi Special guifg=#EEBABA +hi Ignore guifg=grey60 +hi Todo guibg=#9C8C84 guifg=#244C0A + +"vim: ts=4 diff --git a/vim/colors/blugrine.vim b/vim/colors/blugrine.vim new file mode 100644 index 0000000..6ba6330 --- /dev/null +++ b/vim/colors/blugrine.vim @@ -0,0 +1,42 @@ +" author Helder Correia < helder (dot) correia (at) netcabo (dot) pt> +" version 2004.0 +" based on bluegreen colorscheme by Joao Estevao +" feel free to modify / redistribute this file + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="blugrine" + +hi Normal guifg=White guibg=#000000 + +" highlight groups +hi Cursor guibg=#D74141 guifg=#e3e3e3 +hi VertSplit guibg=#C0FFFF guifg=#075554 gui=none +hi Folded guibg=#FFC0C0 guifg=black +hi FoldColumn guibg=#800080 guifg=tan +hi ModeMsg guifg=#404040 guibg=#C0C0C0 +hi MoreMsg guifg=darkturquoise guibg=#188F90 +hi NonText guibg=#334C75 guifg=#9FADC5 +hi Question guifg=#F4BB7E +hi Search guibg=fg guifg=bg +hi SpecialKey guifg=#BF9261 +hi StatusLine guibg=#004443 guifg=#c0ffff gui=none +hi StatusLineNC guibg=#067C7B guifg=#004443 gui=bold +hi Title guifg=#8DB8C3 +hi Visual gui=bold guifg=black guibg=#C0FFC0 +hi WarningMsg guifg=#F60000 gui=underline + +" syntax highlighting groups +hi Comment guifg=#DABEA2 +hi Constant guifg=#72A5E4 gui=bold +hi Identifier guifg=#ADCBF1 +hi Statement guifg=#7E75B5 +hi PreProc guifg=#14F07C +hi Type guifg=#A9EE8A +hi Special guifg=#EEBABA +hi Ignore guifg=grey60 +hi Todo guibg=#9C8C84 guifg=#244C0A + diff --git a/vim/colors/bmichaelsen.vim b/vim/colors/bmichaelsen.vim new file mode 100644 index 0000000..b63f65c --- /dev/null +++ b/vim/colors/bmichaelsen.vim @@ -0,0 +1,55 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Björn Michaelsen +" based on: Zellner maintained by Ron Aaron +" Last Change: 2003 Sep 09 + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "bmichaelsen" + +hi Comment term=bold ctermfg=Red guifg=Red +hi Normal guifg=black guibg=#dee2ee +hi Constant term=underline ctermfg=Magenta guifg=Magenta +hi Special term=bold ctermfg=Magenta guifg=Magenta +hi Identifier term=underline ctermfg=Blue guifg=Blue +hi Statement term=bold ctermfg=DarkRed gui=NONE guifg=Brown +hi PreProc term=underline ctermfg=Magenta guifg=Purple +hi Type term=underline ctermfg=Blue gui=NONE guifg=Blue +hi Visual term=reverse ctermfg=Yellow ctermbg=Red gui=NONE guifg=Black guibg=#5a5d6a +hi Search term=reverse ctermfg=Black ctermbg=Cyan gui=NONE guifg=Black guibg=Cyan +hi Tag term=bold ctermfg=DarkGreen guifg=DarkGreen +hi Error term=reverse ctermfg=15 ctermbg=9 guibg=Red guifg=White +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=#5a5d6a +hi StatusLine term=bold,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=NONE guifg=Black guibg=#a4b2c5 +hi! link MoreMsg Comment +hi! link ErrorMsg Visual +hi! link WarningMsg ErrorMsg +hi! link Question Comment +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special diff --git a/vim/colors/bog.vim b/vim/colors/bog.vim new file mode 100644 index 0000000..542262d --- /dev/null +++ b/vim/colors/bog.vim @@ -0,0 +1,87 @@ +" Vim color file +" Maintainer: [smeagol] +" Last Change: +" URL: + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +" your pick: +set background=light " or light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="bog" + +hi Normal guifg=#3a3a3d guibg=white ctermfg=darkgrey ctermbg=white + +" OR + +" highlight clear Normal +" set background& +" highlight clear +" if &background == "light" +" highlight Error ... +" ... +" else +" highlight Error ... +" ... +" endif + +" A good way to see what your colorscheme does is to follow this procedure: +" :w +" :so % +" +" Then to see what the current setting is use the highlight command. +" For example, +" :hi Cursor +" gives +" Cursor xxx guifg=bg guibg=fg + +" Uncomment and complete the commands you want to change from the default. + +hi Cursor guifg=#04ae6c guibg=#0056a0 ctermfg=darkgreen ctermbg=darkblue +"hi CursorIM +hi Directory guifg=green ctermfg=green +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=#004a8a guifg=white ctermfg=white ctermbg=darkblue +hi VertSplit guibg=#04ae6c guifg=#0056a0 +hi Folded guibg=#0a62c4 guifg=#60abff ctermfg=lightgrey ctermbg=blue +hi FoldColumn guibg=#0a62c4 guifg=#60abff ctermfg=lightgrey ctermbg=blue +hi IncSearch guifg=white guibg=#ffdc34 ctermfg=white ctermbg=lightred gui=underline +hi LineNr guifg=#3669e8 guibg=white ctermfg=lightblue ctermbg=white +hi ModeMsg guifg=orange guibg=white ctermfg=lightred ctermbg=white +hi MoreMsg guifg=orange guibg=white ctermfg=lightred ctermbg=white +hi NonText gui=bold +hi Question guifg=white guibg=orange ctermfg=white ctermbg=lightred +hi Search guifg=white guibg=#ffdc34 ctermfg=white ctermbg=lightred gui=underline +"hi SpecialKey +hi StatusLine guifg=#04ae6c guibg=white ctermfg=darkgreen ctermbg=white +hi StatusLineNC guifg=#04ae6c guibg=white ctermfg=darkgreen ctermbg=white +hi Title guifg=#02233f gui=bold +hi Visual guifg=darkblue guibg=white ctermfg=darkblue ctermbg=white +"hi VisualNOS +hi WarningMsg guifg=white guibg=orange ctermfg=white ctermbg=lightblue +hi WildMenu guifg=#75dc34 guibg=white ctermfg=lightgreen ctermbg=white +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=orange guibg=white ctermbg=white ctermfg=blue +hi Constant guifg=#5b8f8d guibg=white ctermfg=grey ctermbg=white +hi Identifier guifg=#aad2ff guibg=white ctermfg=grey ctermbg=white +hi Statement guifg=#808283 guibg=white ctermfg=lightgrey ctermbg=white +hi PreProc guifg=#023a6a gui=bold guibg=white ctermfg=darkblue ctermbg=white +hi Type guifg=#0e9152 guibg=white ctermfg=darkgreen ctermbg=white +hi Special guifg=white guibg=skyblue ctermfg=white ctermbg=blue +hi Underlined guifg=#00d0e8 ctermbg=blue +hi Ignore guifg=black guibg=white ctermfg=black ctermbg=white +"hi Error +hi Todo guibg=lightblue guifg=white ctermbg=lightblue ctermfg=white diff --git a/vim/colors/borland.vim b/vim/colors/borland.vim new file mode 100644 index 0000000..c39c101 --- /dev/null +++ b/vim/colors/borland.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: Yegappan Lakshmanan +" Last Change: 2001 Sep 9 + +" Color settings similar to that used in Borland IDE's. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="borland" + +hi Normal term=NONE cterm=NONE ctermfg=Yellow ctermbg=DarkBlue +hi Normal gui=NONE guifg=Yellow guibg=DarkBlue +hi NonText term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi NonText gui=NONE guifg=White guibg=DarkBlue + +hi Statement term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Statement gui=NONE guifg=White guibg=DarkBlue +hi Special term=NONE cterm=NONE ctermfg=Cyan ctermbg=DarkBlue +hi Special gui=NONE guifg=Cyan guibg=DarkBlue +hi Constant term=NONE cterm=NONE ctermfg=Magenta ctermbg=DarkBlue +hi Constant gui=NONE guifg=Magenta guibg=DarkBlue +hi Comment term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkBlue +hi Comment gui=NONE guifg=Gray guibg=DarkBlue +hi Preproc term=NONE cterm=NONE ctermfg=Green ctermbg=DarkBlue +hi Preproc gui=NONE guifg=Green guibg=DarkBlue +hi Type term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Type gui=NONE guifg=White guibg=DarkBlue +hi Identifier term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Identifier gui=NONE guifg=White guibg=DarkBlue + +hi StatusLine term=bold cterm=bold ctermfg=Black ctermbg=White +hi StatusLine gui=bold guifg=Black guibg=White + +hi StatusLineNC term=NONE cterm=NONE ctermfg=Black ctermbg=White +hi StatusLineNC gui=NONE guifg=Black guibg=White + +hi Visual term=NONE cterm=NONE ctermfg=Black ctermbg=DarkCyan +hi Visual gui=NONE guifg=Black guibg=DarkCyan + +hi Search term=NONE cterm=NONE ctermbg=Gray +hi Search gui=NONE guibg=Gray + +hi VertSplit term=NONE cterm=NONE ctermfg=Black ctermbg=White +hi VertSplit gui=NONE guifg=Black guibg=White + +hi Directory term=NONE cterm=NONE ctermfg=Green ctermbg=DarkBlue +hi Directory gui=NONE guifg=Green guibg=DarkBlue + +hi WarningMsg term=standout cterm=NONE ctermfg=Red ctermbg=DarkBlue +hi WarningMsg gui=standout guifg=Red guibg=DarkBlue + +hi Error term=NONE cterm=NONE ctermfg=White ctermbg=Red +hi Error gui=NONE guifg=White guibg=Red + +hi Cursor ctermfg=Black ctermbg=Yellow +hi Cursor guifg=Black guibg=Yellow + diff --git a/vim/colors/breeze.vim b/vim/colors/breeze.vim new file mode 100644 index 0000000..21cf417 --- /dev/null +++ b/vim/colors/breeze.vim @@ -0,0 +1,70 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:08. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "breeze" + +hi Normal guifg=#ffffff guibg=#005c70 + +" Search +hi IncSearch gui=UNDERLINE guifg=#60ffff guibg=#6060ff +hi Search gui=NONE guifg=#ffffff guibg=#6060ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi ModeMsg gui=NONE guifg=#60ffff guibg=NONE +hi MoreMsg gui=NONE guifg=#ffc0ff guibg=NONE +hi Question gui=NONE guifg=#ffff60 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#d0d0e0 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#d0d0e0 +hi VertSplit gui=NONE guifg=#606080 guibg=#d0d0e0 +hi WildMenu gui=NONE guifg=#000000 guibg=#00c8f0 + +" Diff +hi DiffText gui=UNDERLINE guifg=#ffff00 guibg=#000000 +hi DiffChange gui=NONE guifg=#ffffff guibg=#000000 +hi DiffDelete gui=NONE guifg=#60ff60 guibg=#000000 +hi DiffAdd gui=NONE guifg=#60ff60 guibg=#000000 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#ffffff guibg=#0088c0 +" hi Folded gui=NONE guifg=#ffffff guibg=#2080d0 +hi FoldColumn gui=NONE guifg=#60e0e0 guibg=#006c7f + +" Other +hi Directory gui=NONE guifg=#00e0ff guibg=NONE +hi LineNr gui=NONE guifg=#60a8bc guibg=NONE +hi NonText gui=BOLD guifg=#00c0c0 guibg=#006276 +hi SpecialKey gui=NONE guifg=#e0a0ff guibg=NONE +hi Title gui=BOLD guifg=#ffffff guibg=NONE +hi Visual gui=NONE guifg=#ffffff guibg=#6060d0 +" hi VisualNOS gui=NONE guifg=#ffffff guibg=#6060d0 + +" Syntax group +hi Comment gui=NONE guifg=#c8d0d0 guibg=NONE +hi Constant gui=NONE guifg=#60ffff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi Identifier gui=NONE guifg=#cacaff guibg=NONE +hi Ignore gui=NONE guifg=#006074 guibg=NONE +hi PreProc gui=NONE guifg=#ffc0ff guibg=NONE +hi Special gui=NONE guifg=#ffd074 guibg=NONE +hi Statement gui=NONE guifg=#ffff80 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ffb0b0 guibg=NONE +hi Type gui=NONE guifg=#80ffa0 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#ffffff guibg=NONE diff --git a/vim/colors/brookstream.vim b/vim/colors/brookstream.vim new file mode 100644 index 0000000..63ca719 --- /dev/null +++ b/vim/colors/brookstream.vim @@ -0,0 +1,83 @@ +"-------------------------------------------------------------------- +" Name Of File: brookstream.vim. +" Description: Gvim colorscheme, works best with version 6.1 GUI . +" Maintainer: Peter Bäckström. +" Creator: Peter Bäckström. +" URL: http://www.brookstream.org (Swedish). +" Credits: Inspiration from the darkdot scheme. +" Last Change: Friday, April 13, 2003. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="brookstream" + +"-------------------------------------------------------------------- + +hi Normal gui=none guibg=#000000 guifg=#bbbbbb +hi Cursor guibg=#44ff44 guifg=#000000 +hi Directory guifg=#44ffff +hi DiffAdd guibg=#080808 guifg=#ffff00 +hi DiffDelete guibg=#080808 guifg=#444444 +hi DiffChange guibg=#080808 guifg=#ffffff +hi DiffText guibg=#080808 guifg=#bb0000 +hi ErrorMsg guibg=#880000 guifg=#ffffff +hi Folded guifg=#000088 +hi IncSearch guibg=#000000 guifg=#bbcccc +hi LineNr guibg=#050505 guifg=#4682b4 +hi ModeMsg guifg=#ffffff +hi MoreMsg guifg=#44ff44 +hi NonText guifg=#4444ff +hi Question guifg=#ffff00 +hi SpecialKey guifg=#4444ff +hi StatusLine gui=none guibg=#2f4f4f guifg=#ffffff +hi StatusLineNC gui=none guibg=#bbbbbb guifg=#000000 +hi Title guifg=#ffffff +hi Visual gui=none guibg=#bbbbbb guifg=#000000 +hi WarningMsg guifg=#ffff00 + +" syntax highlighting groups ---------------------------------------- + +hi Comment guifg=#696969 +hi Constant guifg=#00aaaa +hi Identifier guifg=#00e5ee +hi Statement guifg=#00ffff +hi PreProc guifg=#8470ff +hi Type guifg=#ffffff +hi Special gui=none guifg=#87cefa +hi Underlined gui=bold guifg=#4444ff +hi Ignore guifg=#444444 +hi Error guibg=#000000 guifg=#bb0000 +hi Todo guibg=#aa0006 guifg=#fff300 +hi Operator gui=none guifg=#00bfff +hi Function guifg=#1e90ff +hi String gui=None guifg=#4682b4 +hi Boolean guifg=#9bcd9b + +"hi link Character Constant +"hi link Number Constant +"hi link Boolean Constant +"hi link Float Number +"hi link Conditional Statement +"hi link Label Statement +"hi link Keyword Statement +"hi link Exception Statement +"hi link Repeat Statement +"hi link Include PreProc +"hi link Define PreProc +"hi link Macro PreProc +"hi link PreCondit PreProc +"hi link StorageClass Type +"hi link Structure Type +"hi link Typedef Type +"hi link Tag Special +"hi link Delimiter Special +"hi link SpecialComment Special +"hi link Debug Special +"hi link FoldColumn Folded + +"- end of colorscheme ----------------------------------------------- diff --git a/vim/colors/brown.vim b/vim/colors/brown.vim new file mode 100644 index 0000000..aecfe4e --- /dev/null +++ b/vim/colors/brown.vim @@ -0,0 +1,32 @@ +hi comment guifg=#fef8ff ctermfg=red +hi constant guifg=#aa712f ctermfg=white +hi cursor guibg=#5e3807 guifg=#deb887 +hi diffadd ctermbg=green ctermfg=black +hi diffchange ctermbg=green ctermfg=white +hi diffdelete ctermbg=none ctermfg=darkyellow +hi difftext ctermbg=black ctermfg=green +hi directory guifg=#3e1807 ctermfg=green +hi error guibg=#cc3807 guifg=#deb887 +hi errormsg guifg=#cc3807 guibg=#f9d7a6 +hi identifier guifg=#5e3807 ctermfg=green +hi incsearch guifg=#f9d7a6 guibg=#8e6837 +hi modemsg guifg=#793807 ctermbg=none ctermfg=cyan gui=none +hi moremsg guifg=#793807 gui=none +hi nontext guifg=#ffffff ctermfg=darkgrey +hi normal guibg=#deb887 guifg=#846037 +hi preproc guifg=#7e6f27 ctermfg=white +hi question guifg=#793807 gui=none +hi scrollbar guibg=#deb887 guifg=#ae8857 +hi search guifg=#f9d7a6 ctermbg=cyan ctermfg=yellow guibg=#8e6837 +hi special guifg=#000000 ctermfg=yellow +hi specialkey guifg=#ffffff ctermfg=white +hi statement guifg=#7e5827 ctermfg=cyan +hi statusline guibg=#fee8b7 ctermbg=black ctermfg=darkgreen guifg=#793807 gui=none +hi statuslinenc guibg=#ae8857 ctermbg=black ctermfg=darkcyan guifg=#deb887 gui=none +hi title guifg=#793807 ctermfg=darkgreen gui=none +hi todo guibg=#995827 guifg=#fed8a7 +hi type guifg=#7e5827 ctermfg=yellow gui=none +hi vertsplit guibg=#ae8857 ctermbg=green ctermfg=black guifg=#ae8857 gui=none +hi visual guifg=#f9d7a6 guibg=#8e6837 ctermbg=black ctermfg=darkcyan +hi warningmsg guifg=#cc3807 +hi wildmenu guifg=#f9d7a6 guibg=#8e6837 diff --git a/vim/colors/buttercream.vim b/vim/colors/buttercream.vim new file mode 100644 index 0000000..05931f8 --- /dev/null +++ b/vim/colors/buttercream.vim @@ -0,0 +1,59 @@ +" Vim color file +" vim: tw=0 ts=8 sw=4 +" Scriptname: buttercream +" Maintainer: Håkan Wikström +" Version: 1.1 +" Last Change: 20060413 +" As of now only gui is supported +" Based on the theme fog theme by Thomas R. Kimpton + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "buttercream" + +" Highlight Foreground Background Extras + +hi Normal guifg=#213a58 guibg=#ffffde +hi NonText guifg=LightBlue guibg=#eee9bf gui=bold +hi Comment guifg=#2f8e99 +hi Constant guifg=#7070a0 +hi Statement guifg=DarkGreen gui=bold +hi identifier guifg=DarkGreen +hi preproc guifg=#408040 +hi type guifg=DarkBlue +hi label guifg=#c06000 +hi operator guifg=DarkGreen gui=bold +hi StorageClass guifg=#a02060 gui=bold +hi Number guifg=Blue +hi Special guifg=#aa8822 +hi Cursor guifg=LightGrey guibg=#880088 +hi lCursor guifg=Black guibg=Cyan +hi ErrorMsg guifg=White guibg=DarkRed +hi DiffText guibg=DarkRed gui=bold +hi Directory guifg=DarkGrey gui=underline +hi LineNr guifg=#ccaa22 +hi MoreMsg guifg=SeaGreen gui=bold +hi Question guifg=DarkGreen gui=bold +hi Search guifg=Black guibg=#887722 +hi SpecialKey guifg=Blue +hi SpecialChar guifg=DarkGrey gui=bold +hi Title guifg=DarkMagenta gui=underline +hi WarningMsg guifg=DarkBlue guibg=#9999cc +hi WildMenu guifg=Black guibg=Yellow gui=underline +hi Folded guifg=DarkBlue guibg=LightGrey +hi FoldColumn guifg=DarkBLue guibg=Grey +hi DiffAdd guibg=DarkBlue +hi DiffChange guibg=DarkMagenta +hi DiffDelete guifg=Blue guibg=DarkCyan gui=bold +hi Ignore guifg=grey90 +hi IncSearch gui=reverse +hi ModeMsg gui=bold +hi StatusLine gui=reverse,bold +hi StatusLineNC gui=reverse +hi VertSplit gui=reverse +hi Visual guifg=LightGrey gui=reverse +hi VisualNOS gui=underline,bold +hi Todo guibg=#ccaa22 gui=bold,underline diff --git a/vim/colors/bw.vim b/vim/colors/bw.vim new file mode 100644 index 0000000..b42657e --- /dev/null +++ b/vim/colors/bw.vim @@ -0,0 +1,55 @@ +" Vim color file +" Maintainer: Hans Fugal +" Last Change: 5 Oct 2001 +" URL: http://fugal.net/vim/colors/bw.vim + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors +" +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="bw" + +hi SpecialKey cterm=bold ctermfg=NONE +hi NonText cterm=bold ctermfg=NONE +hi Directory cterm=bold ctermfg=NONE +hi ErrorMsg cterm=standout ctermfg=NONE +hi IncSearch cterm=reverse ctermfg=NONE +hi Search cterm=reverse ctermfg=NONE +hi MoreMsg cterm=bold ctermfg=NONE +hi ModeMsg cterm=bold ctermfg=NONE +hi LineNr cterm=underline ctermfg=NONE +hi Question cterm=standout ctermfg=NONE +hi StatusLine cterm=bold,reverse ctermfg=NONE +hi StatusLineNC cterm=reverse ctermfg=NONE +hi VertSplit cterm=reverse ctermfg=NONE +hi Title cterm=bold ctermfg=NONE +hi Visual cterm=reverse ctermfg=NONE +hi VisualNOS cterm=bold,underline ctermfg=NONE +hi WarningMsg cterm=standout ctermfg=NONE +hi WildMenu cterm=standout ctermfg=NONE +hi Folded cterm=standout ctermfg=NONE +hi FoldColumn cterm=standout ctermfg=NONE +hi DiffAdd cterm=bold ctermfg=NONE +hi DiffChange cterm=bold ctermfg=NONE +hi DiffDelete cterm=bold ctermfg=NONE +hi DiffText cterm=reverse ctermfg=NONE +hi Comment cterm=bold ctermfg=NONE +hi Constant cterm=underline ctermfg=NONE +hi Special cterm=bold ctermfg=NONE +hi Identifier cterm=underline ctermfg=NONE +hi Statement cterm=bold ctermfg=NONE +hi PreProc cterm=underline ctermfg=NONE +hi Type cterm=underline ctermfg=NONE +hi Underlined cterm=underline ctermfg=NONE +hi Ignore cterm=bold ctermfg=NONE +hi Error cterm=reverse ctermfg=NONE +hi Todo cterm=standout ctermfg=NONE diff --git a/vim/colors/c.vim b/vim/colors/c.vim new file mode 100644 index 0000000..6109c22 --- /dev/null +++ b/vim/colors/c.vim @@ -0,0 +1,32 @@ +" Vim Syntax Highlighting File +" +" Language: C +" +" Extra: This is to copy the vi clone elvis on its +" syntax highlighting. +" +" Maintainer: Dean Jones +" +" Comment: This works well with the default c.vim +" that comes with vim6.x. It basically +" overrides the very bright colors it uses +" and uses simple white for highlighting +" key words and types in the C language. +" If you're using Eterm, uncomment the +" Normal line specified below. + +hi clear + +" Eterm users, uncomment the line below +" hi Normal ctermfg=grey + +hi PreProc ctermfg=white +hi Type ctermfg=white +hi Statement ctermfg=white +hi Comment ctermfg=grey +hi Constant cterm=NONE ctermfg=NONE +hi Number cterm=NONE ctermfg=NONE +hi String cterm=NONE ctermfg=NONE +hi Special cterm=NONE ctermfg=NONE + +" EOF for Dean's Elvis like highlighting diff --git a/vim/colors/calmar256-light.vim b/vim/colors/calmar256-light.vim new file mode 100644 index 0000000..941f8ea --- /dev/null +++ b/vim/colors/calmar256-light.vim @@ -0,0 +1,247 @@ +" Vim color file: calmar256-dark.vim +" Last Change: 21. Aug 2007 +" License: public domain +" Maintainer:: calmar +" +" for a 256 color capable terminal like xterm-256color, ... or gvim as well +" "{{{ +" it only works in such a terminal and when you have: +" set t_Co=256 +" in your vimrc"}}} + +" {{{ t_Co=256 is set - check +if &t_Co != 256 && ! has("gui_running") + echomsg "" + echomsg "write 'set t_Co=256' in your .vimrc or this file won't load" + echomsg "" + finish +endif +" }}} +" {{{ reset colors and set colors_name and store cpo setting +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "calmar256-light" + +let s:save_cpo = &cpo +set cpo&vim +" }}} + +" FORMAT:"{{{ +" +" \ ["color-group", "term-style", "foreground-color", "background-color", "gui-style", "under-curl-color" ], +" +" 'term-style'/'gui-style' can be: +" bold, underline, undercurl, reverse, inverse, italic, standout, NONE +" +" if gui-style is empty, the term-style value is used for the gui +" +" (Note: not everything is supported by a terminal nor the gui) +" +" besides empty values defaults to 'NONE" +" +" may also check: :help highlight-groups +" :help hl- " +" +" for the Color numbers (0-255) for the foreground/background and under-curl-colors: +" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html + +"}}} +"============================================================ +" EDIT/ADD your style/colors below +"------------------------------------------------------------ + +" Format: \ ["color-group", +" "term-style", +" "foreground-color", +" "background-color", +" "gui-style", +" "under-curl-color" ], + +let s:colors256 = [ + \ ["Normal", "", "17", "230", "", "" ], + \ ["Cursor", "", "", "226", "", "" ], + \ ["CursorLine", "", "", "222", "", "" ], + \ ["CursorColumn", "", "", "223", "", "" ], + \ ["Incsearch", "bold", "195", "28", "", "" ], + \ ["Search", "", "", "119", "", "" ], + \ ["ErrorMsg", "bold", "16", "202", "", "" ], + \ ["WarningMsg", "bold", "16", "190", "", "" ], + \ ["ModeMsg", "bold", "16", "51", "", "" ], + \ ["MoreMsg", "bold", "16", "154", "", "" ], + \ ["Question", "bold", "27", "", "", "" ], + \ ["StatusLine", "", "231", "30", "", "" ], + \ ["StatusLineNC", "", "20", "250", "", "" ], + \ ["User1", "bold", "28", "", "", "" ], + \ ["User2", "bold", "39", "", "", "" ], + \ ["VertSplit", "", "84", "22", "", "" ], + \ ["WildMenu", "bold", "87", "35", "", "" ], + \ ["DiffText", "", "16", "190", "", "" ], + \ ["DiffChange", "", "16", "83", "", "" ], + \ ["DiffDelete", "", "79", "124", "", "" ], + \ ["DiffAdd", "", "79", "21", "", "" ], + \ ["Folded", "bold", "19", "115", "", "" ], + \ ["FoldedColumn", "", "39", "190", "", "" ], + \ ["FoldColumn", "", "19", "115", "", "" ], + \ ["Directory", "", "28", "", "", "" ], + \ ["LineNr", "", "63", "228", "", "" ], + \ ["NonText", "", "243", "229", "", "" ], + \ ["SpecialKey", "", "190", "", "", "" ], + \ ["Title", "bold", "18", "", "", "" ], + \ ["Visual", "", "", "220", "", "" ], + \ ["Comment", "", "21", "255", "", "" ], + \ ["Costant", "", "58", "", "", "" ], + \ ["String", "", "160", "", "", "" ], + \ ["Error", "", "130", "", "", "" ], + \ ["Identifier", "", "31", "", "", "" ], + \ ["Ignore", "", "", "", "", "" ], + \ ["Number", "bold", "23", "", "", "" ], + \ ["PreProc", "", "26", "255", "", "" ], + \ ["Special", "", "", "229", "", "" ], + \ ["SpecialChar", "", "22", "", "", "" ], + \ ["Statement", "", "36", "", "", "" ], + \ ["Todo", "", "", "229", "", "" ], + \ ["Type", "", "20", "", "", "" ], + \ ["Underlined", "bold", "25", "", "", "" ], + \ ["TaglistTagName","bold", "29", "118", "", "" ]] + +let s:colorvim7 = [ + \ ["Pmenu", "", "229", "29", "", "" ], + \ ["PmenuSel", "bold", "232", "226", "", "" ], + \ ["PmenuSbar", "", "16", "119", "", "" ], + \ ["PmenuThumb", "", "16", "11", "", "" ], + \ ["SpellBad", "undercurl", "","", "undercurl","160" ], + \ ["SpellRare", "", "", "228", "", "" ], + \ ["SpellLocal", "", "", "224", "", "" ], + \ ["SpellCap", "", "", "247", "", "" ], + \ ["MatchParen", "bold", "15", "22", "", "" ], + \ ["TabLine", "", "252", "22", "", "" ], + \ ["TabLineSel", "bold", "253", "30", "", "" ], + \ ["TabLineFill", "", "247", "16", "", "" ]] + +"============================================================ +" * NO NEED * to edit below (unless bugfixing) +"============================================================ +" +" {{{ change empty fields to "NONE" + +for s:col in s:colors256 + for i in [1, 2, 3, 4, 5] + if s:col[i] == "" + let s:col[i] = "NONE" + endif + endfor +endfor + +for s:col in s:colorvim7 + for i in [1, 2, 3, 4, 5] + if s:col[i] == "" + let s:col[i] = "NONE" + endif + endfor +endfor +" }}} +" {{{ check args helper function +function! s:checkargs(arg) + if a:arg+0 == 0 && a:arg != "0" "its a string + return a:arg + else + return s:cmap[a:arg+0] "get rgb color based on the number + endif +endfunction +" }}} +" {{{ guisetcolor helper function +" +function! s:guisetcolor(colarg) + " if gui-style is empty use (c)term-style also for gui + if a:colarg[4] == "" + let guival = a:colarg[1] + else + let guival = a:colarg[4] + endif + + let fg = s:checkargs(a:colarg[2]) + let bg = s:checkargs(a:colarg[3]) + let sp = s:checkargs(a:colarg[5]) + + exec "hi ".a:colarg[0]." gui=".guival." guifg=".fg." guibg=".bg." guisp=".sp +endfunction +" }}} +" {{{ color setup for terminal +if ! has("gui_running") + for s:col in s:colors256 + exec "hi ".s:col[0]." cterm=".s:col[1]." ctermfg=".s:col[2]." ctermbg=".s:col[3] + endfor + if v:version >= 700 + for s:col in s:colorvim7 + exec "hi ".s:col[0]." cterm=".s:col[1]." ctermfg=".s:col[2]." ctermbg=".s:col[3] + endfor + endif +else +" }}} + " color-mapping array {{{ + " number of vim colors and #html colors equivalent for gui + let s:cmap = [ + \ "#000000", "#800000", "#008000", "#808000", + \ "#000080", "#800080", "#008080", "#c0c0c0", + \ "#808080", "#ff0000", "#00ff00", "#ffff00", + \ "#0000ff", "#ff00ff", "#00ffff", "#ffffff", + \ + \ "#000000", "#00005f", "#000087", "#0000af", "#0000d7", "#0000ff", + \ "#005f00", "#005f5f", "#005f87", "#005faf", "#005fd7", "#005fff", + \ "#008700", "#00875f", "#008787", "#0087af", "#0087d7", "#0087ff", + \ "#00af00", "#00af5f", "#00af87", "#00afaf", "#00afd7", "#00afff", + \ "#00d700", "#00d75f", "#00d787", "#00d7af", "#00d7d7", "#00d7ff", + \ "#00ff00", "#00ff5f", "#00ff87", "#00ffaf", "#00ffd7", "#00ffff", + \ "#5f0000", "#5f005f", "#5f0087", "#5f00af", "#5f00d7", "#5f00ff", + \ "#5f5f00", "#5f5f5f", "#5f5f87", "#5f5faf", "#5f5fd7", "#5f5fff", + \ "#5f8700", "#5f875f", "#5f8787", "#5f87af", "#5f87d7", "#5f87ff", + \ "#5faf00", "#5faf5f", "#5faf87", "#5fafaf", "#5fafd7", "#5fafff", + \ "#5fd700", "#5fd75f", "#5fd787", "#5fd7af", "#5fd7d7", "#5fd7ff", + \ "#5fff00", "#5fff5f", "#5fff87", "#5fffaf", "#5fffd7", "#5fffff", + \ "#870000", "#87005f", "#870087", "#8700af", "#8700d7", "#8700ff", + \ "#875f00", "#875f5f", "#875f87", "#875faf", "#875fd7", "#875fff", + \ "#878700", "#87875f", "#878787", "#8787af", "#8787d7", "#8787ff", + \ "#87af00", "#87af5f", "#87af87", "#87afaf", "#87afd7", "#87afff", + \ "#87d700", "#87d75f", "#87d787", "#87d7af", "#87d7d7", "#87d7ff", + \ "#87ff00", "#87ff5f", "#87ff87", "#87ffaf", "#87ffd7", "#87ffff", + \ "#af0000", "#af005f", "#af0087", "#af00af", "#af00d7", "#af00ff", + \ "#af5f00", "#af5f5f", "#af5f87", "#af5faf", "#af5fd7", "#af5fff", + \ "#af8700", "#af875f", "#af8787", "#af87af", "#af87d7", "#af87ff", + \ "#afaf00", "#afaf5f", "#afaf87", "#afafaf", "#afafd7", "#afafff", + \ "#afd700", "#afd75f", "#afd787", "#afd7af", "#afd7d7", "#afd7ff", + \ "#afff00", "#afff5f", "#afff87", "#afffaf", "#afffd7", "#afffff", + \ "#d70000", "#d7005f", "#d70087", "#d700af", "#d700d7", "#d700ff", + \ "#d75f00", "#d75f5f", "#d75f87", "#d75faf", "#d75fd7", "#d75fff", + \ "#d78700", "#d7875f", "#d78787", "#d787af", "#d787d7", "#d787ff", + \ "#d7af00", "#d7af5f", "#d7af87", "#d7afaf", "#d7afd7", "#d7afff", + \ "#d7d700", "#d7d75f", "#d7d787", "#d7d7af", "#d7d7d7", "#d7d7ff", + \ "#d7ff00", "#d7ff5f", "#d7ff87", "#d7ffaf", "#d7ffd7", "#d7ffff", + \ "#ff0000", "#ff005f", "#ff0087", "#ff00af", "#ff00d7", "#ff00ff", + \ "#ff5f00", "#ff5f5f", "#ff5f87", "#ff5faf", "#ff5fd7", "#ff5fff", + \ "#ff8700", "#ff875f", "#ff8787", "#ff87af", "#ff87d7", "#ff87ff", + \ "#ffaf00", "#ffaf5f", "#ffaf87", "#ffafaf", "#ffafd7", "#ffafff", + \ "#ffd700", "#ffd75f", "#ffd787", "#ffd7af", "#ffd7d7", "#ffd7ff", + \ "#ffff00", "#ffff5f", "#ffff87", "#ffffaf", "#ffffd7", "#ffffff", + \ + \ "#080808", "#121212", "#1c1c1c", "#262626", "#303030", "#3a3a3a", + \ "#444444", "#4e4e4e", "#585858", "#606060", "#666666", "#767676", + \ "#808080", "#8a8a8a", "#949494", "#9e9e9e", "#a8a8a8", "#b2b2b2", + \ "#bcbcbc", "#c6c6c6", "#d0d0d0", "#dadada", "#e4e4e4", "#eeeeee" ] + " }}} +" {{{ color setup for gvim + for s:col in s:colors256 + call s:guisetcolor(s:col) + endfor + if v:version >= 700 + for s:col in s:colorvim7 + call s:guisetcolor(s:col) + endfor + endif +endif +" }}} +let &cpo = s:save_cpo " restoring &cpo value +" vim: set fdm=marker fileformat=unix: diff --git a/vim/colors/camo.vim b/vim/colors/camo.vim new file mode 100644 index 0000000..059af42 --- /dev/null +++ b/vim/colors/camo.vim @@ -0,0 +1,76 @@ +" Vim color file +" Maintainer: Tim Aldrich +" Last Change: 19 January 2002 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="camo" +hi Normal guifg=bisque guibg=grey15 +hi Cursor guifg=snow guibg=bisque3 +hi CursorIM guifg=OliveDrab4 guibg=bisque +hi Directory guifg=OliveDrab4 guibg=grey15 +hi DiffAdd guifg=DarkOliveGreen1 guibg=grey15 +hi DiffChange guifg=PaleGreen guibg=grey15 +hi DiffDelete guifg=red guibg=grey15 +hi DiffText guifg=grey15 guibg=red +hi ErrorMsg guifg=snow guibg=red +hi VertSplit guifg=bisque4 guibg=DarkOliveGreen1 +hi Folded guifg=DarkOliveGreen2 guibg=grey30 +hi FoldColumn guifg=DarkOliveGreen2 guibg=grey30 +hi IncSearch guifg=bisque guibg=red +hi LineNr guifg=OliveDrab4 guibg=grey15 +hi ModeMsg guifg=khaki3 guibg=grey15 +hi MoreMsg guifg=khaki3 guibg=grey15 +hi NonText guifg=DarkSalmon guibg=grey10 +hi Question guifg=IndianRed guibg=grey10 +hi Search guifg=DarkSalmon guibg=grey15 +hi SpecialKey guifg=yellow guibg=grey15 +hi StatusLine guifg=bisque4 guibg=DarkOliveGreen1 +hi StatusLineNC guifg=bisque4 guibg=DarkOliveGreen3 +hi Title guifg=IndianRed guibg=grey15 +hi Visual guifg=OliveDrab4 guibg=bisque1 +hi WarningMsg guifg=bisque guibg=red +hi WildMenu guifg=LightBlue guibg=DarkViolet + + +"Syntax hilight groups + +hi Comment guifg=tan +hi Constant guifg=khaki +hi String guifg=moccasin +hi Character guifg=chocolate +hi Number guifg=chocolate +hi Boolean guifg=OliveDrab3 +hi Float guifg=chocolate +hi Identifier guifg=khaki4 +hi Function guifg=OliveDrab4 +hi Statement guifg=khaki +hi Conditional guifg=khaki +hi Repeat guifg=khaki +hi Label guifg=khaki +hi Operator guifg=DarkKhaki +hi Keyword guifg=DarkKhaki +hi Exception guifg=khaki +hi PreProc guifg=khaki4 +hi Include guifg=khaki4 +hi Define guifg=khaki1 +hi Macro guifg=khaki2 +hi PreCondit guifg=khaki3 +hi Type guifg=khaki3 +hi StorageClass guifg=tan +hi Structure guifg=DarkGoldenrod +hi Typedef guifg=khaki3 +hi Special guifg=IndianRed +hi SpecialChar guifg=DarkGoldenrod +hi Tag guifg=DarkKhaki +hi Delimiter guifg=DarkGoldenrod +hi SpecialComment guifg=cornsilk +hi Debug guifg=brown +hi Underlined guifg=IndianRed +hi Ignore guifg=grey30 +hi Error guifg=bisque guibg=red +hi Todo guifg=red guibg=bisque + diff --git a/vim/colors/candy.vim b/vim/colors/candy.vim new file mode 100644 index 0000000..545ff7c --- /dev/null +++ b/vim/colors/candy.vim @@ -0,0 +1,78 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/04/28 Sun 19:35. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "candy" + +hi Normal guifg=#f0f0f8 guibg=#000000 + +" Search +hi IncSearch gui=UNDERLINE guifg=#80ffff guibg=#0060c0 +hi Search gui=NONE guifg=#f0f0f8 guibg=#0060c0 + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi WarningMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi ModeMsg gui=BOLD guifg=#40f0d0 guibg=NONE +hi MoreMsg gui=BOLD guifg=#00ffff guibg=#008070 +hi Question gui=BOLD guifg=#e8e800 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#c8c8d8 +hi StatusLineNC gui=NONE guifg=#707080 guibg=#c8c8d8 +hi VertSplit gui=NONE guifg=#606080 guibg=#c8c8d8 +hi WildMenu gui=NONE guifg=#000000 guibg=#a0a0ff + +" Diff +hi DiffText gui=NONE guifg=#ff78f0 guibg=#a02860 +hi DiffChange gui=NONE guifg=#e03870 guibg=#601830 +hi DiffDelete gui=NONE guifg=#a0d0ff guibg=#0020a0 +hi DiffAdd gui=NONE guifg=#a0d0ff guibg=#0020a0 + +" Cursor +hi Cursor gui=NONE guifg=#00ffff guibg=#008070 +hi lCursor gui=NONE guifg=#ffffff guibg=#8800ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8800ff + +" Fold +hi Folded gui=NONE guifg=#40f0f0 guibg=#005080 +hi FoldColumn gui=NONE guifg=#40c0ff guibg=#00305c + +" Other +hi Directory gui=NONE guifg=#40f0d0 guibg=NONE +hi LineNr gui=NONE guifg=#9090a0 guibg=NONE +hi NonText gui=BOLD guifg=#4080ff guibg=NONE +hi SpecialKey gui=BOLD guifg=#8080ff guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=NONE +hi Visual gui=NONE guifg=#e0e0f0 guibg=#707080 + +" Syntax group +hi Comment gui=NONE guifg=#c0c0d0 guibg=NONE +hi Constant gui=NONE guifg=#90d0ff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff0088 +hi Identifier gui=NONE guifg=#40f0f0 guibg=NONE +hi Ignore gui=NONE guifg=#000000 guibg=NONE +hi PreProc gui=NONE guifg=#40f0a0 guibg=NONE +hi Special gui=NONE guifg=#e0e080 guibg=NONE +hi Statement gui=NONE guifg=#ffa0ff guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ffa0a0 guibg=NONE +hi Type gui=NONE guifg=#ffc864 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#f0f0f8 guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC diff --git a/vim/colors/candycode.vim b/vim/colors/candycode.vim new file mode 100644 index 0000000..3800d9d --- /dev/null +++ b/vim/colors/candycode.vim @@ -0,0 +1,174 @@ +" Vim color file -- candycode +" Maintainer: Justin Constantino +" Last Change: 2006 Aug 12 + +set background=dark +highlight clear +let g:colors_name="candycode" + +let save_cpo = &cpo +set cpo&vim + +" basic highlight groups (:help highlight-groups) {{{ + +" text {{{ + +hi Normal guifg=#ffffff guibg=#050505 gui=NONE + \ ctermfg=white ctermbg=black cterm=NONE + +hi Folded guifg=#c2bfa5 guibg=#050505 gui=underline + \ ctermfg=lightgray ctermbg=black cterm=underline + +hi LineNr guifg=#928c75 guibg=NONE gui=NONE + \ ctermfg=darkgray ctermbg=NONE cterm=NONE + +hi Directory guifg=#00bbdd guibg=NONE gui=NONE + \ ctermfg=cyan ctermbg=NONE cterm=NONE +hi NonText guifg=#77ff22 guibg=NONE gui=bold + \ ctermfg=yellow ctermbg=NONE cterm=NONE +hi SpecialKey guifg=#559933 guibg=NONE gui=NONE + \ ctermfg=green ctermbg=NONE cterm=NONE + +hi SpellBad guifg=NONE guibg=NONE gui=undercurl + \ ctermfg=white ctermbg=darkred guisp=#ff0011 +hi SpellCap guifg=NONE guibg=NONE gui=undercurl + \ ctermfg=white ctermbg=darkblue guisp=#0044ff +hi SpellLocal guifg=NONE guibg=NONE gui=undercurl + \ ctermfg=black ctermbg=cyan guisp=#00dd99 +hi SpellRare guifg=NONE guibg=NONE gui=undercurl + \ ctermfg=white ctermbg=darkmagenta guisp=#ff22ee + +hi DiffAdd guifg=#ffffff guibg=#126493 gui=NONE + \ ctermfg=white ctermbg=darkblue cterm=NONE +hi DiffChange guifg=#000000 guibg=#976398 gui=NONE + \ ctermfg=black ctermbg=darkmagenta cterm=NONE +hi DiffDelete guifg=#000000 guibg=#be1923 gui=bold + \ ctermfg=black ctermbg=red cterm=bold +hi DiffText guifg=#ffffff guibg=#976398 gui=bold + \ ctermfg=white ctermbg=green cterm=bold + +" }}} +" borders / separators / menus {{{ + +hi FoldColumn guifg=#c8bcb9 guibg=#786d65 gui=bold + \ ctermfg=lightgray ctermbg=darkgray cterm=NONE +hi SignColumn guifg=#c8bcb9 guibg=#786d65 gui=bold + \ ctermfg=lightgray ctermbg=darkgray cterm=NONE + +hi Pmenu guifg=#000000 guibg=#a6a190 gui=NONE + \ ctermfg=white ctermbg=darkgray cterm=NONE +hi PmenuSel guifg=#ffffff guibg=#133293 gui=NONE + \ ctermfg=white ctermbg=lightblue cterm=NONE +hi PmenuSbar guifg=NONE guibg=#555555 gui=NONE + \ ctermfg=black ctermbg=black cterm=NONE +hi PmenuThumb guifg=NONE guibg=#cccccc gui=NONE + \ ctermfg=gray ctermbg=gray cterm=NONE + +hi StatusLine guifg=#000000 guibg=#c2bfa5 gui=bold + \ ctermfg=black ctermbg=white cterm=bold +hi StatusLineNC guifg=#444444 guibg=#c2bfa5 gui=NONE + \ ctermfg=darkgray ctermbg=white cterm=NONE +hi WildMenu guifg=#ffffff guibg=#133293 gui=bold + \ ctermfg=white ctermbg=darkblue cterm=bold +hi VertSplit guifg=#c2bfa5 guibg=#c2bfa5 gui=NONE + \ ctermfg=white ctermbg=white cterm=NONE + +hi TabLine guifg=#000000 guibg=#c2bfa5 gui=NONE + \ ctermfg=black ctermbg=white cterm=NONE +hi TabLineFill guifg=#000000 guibg=#c2bfa5 gui=NONE + \ ctermfg=black ctermbg=white cterm=NONE +hi TabLineSel guifg=#ffffff guibg=#133293 gui=NONE + \ ctermfg=white ctermbg=black cterm=NONE + +"hi Menu +"hi Scrollbar +"hi Tooltip + +" }}} +" cursor / dynamic / other {{{ + +hi Cursor guifg=#000000 guibg=#ffff99 gui=NONE + \ ctermfg=black ctermbg=white cterm=NONE +hi CursorIM guifg=#000000 guibg=#aaccff gui=NONE + \ ctermfg=black ctermbg=white cterm=reverse +hi CursorLine guifg=NONE guibg=#1b1b1b gui=NONE + \ ctermfg=NONE ctermbg=NONE cterm=NONE +hi CursorColumn guifg=NONE guibg=#1b1b1b gui=NONE + \ ctermfg=NONE ctermbg=NONE cterm=NONE + +hi Visual guifg=#ffffff guibg=#606070 gui=NONE + \ ctermfg=white ctermbg=lightblue cterm=NONE + +hi IncSearch guifg=#000000 guibg=#eedd33 gui=bold + \ ctermfg=white ctermbg=yellow cterm=NONE +hi Search guifg=#efefd0 guibg=#937340 gui=NONE + \ ctermfg=white ctermbg=darkgreen cterm=NONE + +hi MatchParen guifg=NONE guibg=#3377aa gui=NONE + \ ctermfg=white ctermbg=blue cterm=NONE + +"hi VisualNOS + +" }}} +" listings / messages {{{ + +hi ModeMsg guifg=#eecc18 guibg=NONE gui=NONE + \ ctermfg=yellow ctermbg=NONE cterm=NONE +hi Title guifg=#dd4452 guibg=NONE gui=bold + \ ctermfg=red ctermbg=NONE cterm=bold +hi Question guifg=#66d077 guibg=NONE gui=NONE + \ ctermfg=green ctermbg=NONE cterm=NONE +hi MoreMsg guifg=#39d049 guibg=NONE gui=NONE + \ ctermfg=green ctermbg=NONE cterm=NONE + +hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=bold + \ ctermfg=white ctermbg=red cterm=bold +hi WarningMsg guifg=#ccae22 guibg=NONE gui=bold + \ ctermfg=yellow ctermbg=NONE cterm=bold + +" }}} + +" }}} +" syntax highlighting groups (:help group-name) {{{ + +hi Comment guifg=#ff9922 guibg=NONE gui=NONE + \ ctermfg=brown ctermbg=NONE cterm=NONE + +hi Constant guifg=#ff6050 guibg=NONE gui=NONE + \ ctermfg=red ctermbg=NONE cterm=NONE +hi Boolean guifg=#ff6050 guibg=NONE gui=bold + \ ctermfg=red ctermbg=NONE cterm=bold + +hi Identifier guifg=#eecc44 guibg=NONE gui=NONE + \ ctermfg=yellow ctermbg=NONE cterm=NONE + +hi Statement guifg=#66d077 guibg=NONE gui=bold + \ ctermfg=green ctermbg=NONE cterm=bold + +hi PreProc guifg=#bb88dd guibg=NONE gui=NONE + \ ctermfg=darkmagenta ctermbg=NONE cterm=NONE + +hi Type guifg=#4093cc guibg=NONE gui=bold + \ ctermfg=lightblue ctermbg=NONE cterm=bold + +hi Special guifg=#9999aa guibg=NONE gui=bold + \ ctermfg=lightgray ctermbg=NONE cterm=bold + +hi Underlined guifg=#80a0ff guibg=NONE gui=underline + \ ctermfg=NONE ctermbg=NONE cterm=underline + \ term=underline + +hi Ignore guifg=#888888 guibg=NONE gui=NONE + \ ctermfg=darkgray ctermbg=NONE cterm=NONE + +hi Error guifg=#ffffff guibg=#ff0000 gui=NONE + \ ctermfg=white ctermbg=red cterm=NONE + +hi Todo guifg=#ffffff guibg=#ee7700 gui=bold + \ ctermfg=black ctermbg=yellow cterm=bold + +" }}} + +let &cpo = save_cpo + +" vim: fdm=marker fdl=0 diff --git a/vim/colors/caramel.vim b/vim/colors/caramel.vim new file mode 100644 index 0000000..81f6fd5 --- /dev/null +++ b/vim/colors/caramel.vim @@ -0,0 +1,67 @@ +" Vim color file +" Maintainer : Brian Gant +" Email : gantbd@muohio.edu +" Last Change : 2/15/03 +" Version : 0.1 +" +" TODO : add colors for diff and other non-implemented +" stuff +" +" LICENCE (heh) : Emailware. Basically it means use it, +" abuse it, change it, love it, leave it, whatever! I +" do however make the simple request that if you use the +" scheme, drop me an email and let me know what you think +" about it, especially if you modify it! I don't use +" the non-implemented features on a regular enough basis +" to get a feel for how they flesh out. +" +" Designed for use with COBOL, but looks pretty good with +" Perl, PHP, and C/C++ too (at least I think so). +" +" Brian +" +" --------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="caramel" + +" --------------------------------------------------------- + +hi Normal guifg=#dca454 guibg=#5c5094 + +" --------------------------------------------------------- + +hi Cursor guifg=#303030 guibg=#dca454 +hi CursorIM guifg=#303030 guibg=#dca454 +hi ErrorMsg guifg=#b4a8a8 guibg=bg +hi IncSearch guifg=#e0d070 guibg=#303030 +hi LineNr guifg=#b4a8a8 guibg=#39325d +hi ModeMsg guifg=#b4a8a8 guibg=bg +hi MoreMsg guifg=#b4a8a8 guibg=bg +hi NonText guifg=#b4a8a8 guibg=#39325d +hi Question guifg=#b4a8a8 guibg=bg +hi Search guifg=#303030 guibg=#e0d070 +hi StatusLine guifg=#e0d070 guibg=#303030 +hi StatusLineNC guifg=#dca454 guibg=#303030 +hi Title guifg=#b4a8a8 guibg=#39325d +hi Visual guifg=#b4a8a8 guibg=#303030 +hi VisualNOS guifg=#b4a8a8 guibg=#303030 +hi WarningMsg guifg=#b4a8a8 guibg=#39325d + +" --------------------------------------------------------- + +hi Comment guifg=#b4a8a8 guibg=bg +hi Constant guifg=#9cd464 guibg=bg +hi Identifier guifg=#e8c47c guibg=bg +hi Statement guifg=#8088bc guibg=bg +hi PreProc guifg=#e0d070 guibg=bg +hi Type guifg=#e0d070 guibg=bg +hi Special guifg=#e0d070 guibg=bg +hi Underlined guifg=#9cd464 guibg=bg +hi Ignore guifg=fg guibg=bg +hi Error guifg=#cc74a8 guibg=#9cd464 +hi Todo guifg=bg guibg=#e0d070 diff --git a/vim/colors/chela_light.vim b/vim/colors/chela_light.vim new file mode 100644 index 0000000..3cde34d --- /dev/null +++ b/vim/colors/chela_light.vim @@ -0,0 +1,110 @@ +" Vim color file +" +" Maintainer: Stefan Karlsson +" Last Change: 8 August 2006 + + +set background=light + +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="chela_light" + + +"Syntax Groups ============================================= + +hi comment guibg=#fafafa guifg=#339900 gui=none + +hi constant guibg=#fafafa guifg=#cc2222 gui=none + +hi identifier guibg=#fafafa guifg=#2222ff gui=none + +hi statement guibg=#fafafa guifg=#2222ff gui=none + +hi preproc guibg=#fafafa guifg=#2222ff gui=none +hi precondit guibg=#fafafa guifg=#cc00cc gui=none + +hi type guibg=#fafafa guifg=#2222ff gui=none + +hi special guibg=#fafafa guifg=#cc00cc gui=none +hi specialchar guibg=#fafafa guifg=#cc2222 gui=underline + +hi underlined guibg=#fafafa guifg=#2222ff gui=underline + +hi error guibg=#ff2222 guifg=#ffffff gui=none + +hi todo guibg=#339933 guifg=#ffffff gui=none + + +"General Groups ============================================ + +hi cursor guibg=#000000 guifg=#ffffff gui=none +" cursorim? +hi cursorcolumn guibg=#eeeeee gui=none +hi cursorline guibg=#eeeeee gui=none + +hi directory guibg=#fafafa guifg=#2222ff gui=none + +hi diffadd guibg=#66ff66 guifg=#000000 gui=none +hi diffchange guibg=#ffff00 guifg=#cccc99 gui=none +hi diffdelete guibg=#ff6666 guifg=#ff6666 gui=none +hi difftext guibg=#ffff00 guifg=#000000 gui=none + +hi errormsg guibg=#ff2222 guifg=#ffffff gui=none + +hi vertsplit guibg=#2222ff guifg=#2222ff gui=none + +hi folded guibg=#eeeeee guifg=#2222ff gui=none +hi foldcolumn guibg=#eeeeee guifg=#999999 gui=none + +" signcolumn? + +hi incsearch guibg=#ffbb00 guifg=#000000 gui=none + +hi linenr guibg=#fafafa guifg=#cccccc gui=none + +hi matchparen guibg=#cccccc gui=none + +hi modemsg guibg=#fafafa guifg=#999999 gui=none + +hi moremsg guibg=#339900 guifg=#ffffff gui=none + +hi nontext guibg=#fafafa guifg=#999999 gui=none + +hi normal guibg=#fafafa guifg=#222222 gui=none + +hi pmenu guibg=#cccccc guifg=#222222 gui=none +hi pmenusel guibg=#2222ff guifg=#ffffff gui=none +" pmenusbar? +" pmenuthumb? + +hi question guibg=#339900 guifg=#ffffff gui=none + +hi search guibg=#ffff00 guifg=#000000 gui=none + +hi specialkey guibg=#fafafa guifg=#cc00cc gui=none + +hi spellbad gui=undercurl guisp=#ff2222 +hi spellcap gui=undercurl guisp=#ff2222 +hi spelllocal gui=undercurl guisp=#cc2222 +hi spellrare gui=undercurl guisp=#22cc22 + +hi statusline guibg=#2222ff guifg=#ffffff gui=none +hi statuslinenc guibg=#2222ff guifg=#999999 gui=none + +hi tabline guibg=#cccccc guifg=#222222 gui=none +hi tablinesel guibg=#2222ff guifg=#ffffff gui=none +hi tablinefill guibg=#aaaaaa guifg=#aaaaaa gui=none + +hi title guibg=#fafafa guifg=#6666ff gui=none + +hi visual guibg=#cccccc guifg=#333333 gui=none +" visualnos? + +hi warningmsg guibg=#fafafa guifg=#ff0000 gui=none + +hi wildmenu guibg=#339900 guifg=#ffffff gui=none + diff --git a/vim/colors/chlordane.vim b/vim/colors/chlordane.vim new file mode 100644 index 0000000..485a875 --- /dev/null +++ b/vim/colors/chlordane.vim @@ -0,0 +1,78 @@ + " vim:set ts=8 sts=2 sw=2 tw=0: +" Name: chlordane.vim +" Maintainer: Kojo Sugita +" Last Change: 2008-08-18 +" Revision: 1.1 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = 'chlordane' + +hi Cursor guifg=#3a553a guibg=#77dd88 +hi lCursor guifg=#3a553a guibg=#77dd88 +hi CursorIM guifg=#3a553a guibg=#77dd88 +hi Directory guifg=#77dd88 guibg=#000000 gui=bold +hi DiffAdd guifg=#77dd88 guibg=#3a553a gui=none +hi DiffChange guifg=#77dd88 guibg=#3a553a gui=none +hi DiffDelete guifg=#223322 guibg=#223322 gui=none +hi DiffText guifg=#77dd88 guibg=#448844 gui=bold +hi ErrorMsg guifg=#ee1111 guibg=#000000 +hi VertSplit guifg=#223322 guibg=#223322 +hi Folded guifg=#55af66 guibg=#000000 +hi FoldColumn guifg=#557755 guibg=#102010 +hi IncSearch guifg=#3a553a guibg=#77dd88 gui=none +hi LineNr guifg=#446644 guibg=#000000 gui=none +hi ModeMsg guifg=#55af66 guibg=#000000 +hi MoreMsg guifg=#55af66 guibg=#000000 +hi Normal guifg=#55af66 guibg=#000000 +hi Question guifg=#55af66 guibg=#000000 +hi Search guifg=#223322 guibg=#55af66 gui=none +hi NonText guifg=#606060 gui=none +hi SpecialKey guifg=#707070 +"\n, \0, %d, %s, etc... +hi Special guifg=#55af66 guibg=#223333 gui=bold +" status line +hi StatusLine guifg=#88ee99 guibg=#447f55 gui=bold +hi StatusLineNC term=bold cterm=bold,underline ctermfg=green ctermbg=Black +hi StatusLineNC term=bold gui=bold,underline guifg=#3a553a guibg=Black +hi Title guifg=#77dd88 guibg=#223322 gui=bold +hi Visual guifg=#77dd88 guibg=#448844 gui=none +hi VisualNOS guifg=#55af66 guibg=#000000 +hi WarningMsg guifg=#77dd88 guibg=#000000 +hi WildMenu guifg=#3a553a guibg=#77dd88 +hi Number guifg=#77dd88 guibg=#354535 +hi Char guifg=#77dd88 guibg=#354535 +hi String guifg=#77dd88 guibg=#354535 +hi Boolean guifg=#77dd88 guibg=#354535 +hi Comment guifg=#446644 +hi Constant guifg=#88ee99 gui=none +hi Identifier guifg=#77dd88 +hi Statement guifg=#88ee99 gui=none + +"Procedure name +hi Function guifg=#77dd88 + +"Define, def +hi PreProc guifg=#77dd88 gui=bold +hi Type guifg=#77dd88 gui=bold +hi Underlined guifg=#77dd88 gui=underline +hi Error guifg=#ee1111 guibg=#000000 +hi Todo guifg=#223322 guibg=#55af66 gui=none +hi SignColumn guibg=#000000 + +if version >= 700 + " Pmenu + hi Pmenu guibg=#222222 + hi PmenuSel guibg=#3a553a guifg=#77dd88 + hi PmenuSbar guibg=#222222 + + " Tab + hi TabLine guifg=#3a553a guibg=black gui=bold + hi TabLineFill guifg=black guibg=black gui=bold + hi TabLineSel guifg=#88ee99 guibg=#447f55 gui=bold +endif + + diff --git a/vim/colors/chocolateliquor.vim b/vim/colors/chocolateliquor.vim new file mode 100644 index 0000000..9dfa712 --- /dev/null +++ b/vim/colors/chocolateliquor.vim @@ -0,0 +1,36 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2007 Jun 13 + +" This started as a dark version (perhaps opposite is a better term) of +" PapayaWhip, but took on a life of its own. Easy on the eyes, but still has +" good contrast. Not bad on a color terminal, either (especially if yours +" default to PapayaWhip text on a ChocolateLiquor/#3f1f1f background). +" +" Only values that differ from defaults are specified. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "ChocolateLiquor" + +hi Normal guibg=#3f1f1f guifg=PapayaWhip ctermfg=White +hi NonText guibg=#1f0f0f guifg=Brown2 ctermfg=Brown ctermbg=Black +hi LineNr guibg=#1f0f0f guifg=Brown2 +hi DiffDelete guibg=DarkRed guifg=White ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=DarkGreen guifg=White ctermbg=DarkGreen ctermfg=White +hi DiffText gui=NONE guibg=DarkCyan guifg=Yellow ctermbg=DarkCyan ctermfg=Yellow +hi DiffChange guibg=DarkCyan guifg=White ctermbg=DarkCyan ctermfg=White +hi Constant ctermfg=Red +hi Comment guifg=LightBlue3 +hi PreProc guifg=Plum ctermfg=Magenta +hi StatusLine guibg=White guifg=Sienna4 cterm=NONE ctermfg=Black ctermbg=Brown +hi StatusLineNC gui=NONE guifg=Black guibg=Gray ctermbg=Black ctermfg=Gray +hi VertSplit guifg=Gray +hi Search guibg=Gold3 ctermfg=Blue +hi Type gui=NONE guifg=DarkSeaGreen2 +hi Statement gui=NONE guifg=Gold3 +hi FoldColumn guibg=#1f0f0f ctermfg=Cyan ctermbg=Black +hi Folded guibg=grey20 ctermfg=Cyan ctermbg=Black diff --git a/vim/colors/clarity.vim b/vim/colors/clarity.vim new file mode 100644 index 0000000..3440ba3 --- /dev/null +++ b/vim/colors/clarity.vim @@ -0,0 +1,52 @@ +" Vim color - Clarity +" + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="clarity" + +highlight Normal gui=NONE guifg=LightBlue2 guibg=#1F3055 +highlight Comment gui=NONE guifg=Grey62 guibg=bg +highlight PreProc gui=NONE guifg=Salmon guibg=bg +highlight Precondit gui=NONE guifg=Khaki3 guibg=bg +highlight Identifier gui=NONE guifg=Khaki3 guibg=bg +highlight Type gui=BOLD guifg=Orange guibg=bg +highlight StorageClass gui=BOLD guifg=Cornsilk2 guibg=bg +highlight Todo gui=BOLD guifg=#1F3055 guibg=White +highlight NonText gui=NONE guifg=#334C51 guibg=SteelBlue4 +highlight LineNr gui=NONE guifg=HoneyDew2 guibg=Grey25 +highlight StatusLineNC gui=NONE guifg=Grey80 guibg=LightBlue4 +highlight StatusLine gui=NONE guifg=DarkBlue guibg=#FFFFCA +highlight IncSearch gui=NONE guifg=Black guibg=#FFE568 +highlight Search gui=UNDERLINE,BOLD guifg=#FFE568 guibg=bg +highlight Cursor gui=NONE guifg=Grey50 guibg=#FFE568 +highlight CursorIM gui=NONE guifg=Grey50 guibg=#FFE568 +highlight Title gui=BOLD guifg=OliveDrab3 guibg=bg +highlight WarningMsg gui=BOLD guifg=White guibg=Red4 +highlight String gui=NONE guifg=Grey80 guibg=bg +highlight Number gui=NONE guifg=OliveDrab2 guibg=bg +highlight Constant gui=NONE guifg=#ACEDAB guibg=bg +highlight Visual gui=BOLD guifg=White guibg=bg +highlight Directory gui=NONE guifg=PeachPuff guibg=bg +highlight DiffAdd gui=NONE guifg=white guibg=SeaGreen +highlight DiffChange gui=BOLD guifg=white guibg=Blue +highlight DiffDelete gui=NONE guifg=Grey40 guibg=Grey20 +highlight DiffText gui=BOLD guifg=HoneyDew1 guibg=FireBrick +highlight Typedef gui=NONE guifg=Cornsilk guibg=bg +highlight Define gui=NONE guifg=White guibg=bg +highlight Tag gui=NONE guifg=LightBlue2 guibg=bg +highlight Debug gui=BOLD guifg=Green guibg=bg +highlight Special gui=NONE guifg=NavajoWhite guibg=bg +highlight SpecialChar gui=NONE guifg=NavajoWhite guibg=bg +highlight Delimiter gui=NONE guifg=NavajoWhite guibg=bg +highlight SpecialComment gui=NONE guifg=NavajoWhite3 guibg=bg +highlight Conditional gui=BOLD guifg=Wheat2 guibg=bg +highlight Statement gui=BOLD guifg=Pink3 guibg=bg +highlight WildMenu gui=NONE guifg=White guibg=FireBrick +highlight browseSuffixes gui=NONE guifg=Cornsilk3 guibg=bg + + + diff --git a/vim/colors/cleanphp.vim b/vim/colors/cleanphp.vim new file mode 100644 index 0000000..41e8780 --- /dev/null +++ b/vim/colors/cleanphp.vim @@ -0,0 +1,81 @@ +" Vim color file +" Maintainer: Billy McIntosh +" Last Change: June 24, 2003 +" Licence: Public Domain + +" This package offers a eye-catching color scheme for PHP syntax + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "cleanphp" + +hi Normal guifg=#008000 guibg=#d3e4f8 + +hi ErrorMsg guibg=#d3e4f8 guifg=Red +hi IncSearch gui=reverse +hi ModeMsg gui=bold +hi StatusLine gui=reverse,bold +hi StatusLineNC gui=reverse +hi VertSplit gui=reverse +hi Visual gui=reverse guifg=#c0c0c0 guibg=fg +hi VisualNOS gui=underline,bold +hi DiffText gui=bold guibg=Red +hi Cursor guibg=Black guifg=NONE +hi lCursor guibg=Black guifg=NONE +hi Directory guifg=#ff8040 +hi LineNr guifg=#008000 +hi MoreMsg gui=bold guifg=SeaGreen +hi NonText gui=bold guifg=#ff8040 guibg=#d3e4f8 +hi Question gui=bold guifg=Black +hi Search guibg=#008000 guifg=NONE +hi SpecialKey guifg=#ff8040 +hi Title gui=bold guifg=Magenta +hi WarningMsg guifg=Red +hi WildMenu guibg=Cyan guifg=#d3e4f8 +hi Folded guibg=White guifg=Darkblue +hi FoldColumn guibg=#c0c0c0 guifg=Darkblue +hi DiffAdd guibg=Lightblue +hi DiffChange guibg=LightMagenta +hi DiffDelete gui=bold guifg=#ff8040 guibg=LightCyan + +hi Comment guifg=#ff8040 guibg=#d3e4f8 +hi Constant guifg=#BB0000 guibg=#d3e4f8 +hi PreProc guifg=#008080 guibg=#d3e4f8 +hi Statement gui=NONE guifg=#008000 guibg=#d3e4f8 +hi Special guifg=#008080 guibg=#d3e4f8 +hi Ignore guifg=#c0c0c0 +hi Identifier guifg=#000080 guibg=#d3e4f8 +hi Type guifg=#00BB00 guibg=#d3e4f8 + +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special + +" vim: sw=2 diff --git a/vim/colors/coffee.vim b/vim/colors/coffee.vim new file mode 100644 index 0000000..284fb01 --- /dev/null +++ b/vim/colors/coffee.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: David Lazar +" Last Change: Fri Jan 31 01:08:13 UTC 2003 +" Version: 1.0 +" URL: http://c7.campus.utcluj.ro/~david/coffee.vim +" +" This colorscheme script was created using Hans Fugal's colorscheme template + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="coffee" + +hi Normal gui=none guibg= #514c44 guifg=#b0a594 + +hi Cursor gui=none guibg=#ffffff guifg=bg +hi link CursorIM Cursor +hi Directory guifg=#ffffff +hi DiffAdd guibg=#9e9485 guifg=bg +hi DiffDelete guibg=#2e2b26 guifg=fg +hi DiffChange guibg=#70695e guifg=fg +hi DiffText guibg=#70695e guifg=#880000 +hi ErrorMsg guibg=#880000 guifg=#ffffff +hi Folded guifg=#88c0c7 +hi FoldColumn guifg=#88c0c7 +hi IncSearch guifg=#fff0d6 guibg=#000000 +hi LineNr guibg=#000000 guifg=#ffff21 +hi ModeMsg guifg=#ffffff +hi MoreMsg guifg=#00ff00 +hi NonText guifg=#61616d +hi Question guifg=#ffff00 +hi link Search IncSearch +hi SpecialKey guifg=#ffffff +hi StatusLine guibg=#000000 guifg=#deefff +hi StatusLineNC guibg=#395956 guifg=#a4b1bd +hi VertSplit guibg=#395956 guifg=#a4b1bd +hi Title guifg=#ffffff +hi Visual guifg=#fff0d6 guibg=#000000 +hi VisualNOS guifg=#dddddd guibg=bg +hi WarningMsg guifg=#ffff00 +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=#1a1813 +hi Constant guifg=#cefece +hi Identifier guifg=#cc7c3d +hi Statement guifg=#effec5 +hi PreProc guifg=#85ff85 +hi Type guifg=#c6feeb +hi Special guifg=#eeffee +hi Underlined gui=underline guifg=#ffffff +hi Ignore guifg=fg +hi Error guibg=bg guifg=#ff4c4a +hi Todo guibg=#aa0006 guifg=#fff300 + diff --git a/vim/colors/colorer.vim b/vim/colors/colorer.vim new file mode 100644 index 0000000..4b4e7bb --- /dev/null +++ b/vim/colors/colorer.vim @@ -0,0 +1,79 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Sergey V. Beduev +" Last Change: Sun Mar 28 11:19:38 EEST 2004 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "colorer" + +hi Normal ctermfg=Gray guifg=DarkGray guibg=black +hi Visual ctermfg=DarkCyan guibg=black guifg=DarkCyan +hi Comment ctermfg=Brown guifg=#B46918 gui=NONE +hi PerlPOD ctermfg=Brown guifg=#B86A18 gui=NONE +hi Constant ctermfg=White guifg=White gui=NONE +hi Charachter ctermfg=Yellow guifg=Yellow gui=NONE +hi String ctermfg=Yellow guifg=Yellow gui=NONE +hi Number ctermfg=White guifg=White gui=NONE +hi Boolean ctermfg=Cyan guifg=DarkGray gui=NONE +hi Special ctermfg=DarkMagenta guifg=Red gui=NONE +hi Define ctermfg=LightMagenta guifg=Magenta gui=NONE +hi Identifier ctermfg=Green guifg=Green gui=NONE +hi Exception ctermfg=White guifg=White gui=NONE +hi Statement ctermfg=White guifg=White gui=NONE +hi Label ctermfg=White guifg=White gui=NONE +hi Keyword ctermfg=White guifg=White gui=NONE +hi PreProc ctermfg=Green guifg=Green gui=NONE +hi Type ctermfg=LightGreen guifg=Green gui=NONE +hi Function ctermfg=White guifg=White gui=NONE +hi Repeat ctermfg=White guifg=White gui=NONE +hi Operator ctermfg=White guifg=White gui=NONE +hi Ignore ctermfg=black guifg=bg +hi Folded ctermbg=LightBlue ctermfg=Gray guibg=DarkBlue guifg=DarkGray gui=NONE +hi Error term=reverse ctermbg=Red ctermfg=White guibg=darkRed guifg=White gui=NONE +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Black guibg=#AD5500 gui=NONE +hi Done term=standout ctermbg=Gray ctermfg=White guifg=White guibg=Gray gui=NONE + +hi SpellErrors ctermfg=DarkRed guifg=Black gui=NONE + +hi MailQ ctermfg=darkcyan guibg=black gui=NONE +hi MailQu ctermfg=darkgreen guibg=black gui=NONE +hi MyDiffNew ctermfg=magenta guifg=red gui=NONE +hi MyDiffCommLine ctermfg=white ctermbg=red guifg=white guibg=darkred gui=NONE +hi MyDiffRemoved ctermfg=LightRed guifg=red gui=NONE +hi MyDiffSubName ctermfg=DarkCyan guifg=Cyan gui=NONE +hi MyDiffNormal ctermbg=White ctermfg=black guibg=White guifg=black gui=NONE +hi MoreMsg gui=NONE +hi ModeMsg gui=NONE +hi Title gui=NONE +hi NonText gui=NONE +hi DiffDelete gui=NONE +hi DiffText gui=NONE +hi StatusLine guifg=black guibg=gray gui=NONE +hi Question gui=NONE +" Common groups that link to default highlighting. +" You can specify other highlighting easily. +"hi link String Constant +"hi link Character Constant +"hi link Number Constant +"hi link Boolean Constant +hi link Float Number +hi link Conditional Repeat +hi link Include PreProc +hi link Structure Define +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Normal +hi link SpecialComment Special +hi link Debug Special + diff --git a/vim/colors/colorscheme_template.vim b/vim/colors/colorscheme_template.vim new file mode 100644 index 0000000..184aa83 --- /dev/null +++ b/vim/colors/colorscheme_template.vim @@ -0,0 +1,88 @@ +" Vim color file +" Maintainer: Your name +" Last Change: +" URL: + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +" your pick: +set background=dark " or light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="mycolorscheme" + +"hi Normal + +" OR + +" highlight clear Normal +" set background& +" highlight clear +" if &background == "light" +" highlight Error ... +" ... +" else +" highlight Error ... +" ... +" endif + +" A good way to see what your colorscheme does is to follow this procedure: +" :w +" :so % +" +" Then to see what the current setting is use the highlight command. +" For example, +" :hi Cursor +" gives +" Cursor xxx guifg=bg guibg=fg + +" Uncomment and complete the commands you want to change from the default. + +"hi Cursor +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +"hi VertSplit +"hi Folded +"hi FoldColumn +"hi IncSearch +"hi LineNr +"hi ModeMsg +"hi MoreMsg +"hi NonText +"hi Question +"hi Search +"hi SpecialKey +"hi StatusLine +"hi StatusLineNC +"hi Title +"hi Visual +"hi VisualNOS +"hi WarningMsg +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +"hi Comment +"hi Constant +"hi Identifier +"hi Statement +"hi PreProc +"hi Type +"hi Special +"hi Underlined +"hi Ignore +"hi Error +"hi Todo + diff --git a/vim/colors/cool.vim b/vim/colors/cool.vim new file mode 100644 index 0000000..a7593d9 --- /dev/null +++ b/vim/colors/cool.vim @@ -0,0 +1,82 @@ +" Vim color file +" Maintainer: Gergely Kontra +" Last Change: 2002. 07. 03. +" Based on scite colors. +" I've changed my mind, and inverted the colors. +" After an hour, this is the result. +" Not resembles to scite's colors :-] +" I'm a bit red-blind, so if you have suggestions, don't hesitate :) +" ^^^^^^^^^ Sorry, I cannot speak English well, just want to say, +" that in some rare cases I cannot distinguish between some colors +" (I've just realized it, when I see some special tests) + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "cool" + + +" GUI +"highlight Normal guifg=#77BBFF guibg=#304060 +highlight Normal guifg=#77BBFF guibg=#102040 +highlight Normal ctermfg=LightBlue ctermbg=Black + +highlight Comment guifg=#EEEEEE guibg=#393939 +highlight Comment ctermfg=white ctermbg=DarkGrey + +highlight Constant gui=underline +highlight Constant ctermfg=LightBlue cterm=bold,underline + +highlight Cursor guifg=#999999 guibg=#FFFFFF + +highlight Define guifg=#FFFF80 guibg=#000099 gui=bold +highlight Define ctermfg=Yellow ctermbg=DarkBlue cterm=bold + +highlight Delimiter guifg=#FFFFFF guibg=#221F22 gui=bold + +highlight FoldColumn guifg=#FFFFFF guibg=#222222 +highlight FoldColumn ctermfg=White ctermbg=DarkGrey cterm=reverse + +highlight Folded guifg=#000000 guibg=#999999 +highlight Folded ctermfg=DarkGrey ctermbg=Black cterm=reverse + +highlight Function guifg=#dddddd guibg=#000099 gui=bold +highlight Function ctermfg=White ctermbg=DarkBlue cterm=bold + +highlight IncSearch guifg=#000000 guibg=#ffffff gui=bold,underline + +highlight LineNr guifg=#FFFFFF guibg=#444444 + +highlight Number guifg=#dddddd gui=bold +highlight Number ctermfg=LightCyan + +highlight PreProc guibg=#000000 guifg=#77bbff gui=bold + +highlight Search guifg=#ffffff guibg=#335577 +highlight Search ctermfg=White ctermbg=Cyan cterm=reverse + +highlight Special guifg=#ccaa55 guibg=#102040 gui=none +highlight Special ctermfg=Brown ctermbg=Black cterm=bold + +highlight Statement guifg=#FF8080 gui=bold +highlight Statement ctermfg=Magenta cterm=bold + +highlight StatusLine guifg=#FFFFFF guibg=#553333 +highlight StatusLine ctermfg=white ctermbg=DarkRed + +highlight StatusLineNC guifg=#AA8888 guibg=#000000 +highlight StatusLineNC ctermfg=red ctermbg=black + +highlight String guifg=#99ffaa guibg=#000000 +highlight String ctermfg=White + +highlight Subtitle guifg=#FFFFFF guibg=#994444 gui=bold,underline + +highlight Type guifg=#FFFFFF gui=NONE +highlight Type guifg=white gui=NONE + +highlight Visual guibg=#112233 guifg=#6688AA +highlight Visual ctermbg=DarkBlue ctermfg=LightBlue diff --git a/vim/colors/dante.vim b/vim/colors/dante.vim new file mode 100644 index 0000000..478d3ba --- /dev/null +++ b/vim/colors/dante.vim @@ -0,0 +1,83 @@ +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" File: "/home/caciano/.vim/dante.vim" +" Created: "Thu, 23 May 2002 00:12:20 -0300 (caciano)" +" Updated: "Sat, 24 Aug 2002 14:04:21 -0300 (caciano)" +" Copyright (C) 2002, Caciano Machado +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Colorscheme Option: +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +hi clear +if exists("syntax on") + syntax reset +endif +let g:colors_name = "dante" + +" General colors +hi Normal ctermfg=gray guifg=peachpuff3 guibg=black +hi Directory term=bold ctermfg=blue guifg=royalblue +hi ErrorMsg term=standout ctermfg=white ctermbg=red guifg=white guibg=red3 +hi NonText term=bold ctermfg=darkgray guibg=gray3 guifg=gray20 +hi SpecialKey term=bold ctermfg=darkgray guifg=gray30 +hi LineNr term=underline ctermfg=darkgray guifg=ivory4 guibg=gray4 +hi IncSearch term=reverse cterm=reverse gui=reverse,bold guifg=darkgoldenrod2 +hi Search term=reverse ctermfg=black ctermbg=yellow guifg=gray10 guibg=gold2 +hi Visual term=bold,reverse cterm=bold,reverse ctermfg=gray ctermbg=black gui=bold,reverse guifg=gray40 guibg=black +hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline +hi MoreMsg term=bold ctermfg=green gui=bold guifg=olivedrab1 +hi ModeMsg term=bold cterm=bold gui=bold +hi Question term=standout ctermfg=green gui=bold guifg=olivedrab1 +hi WarningMsg term=standout ctermfg=red gui=bold guifg=red3 +hi WildMenu term=standout ctermfg=black ctermbg=yellow guifg=black guibg=gold2 +hi Folded term=standout ctermfg=blue ctermbg=white guifg=royalblue1 guibg=white +hi FoldColumn term=standout ctermfg=blue ctermbg=white guifg=royalblue3 guibg=white +hi DiffAdd term=bold ctermbg=blue guibg=royalblue2 +hi DiffChange term=bold ctermbg=darkmagenta guibg=maroon +hi DiffDelete term=bold cterm=bold ctermfg=lightblue ctermbg=cyan gui=bold guifg=lightblue guibg=cyan4 +hi DiffText term=reverse cterm=bold ctermbg=red gui=bold guibg=red3 +hi Cursor guifg=bg guibg=fg +hi lCursor guifg=bg guibg=fg +hi StatusLine term=reverse cterm=reverse gui=reverse guifg=gray60 +hi StatusLineNC term=reverse cterm=reverse gui=reverse guifg=gray40 +hi VertSplit term=reverse cterm=reverse gui=bold,reverse guifg=gray40 +hi Title term=bold ctermfg=magenta gui=bold guifg=aquamarine + +" syntax hi colors +hi Comment term=bold ctermfg=darkcyan guifg=cyan4 +hi PreProc term=underline ctermfg=darkblue guifg=dodgerblue4 +hi Constant term=underline ctermfg=darkred guifg=firebrick3 +hi Type term=underline ctermfg=darkgreen gui=none guifg=chartreuse3 +hi Statement term=bold ctermfg=darkyellow gui=none guifg=gold3 +hi Identifier term=underline ctermfg=darkgreen guifg=darkolivegreen4 +hi Ignore term=bold ctermfg=darkgray guifg=gray45 +hi Special term=underline ctermfg=brown guifg=sienna +hi Error term=reverse ctermfg=gray ctermbg=red guifg=gray guibg=red3 +hi Todo term=standout ctermfg=black ctermbg=yellow gui=bold guifg=gray10 guibg=yellow4 +hi Underlined term=underline cterm=underline ctermfg=darkblue gui=underline guifg=slateblue +hi Number term=underline ctermfg=darkred guifg=red2 +" syntax hi links +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Number Constant +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Keyword Statement +hi link Exception Statement +hi link Operator Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/vim/colors/dark-ruby.vim b/vim/colors/dark-ruby.vim new file mode 100644 index 0000000..a8cff81 --- /dev/null +++ b/vim/colors/dark-ruby.vim @@ -0,0 +1,291 @@ +" Vim color file +" Maintainer: Priit Tamboom +" Last Change: Alfa version +" URL: http://priit.mx.ee/dark-ruby + +" your pick: +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dark-ruby" + +" A good way to see what your colorscheme does is to follow this procedure: +" :w +" :so % +" +" Then to see what the current setting is use the highlight command. +" For example, +" :hi Cursor +" gives +" Cursor xxx guifg=bg guibg=fg + +" Uncomment and complete the commands you want to change from the default. + +" highlight Normal guibg=#EDE9E3 +" hi Cursor ctermfg=000 guifg=lightgray +" hi CursorIM ctermfg=000 guifg=lightgray +" hi Directory ctermfg=000 guifg=lightgray +" hi DiffAdd ctermfg=000 guifg=lightgray +" hi DiffChange ctermfg=000 guifg=lightgray +" hi DiffDelete ctermfg=000 guifg=lightgray +" hi DiffText ctermfg=000 guifg=lightgray +" hi ErrorMsg ctermfg=000 guifg=lightgray +" hi VertSplit ctermfg=000 guifg=lightgray +" hi Folded ctermfg=000 guifg=lightgray +" hi FoldColumn ctermfg=000 guifg=lightgray +" hi IncSearch ctermfg=000 guifg=lightgray +" hi ModeMsg ctermfg=000 guifg=lightgray +" hi MoreMsg ctermfg=000 guifg=lightgray +" hi NonText ctermfg=000 guifg=lightgray +" hi Question ctermfg=000 guifg=lightgray +" hi Search ctermfg=000 guifg=lightgray +" hi SpecialKey ctermfg=000 guifg=lightgray +" hi StatusLine ctermfg=000 guifg=lightgray +" hi StatusLineNC ctermfg=000 guifg=lightgray +" hi Title ctermfg=000 guifg=lightgray +" hi Visual ctermfg=000 guifg=lightgray +" hi VisualNOS ctermfg=000 guifg=lightgray +" hi WarningMsg ctermfg=000 guifg=lightgray +" hi WildMenu ctermfg=000 guifg=lightgray +" hi Menu ctermfg=000 guifg=lightgray +" hi Scrollbar ctermfg=000 guifg=lightgray +" hi Tooltip ctermfg=000 guifg=lightgray + +" syntax highlighting groups +hi LineNr ctermfg=252 guifg=252 +hi Comment ctermfg=28 guifg=28 +hi Constant ctermfg=185 guifg=185 +hi Identifier ctermfg=252 guifg=252 +hi Statement ctermfg=32 guifg=32 +hi PreProc ctermfg=252 guifg=252 +hi Type ctermfg=167 guifg=167 +hi Special ctermfg=252 guifg=252 +hi Underlined ctermfg=000 guifg=red +hi Ignore ctermfg=000 guifg=red +hi Error ctermfg=000 guifg=red +hi Todo ctermfg=000 guifg=red + +" Alfa version notes: color '000' means I haven't set color yet + +hi rubyEscape ctermfg=252 guifg=252 +hi rubyInterpolationDelimiter ctermfg=252 guifg=252 +hi rubyInterpolation ctermfg=252 guifg=252 +hi rubyP000efinedVariable ctermfg=red guifg=red +hi rubyInstanceVariable ctermfg=66 guifg=66 +hi rubyClassVariable ctermfg=000 guifg=red +hi rubyGlobalVariable ctermfg=000 guifg=red +hi rubyP000efinedVariable ctermfg=red guifg=red +hi rubyNoInterpolation ctermfg=000 guifg=red +hi rubyDelimEscape ctermfg=000 guifg=red +hi rubyNestedParentheses ctermfg=000 guifg=red +hi rubyNestedCurlyBraces ctermfg=000 guifg=red +hi rubyNestedAngleBrackets ctermfg=000 guifg=red +hi rubyNestedSquareBrackets ctermfg=000 guifg=red +hi rubyASCIICode ctermfg=000 guifg=red +hi rubyInteger ctermfg=185 guifg=185 +hi rubyFloat ctermfg=185 guifg=185 +hi rubyLocalVariableOrMethod ctermfg=000 guifg=red +hi rubyBlockArgument ctermfg=000 guifg=red +hi rubyConstant ctermfg=252 guifg=252 +hi rubySymbol ctermfg=167 guifg=167 +hi rubyStringSpecial ctermfg=000 guifg=red +hi rubyBlockParameter ctermfg=252 guifg=252 +hi rubyP000efinedConstant ctermfg=red guifg=red +hi rubyRegexp ctermfg=167 guifg=167 +hi rubyString ctermfg=185 guifg=185 +hi rubyBoolean ctermfg=252 guifg=252 +hi rubyPseudoVariable ctermfg=252 guifg=252 +hi rubyMethodDeclaration ctermfg=000 guifg=red +hi rubyClassDeclaration ctermfg=000 guifg=red +hi rubyModuleDeclaration ctermfg=000 guifg=red +hi rubyFunction ctermfg=252 guifg=252 +hi rubyDefine ctermfg=32 guifg=32 +hi rubyClass ctermfg=25 guifg=25 +hi rubyModule ctermfg=25 guifg=25 +hi rubyBlock ctermfg=252 guifg=252 +hi rubyConditional ctermfg=81 guifg=81 +hi rubyRepeat ctermfg=81 guifg=81 +hi rubyControl ctermfg=81 guifg=81 +hi rubyKeyword ctermfg=000 guifg=red +hi rubyOperator ctermfg=000 guifg=red +hi rubyBeginEnd ctermfg=000 guifg=red +hi rubyAccess ctermfg=32 guifg=32 +hi rubyAttribute ctermfg=252 guifg=252 +hi rubyEval ctermfg=000 guifg=red +hi rubyException ctermfg=000 guifg=red +hi rubyInclude ctermfg=252 guifg=252 +hi rubySharpBang ctermfg=000 guifg=red +hi rubyTodo ctermfg=34 guifg=34 +hi rubyComment ctermfg=28 guifg=28 +hi rubyDocumentation ctermfg=000 guifg=red +hi rubyData ctermfg=000 guifg=red + +hi railsMethod ctermfg=107 guifg=107 +hi railsUserClass ctermfg=107 guifg=107 +hi railsUserMethod ctermfg=107 guifg=107 + +" hi rubyRailsError ctermfg=lightgray guifg=lightgray +" hi rubyRailsDeprecatedMethod ctermfg=lightgray guifg=lightgray +" hi erubyRailsMethod ctermfg=lightgray guifg=lightgray +" hi erubyRailsRenderMethod ctermfg=lightgray guifg=lightgray +" hi erubyRailsHelperMethod ctermfg=lightgray guifg=lightgray +"hi javascriptRailsClass ctermfg=lightgray guifg=lightgray +"hi javascriptRailsFunction ctermfg=lightgray guifg=lightgray +"hi htmlError ctermfg=lightgray guifg=lightgray +"hi htmlSpecialChar ctermfg=lightgray guifg=lightgray +"hi javaScriptExpression ctermfg=lightgray guifg=lightgray +"hi htmlString ctermfg=lightgray guifg=lightgray +"hi htmlValue ctermfg=lightgray guifg=lightgray +"hi htmlTagN ctermfg=lightgray guifg=lightgray +"hi htmlTagError ctermfg=lightgray guifg=lightgray +hi htmlEndTag ctermfg=25 guifg=25 +"hi htmlArg ctermfg=lightgray guifg=lightgray +"hi htmlEvent ctermfg=lightgray guifg=lightgray +"hi htmlCssDefinition ctermfg=lightgray guifg=lightgray +hi htmlTag ctermfg=25 guifg=25 +hi htmlTagName ctermfg=25 guifg=25 +"hi htmlSpecialTagName ctermfg=lightgray guifg=lightgray +"hi htmlCommentPart ctermfg=lightgray guifg=lightgray +"hi htmlCommentError ctermfg=lightgray guifg=lightgray +"hi htmlComment ctermfg=lightgray guifg=lightgray +"hi htmlPreStmt ctermfg=lightgray guifg=lightgray +"hi htmlPreError ctermfg=lightgray guifg=lightgray +"hi htmlPreAttr ctermfg=lightgray guifg=lightgray +"hi htmlPreProc ctermfg=lightgray guifg=lightgray +"hi htmlPreProcAttrError ctermfg=lightgray guifg=lightgray +"hi htmlPreProcAttrName ctermfg=lightgray guifg=lightgray +"hi htmlLink ctermfg=lightgray guifg=lightgray +"hi javaScript ctermfg=lightgray guifg=lightgray +"hi htmlBoldUnderline ctermfg=lightgray guifg=lightgray +"hi htmlBoldItalic ctermfg=lightgray guifg=lightgray +"hi htmlBold ctermfg=lightgray guifg=lightgray +"hi htmlBoldUnderlineItalic ctermfg=lightgray guifg=lightgray +"hi htmlBoldItalicUnderline ctermfg=lightgray guifg=lightgray +"hi htmlUnderlineBold ctermfg=lightgray guifg=lightgray +"hi htmlUnderlineItalic ctermfg=lightgray guifg=lightgray +"hi htmlUnderline ctermfg=lightgray guifg=lightgray +"hi htmlUnderlineBoldItalic ctermfg=lightgray guifg=lightgray +"hi htmlUnderlineItalicBold ctermfg=lightgray guifg=lightgray +"hi htmlItalicBold ctermfg=lightgray guifg=lightgray +"hi htmlItalicUnderline ctermfg=lightgray guifg=lightgray +"hi htmlItalic ctermfg=lightgray guifg=lightgray +"hi htmlItalicBoldUnderline ctermfg=lightgray guifg=lightgray +"hi htmlItalicUnderlineBold ctermfg=lightgray guifg=lightgray +hi htmlH1 ctermfg=25 guifg=25 +"hi htmlH2 ctermfg=lightgray guifg=lightgray +"hi htmlH3 ctermfg=lightgray guifg=lightgray +"hi htmlH4 ctermfg=lightgray guifg=lightgray +"hi htmlH5 ctermfg=lightgray guifg=lightgray +"hi htmlH6 ctermfg=lightgray guifg=lightgray +"hi htmlTitle ctermfg=lightgray guifg=lightgray +"hi cssStyle ctermfg=lightgray guifg=lightgray +"hi htmlHead ctermfg=lightgray guifg=lightgray +"hi javaScriptCommentTodo ctermfg=lightgray guifg=lightgray +"hi javaScriptLineComment ctermfg=lightgray guifg=lightgray +"hi javaScriptCommentSkip ctermfg=lightgray guifg=lightgray +"hi javaScriptComment ctermfg=lightgray guifg=lightgray +"hi javaScriptSpecial ctermfg=lightgray guifg=lightgray +"hi javaScriptStringD ctermfg=lightgray guifg=lightgray +"hi javaScriptStringS ctermfg=lightgray guifg=lightgray +"hi javaScriptSpecialCharacter ctermfg=lightgray guifg=lightgray +"hi javaScriptNumber ctermfg=lightgray guifg=lightgray +"hi javaScriptRegexpString ctermfg=lightgray guifg=lightgray +"hi javaScriptConditional ctermfg=lightgray guifg=lightgray +"hi javaScriptRepeat ctermfg=lightgray guifg=lightgray +"hi javaScriptBranch ctermfg=lightgray guifg=lightgray +"hi javaScriptOperator ctermfg=lightgray guifg=lightgray +"hi javaScriptType ctermfg=lightgray guifg=lightgray +"hi javaScriptStatement ctermfg=lightgray guifg=lightgray +"hi javaScriptBoolean ctermfg=lightgray guifg=lightgray +"hi javaScriptNull ctermfg=lightgray guifg=lightgray +"hi javaScriptIdentifier ctermfg=lightgray guifg=lightgray +"hi javaScriptLabel ctermfg=lightgray guifg=lightgray +"hi javaScriptException ctermfg=lightgray guifg=lightgray +"hi javaScriptMessage ctermfg=lightgray guifg=lightgray +"hi javaScriptDeprecated ctermfg=lightgray guifg=lightgray +"hi javaScriptReserved ctermfg=lightgray guifg=lightgray +"hi javaScriptFunction ctermfg=lightgray guifg=lightgray +"hi javaScriptBraces ctermfg=lightgray guifg=lightgray +"hi javaScriptBraces ctermfg=lightgray guifg=lightgray +"hi javaScriptParens ctermfg=lightgray guifg=lightgray +"hi htmlCssStyleComment ctermfg=lightgray guifg=lightgray +"hi htmlScriptTag ctermfg=lightgray guifg=lightgray +"hi htmlEventTag ctermfg=lightgray guifg=lightgray +"hi htmlEventSQ ctermfg=lightgray guifg=lightgray +"hi htmlEventDQ ctermfg=lightgray guifg=lightgray +"hi vbStatement ctermfg=lightgray guifg=lightgray +"hi vbFunction ctermfg=lightgray guifg=lightgray +"hi vbMethods ctermfg=lightgray guifg=lightgray +"hi vbEvents ctermfg=lightgray guifg=lightgray +"hi vbTypes ctermfg=lightgray guifg=lightgray +"hi vbOperator ctermfg=lightgray guifg=lightgray +"hi vbConst ctermfg=lightgray guifg=lightgray +"hi vbTodo ctermfg=lightgray guifg=lightgray +"hi vbNumber ctermfg=lightgray guifg=lightgray +"hi vbString ctermfg=lightgray guifg=lightgray +"hi vbComment ctermfg=lightgray guifg=lightgray +"hi vbLineNumber ctermfg=lightgray guifg=lightgray +"hi vbTypeSpecifier ctermfg=lightgray guifg=lightgray +"hi cssTagName ctermfg=lightgray guifg=lightgray +"hi cssDefinition ctermfg=lightgray guifg=lightgray +"hi cssSelectorOp ctermfg=lightgray guifg=lightgray +"hi cssSelectorOp2 ctermfg=lightgray guifg=lightgray +"hi cssUnicodeEscape ctermfg=lightgray guifg=lightgray +"hi cssStringQ ctermfg=lightgray guifg=lightgray +"hi cssStringQQ ctermfg=lightgray guifg=lightgray +"hi cssIdentifier ctermfg=lightgray guifg=lightgray +"hi cssMediaType ctermfg=lightgray guifg=lightgray +"hi cssMedia ctermfg=lightgray guifg=lightgray +"hi cssMediaComma ctermfg=lightgray guifg=lightgray +"hi cssMediaBlock ctermfg=lightgray guifg=lightgray +"hi cssBraces ctermfg=lightgray guifg=lightgray +"hi cssError ctermfg=lightgray guifg=lightgray +"hi cssComment ctermfg=lightgray guifg=lightgray +"hi cssURL ctermfg=lightgray guifg=lightgray +"hi cssValueInteger ctermfg=lightgray guifg=lightgray +"hi cssValueNumber ctermfg=lightgray guifg=lightgray +"hi cssValueLength ctermfg=lightgray guifg=lightgray +"hi cssValueAngle ctermfg=lightgray guifg=lightgray +"hi cssValueTime ctermfg=lightgray guifg=lightgray +"hi cssValueFrequency ctermfg=lightgray guifg=lightgray +"hi cssFontDescriptor ctermfg=lightgray guifg=lightgray +"hi cssFontProp ctermfg=lightgray guifg=lightgray +"hi cssFontAttr ctermfg=lightgray guifg=lightgray +"hi cssCommonAttr ctermfg=lightgray guifg=lightgray +"hi cssFontDescriptorProp ctermfg=lightgray guifg=lightgray +"hi cssFontDescriptorFunction ctermfg=lightgray guifg=lightgray +"hi cssUnicodeRange ctermfg=lightgray guifg=lightgray +"hi cssColor ctermfg=lightgray guifg=lightgray +"hi cssFunction ctermfg=lightgray guifg=lightgray +"hi cssImportant ctermfg=lightgray guifg=lightgray +"hi cssColorProp ctermfg=lightgray guifg=lightgray +"hi cssColorAttr ctermfg=lightgray guifg=lightgray +"hi cssTextProp ctermfg=lightgray guifg=lightgray +"hi cssTextAttr ctermfg=lightgray guifg=lightgray +"hi cssBoxProp ctermfg=lightgray guifg=lightgray +"hi cssBoxAttr ctermfg=lightgray guifg=lightgray +"hi cssGeneratedContentProp ctermfg=lightgray guifg=lightgray +"hi cssGeneratedContentAttr ctermfg=lightgray guifg=lightgray +"hi cssAurlAttr ctermfg=lightgray guifg=lightgray +"hi cssPagingProp ctermfg=lightgray guifg=lightgray +"hi cssPagingAttr ctermfg=lightgray guifg=lightgray +"hi cssUIProp ctermfg=lightgray guifg=lightgray +"hi cssUIAttr ctermfg=lightgray guifg=lightgray +"hi cssRenderAttr ctermfg=lightgray guifg=lightgray +"hi cssRenderProp ctermfg=lightgray guifg=lightgray +"hi cssAuralProp ctermfg=lightgray guifg=lightgray +"hi cssTableProp ctermfg=lightgray guifg=lightgray +"hi cssTableAttr ctermfg=lightgray guifg=lightgray +"hi cssInclude ctermfg=lightgray guifg=lightgray +"hi cssBraceError ctermfg=lightgray guifg=lightgray +"hi cssPreudoClassId ctermfg=lightgray guifg=lightgray +"hi cssPseudoClass ctermfg=lightgray guifg=lightgray +"hi cssPseudoClassLang ctermfg=lightgray guifg=lightgray +"hi cssSpecialCharQQ ctermfg=lightgray guifg=lightgray +"hi cssSpecialCharQ ctermfg=lightgray guifg=lightgray +"hi erubyOneLiner ctermfg=lightgray guifg=lightgray +"hi erubyBlock ctermfg=lightgray guifg=lightgray +"hi erubyExpression ctermfg=lightgray guifg=lightgray +"hi erubyComment ctermfg=lightgray guifg=lightgray diff --git a/vim/colors/darkblack.vim b/vim/colors/darkblack.vim new file mode 100644 index 0000000..5dcd263 --- /dev/null +++ b/vim/colors/darkblack.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: Matthew Jimenez +" Last Change: 2005 Feb 25 + +" darkblack -- an alteration to the darkblue colorscheme by Bohdan Vlasyuk + + +set bg=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "darkblack" + +hi Normal guifg=lightgrey guibg=black ctermfg=lightgray ctermbg=black +hi ErrorMsg guifg=white guibg=lightblue ctermfg=white ctermbg=lightblue +hi Visual guifg=lightblue guibg=fg gui=reverse ctermfg=lightblue ctermbg=fg cterm=reverse +hi VisualNOS guifg=lightblue guibg=fg gui=reverse,underline ctermfg=lightblue ctermbg=fg cterm=reverse,underline +hi Todo guifg=red guibg=black ctermfg=red ctermbg=black +hi Search guifg=white guibg=black ctermfg=white ctermbg=black cterm=underline term=underline +hi IncSearch guifg=black guibg=gray ctermfg=black ctermbg=gray + +hi SpecialKey guifg=cyan ctermfg=darkcyan +hi Directory guifg=cyan ctermfg=cyan +hi Title guifg=magenta gui=none ctermfg=magenta cterm=bold +hi WarningMsg guifg=red ctermfg=red +hi WildMenu guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none term=none +hi ModeMsg guifg=lightblue ctermfg=lightblue +hi MoreMsg ctermfg=darkgreen ctermfg=darkgreen +hi Question guifg=green gui=none ctermfg=green cterm=none +hi NonText guifg=lightcyan ctermfg=lightcyan + +hi StatusLine guifg=lightblue guibg=darkgray gui=none ctermfg=lightblue ctermbg=gray term=none cterm=none +hi StatusLineNC guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none +hi VertSplit guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none + +hi Folded guifg=darkgrey guibg=black ctermfg=darkgrey ctermbg=black cterm=bold term=bold +hi FoldColumn guifg=darkgrey guibg=black ctermfg=darkgrey ctermbg=black cterm=bold term=bold +hi LineNr guifg=green ctermfg=green cterm=none + +hi DiffAdd guibg=black ctermbg=black term=none cterm=none +hi DiffChange guibg=darkmagenta ctermbg=magenta cterm=none +hi DiffDelete ctermfg=lightblue ctermbg=cyan gui=bold guifg=Blue guibg=DarkCyan +hi DiffText cterm=bold ctermbg=red gui=bold guibg=Red + +hi Cursor guifg=bg guibg=lightgrey ctermfg=bg ctermbg=lightgrey +hi lCursor guifg=bg guibg=darkgreen ctermfg=bg ctermbg=darkgreen + + +hi Comment guifg=lightblue ctermfg=lightblue +hi Constant ctermfg=magenta guifg=magenta cterm=none +hi Special ctermfg=brown guifg=Orange cterm=none gui=none +hi Identifier ctermfg=cyan guifg=cyan cterm=none +hi Statement ctermfg=yellow cterm=none guifg=yellow gui=none +hi PreProc ctermfg=magenta guifg=magenta gui=none cterm=none +hi type ctermfg=green guifg=green gui=none cterm=none +hi Underlined cterm=underline term=underline +hi Ignore guifg=bg ctermfg=bg + diff --git a/vim/colors/darkblue2.vim b/vim/colors/darkblue2.vim new file mode 100644 index 0000000..a65df91 --- /dev/null +++ b/vim/colors/darkblue2.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Datila Carvalho +" Last Change: May, 19, 2005 +" Version: 0.2 + +" This is a VIM's version of the emacs color theme +" _Dark Blue2_ created by Chris McMahan. + +""" Init stuff + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "darkblue2" + + +""" Colors + +" GUI colors +hi Cursor guifg=#233b5a guibg=Yellow +hi CursorIM guifg=NONE guibg=Yellow +hi Directory gui=bold guifg=cyan +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +hi DiffText guibg=grey50 +hi ErrorMsg gui=bold guifg=White guibg=gray85 +hi VertSplit gui=bold guifg=NONE guibg=gray80 +"hi Folded +"hi FoldColumn +"hi IncSearch +hi LineNr gui=bold guifg=lightsteelblue guibg=#132b4a +hi ModeMsg gui=bold +"hi MoreMsg +"hi NonText +hi Normal guibg=#233b5a guifg=#fff8dc +"hi Question +hi Search gui=bold guifg=#233b5a guibg=lightgoldenrod +"hi SpecialKey +hi StatusLine guifg=steelblue4 guibg=lightgray +hi StatusLineNC guifg=royalblue4 guibg=lightsteelblue +"hi Title +hi Visual guifg=steelblue guibg=fg +hi VisualNOS gui=bold guifg=steelblue guibg=fg +hi WarningMsg guifg=White guibg=Tomato +"hi WildMenu + +hi User2 guifg=lightskyblue guibg=#021a39 gui=bold + +" If using Motif/Athena +hi Menu guibg=#233b5a guifg=#fff8dc +hi Scrollbar guibg=bg + +" Colors for syntax highlighting +hi Comment gui=italic guifg=mediumaquamarine + +hi Constant gui=bold guifg=lightgoldenrod1 + hi String guifg=aquamarine + hi Character guifg=aquamarine + hi Number gui=bold guifg=lightgoldenrod1 + hi Boolean gui=bold guifg=lightgoldenrod1 + hi Float gui=bold guifg=lightgoldenrod1 + +hi Identifier gui=bold guifg=palegreen + hi Function guifg=lightskyblue + +hi Statement gui=bold guifg=cyan + hi Conditional gui=bold guifg=cyan + hi Repeat gui=bold guifg=cyan + hi Label guifg=cyan + hi Operator guifg=cyan + "hi Keyword + "hi Exception + +hi PreProc guifg=lightsteelblue + hi Include gui=bold guifg=lightsteelblue + hi Define guifg=lightsteelblue + hi Macro guifg=lightsteelblue + hi PreCondit guifg=lightsteelblue + +hi Type gui=bold guifg=palegreen + hi StorageClass gui=bold guifg=lightgoldenrod1 + hi Structure gui=bold guifg=lightgoldenrod1 + hi Typedef gui=bold guifg=lightgoldenrod1 + +"hi Special + ""Underline Character + "hi SpecialChar + "hi Tag + ""Statement + "hi Delimiter + ""Bold comment (in Java at least) + "hi SpecialComment + "hi Debug + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=White guibg=Red + +"hi Todo diff --git a/vim/colors/darkdot.vim b/vim/colors/darkdot.vim new file mode 100644 index 0000000..0275896 --- /dev/null +++ b/vim/colors/darkdot.vim @@ -0,0 +1,80 @@ +" Vim color file +" Maintainer: David Lazar +" Last Change: Thu May 20 16:27:13 EEST 2004 +" Version: 2.2 +" URL: http://www.c7obs.net/~david/stuff/darkdot.vim +" +" This colorscheme script was created using Hans Fugal's colorscheme template + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="darkdot" + +hi Normal cterm=none gui=none guibg=#101020 guifg=#a8aaaa +hi Cursor cterm=none guibg=#44ff44 guifg=#000000 +hi link CursorIM Cursor +hi Directory ctermfg=cyan guifg=#44ffff +hi DiffAdd ctermbg=blue ctermfg=yellow guibg=#080888 guifg=#ffff00 +hi DiffDelete ctermbg=black ctermfg=darkgray guibg=#080808 guifg=#444444 +hi DiffChange ctermbg=black guibg=#080808 guifg=#ffffff +hi DiffText ctermbg=black ctermfg=darkred guibg=#080808 guifg=#bb0000 +hi ErrorMsg ctermbg=darkred ctermfg=white guibg=#880000 guifg=#ffffff +hi Folded ctermbg=black ctermfg=darkblue guibg=black guifg=#000088 +hi link FoldColumn Folded +hi IncSearch ctermbg=black ctermfg=gray guibg=#000000 guifg=#bbcccc +hi LineNr ctermfg=yellow guibg=#404040 guifg=#ffff00 +hi ModeMsg ctermfg=white guifg=#ffffff +hi MoreMsg ctermfg=green guifg=#44ff44 +hi NonText ctermfg=blue guifg=#4444ff +hi Question ctermfg=yellow guifg=#ffff00 +hi Search ctermbg=NONE ctermfg=green guibg=NONE guifg=green +hi SpecialKey ctermfg=blue guifg=#4444ff +hi StatusLine cterm=none ctermbg=darkcyan ctermfg=white gui=none guibg=#00aaaa guifg=#ffffff +hi StatusLineNC cterm=none ctermbg=gray ctermfg=black gui=none guibg=#bbbbbb guifg=#000000 +hi link VertSplit StatusLineNC +hi Title ctermfg=white guifg=#ffffff +hi Visual cterm=none ctermbg=gray ctermfg=black gui=none guibg=#bbbbbb guifg=#000000 +hi link VisualNOS Visual +hi WarningMsg ctermfg=yellow guifg=#ffff00 +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment ctermfg=blue guifg=#4444ff +hi Constant ctermfg=darkcyan guifg=#00aaaa +hi Identifier ctermfg=white guifg=#ffffff +hi Statement ctermfg=cyan guifg=#44ffff +hi PreProc ctermfg=darkcyan guifg=#00aaaa +hi Type ctermfg=white guifg=#ffffff +hi Special ctermfg=blue cterm=bold guifg=#6666ff gui=bold +hi Underlined ctermfg=blue guifg=#4444ff +hi Ignore ctermfg=darkgray guifg=#444444 +hi Error ctermbg=black ctermfg=darkred guibg=#000000 guifg=#bb0000 +hi Todo ctermbg=darkred ctermfg=yellow guibg=#aa0006 guifg=#fff300 + +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Conditional Statement +hi link Label Statement +hi link Keyword Statement +hi link Exception Statement +hi link Repeat Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special +hi link FoldColumn Folded diff --git a/vim/colors/darkocean.vim b/vim/colors/darkocean.vim new file mode 100644 index 0000000..99d2ed3 --- /dev/null +++ b/vim/colors/darkocean.vim @@ -0,0 +1,52 @@ +" Name Of File: darkocean.vim +" Description: Gvim colorscheme, works best with version 6.0. +" Maintainer: Naveen Chandra R +" Last Change: Thursday, August 15, 2002 +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory +" or manually source this file using ':so darkocean.vim'. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="darkocean" + +hi Cursor gui=None guibg=#add8e6 guifg=#000000 +hi CursorIM gui=None guibg=#add8e6 guifg=#000000 +hi Directory gui=None guibg=bg guifg=#20b2aa +hi DiffAdd gui=Bold guibg=#7e354d guifg=fg +hi DiffChange gui=Bold guibg=#103040 guifg=#cc3300 +hi DiffDelete gui=Bold,Reverse guibg=#7e354d guifg=fg +hi DiffText gui=Bold guibg=#d74141 guifg=fg +hi ErrorMsg gui=None guibg=#b22222 guifg=#ffffe0 +hi VertSplit gui=None guibg=#999999 guifg=#000000 +hi Folded gui=Bold guibg=#003366 guifg=#999999 +hi FoldColumn gui=Bold guibg=#305070 guifg=#b0d0e0 +hi IncSearch gui=Bold guibg=#8db6cd guifg=fg +hi LineNr gui=Bold guibg=#0f0f0f guifg=#8db6cd +hi MoreMsg gui=Bold guibg=bg guifg=#bf9261 +hi ModeMsg gui=Bold guibg=bg guifg=#4682b4 +hi NonText gui=None guibg=#0f0f0f guifg=#87cefa +hi Normal gui=None guibg=#000000 guifg=#e0ffff +hi Question gui=Bold guibg=bg guifg=#f4bb7e +hi Search gui=Bold guibg=#607b8b guifg=#000000 +hi SpecialKey gui=None guibg=bg guifg=#63b8ff +hi StatusLine gui=Bold guibg=#8db6cd guifg=#000000 +hi StatusLineNC gui=None guibg=#607b8b guifg=#1a1a1a +hi Title gui=Bold guibg=bg guifg=#5cacee +hi Visual gui=Reverse guibg=#ffffff guifg=#36648b +hi VisualNOS gui=Bold,Underline guibg=#4682b4 guifg=fg +hi WarningMsg gui=Bold guibg=bg guifg=#b22222 +hi WildMenu gui=Bold guibg=#607b8b guifg=#000000 +hi Comment gui=None guibg=#102520 guifg=#8db6cd +hi Constant gui=None guibg=bg guifg=#c34a2c +hi Identifier gui=None guibg=bg guifg=#009acd +hi Statement gui=None guibg=bg guifg=#72a5ee +hi PreProc gui=None guibg=bg guifg=#c12869 +hi Include gui=None guibg=bg guifg=#ccccff +hi Type gui=None guibg=bg guifg=#3b9c9c +hi Error gui=None guibg=#b22222 guifg=#ffffe0 +hi Todo gui=None guibg=#507080 guifg=#3bcccc +hi Ignore gui=None guibg=bg guifg=#777777 +hi TagName gui=None guibg=#660000 guifg=#a7a7a7 diff --git a/vim/colors/darkslategray.vim b/vim/colors/darkslategray.vim new file mode 100644 index 0000000..b36aef0 --- /dev/null +++ b/vim/colors/darkslategray.vim @@ -0,0 +1,117 @@ +" vim: set tw=0 sw=4 sts=4 et: + +" Vim color file +" Maintainer: Tuomas Susi +" Last Change: 2004 October 05 +" Version: 1.7 + +" Emacs in RedHat Linux used to have (still does?) a kind of 'Wheat on +" DarkSlateGray' color scheme by default. This color scheme is created in the +" same spirit. +" +" Darkslategray is intended to be nice to your eyes (low contrast) and to take +" advantage of syntax hilighting as much as possible. +" +" This color scheme is for the GUI only, I'm happy with default console colors. +" Needs at least vim 6.0. + + +" Init stuff + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "darkslategray" + + +" GUI colors + +hi Cursor guifg=fg guibg=#da70d6 +hi CursorIM guifg=NONE guibg=#ff83fa +hi Directory guifg=#e0ffff +hi DiffAdd guibg=#528b8b +hi DiffChange guibg=#8b636c +hi DiffDelete gui=bold guifg=fg guibg=#000000 +hi DiffText gui=bold guibg=#6959cd +hi ErrorMsg gui=bold guifg=#ffffff guibg=#ff0000 +hi VertSplit gui=bold guifg=#bdb76b guibg=#000000 +hi Folded guifg=#000000 guibg=#bdb76b +hi FoldColumn guifg=#000000 guibg=#bdb76b +hi SignColumn gui=bold guifg=#bdb76b guibg=#20b2aa +hi IncSearch gui=bold guifg=#000000 guibg=#ffffff +hi LineNr gui=bold guifg=#bdb76b guibg=#528b8b +hi ModeMsg gui=bold +hi MoreMsg gui=bold guifg=#20b2aa +hi NonText gui=bold guifg=#ffffff +hi Normal guibg=#2f4f4f guifg=#f5deb3 +hi Question gui=bold guifg=#ff6347 +hi Search gui=bold guifg=#000000 guibg=#ffd700 +hi SpecialKey guifg=#00ffff +hi StatusLine gui=bold guifg=#f0e68c guibg=#000000 +hi StatusLineNC guibg=#bdb76b guifg=#404040 +hi Title gui=bold guifg=#ff6347 +hi Visual guifg=#000000 guibg=fg +hi VisualNOS gui=bold guifg=#000000 guibg=fg +hi WarningMsg guifg=#ffffff guibg=#ff6347 +hi WildMenu gui=bold guifg=#000000 guibg=#ffff00 + + +" I use GTK and don't wanna change these +"hi Menu foobar +"hi Scrollbar foobar +"hi Tooltip foobar + + +" Colors for syntax highlighting +hi Comment guifg=#da70d6 + +hi Constant guifg=#cdcd00 + hi String guifg=#7fffd4 + hi Character guifg=#7fffd4 + hi Number guifg=#ff6347 + hi Boolean guifg=#cdcd00 + hi Float guifg=#ff6347 + +hi Identifier guifg=#afeeee + hi Function guifg=#ffffff + +hi Statement gui=bold guifg=#4682b4 + hi Conditional gui=bold guifg=#4682b4 + hi Repeat gui=bold guifg=#4682b4 + hi Label gui=bold guifg=#4682b4 + hi Operator gui=bold guifg=#4682b4 + hi Keyword gui=bold guifg=#4682b4 + hi Exception gui=bold guifg=#4682b4 + +hi PreProc guifg=#cdcd00 + hi Include guifg=#ffff00 + hi Define guifg=#cdcd00 + hi Macro guifg=#cdcd00 + hi PreCondit guifg=#cdcd00 + +hi Type gui=bold guifg=#98fb98 + hi StorageClass guifg=#00ff00 + hi Structure guifg=#20b2aa + hi Typedef guifg=#00ff7f + +hi Special guifg=#ff6347 + "Underline Character + hi SpecialChar gui=underline guifg=#7fffd4 + hi Tag guifg=#ff6347 + "Statement + hi Delimiter gui=bold guifg=#b0c4de + "Bold comment (in Java at least) + hi SpecialComment gui=bold guifg=#da70d6 + hi Debug gui=bold guifg=#ff0000 + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=#ffffff guibg=#ff0000 + +hi Todo gui=bold guifg=#000000 guibg=#ff83fa + diff --git a/vim/colors/darkspectrum.vim b/vim/colors/darkspectrum.vim new file mode 100644 index 0000000..42797b3 --- /dev/null +++ b/vim/colors/darkspectrum.vim @@ -0,0 +1,130 @@ +" Vim color file +" +" Author: Brian Mock +" +" Note: Based on Oblivion color scheme for gedit (gtk-source-view) +" +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +hi clear + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="darkspectrum" + +hi Normal guifg=#eeeeec guibg=#2e3436 + +" highlight groups +hi Cursor guibg=#ffffff guifg=#000000 +hi CursorLine guibg=#000000 +"hi CursorLine guibg=#3e4446 +hi CursorColumn guibg=#3e4446 + +"hi DiffText guibg=#4e9a06 guifg=#FFFFFF gui=bold +"hi DiffChange guibg=#4e9a06 guifg=#FFFFFF gui=bold +"hi DiffAdd guibg=#204a87 guifg=#FFFFFF gui=bold +"hi DiffDelete guibg=#5c3566 guifg=#FFFFFF gui=bold + +hi DiffAdd guifg=#ffcc7f guibg=#a67429 gui=none +hi DiffChange guifg=#7fbdff guibg=#425c78 gui=none +hi DiffText guifg=#8ae234 guibg=#4e9a06 gui=none +"hi DiffDelete guifg=#252723 guibg=#000000 gui=none +hi DiffDelete guifg=#000000 guibg=#000000 gui=none +"hi ErrorMsg + +hi Number guifg=#fce94f + +hi Folded guibg=#000000 guifg=#FFFFFF gui=bold +hi vimFold guibg=#000000 guifg=#FFFFFF gui=bold +hi FoldColumn guibg=#000000 guifg=#FFFFFF gui=bold + +hi LineNr guifg=#555753 guibg=#000000 +hi NonText guifg=#555753 guibg=#000000 +hi Folded guifg=#555753 guibg=#000000 gui=bold +hi FoldeColumn guifg=#555753 guibg=#000000 gui=bold +"hi VertSplit guibg=#ffffff guifg=#ffffff gui=none +hi VertSplit guibg=#c0c0c0 guifg=#c0c0c0 gui=none + +hi StatusLine guifg=#000000 guibg=#ffffff gui=none +hi StatusLineNC guifg=#000000 guibg=#C0C0C0 gui=none + +hi ModeMsg guifg=#fce94f +hi MoreMsg guifg=#fce94f +hi Visual guifg=#FFFFFF guibg=#3465a4 gui=none +hi VisualNOS guifg=#FFFFFF guibg=#204a87 gui=none +hi IncSearch guibg=#FFFFFF guifg=#ef5939 +hi Search guibg=#ad7fa8 guifg=#FFFFFF +hi SpecialKey guifg=#8ae234 + +hi Title guifg=#ef5939 +hi WarningMsg guifg=#ef5939 +hi Number guifg=#fcaf3e + +hi MatchParen guibg=#ad7fa8 guifg=#FFFFFF +hi Comment guifg=#888a85 +hi Constant guifg=#ef5939 gui=none +hi String guifg=#fce94f +hi Identifier guifg=#729fcf +hi Statement guifg=#ffffff gui=bold +hi PreProc guifg=#ffffff gui=bold +hi Type guifg=#8ae234 gui=bold +hi Special guifg=#e9b96e +hi Underlined guifg=#ad7fa8 gui=underline +hi Directory guifg=#729fcf +hi Ignore guifg=#555753 +hi Todo guifg=#FFFFFF guibg=#ef5939 gui=bold +hi Function guifg=#ad7fa8 + +"hi WildMenu guibg=#2e3436 guifg=#ffffff gui=bold +"hi WildMenu guifg=#7fbdff guibg=#425c78 gui=none +hi WildMenu guifg=#ffffff guibg=#3465a4 gui=none + +hi Pmenu guibg=#000000 guifg=#c0c0c0 +hi PmenuSel guibg=#3465a4 guifg=#ffffff +hi PmenuSbar guibg=#444444 guifg=#444444 +hi PmenuThumb guibg=#888888 guifg=#888888 + +hi cppSTLType guifg=#729fcf gui=bold + +hi spellBad guisp=#fcaf3e +hi spellCap guisp=#73d216 +hi spellRare guisp=#ad7fa8 +hi spellLocal guisp=#729fcf + +hi link cppSTL Function +hi link Error Todo +hi link Character Number +hi link rubySymbol Number +hi link htmlTag htmlEndTag +"hi link htmlTagName htmlTag +hi link htmlLink Underlined +hi link pythonFunction Identifier +hi link Question Type +hi link CursorIM Cursor +hi link VisualNOS Visual +hi link xmlTag Identifier +hi link xmlTagName Identifier +hi link shDeref Identifier +hi link shVariable Function +hi link rubySharpBang Special +hi link perlSharpBang Special +hi link schemeFunc Statement +"hi link shSpecialVariables Constant +"hi link bashSpecialVariables Constant + +" tabs (non gui) +hi TabLine guifg=#AAAAAA guibg=#000000 gui=none +hi TabLineFill guifg=#555753 guibg=#000000 gui=none +hi TabLineSel guifg=#FFFFFF gui=bold +"hi TabLineSel guifg=#FFFFFF guibg=#000000 gui=bold +" vim: sw=4 ts=4 diff --git a/vim/colors/darktango.vim b/vim/colors/darktango.vim new file mode 100644 index 0000000..657bebe --- /dev/null +++ b/vim/colors/darktango.vim @@ -0,0 +1,75 @@ +" Vim color file +" Name: DarkTango +" Maintainer: Panos Laganakos +" Version: 0.3 + + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name="darktango" + +hi Normal guibg=#2e3436 guifg=#d3d7cf + +" {{{ syntax +hi Comment guifg=#555753 +hi Title guifg=#eeeeec +hi Underlined guifg=#20b0eF gui=none +hi Statement guifg=#888a85 +hi Type guifg=#ce5c00 +hi PreProc guifg=#eeeeec +hi Constant guifg=#babdb6 +hi Identifier guifg=#ce5c00 +hi Special guifg=#eeeeec +hi Ignore guifg=#f57900 +hi Todo guibg=#ce5c00 guifg=#eeeeec +"hi Error +"}}} + +" {{{ groups +hi Cursor guibg=#babdb6 guifg=#2e3436 +"hi CursorIM +hi Directory guifg=#bbd0df +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +hi VertSplit guibg=#555753 guifg=#2e3436 gui=none +hi Folded guibg=#555753 guifg=#eeeeec +hi FoldColumn guibg=#2e3436 guifg=#555753 +hi LineNr guibg=#2e3436 guifg=#555753 +hi MatchParen guibg=#babdb6 guifg=#2e3436 +hi ModeMsg guifg=#ce5c00 +hi MoreMsg guifg=#ce5c00 +hi NonText guibg=#2e3436 guifg=#555753 +hi Question guifg=#aabbcc +hi Search guibg=#fce94f guifg=#c4a000 +hi IncSearch guibg=#c4a000 guifg=#fce94f +hi SpecialKey guifg=#ce5c00 +hi StatusLine guibg=#555753 guifg=#eeeeec gui=none +hi StatusLineNC guibg=#555753 guifg=#272334 gui=none +hi Visual guibg=#fcaf3e guifg=#ce5c00 +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar guibg=grey30 guifg=tan +"hi Tooltip +hi Pmenu guibg=#babdb6 guifg=#555753 +hi PmenuSel guibg=#eeeeec guifg=#2e3436 +hi CursorLine guibg=#212628 +" }}} + +" {{{ terminal +" TODO +" }}} + +"vim: sw=4 diff --git a/vim/colors/dawn.vim b/vim/colors/dawn.vim new file mode 100644 index 0000000..56e0614 --- /dev/null +++ b/vim/colors/dawn.vim @@ -0,0 +1,78 @@ +" Vim color file +" Maintainer: Ajit J. Thakkar (ajit AT unb DOT ca) +" Last Change: 2005 Nov. 24 +" Version: 1.5 +" URL: http://www.unb.ca/chem/ajit/vim.htm + +" This GUI-only color scheme has a light grey background, and is a softer +" variant of the default and morning color schemes. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "dawn" + +hi Normal guifg=Black guibg=grey90 +"hi Normal guifg=Black guibg=grey80 + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg gui=NONE guifg=Red guibg=Linen +hi IncSearch gui=NONE guifg=fg guibg=LightGreen +hi ModeMsg gui=NONE guifg=fg guibg=bg +hi StatusLine gui=NONE guifg=DarkBlue guibg=grey70 +hi StatusLineNC gui=NONE guifg=grey90 guibg=grey70 +hi VertSplit gui=NONE guifg=grey70 guibg=grey70 +hi Visual gui=reverse guifg=Grey guibg=fg +hi VisualNOS gui=underline,bold guifg=fg guibg=bg +hi DiffText gui=NONE guifg=Blue guibg=LightYellow +"hi DiffText gui=NONE guifg=Blue guibg=MistyRose2 +hi Cursor guifg=NONE guibg=Green +hi lCursor guifg=NONE guibg=Cyan +hi Directory guifg=Blue guibg=bg +hi LineNr guifg=Brown guibg=grey80 +hi MoreMsg gui=NONE guifg=SeaGreen guibg=bg +hi NonText gui=NONE guifg=Blue guibg=grey80 +hi Question gui=NONE guifg=SeaGreen guibg=bg +hi Search guifg=fg guibg=PeachPuff +hi SpecialKey guifg=Blue guibg=bg +hi Title gui=NONE guifg=Magenta guibg=bg +hi WarningMsg guifg=Red guibg=bg +hi WildMenu guifg=fg guibg=PeachPuff +hi Folded guifg=Grey40 guibg=bg " guifg=DarkBlue guibg=LightGrey +hi FoldColumn guifg=DarkBlue guibg=Grey +hi DiffAdd gui=NONE guifg=Blue guibg=LightCyan +hi DiffChange gui=NONE guifg=fg guibg=MistyRose2 +hi DiffDelete gui=NONE guifg=LightBlue guibg=LightCyan + +" Colors for syntax highlighting +hi Constant gui=NONE guifg=azure4 guibg=bg +"hi Constant gui=NONE guifg=DeepSkyBlue4 guibg=bg +hi String gui=NONE guifg=DarkOliveGreen4 guibg=bg +hi Special gui=NONE guifg=Cyan4 guibg=bg +hi Statement gui=NONE guifg=SlateBlue4 guibg=bg +hi Operator gui=NONE guifg=Purple guibg=bg +hi Ignore gui=NONE guifg=bg guibg=bg +if v:version >= 700 + hi SpellBad gui=undercurl guisp=DeepPink1 guifg=fg guibg=bg + hi SpellCap gui=undercurl guisp=Blue guifg=fg guibg=bg + hi SpellRare gui=undercurl guisp=Black guifg=fg guibg=bg + hi SpellLocal gui=undercurl guisp=SeaGreen guifg=fg guibg=bg +endif +hi ToDo gui=NONE guifg=DeepPink1 guibg=bg +hi Error gui=NONE guifg=Red guibg=Linen +hi Comment gui=NONE guifg=RoyalBlue guibg=NONE +hi Identifier gui=NONE guifg=DodgerBlue3 guibg=NONE +"hi Identifier gui=NONE guifg=SteelBlue4 guibg=NONE +hi PreProc gui=NONE guifg=Magenta4 guibg=NONE +hi Type gui=NONE guifg=Brown guibg=NONE +hi Underlined gui=underline guifg=SlateBlue guibg=bg +"if exists("g:minimal_colors") +" hi Statement gui=NONE guifg=fg guibg=bg +" hi Identifier gui=NONE guifg=fg guibg=bg +" hi Type gui=NONE guifg=fg guibg=bg +"endif + +" vim: sw=2 diff --git a/vim/colors/delek.vim b/vim/colors/delek.vim new file mode 100644 index 0000000..b63f0c9 --- /dev/null +++ b/vim/colors/delek.vim @@ -0,0 +1,57 @@ +" Vim color file +" Maintainer: David Schweikert +" Last Change: 2001 Mai 14 + +" First remove all existing highlighting. +hi clear + +let colors_name = "delek" + +hi Normal guifg=Black guibg=white + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White +hi IncSearch term=reverse cterm=reverse gui=reverse +hi ModeMsg term=bold cterm=bold gui=bold +hi VertSplit term=reverse cterm=reverse gui=reverse +hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey guibg=fg +hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold +hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red +hi Cursor guibg=Green guifg=NONE +hi lCursor guibg=Cyan guifg=NONE +hi Directory term=bold ctermfg=DarkBlue guifg=Blue +hi LineNr term=underline ctermfg=Brown guifg=Brown +hi MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi Search term=reverse ctermbg=Yellow ctermfg=NONE guibg=Yellow guifg=NONE +hi SpecialKey term=bold ctermfg=DarkBlue guifg=Blue +hi Title term=bold ctermfg=DarkMagenta gui=bold guifg=Magenta +hi WarningMsg term=standout ctermfg=DarkRed guifg=Red +hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi Folded term=standout ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue +hi FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue +hi DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue +hi DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta +hi DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan + +hi StatusLine cterm=bold ctermbg=blue ctermfg=yellow guibg=gold guifg=blue +hi StatusLineNC cterm=bold ctermbg=blue ctermfg=black guibg=gold guifg=blue +hi NonText term=bold ctermfg=Blue gui=bold guifg=gray guibg=white +hi Cursor guibg=fg guifg=bg + +" syntax highlighting +hi PreProc term=underline cterm=NONE ctermfg=darkmagenta gui=NONE guifg=magenta3 +hi Identifier term=underline cterm=NONE ctermfg=darkcyan gui=NONE guifg=cyan4 +hi Comment term=NONE cterm=NONE ctermfg=darkred gui=NONE guifg=red2 +hi Constant term=underline cterm=NONE ctermfg=darkgreen gui=NONE guifg=green3 +hi Special term=bold cterm=NONE ctermfg=lightred gui=NONE guifg=deeppink +hi Statement term=bold cterm=bold ctermfg=blue gui=bold guifg=blue +hi Type term=underline cterm=NONE ctermfg=blue gui=bold guifg=blue + +if exists("syntax_on") + let syntax_cmd = "enable" + runtime syntax/syncolor.vim + unlet syntax_cmd +endif + +" vim: sw=2 diff --git a/vim/colors/denim.vim b/vim/colors/denim.vim new file mode 100644 index 0000000..7ca21b7 --- /dev/null +++ b/vim/colors/denim.vim @@ -0,0 +1,141 @@ +" Maintainer: Tim Aldrich +" Last Change: 19 November 2001 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="denim" +" GUI colors {{{ +hi Normal guifg=#FFFFFF guibg=#000038 +hi Cursor guifg=#000038 guibg=#FFFFFF +hi CursorIM guifg=#6699CC guibg=#99CCCC +hi Directory guifg=#33CCFF guibg=#6699CC +hi DiffAdd guifg=#FFFFCC guibg=#000038 +hi DiffChange guifg=#FF9900 guibg=#000038 +hi DiffDelete guifg=#999999 guibg=#000038 +hi DiffText guifg=#FFFFFF guibg=#000038 +hi ErrorMsg guifg=#FFFFFF guibg=#FF0000 +hi VertSplit guifg=#FFFFFF guibg=#000038 +hi Folded guifg=#999999 guibg=#003366 +hi FoldColumn guifg=#0000EE guibg=#6699CC +hi IncSearch guifg=#FFFF00 guibg=#000038 +hi LineNr guifg=#FFFFEE guibg=#000038 +hi ModeMsg guifg=#FFFFFF guibg=#000038 +hi MoreMsg guifg=#FFFFFF guibg=#000038 +hi NonText guifg=#FFFFFF guibg=#00003D +hi Question guifg=#FFFFFF guibg=#0000EE +hi Search guifg=#993300 guibg=#6699CC +hi SpecialKey guifg=#FFFF00 guibg=#000038 +hi StatusLine guifg=#FFFFFF guibg=#000038 +hi StatusLineNC guifg=#CCCCCC guibg=#000038 +hi Title guifg=#FFFFFF guibg=#FF9900 +hi Visual guifg=#003366 guibg=#6699FF +hi WarningMsg guifg=#FF0000 guibg=#FFFFFF +hi WildMenu guifg=#000038 guibg=#999999 +" }}} + +" cterm colors {{{ +hi Normal ctermfg=white ctermbg=darkblue +hi Cursor ctermfg=darkblue ctermbg=white +hi CursorIM ctermfg=lightcyan ctermbg=lightcyan +hi Directory ctermfg=lightblue ctermbg=lightcyan +hi DiffAdd ctermfg=LightYellow ctermbg=darkblue +hi DiffChange ctermfg=darkred ctermbg=darkblue +hi DiffDelete ctermfg=grey ctermbg=darkblue +hi DiffText ctermfg=white ctermbg=darkblue +hi ErrorMsg ctermfg=red ctermbg=lightcyan +hi VertSplit ctermfg=white ctermbg=darkblue +hi Folded ctermfg=grey ctermbg=darkblue +hi FoldColumn ctermfg=darkred ctermbg=lightcyan +hi IncSearch ctermfg=yellow ctermbg=darkblue +hi LineNr ctermfg=lightyellow ctermbg=darkblue +hi ModeMsg ctermfg=white ctermbg=darkblue +hi MoreMsg ctermfg=white ctermbg=darkblue +hi NonText ctermfg=white ctermbg=lightblue +hi Question ctermfg=white ctermbg=darkblue +hi Search ctermfg=darkred ctermbg=lightcyan +hi SpecialKey ctermfg=yellow ctermbg=darkblue +hi StatusLine ctermfg=white ctermbg=darkblue +hi StatusLineNC ctermfg=lightgrey ctermbg=darkblue +hi Title ctermfg=white ctermbg=yellow +hi Visual ctermfg=lightblue ctermbg=cyan +hi WarningMsg ctermfg=red ctermbg=white +hi WildMenu ctermfg=darkblue ctermbg=grey +" }}} + +" GUI hilight groups {{{ + +hi Comment guifg=#999999 +hi Constant guifg=#33FF33 +hi String guifg=#CCCC99 +hi Character guifg=#33FF33 +hi Number guifg=#33FF33 +hi Boolean guifg=#33FF33 +hi Float guifg=#33FF33 +hi Identifier guifg=#33FFFF +hi Function guifg=#33FFFF +hi Statement guifg=#FFFFCC +hi Conditional guifg=#FFFFCC +hi Repeat guifg=#FFFFCC +hi Label guifg=#33FF99 +hi Operator guifg=#FFFF00 +hi Keyword guifg=#FFFF00 +hi Exception guifg=#FFFFAA +hi PreProc guifg=#66CCFF +hi Include guifg=#66CCFF +hi Define guifg=#66CCFF +hi Macro guifg=#66CCFF +hi PreCondit guifg=#66CCFF +hi Type guifg=#33FF99 +hi StorageClass guifg=#33FF99 +hi Structure guifg=#33FF99 +hi Typedef guifg=#33FF99 +hi Special guifg=#00FF00 +hi SpecialChar guifg=#00FF00 +hi Tag guifg=#CCCCFF +hi Delimiter guifg=#CCCCFF +hi SpecialComment guifg=#FFFFCC +hi Debug guifg=#CC3300 +hi Ignore guifg=#0066AA +hi Error guifg=#FF0000 guibg=#FFFFFF +hi Todo guifg=#999999 guibg=#FFFFFF +" }}} + +" cterm hilight groups {{{ +hi Comment ctermfg=grey +hi Constant ctermfg=lightgreen +hi String ctermfg=brown +hi Character ctermfg=lightgreen +hi Number ctermfg=lightgreen +hi Boolean ctermfg=lightgreen +hi Float ctermfg=lightgreen +hi Identifier ctermfg=lightcyan +hi Function ctermfg=lightcyan +hi Statement ctermfg=lightyellow +hi Conditional ctermfg=lightyellow +hi Repeat ctermfg=lightyellow +hi Label ctermfg=lightcyan +hi Operator ctermfg=yellow +hi Keyword ctermfg=yellow +hi Exception ctermfg=yellow +hi PreProc ctermfg=darkcyan +hi Include ctermfg=darkcyan +hi Define ctermfg=darkcyan +hi Macro ctermfg=darkcyan +hi PreCondit ctermfg=darkcyan +hi Type ctermfg=lightcyan +hi StorageClass ctermfg=lightcyan +hi Structure ctermfg=lightcyan +hi Typedef ctermfg=lightcyan +hi Special ctermfg=green +hi SpecialChar ctermfg=green +hi Tag ctermfg=brown +hi Delimiter ctermfg=brown +hi SpecialComment ctermfg=lightyellow +hi Debug ctermfg=magenta +hi Ignore ctermfg=lightblue +hi Error ctermfg=red ctermbg=white +hi Todo ctermfg=grey ctermbg=white +" }}} diff --git a/vim/colors/desert.vim b/vim/colors/desert.vim new file mode 100644 index 0000000..793410f --- /dev/null +++ b/vim/colors/desert.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Hans Fugal +" Last Change: $Date: 2003/06/02 19:28:15 $ +" URL: http://hans.fugal.net/vim/colors/desert.vim + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="desert" + +hi Normal guifg=White guibg=grey20 + +" highlight groups +hi Cursor guibg=khaki guifg=slategrey +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none +hi Folded guibg=grey30 guifg=gold +hi FoldColumn guibg=grey30 guifg=tan +hi IncSearch guifg=slategrey guibg=khaki +"hi LineNr +hi ModeMsg guifg=goldenrod +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=grey30 +hi Question guifg=springgreen +hi Search guibg=peru guifg=wheat +hi SpecialKey guifg=yellowgreen +hi StatusLine guibg=#c2bfa5 guifg=black gui=none +hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none +hi Title guifg=indianred +hi Visual gui=none guifg=khaki guibg=olivedrab +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=SkyBlue +hi Constant guifg=#ffa0a0 +hi Identifier guifg=palegreen +hi Statement guifg=khaki +hi PreProc guifg=indianred +hi Type guifg=darkkhaki +hi Special guifg=navajowhite +"hi Underlined +hi Ignore guifg=grey40 +"hi Error +hi Todo guifg=orangered guibg=yellow2 + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + + +"vim: sw=4 diff --git a/vim/colors/desert256.vim b/vim/colors/desert256.vim new file mode 100644 index 0000000..7a97742 --- /dev/null +++ b/vim/colors/desert256.vim @@ -0,0 +1,338 @@ +" Vim color file +" Maintainer: Henry So, Jr. + +" These are the colors of the "desert" theme by Hans Fugal with a few small +" modifications (namely that I lowered the intensity of the normal white and +" made the normal and nontext backgrounds black), modified to work with 88- +" and 256-color xterms. +" +" The original "desert" theme is available as part of the vim distribution or +" at http://hans.fugal.net/vim/colors/. +" +" The real feature of this color scheme, with a wink to the "inkpot" theme, is +" the programmatic approximation of the gui colors to the palettes of 88- and +" 256- color xterms. The functions that do this (folded away, for +" readability) are calibrated to the colors used for Thomas E. Dickey's xterm +" (version 200), which is available at http://dickey.his.com/xterm/xterm.html. +" +" I struggled with trying to parse the rgb.txt file to avoid the necessity of +" converting color names to #rrggbb form, but decided it was just not worth +" the effort. Maybe someone seeing this may decide otherwise... + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="desert256" + +if has("gui_running") || &t_Co == 88 || &t_Co == 256 + " functions {{{ + " returns an approximate grey index for the given grey level + fun grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif + endfun + + " returns the actual grey level represented by the grey index + fun grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif + endfun + + " returns the palette index for the given grey index + fun grey_color(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif + endfun + + " returns an approximate color index for the given color level + fun rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif + endfun + + " returns the actual color level for the given color index + fun rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif + endfun + + " returns the palette index for the given R/G/B color indices + fun rgb_color(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif + endfun + + " returns the palette index to approximate the given R/G/B color levels + fun color(r, g, b) + " get the closest grey + let l:gx = grey_number(a:r) + let l:gy = grey_number(a:g) + let l:gz = grey_number(a:b) + + " get the closest color + let l:x = rgb_number(a:r) + let l:y = rgb_number(a:g) + let l:z = rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = grey_level(l:gx) - a:r + let l:dgg = grey_level(l:gy) - a:g + let l:dgb = grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = rgb_level(l:gx) - a:r + let l:dg = rgb_level(l:gy) - a:g + let l:db = rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " use the grey + return grey_color(l:gx) + else + " use the color + return rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return rgb_color(l:x, l:y, l:z) + endif + endfun + + " returns the palette index to approximate the 'rrggbb' hex string + fun rgb(rgb) + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + + return color(l:r, l:g, l:b) + endfun + + " sets the highlighting for the given group + fun X(group, fg, bg, attr) + if a:fg != "" + exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . rgb(a:fg) + endif + if a:bg != "" + exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . rgb(a:bg) + endif + if a:attr != "" + exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr + endif + endfun + " }}} + + call X("Normal", "cccccc", "000000", "") + + " highlight groups + call X("Cursor", "708090", "f0e68c", "") + "CursorIM + "Directory + "DiffAdd + "DiffChange + "DiffDelete + "DiffText + "ErrorMsg + call X("VertSplit", "c2bfa5", "7f7f7f", "reverse") + call X("Folded", "ffd700", "4d4d4d", "") + call X("FoldColumn", "d2b48c", "4d4d4d", "") + call X("IncSearch", "708090", "f0e68c", "") + "LineNr + call X("ModeMsg", "daa520", "", "") + call X("MoreMsg", "2e8b57", "", "") + call X("NonText", "addbe7", "000000", "bold") + call X("Question", "00ff7f", "", "") + call X("Search", "f5deb3", "cd853f", "") + call X("SpecialKey", "9acd32", "", "") + call X("StatusLine", "c2bfa5", "000000", "reverse") + call X("StatusLineNC", "c2bfa5", "7f7f7f", "reverse") + call X("Title", "cd5c5c", "", "") + call X("Visual", "6b8e23", "f0e68c", "reverse") + "VisualNOS + call X("WarningMsg", "fa8072", "", "") + "WildMenu + "Menu + "Scrollbar + "Tooltip + + " syntax highlighting groups + call X("Comment", "87ceeb", "", "") + call X("Constant", "ffa0a0", "", "") + call X("Identifier", "98fb98", "", "none") + call X("Statement", "f0e68c", "", "bold") + call X("PreProc", "cd5c5c", "", "") + call X("Type", "bdb76b", "", "bold") + call X("Special", "ffdead", "", "") + "Underlined + call X("Ignore", "666666", "", "") + "Error + call X("Todo", "ff4500", "eeee00", "") + + " delete functions {{{ + delf X + delf rgb + delf color + delf rgb_color + delf rgb_level + delf rgb_number + delf grey_color + delf grey_level + delf grey_number + " }}} +else + " color terminal definitions + hi SpecialKey ctermfg=darkgreen + hi NonText cterm=bold ctermfg=darkblue + hi Directory ctermfg=darkcyan + hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 + hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green + hi Search cterm=NONE ctermfg=grey ctermbg=blue + hi MoreMsg ctermfg=darkgreen + hi ModeMsg cterm=NONE ctermfg=brown + hi LineNr ctermfg=3 + hi Question ctermfg=green + hi StatusLine cterm=bold,reverse + hi StatusLineNC cterm=reverse + hi VertSplit cterm=reverse + hi Title ctermfg=5 + hi Visual cterm=reverse + hi VisualNOS cterm=bold,underline + hi WarningMsg ctermfg=1 + hi WildMenu ctermfg=0 ctermbg=3 + hi Folded ctermfg=darkgrey ctermbg=NONE + hi FoldColumn ctermfg=darkgrey ctermbg=NONE + hi DiffAdd ctermbg=4 + hi DiffChange ctermbg=5 + hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 + hi DiffText cterm=bold ctermbg=1 + hi Comment ctermfg=darkcyan + hi Constant ctermfg=brown + hi Special ctermfg=5 + hi Identifier ctermfg=6 + hi Statement ctermfg=3 + hi PreProc ctermfg=5 + hi Type ctermfg=2 + hi Underlined cterm=underline ctermfg=5 + hi Ignore ctermfg=darkgrey + hi Error cterm=bold ctermfg=7 ctermbg=1 +endif + +" vim: set fdl=0 fdm=marker: diff --git a/vim/colors/desertEx.vim b/vim/colors/desertEx.vim new file mode 100644 index 0000000..8f013fd --- /dev/null +++ b/vim/colors/desertEx.vim @@ -0,0 +1,98 @@ +" Vim color file +" Maintainer: Mingbai +" Last Change: 2006-12-24 20:09:09 + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="desertEx" + +hi Normal guifg=gray guibg=grey17 gui=none + +" AlignCtrl default +" AlignCtrl =P0 guifg guibg gui +" Align + +" highlight groups +hi Cursor guifg=black guibg=yellow gui=none +hi ErrorMsg guifg=white guibg=red gui=none +hi VertSplit guifg=gray40 guibg=gray40 gui=none +hi Folded guifg=DarkSlateGray3 guibg=grey30 gui=none +hi FoldColumn guifg=tan guibg=grey30 gui=none +hi IncSearch guifg=#b0ffff guibg=#2050d0 +hi LineNr guifg=burlywood3 gui=none +hi ModeMsg guifg=SkyBlue gui=none +hi MoreMsg guifg=SeaGreen gui=none +hi NonText guifg=cyan gui=none +hi Question guifg=springgreen gui=none +hi Search guifg=gray80 guibg=#445599 gui=none +hi SpecialKey guifg=cyan gui=none +hi StatusLine guifg=black guibg=#c2bfa5 gui=bold +hi StatusLineNC guifg=grey guibg=gray40 gui=none +hi Title guifg=indianred gui=none +hi Visual guifg=gray17 guibg=tan1 gui=none +hi WarningMsg guifg=salmon gui=none +hi Pmenu guifg=white guibg=#445599 gui=none +hi PmenuSel guifg=#445599 guibg=gray +hi WildMenu guifg=gray guibg=gray17 gui=none +hi MatchParen guifg=cyan guibg=NONE gui=bold +hi DiffAdd guifg=black guibg=wheat1 +hi DiffChange guifg=black guibg=skyblue1 +hi DiffText guifg=black guibg=hotpink1 gui=none +hi DiffDelete guibg=gray45 guifg=black gui=none + + + +" syntax highlighting groups +hi Comment guifg=PaleGreen3 gui=italic +hi Constant guifg=salmon gui=none +hi Identifier guifg=Skyblue gui=none +hi Function guifg=Skyblue gui=none +hi Statement guifg=lightgoldenrod2 gui=none +hi PreProc guifg=PaleVioletRed2 gui=none +hi Type guifg=tan1 gui=none +hi Special guifg=aquamarine2 gui=none +hi Ignore guifg=grey40 gui=none +hi Todo guifg=orangered guibg=yellow2 gui=none + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 diff --git a/vim/colors/desertedocean.vim b/vim/colors/desertedocean.vim new file mode 100644 index 0000000..8da96d1 --- /dev/null +++ b/vim/colors/desertedocean.vim @@ -0,0 +1,115 @@ +" Vim color file +" desertedocean v0.5 +" Maintainer: Shawn Axsom +" [axs221.1l.com] + +" desertedocean, a colorscheme using the desert colorscheme as a template, based loosely off of desert, oceandeep, and zenburn. +" +" With thanks to Panos Laganakos + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name="desertedocean" + +hi Normal guifg=#FFE0FA guibg=#122130 + +" syntax highlighting +hi Comment guifg=#6Aa0e0 +hi Title guifg=#00aBdF +hi Underlined guifg=#20b0eF gui=none +hi Statement guifg=#eF7a7a +hi Type guifg=#dAa0b0 +hi PreProc guifg=#FF7A9a +hi Constant guifg=#EE8aB5 " or #FF707A +hi Identifier guifg=#FFe0bd +hi Special guifg=#8cf0ff +hi Ignore guifg=grey40 +hi Todo guifg=orangered guibg=yellow2 +"hi Error +"end syntax highlighting + +" highlight groups +hi Cursor guibg=#007799 guifg=#00D0D0 +"hi CursorIM +hi Directory guifg=#bbd0df +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none +hi Folded guibg=#337799 guifg=#BBDDCC +hi FoldColumn guibg=#337799 guifg=#00CCFF +hi LineNr guifg=#CCF0FF guibg=#006688 +hi ModeMsg guifg=#00AACC +hi MoreMsg guifg=SeaGreen +hi NonText guifg=#285960 guibg=#2A374A +hi Question guifg=#AABBCC +hi Search guibg=slategrey guifg=#FFDABB +hi IncSearch guifg=slategrey guibg=#FFDFB0 +hi SpecialKey guifg=#00CCBB " blue green +hi StatusLine guibg=#00A5EA guifg=#050709 gui=none +hi StatusLineNC guibg=#1079B0 guifg=#272334 gui=none +hi Visual guifg=#008FBF guibg=#33DFEF +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar guibg=grey30 guifg=tan +"hi Tooltip + +hi Pmenu guifg=#6Aa0e0 guibg=#222f3d +hi PmenuSel guifg=#FFFFFF guibg=#0088bb + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore cterm=bold ctermfg=7 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + + +"vim: sw=4 diff --git a/vim/colors/dusk.vim b/vim/colors/dusk.vim new file mode 100644 index 0000000..df3c776 --- /dev/null +++ b/vim/colors/dusk.vim @@ -0,0 +1,71 @@ +" Vim color file +" Maintainer: Ajit J. Thakkar (ajit AT unb DOT ca) +" Last Change: 2005 Nov. 21 +" Version: 1.1 +" URL: http://www.unb.ca/chem/ajit/vim.htm + +" This GUI-only color scheme has a blue-black background + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "dusk" + +hi Normal guifg=ivory guibg=#1f3048 + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg gui=NONE guifg=Red guibg=Linen +hi IncSearch gui=NONE guibg=LightGreen guifg=Black +hi ModeMsg gui=NONE guifg=fg guibg=bg +hi StatusLine gui=NONE guifg=DarkBlue guibg=Grey +hi StatusLineNC gui=NONE guifg=Grey50 guibg=Grey +hi VertSplit gui=NONE guifg=Grey guibg=Grey +hi Visual gui=reverse guifg=fg guibg=LightSkyBlue4 +hi VisualNOS gui=underline guifg=fg guibg=bg +hi DiffText gui=NONE guifg=Yellow guibg=LightSkyBlue4 +hi Cursor guibg=Green guifg=Black +hi lCursor guibg=Cyan guifg=Black +hi Directory guifg=LightGreen guibg=bg +hi LineNr guifg=MistyRose3 guibg=bg +hi MoreMsg gui=NONE guifg=SeaGreen guibg=bg +hi NonText gui=NONE guifg=Cyan4 guibg=#102848 +hi Question gui=NONE guifg=LimeGreen guibg=bg +hi Search gui=NONE guifg=SkyBlue4 guibg=Bisque +hi SpecialKey guifg=Cyan guibg=bg +hi Title gui=NONE guifg=Yellow2 guibg=bg +hi WarningMsg guifg=Tomato3 guibg=Linen +hi WildMenu gui=NONE guifg=SkyBlue4 guibg=Bisque +"hi Folded guifg=MistyRose2 guibg=bg +hi Folded guifg=MistyRose2 guibg=#102848 +hi FoldColumn guifg=DarkBlue guibg=Grey +hi DiffAdd gui=NONE guifg=Blue guibg=LightCyan +hi DiffChange gui=NONE guifg=white guibg=LightCyan4 +hi DiffDelete gui=NONE guifg=LightBlue guibg=LightCyan + +" Colors for syntax highlighting +hi Constant gui=NONE guifg=MistyRose3 guibg=bg +hi String gui=NONE guifg=LightBlue3 guibg=bg +hi Special gui=NONE guifg=GoldenRod guibg=bg +hi Statement gui=NONE guifg=khaki guibg=bg +"hi Statement gui=NONE guifg=#d7cd7b guibg=bg +hi Operator gui=NONE guifg=Chartreuse guibg=bg +hi Ignore gui=NONE guifg=bg guibg=bg +if v:version >= 700 + hi SpellBad gui=undercurl guisp=Red guifg=fg guibg=bg + hi SpellCap gui=undercurl guisp=GoldenRod guifg=fg guibg=bg + hi SpellRare gui=undercurl guisp=Ivory guifg=fg guibg=bg + hi SpellLocal gui=undercurl guisp=SeaGreen guifg=fg guibg=bg +endif +hi ToDo gui=NONE guifg=DodgerBlue guibg=bg +hi Error gui=NONE guifg=Red guibg=Linen +hi Comment gui=NONE guifg=SlateGrey guibg=bg +"hi Comment gui=NONE guifg=Lavender guibg=bg +hi Identifier gui=NONE guifg=BlanchedAlmond guibg=bg +hi PreProc gui=NONE guifg=#ffa0a0 guibg=bg +hi Type gui=NONE guifg=NavajoWhite guibg=bg +hi Underlined gui=underline guifg=fg guibg=bg + +" vim: sw=2 diff --git a/vim/colors/dw_blue.vim b/vim/colors/dw_blue.vim new file mode 100644 index 0000000..bba8c2f --- /dev/null +++ b/vim/colors/dw_blue.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_blue.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_blue" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#0000ff +hi cDefine guifg=#0000ff +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#0000ff +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#000011 +hi CursorLine guibg=#000018 +hi DiffAdd guibg=#333333 guifg=#0000ff +hi DiffChange guibg=#333333 guifg=#0000ff +hi DiffDelete guibg=#333333 guifg=#0000ff +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#0000ff +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#0000ff +hi Identifier guibg=#000000 guifg=#0000cc +hi IncSearch gui=none guibg=#0000bb guifg=#000000 +hi LineNr guibg=#000000 guifg=#000088 +hi MatchParen gui=none guibg=#222222 guifg=#0000ff +hi ModeMsg guibg=#000000 guifg=#0000ff +hi MoreMsg guibg=#000000 guifg=#0000ff +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#0000ff +hi Search gui=none guibg=#0000ff guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#0000ff +hi Statement gui=bold guifg=#0000ff +hi StatusLine gui=none guibg=#0000ff guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#0000bb +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#0000aa guifg=#000000 +hi Title gui=none guifg=#0000ff +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#0000dd guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/vim/colors/dw_cyan.vim b/vim/colors/dw_cyan.vim new file mode 100644 index 0000000..158d578 --- /dev/null +++ b/vim/colors/dw_cyan.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_cyan.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_cyan" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#00ffff +hi cDefine guifg=#00ffff +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#00ffff +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#001111 +hi CursorLine guibg=#001818 +hi DiffAdd guibg=#333333 guifg=#00ffff +hi DiffChange guibg=#333333 guifg=#00ffff +hi DiffDelete guibg=#333333 guifg=#00ffff +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#00ffff +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#00ffff +hi Identifier guibg=#000000 guifg=#00cccc +hi IncSearch gui=none guibg=#00bbbb guifg=#000000 +hi LineNr guibg=#000000 guifg=#008888 +hi MatchParen gui=none guibg=#222222 guifg=#00ffff +hi ModeMsg guibg=#000000 guifg=#00ffff +hi MoreMsg guibg=#000000 guifg=#00ffff +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#00ffff +hi Search gui=none guibg=#00ffff guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#00ffff +hi Statement gui=bold guifg=#00ffff +hi StatusLine gui=none guibg=#00ffff guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#00bbbb +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#00aaaa guifg=#000000 +hi Title gui=none guifg=#00ffff +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#00dddd guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/vim/colors/dw_green.vim b/vim/colors/dw_green.vim new file mode 100644 index 0000000..de742f9 --- /dev/null +++ b/vim/colors/dw_green.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_green.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_green" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#00ff00 +hi cDefine guifg=#00ff00 +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#00ff00 +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#001100 +hi CursorLine guibg=#001800 +hi DiffAdd guibg=#333333 guifg=#00ff00 +hi DiffChange guibg=#333333 guifg=#00ff00 +hi DiffDelete guibg=#333333 guifg=#00ff00 +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#00ff00 +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#00ff00 +hi Identifier guibg=#000000 guifg=#00bb00 +hi IncSearch gui=none guibg=#00bb00 guifg=#000000 +hi LineNr guibg=#000000 guifg=#008800 +hi MatchParen gui=none guibg=#222222 guifg=#00ff00 +hi ModeMsg guibg=#000000 guifg=#00ff00 +hi MoreMsg guibg=#000000 guifg=#00ff00 +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#00ff00 +hi Search gui=none guibg=#00ff00 guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#00ff00 +hi Statement gui=bold guifg=#00ff00 +hi StatusLine gui=none guibg=#008800 guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#00bb00 +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#00aa00 guifg=#000000 +hi Title gui=none guifg=#00ff00 +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#00dd00 guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/vim/colors/dw_orange.vim b/vim/colors/dw_orange.vim new file mode 100644 index 0000000..b36b312 --- /dev/null +++ b/vim/colors/dw_orange.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_orange.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_orange" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#ffff00 +hi cDefine guifg=#ffff00 +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#ffff00 +hi Cursor guibg=#555555 guifg=#000000 +hi CursorColumn guibg=#140500 +hi CursorLine guibg=#260a00 +hi DiffAdd guibg=#333333 guifg=#ffff00 +hi DiffChange guibg=#333333 guifg=#ffff00 +hi DiffDelete guibg=#333333 guifg=#ffff00 +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#ffffff +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guifg=#ffff00 +hi Identifier guibg=#000000 guifg=#d13800 +hi IncSearch gui=none guibg=#bf3300 guifg=#000000 +hi LineNr guibg=#000000 guifg=#de3b00 +hi MatchParen gui=none guibg=#000000 guifg=#ffff00 +hi ModeMsg guibg=#000000 guifg=#ff4400 +hi MoreMsg guibg=#000000 guifg=#ffff00 +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#ffff00 +hi Search gui=none guibg=#ff4400 guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffa600 +hi SpecialKey guibg=#000000 guifg=#ff4400 +hi Statement gui=bold guifg=#ff4400 +hi StatusLine gui=none guibg=#ff3200 guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#d13800 +hi TabLine gui=none guibg=#555555 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#ff4400 guifg=#000000 +hi Title gui=none guifg=#ffffff +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#d13800 guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/vim/colors/dw_purple.vim b/vim/colors/dw_purple.vim new file mode 100644 index 0000000..59dc8dd --- /dev/null +++ b/vim/colors/dw_purple.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_purple.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_purple" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#ff00ff +hi cDefine guifg=#ff00ff +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#ff00ff +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#110011 +hi CursorLine guibg=#180018 +hi DiffAdd guibg=#333333 guifg=#ff00ff +hi DiffChange guibg=#333333 guifg=#ff00ff +hi DiffDelete guibg=#333333 guifg=#ff00ff +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#ff00ff +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#ff00ff +hi Identifier guibg=#000000 guifg=#cc00cc +hi IncSearch gui=none guibg=#bb00bb guifg=#000000 +hi LineNr guibg=#000000 guifg=#880088 +hi MatchParen gui=none guibg=#222222 guifg=#ff00ff +hi ModeMsg guibg=#000000 guifg=#ff00ff +hi MoreMsg guibg=#000000 guifg=#ff00ff +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#ff00ff +hi Search gui=none guibg=#ff00ff guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#ff00ff +hi Statement gui=bold guifg=#ff00ff +hi StatusLine gui=none guibg=#ff00ff guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#bb00bb +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#aa00aa guifg=#000000 +hi Title gui=none guifg=#ff00ff +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#dd00dd guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/vim/colors/dw_red.vim b/vim/colors/dw_red.vim new file mode 100644 index 0000000..c8a2c80 --- /dev/null +++ b/vim/colors/dw_red.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_red.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_red" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#ff0000 +hi cDefine guifg=#ff0000 +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#ff0000 +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#110000 +hi CursorLine guibg=#180000 +hi DiffAdd guibg=#333333 guifg=#ff0000 +hi DiffChange guibg=#333333 guifg=#ff0000 +hi DiffDelete guibg=#333333 guifg=#ff0000 +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#ff0000 +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#ff0000 +hi Identifier guibg=#000000 guifg=#cc0000 +hi IncSearch gui=none guibg=#bb0000 guifg=#000000 +hi LineNr guibg=#000000 guifg=#880000 +hi MatchParen gui=none guibg=#222222 guifg=#ff0000 +hi ModeMsg guibg=#000000 guifg=#ff0000 +hi MoreMsg guibg=#000000 guifg=#ff0000 +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#ff0000 +hi Search gui=none guibg=#ff0000 guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#ff0000 +hi Statement gui=bold guifg=#ff0000 +hi StatusLine gui=none guibg=#ff0000 guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#bb0000 +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#aa0000 guifg=#000000 +hi Title gui=none guifg=#ff0000 +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#dd0000 guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/vim/colors/dw_yellow.vim b/vim/colors/dw_yellow.vim new file mode 100644 index 0000000..011b092 --- /dev/null +++ b/vim/colors/dw_yellow.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_yellow.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_yellow" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#ffff00 +hi cDefine guifg=#ffff00 +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#ffff00 +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#111100 +hi CursorLine guibg=#181800 +hi DiffAdd guibg=#333333 guifg=#ffff00 +hi DiffChange guibg=#333333 guifg=#ffff00 +hi DiffDelete guibg=#333333 guifg=#ffff00 +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#ffff00 +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#ffff00 +hi Identifier guibg=#000000 guifg=#cccc00 +hi IncSearch gui=none guibg=#bbbb00 guifg=#000000 +hi LineNr guibg=#000000 guifg=#888800 +hi MatchParen gui=none guibg=#222222 guifg=#ffff00 +hi ModeMsg guibg=#000000 guifg=#ffff00 +hi MoreMsg guibg=#000000 guifg=#ffff00 +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#ffff00 +hi Search gui=none guibg=#ffff00 guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#ffff00 +hi Statement gui=bold guifg=#ffff00 +hi StatusLine gui=none guibg=#ffff00 guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#bbbb00 +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#aaaa00 guifg=#000000 +hi Title gui=none guifg=#ffff00 +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#dddd00 guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/vim/colors/earendel.vim b/vim/colors/earendel.vim new file mode 100644 index 0000000..83ee819 --- /dev/null +++ b/vim/colors/earendel.vim @@ -0,0 +1,159 @@ +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "earendel" + +execute "command! -nargs=1 Colo set background=" + +if &background == "light" + hi Normal ctermbg=White ctermfg=Black guibg=#ffffff guifg=#000000 gui=none + + hi Cursor guibg=#000000 guifg=#ffffff gui=none + hi CursorColumn ctermbg=LightGray ctermfg=fg guibg=#dfdfdf gui=none + hi CursorLine ctermbg=LightGray ctermfg=fg guibg=#dfdfdf gui=none + hi DiffAdd guibg=#bae981 guifg=fg gui=none + hi DiffChange guibg=#8495e6 guifg=fg gui=none + hi DiffDelete guibg=#ff95a5 guifg=fg gui=none + hi DiffText guibg=#b9c2f0 guifg=fg gui=bold + hi Directory guibg=bg guifg=#272fc2 gui=none + hi ErrorMsg guibg=#ca001f guifg=#ffffff gui=bold + hi FoldColumn ctermbg=bg guibg=bg guifg=#656565 gui=none + hi Folded guibg=#cacaca guifg=#324263 gui=bold + hi IncSearch guibg=#f7b69d gui=none + hi LineNr guibg=bg guifg=#656565 gui=none + hi ModeMsg ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold + hi MoreMsg guibg=bg guifg=#4a4a4a gui=bold + hi NonText ctermfg=DarkGray guibg=bg guifg=#656565 gui=bold + hi Pmenu guibg=#aab8d5 guifg=fg gui=none + hi PmenuSbar guibg=#6a83b5 guifg=fg gui=none + hi PmenuSel guibg=#fee06b guifg=fg gui=none + hi PmenuThumb guibg=#c7cfe2 guifg=fg gui=none + hi Question guibg=bg guifg=#4a4a4a gui=bold + hi Search guibg=#fee481 gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#656565 gui=none + hi SpecialKey guibg=bg guifg=#844631 gui=none + hi StatusLine ctermbg=Black ctermfg=White guibg=#96aad3 guifg=fg gui=bold + hi StatusLineNC ctermbg=LightGray ctermfg=fg guibg=#bcc7de guifg=#384547 gui=none + if has("spell") + hi SpellBad guisp=#ca001f gui=undercurl + hi SpellCap guisp=#272fc2 gui=undercurl + hi SpellLocal guisp=#0f8674 gui=undercurl + hi SpellRare guisp=#d16c7a gui=undercurl + endif + hi TabLine guibg=#d4d4d4 guifg=fg gui=underline + hi TabLineFill guibg=#d4d4d4 guifg=fg gui=underline + hi TabLineSel guibg=bg guifg=fg gui=bold + hi Title guifg=fg gui=bold + hi VertSplit ctermbg=LightGray ctermfg=fg guibg=#bcc7de guifg=#384547 gui=none + if version >= 700 + hi Visual ctermbg=LightGray ctermfg=fg guibg=#b5c5e6 gui=none + else + hi Visual ctermbg=LightGray ctermfg=fg guibg=#b5c5e6 guifg=fg gui=none + endif + hi VisualNOS ctermbg=DarkGray ctermfg=fg guibg=bg guifg=#4069bf gui=bold,underline + hi WarningMsg guibg=bg guifg=#ca001f gui=bold + hi WildMenu guibg=#fedc56 guifg=fg gui=bold + + hi Comment guibg=bg guifg=#558817 gui=none + hi Constant guibg=bg guifg=#a8660d gui=none + hi Error guibg=bg guifg=#bf001d gui=none + hi Identifier guibg=bg guifg=#0e7c6b gui=none + hi Ignore guibg=bg guifg=bg gui=none + hi lCursor guibg=#79bf21 guifg=#ffffff gui=none + hi MatchParen guibg=#0f8674 guifg=#ffffff gui=none + hi PreProc guibg=bg guifg=#a33243 gui=none + hi Special guibg=bg guifg=#844631 gui=none + hi Statement guibg=bg guifg=#2239a8 gui=bold + hi Todo guibg=#fedc56 guifg=#512b1e gui=bold + hi Type guibg=bg guifg=#1d318d gui=bold + hi Underlined ctermbg=bg ctermfg=fg guibg=bg guifg=#272fc2 gui=underline + + hi htmlBold ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold + hi htmlBoldItalic ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold,italic + hi htmlBoldUnderline ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold,underline + hi htmlBoldUnderlineItalic ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold,underline,italic + hi htmlItalic ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=italic + hi htmlUnderline ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=underline + hi htmlUnderlineItalic ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=underline,italic +else + hi Normal ctermbg=Black ctermfg=LightGray guibg=#181818 guifg=#cacaca gui=none + + hi Cursor guibg=#e5e5e5 guifg=#000000 gui=none + hi CursorColumn ctermbg=DarkGray ctermfg=White guibg=#404040 gui=none + hi CursorLine ctermbg=DarkGray ctermfg=White guibg=#404040 gui=none + hi DiffAdd guibg=#558817 guifg=#dadada gui=none + hi DiffChange guibg=#1b2e85 guifg=#dadada gui=none + hi DiffDelete guibg=#9f0018 guifg=#dadada gui=none + hi DiffText guibg=#2540ba guifg=#dadada gui=bold + hi Directory guibg=bg guifg=#8c91e8 gui=none + hi ErrorMsg guibg=#ca001f guifg=#e5e5e5 gui=bold + hi FoldColumn ctermbg=bg guibg=bg guifg=#9a9a9a gui=none + hi Folded guibg=#555555 guifg=#bfcadf gui=bold + hi IncSearch guibg=#a7380e guifg=#dadada gui=none + hi LineNr guibg=bg guifg=#9a9a9a gui=none + hi ModeMsg ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold + hi MoreMsg guibg=bg guifg=#b5b5b5 gui=bold + hi NonText ctermfg=DarkGray guibg=bg guifg=#9a9a9a gui=bold + hi Pmenu guibg=#3d5078 guifg=#dadada gui=none + hi PmenuSbar guibg=#324263 guifg=#dadada gui=none + hi PmenuSel guibg=#f3c201 guifg=#000000 gui=none + hi PmenuThumb guibg=#5c77ad guifg=#dadada gui=none + hi Question guibg=bg guifg=#b5b5b5 gui=bold + hi Search guibg=#947601 guifg=#dadada gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#9a9a9a gui=none + hi SpecialKey guibg=bg guifg=#d3a901 gui=none + hi StatusLine ctermbg=LightGray ctermfg=Black guibg=#41609e guifg=#e5e5e5 gui=bold + hi StatusLineNC ctermbg=LightGray ctermfg=Black guibg=#35466a guifg=#afbacf gui=none + if has("spell") + hi SpellBad guisp=#ea0023 gui=undercurl + hi SpellCap guisp=#8c91e8 gui=undercurl + hi SpellLocal guisp=#16c9ae gui=undercurl + hi SpellRare guisp=#e09ea8 gui=undercurl + endif + hi TabLine guibg=#4a4a4a guifg=#e5e5e5 gui=underline + hi TabLineFill guibg=#4a4a4a guifg=#e5e5e5 gui=underline + hi TabLineSel guibg=bg guifg=#e5e5e5 gui=bold + hi Title ctermbg=bg ctermfg=White guifg=#e5e5e5 gui=bold + hi VertSplit ctermbg=LightGray ctermfg=Black guibg=#35466a guifg=#afbacf gui=none + if version >= 700 + hi Visual ctermbg=LightGray ctermfg=Black guibg=#274278 gui=none + else + hi Visual ctermbg=LightGray ctermfg=Black guibg=#274278 guifg=fg gui=none + endif + hi VisualNOS ctermbg=DarkGray ctermfg=Black guibg=bg guifg=#5c77ad gui=bold,underline + hi WarningMsg guibg=bg guifg=#ea0023 gui=bold + hi WildMenu guibg=#fbca01 guifg=#000000 gui=bold + + hi Comment guibg=bg guifg=#77be21 gui=none + hi Constant guibg=bg guifg=#dc8511 gui=none + hi Error guibg=bg guifg=#ea0023 gui=none + hi Identifier guibg=bg guifg=#16c9ae gui=none + hi Ignore guibg=bg guifg=bg gui=none + hi lCursor guibg=#c4ec93 guifg=#000000 gui=none + hi MatchParen guibg=#17d2b7 guifg=#000000 gui=none + hi PreProc guibg=bg guifg=#e09ea8 gui=none + hi Special guibg=bg guifg=#d3a901 gui=none + hi Statement guibg=bg guifg=#a7b4ed gui=bold + hi Todo guibg=#fedc56 guifg=#512b1e gui=bold + hi Type guibg=bg guifg=#95a4ea gui=bold + hi Underlined ctermbg=bg ctermfg=White guibg=bg guifg=#8c91e8 gui=underline + + hi htmlBold ctermbg=bg ctermfg=White guibg=bg guifg=fg gui=bold + hi htmlBoldItalic ctermbg=bg ctermfg=White guibg=bg guifg=fg gui=bold,italic + hi htmlBoldUnderline ctermbg=bg ctermfg=White guibg=bg guifg=fg gui=bold,underline + hi htmlBoldUnderlineItalic ctermbg=bg ctermfg=White guibg=bg guifg=fg gui=bold,underline,italic + hi htmlItalic ctermbg=bg ctermfg=White guibg=bg guifg=fg gui=italic + hi htmlUnderline ctermbg=bg ctermfg=White guibg=bg guifg=fg gui=underline + hi htmlUnderlineItalic ctermbg=bg ctermfg=White guibg=bg guifg=fg gui=underline,italic +endif + +hi! default link bbcodeBold htmlBold +hi! default link bbcodeBoldItalic htmlBoldItalic +hi! default link bbcodeBoldItalicUnderline htmlBoldUnderlineItalic +hi! default link bbcodeBoldUnderline htmlBoldUnderline +hi! default link bbcodeItalic htmlItalic +hi! default link bbcodeItalicUnderline htmlUnderlineItalic +hi! default link bbcodeUnderline htmlUnderline diff --git a/vim/colors/earth.vim b/vim/colors/earth.vim new file mode 100644 index 0000000..306529b --- /dev/null +++ b/vim/colors/earth.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Shrinath +" Last Change: 2004/09/13 Mon 12:50. +" version: 0.2 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "earth" + +hi Normal guifg=#000000 guibg=#99CC99 + +" Search +hi IncSearch gui=UNDERLINE guifg=#60ffff guibg=#6060ff +hi Search gui=NONE guifg=#ffffff guibg=#6060ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi ModeMsg gui=NONE guifg=#60ffff guibg=NONE +hi MoreMsg gui=NONE guifg=#ffc0ff guibg=NONE +hi Question gui=NONE guifg=#ffff60 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#d0d0e0 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#d0d0e0 +hi VertSplit gui=NONE guifg=#606080 guibg=#d0d0e0 +hi WildMenu gui=NONE guifg=#000000 guibg=#00c8f0 + +" Diff +hi DiffText gui=UNDERLINE guifg=#ffff00 guibg=#000000 +hi DiffChange gui=NONE guifg=#ffffff guibg=#000000 +hi DiffDelete gui=NONE guifg=#60ff60 guibg=#000000 +hi DiffAdd gui=NONE guifg=#60ff60 guibg=#000000 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#ffffff guibg=#0088c0 +" hi Folded gui=NONE guifg=#ffffff guibg=#2080d0 +hi FoldColumn gui=NONE guifg=#60e0e0 guibg=#006c7f + +" Other +hi Directory gui=NONE guifg=#00e0ff guibg=NONE +hi LineNr gui=BOLD guifg=#669966 guibg=NONE +hi NonText gui=BOLD guifg=#00c0c0 guibg=#9999CC +hi SpecialKey gui=NONE guifg=#e0a0ff guibg=NONE +hi Title gui=BOLD guifg=#003300 guibg=NONE +hi Visual gui=NONE guifg=#000000 guibg=#6060d0 + +" Syntax group +hi Comment gui=NONE guifg=#996666 guibg=NONE +hi Constant gui=NONE guifg=#990066 guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi Identifier gui=NONE guifg=#669966 guibg=NONE +hi Ignore gui=NONE guifg=#993300 guibg=NONE +hi PreProc gui=NONE guifg=#009900 guibg=NONE +hi Special gui=NONE guifg=#FF0000 guibg=NONE +hi Statement gui=NONE guifg=#CC9900 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#993300 guibg=NONE +hi Type gui=NONE guifg=#993300 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#663300 guibg=NONE + diff --git a/vim/colors/eclipse.vim b/vim/colors/eclipse.vim new file mode 100644 index 0000000..34900e3 --- /dev/null +++ b/vim/colors/eclipse.vim @@ -0,0 +1,92 @@ +" Vim color file +" Maintainer: Juan frias +" Last Change: 2007 Feb 25 +" Version: 1.0.1 +" URL: http://www.axisym3.net/jdany/vim-the-editor/#eclipse +set background=light +highlight clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "eclipse" + +highlight Normal gui=none guifg=#000000 guibg=#ffffff ctermfg=Gray + +" Search +highlight IncSearch gui=underline guifg=#404040 guibg=#e0e040 +highlight Search gui=none guifg=#544060 guibg=#f0c0ff ctermbg=1 + +" Messages +highlight ErrorMsg gui=none guifg=#f8f8f8 guibg=#4040ff +highlight WarningMsg gui=none guifg=#f8f8f8 guibg=#4040ff +highlight ModeMsg gui=none guifg=#d06000 guibg=bg +highlight MoreMsg gui=none guifg=#0090a0 guibg=bg +highlight Question gui=none guifg=#8000ff guibg=bg + +" Split area +highlight StatusLine gui=none guifg=#ffffff guibg=#4570aa cterm=bold ctermbg=blue ctermfg=white +highlight StatusLineNC gui=none guifg=#ffffff guibg=#75a0da cterm=none ctermfg=darkgrey ctermbg=blue +highlight VertSplit gui=none guifg=#f8f8f8 guibg=#904838 ctermfg=darkgrey cterm=none ctermbg=blue +highlight WildMenu gui=none guifg=#f8f8f8 guibg=#ff3030 + +" Diff +highlight DiffText gui=none guifg=red guibg=#ffd0d0 cterm=bold ctermbg=5 ctermfg=3 +highlight DiffChange gui=none guifg=black guibg=#ffe7e7 cterm=none ctermbg=5 ctermfg=7 +highlight DiffDelete gui=none guifg=bg guibg=#e7e7ff ctermbg=black +highlight DiffAdd gui=none guifg=blue guibg=#e7e7ff ctermbg=green cterm=bold + +" Cursor +highlight Cursor gui=none guifg=#ffffff guibg=#0080f0 +highlight lCursor gui=none guifg=#ffffff guibg=#8040ff +highlight CursorIM gui=none guifg=#ffffff guibg=#8040ff + +" Fold +highlight Folded gui=none guifg=#804030 guibg=#fff0d0 ctermbg=black ctermfg=black cterm=bold +highlight FoldColumn gui=none guifg=#6b6b6b guibg=#e7e7e7 ctermfg=black ctermbg=white + +" Popup Menu +highlight PMenu ctermbg=green ctermfg=white +highlight PMenuSel ctermbg=white ctermfg=black +highlight PMenuSBar ctermbg=red ctermfg=white +highlight PMenuThumb ctermbg=white ctermfg=red + +" Other +highlight Directory gui=none guifg=#7050ff guibg=bg +highlight LineNr gui=none guifg=#6b6b6b guibg=#eeeeee +highlight NonText gui=none guifg=#707070 guibg=#e7e7e7 +highlight SpecialKey gui=none guifg=#c0c0c0 guibg=bg cterm=none ctermfg=4 +highlight Title gui=bold guifg=#0033cc guibg=bg +highlight Visual gui=none guifg=#804020 guibg=#ffc0a0 ctermfg=DarkCyan + +" Syntax group +highlight Comment gui=none guifg=#236e25 guibg=bg ctermfg=2 +highlight Constant gui=none guifg=#00884c guibg=bg ctermfg=White +highlight Error gui=none guifg=#f8f8f8 guibg=#4040ff term=reverse ctermbg=Red ctermfg=White +highlight Identifier gui=none guifg=#b07800 guibg=bg ctermfg=Green +highlight Ignore gui=none guifg=bg guibg=bg ctermfg=black +highlight PreProc gui=none guifg=#683821 guibg=bg ctermfg=Green +highlight Special gui=none guifg=#8040f0 guibg=bg ctermfg=DarkMagenta +highlight Statement gui=none guifg=#b64f90 guibg=bg ctermfg=White +highlight Todo gui=none guifg=#ff5050 guibg=white term=standout ctermbg=Yellow ctermfg=Black +highlight Type gui=bold guifg=#7f0055 guibg=bg ctermfg=LightGreen +highlight Underlined gui=none guifg=blue guibg=bg +highlight String gui=none guifg=#8010a0 guibg=bg ctermfg=Yellow +highlight Number gui=none guifg=#0000ff guibg=bg ctermfg=White + +if !has("gui_running") + hi link Float Number + hi link Conditional Repeat + hi link Include PreProc + hi link Macro PreProc + hi link PreCondit PreProc + hi link StorageClass Type + hi link Structure Type + hi link Typedef Type + hi link Tag Special + hi link Delimiter Normal + hi link SpecialComment Special + hi link Debug Special +endif + +" vim:ff=unix: diff --git a/vim/colors/edo_sea.vim b/vim/colors/edo_sea.vim new file mode 100644 index 0000000..f03300a --- /dev/null +++ b/vim/colors/edo_sea.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:01. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "Edo_sea" + +hi Normal guifg=#f0f0f8 guibg=#303060 + +" Search +hi IncSearch gui=UNDERLINE,BOLD guifg=#f0f0f0 guibg=#c030f0 +hi Search gui=BOLD guifg=#f0e0f0 guibg=#b020f0 + +" Messages +hi ErrorMsg gui=BOLD guifg=#f0f0f0 guibg=#f000a0 +hi WarningMsg gui=BOLD guifg=#f0f0f0 guibg=#f000a0 +hi ModeMsg gui=BOLD guifg=#00e0f0 guibg=NONE +hi MoreMsg gui=BOLD guifg=#00f0f0 guibg=#6060f0 +hi Question gui=BOLD guifg=#00f0d0 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#d0d0e0 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#d0d0e0 +hi VertSplit gui=NONE guifg=#606080 guibg=#d0d0e0 +hi WildMenu gui=NONE guifg=#000000 guibg=#f090f0 + +" Diff +hi DiffText gui=UNDERLINE guifg=#f0f000 guibg=#000000 +hi DiffChange gui=NONE guifg=#f0f0f0 guibg=#000000 +hi DiffDelete gui=NONE guifg=#60f060 guibg=#000000 +hi DiffAdd gui=NONE guifg=#60f060 guibg=#000000 + +" Cursor +hi Cursor gui=NONE guifg=#f0f0f0 guibg=#d86020 +hi lCursor gui=NONE guifg=#f0f0f0 guibg=#e000b0 +hi CursorIM gui=NONE guifg=#f0f0f0 guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#f0f0f0 guibg=#0080a0 +hi FoldColumn gui=NONE guifg=#9090f0 guibg=#3c3c88 + +" Other +hi Directory gui=NONE guifg=#00f0f0 guibg=NONE +hi LineNr gui=NONE guifg=#7070e8 guibg=NONE +hi NonText gui=BOLD guifg=#8080f0 guibg=NONE +hi SpecialKey gui=BOLD guifg=#60c0f0 guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=NONE +hi Visual gui=NONE guifg=#f0f0f0 guibg=#6060f0 +" hi VisualNOS gui=NONE guifg=#f0f0f0 guibg=#6060f0 + +" Syntax group +hi Comment gui=NONE guifg=#b0b0b8 guibg=#343478 +hi Constant gui=NONE guifg=#50f0d0 guibg=NONE +hi Error gui=NONE guifg=#f0f0f0 guibg=#c03030 +hi Identifier gui=NONE guifg=#d0c0f0 guibg=NONE +hi Ignore gui=NONE guifg=#303070 guibg=NONE +hi PreProc gui=NONE guifg=#f0b0f0 guibg=NONE +hi Special gui=NONE guifg=#d0f050 guibg=NONE +hi Statement gui=NONE guifg=#f0d050 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#f070e0 guibg=NONE +hi Type gui=NONE guifg=#40f080 guibg=NONE +hi Underlined gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=NONE diff --git a/vim/colors/ekvoli.vim b/vim/colors/ekvoli.vim new file mode 100644 index 0000000..e5dca83 --- /dev/null +++ b/vim/colors/ekvoli.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Preben Randhol +" Last Change: 2008 Feb 24 +" License: GNU Public License (GPL) v2 +" +" Version 1.6: Added colours for TVO and changed folding colour + + +highlight clear Normal +set background& + +" Remove all existing highlighting and set the defaults. +highlight clear + +" Load the syntax highlighting defaults, if it's enabled. +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "ekvoli" + +hi Cursor guifg=white gui=reverse,bold +hi iCursor guifg=white gui=reverse,bold +hi rCursor guifg=white gui=reverse,bold +hi vCursor guifg=white gui=reverse,bold +hi lCursor guifg=white gui=reverse,bold +hi nCursor guifg=white gui=reverse,bold +hi CursorLine guibg=#05456f gui=none +hi CursorColumn guibg=#05456f gui=none + + +hi Normal guifg=white guibg=#001535 +hi Error guibg=#6000a0 gui=bold,italic,undercurl guisp=white +hi ErrorMsg guifg=white guibg=#287eff gui=bold,italic +hi Visual guibg=#2080c0 guifg=white gui=bold +hi VisualNOS guibg=#6080a0 guifg=white gui=bold +hi Todo guibg=#00a0d0 guifg=white gui=underline + +hi NonText guifg=#6590f0 + +hi Search guibg=#667799 guifg=white gui=bold +hi IncSearch guibg=#667799 guifg=white gui=bold + +hi SpecialKey guifg=#00c0e0 +hi Directory guifg=#00c0e0 +hi Title guifg=#00a0f0 gui=none +hi WarningMsg guifg=lightblue +hi WildMenu guifg=white guibg=#0080c0 +hi Pmenu guifg=white guibg=#005090 +hi PmenuSel guifg=white guibg=#3070c0 +hi ModeMsg guifg=#22cce2 +hi MoreMsg guifg=#22cce2 gui=bold +hi Question guifg=#22cce2 gui=none + +hi MatchParen guifg=white guibg=#3070c0 gui=bold + +hi StatusLine guifg=white guibg=#104075 gui=bold +hi StatusLineNC guifg=#65a0f0 guibg=#104075 gui=none +hi VertSplit guifg=#305885 guibg=#305885 gui=none +hi Folded guifg=#65b0f6 guibg=#122555 gui=italic +hi FoldColumn guifg=white guibg=#103366 gui=none +hi LineNr guifg=#5080b0 gui=bold + +hi DiffAdd guibg=#2080a0 guifg=white gui=bold +hi DiffChange guibg=#2080a0 guifg=white gui=bold +hi DiffDelete guibg=#306080 guifg=white gui=none +hi DiffText guibg=#8070a0 guifg=white gui=bold + +hi SpellBad gui=undercurl,italic guisp=#76daff +hi SpellCap gui=undercurl guisp=#7ba2ba +hi SpellRare gui=undercurl guisp=#8080f0 +hi SpellLocal gui=undercurl guisp=#c0c0e0 + +hi Comment guifg=#9590d5 gui=italic + + +hi Constant guifg=#87c6f0 gui=italic +hi Special guifg=#50a0e0 gui=bold +hi Identifier guifg=#7fe9ff +hi Statement guifg=white gui=bold +hi PreProc guifg=#3f8fff gui=none + +hi type guifg=#90bfd0 gui=none +hi Ignore guifg=bg +hi Underlined gui=underline cterm=underline term=underline + + +" TVO - The Vim Outliner +hi otlTab0 gui=bold,underline guifg=#eeeeff +hi otlTab1 gui=bold,underline guifg=#3377ee +hi otlTab2 gui=bold,underline guifg=#22cae2 +hi otlTab3 gui=bold,underline guifg=#9966ff +hi otlTab5 gui=bold,underline guifg=#22aae2 +hi otlTab4 gui=bold,underline guifg=#92caf2 +hi otlTab7 gui=bold,underline guifg=#22bae2 +hi otlTab6 gui=bold,underline guifg=#8866ee +hi otlTab8 gui=bold,underline guifg=#1166ee +hi otlTab9 gui=bold,underline guifg=#99ddee +hi otlTodo gui=bold,underline guifg=white guibg=#00a0d0 +hi otlTagRef guifg=white guibg=#8070a0 +hi otlTagDef guifg=white guibg=#005090 + + + + diff --git a/vim/colors/emacs.vim b/vim/colors/emacs.vim new file mode 100644 index 0000000..21f22f7 --- /dev/null +++ b/vim/colors/emacs.vim @@ -0,0 +1,63 @@ +" Vim color file +" Maintainer: Michael Piefel +" Last Change: 2001 Aug 16 +" Licence: Public Domain + +" This color scheme uses a White background. It's based on Bram's +" morning theme, but doesn't try to work for non-GUI editing. +" +" It's supposed to look like the Emacs standard colors, at least +" for C. But Emacs has different categories, so it's not very good. + +" First remove all existing highlighting. +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "emacs" + +hi Normal guifg=Black guibg=White + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg guibg=Red guifg=White +hi IncSearch gui=reverse +hi ModeMsg gui=bold +hi StatusLine gui=reverse,bold +hi StatusLineNC gui=reverse +hi VertSplit gui=reverse +hi Visual gui=reverse guifg=Grey guibg=fg +hi VisualNOS gui=underline,bold +hi DiffText gui=bold guibg=Red +hi Cursor guibg=Black guifg=NONE +hi lCursor guibg=Cyan guifg=NONE +hi Directory guifg=Blue +hi LineNr guifg=Brown +hi MoreMsg gui=bold guifg=SeaGreen +hi NonText gui=bold guifg=Blue guibg=grey90 +hi Question gui=bold guifg=SeaGreen +hi Search guibg=Yellow guifg=NONE +hi SpecialKey guifg=Blue +hi Title gui=bold guifg=Magenta +hi WarningMsg guifg=Red +hi WildMenu guibg=Yellow guifg=Black +hi Folded guibg=White guifg=DarkBlue +hi FoldColumn guibg=Grey guifg=DarkBlue +hi DiffAdd guibg=LightBlue +hi DiffChange guibg=LightMagenta +hi DiffDelete gui=bold guifg=Blue guibg=LightCyan + +" Colors for syntax highlighting +hi Comment guifg=#AC2020 guibg=White +hi Constant guifg=#C28F8F guibg=White +hi PreProc guifg=#D569D5 guibg=White +hi Statement gui=NONE guifg=#9C20EE guibg=White +hi Type guifg=#9C20EE guibg=White +hi Special guifg=SlateBlue guibg=White +hi Ignore guifg=White + +" Some specials (override hilinks) + + +" vim: sw=2 diff --git a/vim/colors/fine_blue.vim b/vim/colors/fine_blue.vim new file mode 100644 index 0000000..e642bfa --- /dev/null +++ b/vim/colors/fine_blue.vim @@ -0,0 +1,79 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/03/08 Fri 21:38. +" version: 1.2 +" This color scheme uses a light background. +" GUI only + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fine_blue" + +hi Normal guifg=#303040 guibg=#f8f8f8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#303040 guibg=#40ffff +hi Search gui=NONE guifg=#303040 guibg=#ffffa0 + +" Messages +hi ErrorMsg gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi WarningMsg gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi ModeMsg gui=NONE guifg=#0070ff guibg=NONE +hi MoreMsg gui=NONE guifg=#a800ff guibg=NONE +hi Question gui=NONE guifg=#008050 guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#303040 +hi StatusLineNC gui=BOLD guifg=#a0a0b0 guibg=#303040 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#303040 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#00aacc + +" Diff +hi DiffText gui=NONE guifg=#f83010 guibg=#ffeae0 +hi DiffChange gui=NONE guifg=#006800 guibg=#d0ffd0 +hi DiffDelete gui=NONE guifg=#2020ff guibg=#c8f2ea +hi DiffAdd gui=NONE guifg=#2020ff guibg=#c8f2ea + +" Cursor +hi Cursor gui=NONE guifg=#0000ff guibg=#00e0ff +hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold +hi Folded gui=NONE guifg=#7800ff guibg=#e0d8ff +hi FoldColumn gui=NONE guifg=#aa60ff guibg=#f0f0f4 + +" Other +hi Directory gui=NONE guifg=#0000ff guibg=NONE +hi LineNr gui=NONE guifg=#8080a0 guibg=NONE +hi NonText gui=BOLD guifg=#4000ff guibg=#ececf0 +hi SpecialKey gui=NONE guifg=#c87000 guibg=NONE +hi Title gui=NONE guifg=#004060 guibg=#c8f0f8 +hi Visual gui=NONE guifg=#404060 guibg=#dddde8 + +" Syntax group +hi Comment gui=NONE guifg=#ff00c0 guibg=NONE +hi Constant gui=NONE guifg=#2020ff guibg=#e8e8ff +hi Error gui=BOLD guifg=#ffffff guibg=#ff4080 +hi Identifier gui=NONE guifg=#c800ff guibg=NONE +hi Ignore gui=NONE guifg=#f8f8f8 guibg=NONE +hi PreProc gui=NONE guifg=#0070e6 guibg=NONE +hi Special gui=NONE guifg=#005858 guibg=#ccf7ee +hi Statement gui=NONE guifg=#008858 guibg=NONE +hi Todo gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi Type gui=NONE guifg=#7040ff guibg=NONE +hi Underlined gui=UNDERLINE guifg=#0000ff guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC diff --git a/vim/colors/fnaqevan.vim b/vim/colors/fnaqevan.vim new file mode 100644 index 0000000..d936cee --- /dev/null +++ b/vim/colors/fnaqevan.vim @@ -0,0 +1,67 @@ +" Vim color file +" Maintainer: Rafal Sulejman +" Last Change: 2002.06.18 +" +" This color scheme uses a black (dark) background. + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fnaqevan" + +hi Normal guibg=#000000 guifg=#C0C0C0 gui=NONE + +" Main colors +hi Constant guibg=#000000 guifg=#00B8E0 gui=NONE +hi Identifier guibg=#000000 guifg=#FFA850 gui=NONE +hi Special guibg=#000000 guifg=#B899C8 gui=NONE +hi Statement guibg=#000000 guifg=#EEE840 gui=NONE +hi Preproc guibg=#000000 guifg=#00B098 gui=NONE +hi Type guibg=#000000 guifg=#40D040 gui=NONE + +" Secondary colors +hi Comment guibg=#000000 guifg=#006699 gui=NONE +hi Visual guibg=#005900 guifg=#40C940 gui=NONE +hi VisualNOS guibg=#005900 guifg=#40C940 gui=NONE +hi Search guibg=#707000 guifg=#FFFF00 gui=NONE +hi IncSearch guibg=#D05000 guifg=#FFE000 gui=NONE + +" Special colors +hi WarningMsg guibg=#707000 guifg=#FFFF00 gui=NONE +hi MoreMsg guibg=#000070 guifg=#00B8E0 gui=NONE +hi ErrorMsg guibg=#CC0000 guifg=#FFEE00 gui=NONE +hi ModeMsg guibg=#000000 guifg=#E8E8E8 gui=NONE +hi WildMenu guibg=#5f5f5f guifg=#FFEE60 gui=NONE +hi StatusLine guibg=#1f1f1f guifg=#F0F0F0 gui=NONE +hi StatusLineNC guibg=#0f0f0f guifg=#eaea3a gui=NONE +hi VertSplit guibg=#1f1f1f guifg=#F0F0F0 gui=NONE +hi Error guibg=#EE0000 guifg=#FFDD60 gui=NONE +hi Todo guibg=#EEE000 guifg=#000000 gui=NONE +hi Title guibg=#000000 guifg=#ffffff gui=NONE +hi Question guibg=#005900 guifg=#40E840 gui=NONE +hi LineNr guibg=#000000 guifg=#F0B0E0 gui=NONE +hi Directory guibg=#000000 guifg=#D0D0D0 gui=NONE +hi NonText guibg=#000000 guifg=#FFDDAA gui=NONE +hi SpecialKey guibg=#000000 guifg=#FFFFFF gui=NONE + +" Diff colors +hi DiffAdd guibg=#505050 guifg=#D0D0D0 gui=NONE +hi DiffChange guibg=#505050 guifg=#D0D0D0 gui=NONE +hi DiffDelete guibg=#505050 guifg=#D0D0D0 gui=NONE +hi DiffText guibg=#707070 guifg=#F0F0F0 gui=NONE + +" Folding colors +hi Folded guibg=#703070 guifg=#DDB8DD gui=NONE +hi FoldColumn guibg=#C4153B guifg=#F0F0F0 gui=NONE + +" Cursor colors +hi Cursor guibg=#FFFFFF guifg=#000000 gui=NONE +hi icursor guibg=#FFEE00 guifg=#000000 gui=NONE +hi ncursor guibg=#FFFFFF guifg=#000000 gui=NONE +hi rcursor guibg=#00CCFF guifg=#000000 gui=NONE +hi lcursor guibg=#40D040 guifg=#000000 gui=NONE + diff --git a/vim/colors/fog.vim b/vim/colors/fog.vim new file mode 100644 index 0000000..0c791c5 --- /dev/null +++ b/vim/colors/fog.vim @@ -0,0 +1,170 @@ +" Vim color file +" vim: tw=0 ts=4 sw=4 +" Maintainer: Thomas R. Kimpton +" Last Change: 2001 Nov 8 +" This color scheme is meant for the person that spends hours +" and hours and hours and... in vim and wants some contrast to +" help pick things out in the files they edit, but doesn't want +" **C**O**N**T**R**A**S**T**! + +set background=light + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fog" + +hi Normal ctermbg=White ctermfg=Black +" 660066 = darkish purple +hi Normal guifg=#660066 guibg=grey80 + +hi NonText term=bold +hi NonText ctermfg=LightBlue +hi NonText gui=bold guifg=LightBlue guibg=grey80 + +hi Comment ctermfg=DarkGrey ctermbg=White +" 444499 = darkish blue grey +hi Comment guifg=#444499 + +hi Constant term=underline +hi Constant ctermfg=Magenta +hi Constant guifg=#7070a0 + +hi Statement term=bold +hi Statement cterm=bold ctermfg=DarkGreen ctermbg=White +hi Statement guifg=DarkGreen gui=bold + +hi identifier ctermfg=DarkGreen +hi identifier guifg=DarkGreen + +hi preproc ctermfg=DarkGreen +hi preproc guifg=#408040 + +hi type ctermfg=DarkBlue +hi type guifg=DarkBlue + +hi label ctermfg=yellow +hi label guifg=#c06000 + +hi operator ctermfg=darkYellow +hi operator guifg=DarkGreen gui=bold + +hi StorageClass ctermfg=DarkRed ctermbg=White +hi StorageClass guifg=#a02060 gui=bold + +hi Number ctermfg=Blue ctermbg=White +hi Number guifg=Blue + +hi Special term=bold +hi Special ctermfg=LightRed +hi Special guifg=#aa8822 + +hi Cursor ctermbg=DarkMagenta +hi Cursor guibg=#880088 guifg=LightGrey + +hi lCursor guibg=Cyan guifg=Black + +hi ErrorMsg term=standout +hi ErrorMsg ctermbg=DarkRed ctermfg=White +hi ErrorMsg guibg=DarkRed guifg=White + +hi DiffText term=reverse +hi DiffText cterm=bold ctermbg=DarkRed +hi DiffText gui=bold guibg=DarkRed + +hi Directory term=bold +hi Directory ctermfg=LightRed +hi Directory guifg=Red gui=underline + +hi LineNr term=underline +hi LineNr ctermfg=Yellow +hi LineNr guifg=#ccaa22 + +hi MoreMsg term=bold +hi MoreMsg ctermfg=LightGreen +hi MoreMsg gui=bold guifg=SeaGreen + +hi Question term=standout +hi Question ctermfg=LightGreen +hi Question gui=bold guifg=DarkGreen + +hi Search term=reverse +hi Search ctermbg=DarkYellow ctermfg=Black +hi Search guibg=#887722 guifg=Black + +hi SpecialKey term=bold +hi SpecialKey ctermfg=LightBlue +hi SpecialKey guifg=Blue + +hi SpecialChar ctermfg=DarkGrey ctermbg=White +hi SpecialChar guifg=DarkGrey gui=bold + +hi Title term=bold +hi Title ctermfg=LightMagenta +hi Title gui=underline guifg=DarkMagenta + +hi WarningMsg term=standout +hi WarningMsg ctermfg=LightRed +hi WarningMsg guifg=DarkBlue guibg=#9999cc + +hi WildMenu term=standout +hi WildMenu ctermbg=Yellow ctermfg=Black +hi WildMenu guibg=Yellow guifg=Black gui=underline + +hi Folded term=standout +hi Folded ctermbg=LightGrey ctermfg=DarkBlue +hi Folded guibg=LightGrey guifg=DarkBlue + +hi FoldColumn term=standout +hi FoldColumn ctermbg=LightGrey ctermfg=DarkBlue +hi FoldColumn guibg=Grey guifg=DarkBlue + +hi DiffAdd term=bold +hi DiffAdd ctermbg=DarkBlue +hi DiffAdd guibg=DarkBlue + +hi DiffChange term=bold +hi DiffChange ctermbg=DarkMagenta +hi DiffChange guibg=DarkMagenta + +hi DiffDelete term=bold +hi DiffDelete ctermfg=Blue ctermbg=DarkCyan +hi DiffDelete gui=bold guifg=Blue guibg=DarkCyan + +hi Ignore ctermfg=LightGrey +hi Ignore guifg=grey90 + +hi IncSearch term=reverse +hi IncSearch cterm=reverse +hi IncSearch gui=reverse + +hi ModeMsg term=bold +hi ModeMsg cterm=bold +hi ModeMsg gui=bold + +hi StatusLine term=reverse,bold +hi StatusLine cterm=reverse,bold +hi StatusLine gui=reverse,bold + +hi StatusLineNC term=reverse +hi StatusLineNC cterm=reverse +hi StatusLineNC gui=reverse + +hi VertSplit term=reverse +hi VertSplit cterm=reverse +hi VertSplit gui=reverse + +hi Visual term=reverse +hi Visual cterm=reverse +hi Visual gui=reverse guifg=DarkGrey guibg=fg + +hi VisualNOS term=underline,bold +hi VisualNOS cterm=underline,bold +hi VisualNOS gui=underline,bold + +hi Todo gui=reverse + +" vim: sw=2 diff --git a/vim/colors/freya.vim b/vim/colors/freya.vim new file mode 100644 index 0000000..a8adbd4 --- /dev/null +++ b/vim/colors/freya.vim @@ -0,0 +1,79 @@ +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "freya" + +hi Normal ctermbg=0 ctermfg=7 cterm=none guibg=#2a2a2a guifg=#dcdccc gui=none + +hi Cursor guibg=fg guifg=bg gui=none +hi CursorColumn guibg=#3f3f3f gui=none +hi CursorLine guibg=#3f3f3f gui=none +hi DiffAdd guibg=#008b00 guifg=fg gui=none +hi DiffChange guibg=#00008b guifg=fg gui=none +hi DiffDelete guibg=#8b0000 guifg=fg gui=none +hi DiffText guibg=#0000cd guifg=fg gui=bold +hi Directory guibg=bg guifg=#d4b064 gui=none +hi ErrorMsg guibg=bg guifg=#f07070 gui=bold +hi FoldColumn ctermbg=bg guibg=bg guifg=#c2b680 gui=none +hi Folded guibg=#101010 guifg=#c2b680 gui=none +hi IncSearch guibg=#866a4f guifg=fg gui=none +hi LineNr guibg=bg guifg=#9f8f80 gui=none +hi ModeMsg guibg=bg guifg=fg gui=bold +hi MoreMsg guibg=bg guifg=#dabfa5 gui=bold +hi NonText ctermfg=8 guibg=bg guifg=#9f8f80 gui=bold +hi Pmenu guibg=#a78869 guifg=#000000 gui=none +hi PmenuSbar guibg=#B99F86 guifg=fg gui=none +hi PmenuSel guibg=#c0aa94 guifg=bg gui=none +hi PmenuThumb guibg=#f7f7f1 guifg=bg gui=none +hi Question guibg=bg guifg=#dabfa5 gui=bold +hi Search guibg=#c0aa94 guifg=bg gui=none +hi SignColumn ctermbg=bg guibg=bg guifg=#c2b680 gui=none +hi SpecialKey guibg=bg guifg=#d4b064 gui=none +if has("spell") + hi SpellBad guisp=#f07070 gui=undercurl + hi SpellCap guisp=#7070f0 gui=undercurl + hi SpellLocal guisp=#70f0f0 gui=undercurl + hi SpellRare guisp=#f070f0 gui=undercurl +endif +hi StatusLine ctermbg=7 ctermfg=0 guibg=#736559 guifg=#f7f7f1 gui=bold +hi StatusLineNC ctermbg=8 ctermfg=0 guibg=#564d43 guifg=#f7f7f1 gui=none +hi TabLine guibg=#564d43 guifg=#f7f7f1 gui=underline +hi TabLineFill guibg=#564d43 guifg=#f7f7f1 gui=underline +hi TabLineSel guibg=bg guifg=#f7f7f1 gui=bold +hi Title ctermbg=0 ctermfg=15 guifg=#f7f7f1 gui=bold +hi VertSplit ctermbg=7 ctermfg=0 guibg=#564d43 guifg=#f7f7f1 gui=none +if version >= 700 + hi Visual ctermbg=7 ctermfg=0 guibg=#5f5f5f gui=none +else + hi Visual ctermbg=7 ctermfg=0 guibg=#5f5f5f guifg=fg gui=none +endif +hi VisualNOS guibg=bg guifg=#c0aa94 gui=bold,underline +hi WarningMsg guibg=bg guifg=#f07070 gui=none +hi WildMenu guibg=#c0aa94 guifg=bg gui=bold + +hi Comment guibg=bg guifg=#c2b680 gui=none +hi Constant guibg=bg guifg=#afe091 gui=none +hi Error guibg=bg guifg=#f07070 gui=none +hi Identifier guibg=bg guifg=#dabfa5 gui=none +hi Ignore guibg=bg guifg=bg gui=none +hi lCursor guibg=#c0aa94 guifg=bg gui=none +hi MatchParen guibg=#008b8b gui=none +hi PreProc guibg=bg guifg=#c2aed0 gui=none +hi Special guibg=bg guifg=#d4b064 gui=none +hi Statement guibg=bg guifg=#e0af91 gui=bold +hi Todo guibg=#aed0ae guifg=bg gui=none +hi Type guibg=bg guifg=#dabfa5 gui=bold +hi Underlined guibg=bg guifg=#d4b064 gui=underline + +hi htmlBold ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold +hi htmlItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=italic +hi htmlUnderline ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=underline +hi htmlBoldItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,italic +hi htmlBoldUnderline ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,underline +hi htmlBoldUnderlineItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,underline,italic +hi htmlUnderlineItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=underline,italic diff --git a/vim/colors/fruit.vim b/vim/colors/fruit.vim new file mode 100644 index 0000000..624b90f --- /dev/null +++ b/vim/colors/fruit.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/08/28 Wed 00:28. +" version: 1.3 +" This color scheme uses a light background. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fruit" + +hi Normal guifg=#404040 guibg=#f8f8f8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#404040 guibg=#40ffff +hi Search gui=NONE guifg=#404040 guibg=#ffff60 + +" Messages +hi ErrorMsg gui=NONE guifg=#ff0000 guibg=#ffe4e4 +hi WarningMsg gui=NONE guifg=#ff0000 guibg=#ffe4e4 +hi ModeMsg gui=NONE guifg=#ff4080 guibg=NONE +hi MoreMsg gui=NONE guifg=#009070 guibg=NONE +hi Question gui=NONE guifg=#f030d0 guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#404040 +hi StatusLineNC gui=NONE guifg=#a4a4a4 guibg=#404040 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#404040 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#ff4080 + +" Diff +hi DiffText gui=NONE guifg=#e04040 guibg=#ffd8d8 +hi DiffChange gui=NONE guifg=#408040 guibg=#d0f0d0 +hi DiffDelete gui=NONE guifg=#4848ff guibg=#ffd0ff +hi DiffAdd gui=NONE guifg=#4848ff guibg=#ffd0ff + +" Cursor +hi Cursor gui=NONE guifg=#0000ff guibg=#00e0ff +hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold +hi Folded gui=NONE guifg=#20605c guibg=#b8e8dc +hi FoldColumn gui=NONE guifg=#40a098 guibg=#f0f0f0 + +" Other +hi Directory gui=NONE guifg=#0070b8 guibg=NONE +hi LineNr gui=NONE guifg=#acacac guibg=NONE +hi NonText gui=BOLD guifg=#00a0c0 guibg=#ececec +hi SpecialKey gui=NONE guifg=#4040ff guibg=NONE +hi Title gui=NONE guifg=#0050a0 guibg=#c0e8ff +hi Visual gui=NONE guifg=#484848 guibg=#e0e0e0 +" hi VisualNOS gui=NONE guifg=#484848 guibg=#e0e0e0 + +" Syntax group +hi Comment gui=NONE guifg=#ff4080 guibg=NONE +hi Constant gui=NONE guifg=#8016ff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff4080 +hi Identifier gui=NONE guifg=#008888 guibg=NONE +hi Ignore gui=NONE guifg=#f8f8f8 guibg=NONE +hi PreProc gui=NONE guifg=#e06800 guibg=NONE +hi Special gui=NONE guifg=#4a9400 guibg=NONE +hi Statement gui=NONE guifg=#f030d0 guibg=NONE +hi Todo gui=UNDERLINE guifg=#ff0070 guibg=#ffe0f4 +hi Type gui=NONE guifg=#0070e6 guibg=NONE +hi Underlined gui=UNDERLINE guifg=fg guibg=NONE diff --git a/vim/colors/gobo.vim b/vim/colors/gobo.vim new file mode 100644 index 0000000..13a8cf5 --- /dev/null +++ b/vim/colors/gobo.vim @@ -0,0 +1,27 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" +" Created using ColorSchemeCreator +" by Otávio Corrêa Cordeiro (cordeiro@exatas.unisinos.br) (2004 July) +" +" Maintainer: Otávio Corrêa Cordeiro +" Last Change: 2004 July + + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "ColorSchemeCreator" +hi Normal guifg=#111111 guibg=#FFFFFF +hi comment guifg=#33CC99 gui=italic +hi constant guifg=#CC0099 gui=bold +hi statement guifg=#3399FF gui=bold +hi preproc guifg=#0066FF +hi type guifg=#6600CC gui=bold +hi special guifg=#6600CC +hi operator guifg=#CC0099 +hi clear Visual +hi Visual term=reverse cterm=reverse gui=reverse diff --git a/vim/colors/golden.vim b/vim/colors/golden.vim new file mode 100644 index 0000000..0c7c1e6 --- /dev/null +++ b/vim/colors/golden.vim @@ -0,0 +1,70 @@ +" vim: tw=0 ts=4 sw=4 +" Vim color file +" +" Creator: Ryan Phillips +" Credits: This color scheme originated from the idea of +" Jeffrey Bakker, the creator of webcpp (http://webcpp.sourceforge.net/). +" URL: http://www.trolocsis.com/vim/golden.vim +" + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "golden" +hi Normal ctermfg=yellow guifg=#ddbb00 guibg=black +hi Scrollbar ctermfg=Yellow guifg=#ddbb00 guibg=black +hi Menu ctermfg=darkyellow guifg=#ffddaa guibg=black +hi SpecialKey ctermfg=yellow term=bold cterm=bold guifg=#ffddaa +hi NonText ctermfg=LightBlue term=bold cterm=bold gui=bold guifg=#DBCA98 +hi Directory ctermfg=DarkYellow term=bold cterm=bold guifg=#ffddaa +hi ErrorMsg term=standout cterm=bold ctermfg=White ctermbg=Red guifg=White guibg=Red +hi Search term=reverse ctermfg=white ctermbg=red guifg=white guibg=Red +hi MoreMsg term=bold cterm=bold ctermfg=Yellow gui=bold guifg=#ddbb00 +hi ModeMsg term=bold ctermfg=DarkYellow cterm=bold gui=bold guifg=Black guibg=#ddbb00 +hi LineNr term=underline ctermfg=Brown cterm=bold guifg=#978345 +hi Question term=standout cterm=bold ctermfg=Brown gui=bold guifg=#ffddaa +hi StatusLine term=bold,reverse cterm=bold ctermfg=Black ctermbg=DarkGrey gui=bold guifg=#978345 guibg=#2E2E2E +hi StatusLineNC term=reverse ctermfg=white ctermbg=black guifg=grey guibg=#3E3E3E +hi Title term=bold cterm=bold ctermfg=brown gui=bold guifg=#DBCA98 +hi Visual term=reverse cterm=reverse gui=reverse +hi WarningMsg term=standout cterm=bold ctermfg=darkblue guifg=Red +hi Cursor guifg=bg guibg=#FF5E06 ctermbg=Brown +hi Comment term=bold cterm=bold ctermfg=brown guifg=#978345 +hi Constant term=underline cterm=bold ctermfg=red guifg=Red +hi Special term=bold cterm=bold ctermfg=red guifg=Orange +hi Identifier term=underline ctermfg=lightgray guifg=#DBCA98 +hi Statement term=bold cterm=bold ctermfg=lightgreen gui=bold guifg=#ffff60 +hi PreProc term=underline ctermfg=brown guifg=#ffddaa +hi Type term=underline cterm=bold ctermfg=lightgreen gui=bold guifg=#FFE13F +hi Error term=reverse ctermfg=darkcyan ctermbg=black guifg=Red guibg=Black +hi Todo term=standout ctermfg=black ctermbg=yellow guifg=#FFE13F guibg=#2E2E2E +hi VertSplit guifg=#2E2E2E guibg=#978345 ctermfg=black ctermbg=darkgrey +hi Folded guifg=orange guibg=#2E2E2E ctermfg=yellow + +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special diff --git a/vim/colors/gor.vim b/vim/colors/gor.vim new file mode 100644 index 0000000..b0584a1 --- /dev/null +++ b/vim/colors/gor.vim @@ -0,0 +1,47 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Jokes +" Last Change: + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "gor" +hi Normal guifg=white guibg=#005856 +hi NonText guifg=white guibg=#005856 +hi comment guifg=darkgrey +hi constant guifg=orange +hi identifier guifg=orange gui=NONE +hi statement guifg=cyan gui=NONE +"hi preproc guifg=#6063CD +hi preproc guifg=cyan +hi type guifg=green gui=NONE +hi special guifg=yellow +hi ErrorMsg guifg=Black guibg=Red +hi WarningMsg guifg=Black guibg=Green +hi Error guibg=Red +hi Todo guifg=Black guibg=orange +hi Cursor guibg=#ffffff guifg=#004f50 +"hi Cursor guibg=#603070 guifg=#0000ff +hi Folded guifg=#999999 guibg=#006336 +hi Search guibg=orange +hi IncSearch gui=NONE guibg=orange +hi LineNr guifg=grey +hi title guifg=grey +"hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue +hi StatusLineNC gui=NONE guibg=red +hi StatusLine guifg=black guibg=darkgreen +hi label guifg=gold2 +hi operator guifg=orange +hi clear Visual +hi Visual guibg=orange guifg=#00932D +hi DiffChange guibg=darkgreen +hi DiffText guibg=olivedrab +hi DiffAdd guibg=slateblue +hi DiffDelete guibg=coral +hi Folded guibg=gray30 +hi FoldColumn guibg=gray30 guifg=white +hi cIf0 guifg=gray diff --git a/vim/colors/gothic.vim b/vim/colors/gothic.vim new file mode 100644 index 0000000..a637914 --- /dev/null +++ b/vim/colors/gothic.vim @@ -0,0 +1,42 @@ +" Vim color file +" Maintainer: Stefano deFlorian - \Goth\ +" Last Change: 2003 Dec 9 +" Light - Dark :-) +" optimized for TFT panels + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "gothic" + +" hardcoded colors : + +" GUI +highlight Normal guifg=#efefef guibg=#000000 +highlight Cursor guifg=#000000 guibg=#efefef gui=NONE +highlight Search guifg=#ffff60 guibg=#0000ff gui=NONE +highlight Visual guifg=Grey25 gui=NONE +highlight Special guifg=Orange +highlight Comment guifg=#3030ff +highlight StatusLine guifg=blue guibg=white +highlight Statement guifg=#ffff60 gui=NONE +highlight PreProc guifg=#a0e0a0 +highlight Identifier guifg=#00ffff +highlight Constant guifg=#a0a0a0 +highlight Type guifg=#a0a0ff gui=NONE + +" Console +highlight Normal ctermfg=LightGrey ctermbg=Black +highlight Cursor ctermfg=Black ctermbg=LightGrey cterm=NONE +highlight Search ctermfg=Yellow ctermbg=Blue cterm=NONE +highlight Visual cterm=reverse +highlight Special ctermfg=Brown +highlight Comment ctermfg=Blue +highlight StatusLine ctermfg=blue ctermbg=white +highlight Identifier ctermfg=Cyan +highlight Statement ctermfg=Yellow cterm=NONE +highlight Constant ctermfg=Grey cterm=NONE +highlight Type ctermfg=LightBlue cterm=NONE diff --git a/vim/colors/greyblue.vim b/vim/colors/greyblue.vim new file mode 100644 index 0000000..1b3c233 --- /dev/null +++ b/vim/colors/greyblue.vim @@ -0,0 +1,75 @@ +" Vim color file +" + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "greyblue" + +hi Normal ctermfg=NONE ctermbg=NONE gui=NONE guifg=#b7af9f guibg=#090909 + +" Search +hi IncSearch ctermfg=NONE ctermbg=NONE gui=NONE guifg=#7800ff guibg=#e0d8ff +hi Search ctermfg=NONE ctermbg=NONE gui=NONE guifg=#7800ff guibg=#e0d8ff + +" Messages +hi ErrorMsg ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffffff guibg=NONE +hi WarningMsg ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffffff guibg=NONE +hi ModeMsg ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffffff guibg=NONE +hi MoreMsg ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffffff guibg=NONE +hi Question ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffffff guibg=NONE + +" Split area +hi StatusLine ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#070707 guibg=#cfcfbf +hi StatusLineNC ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#5f5f4f guibg=#cfcfbf +hi VertSplit ctermfg=NONE ctermbg=NONE gui=NONE guifg=#070707 guibg=#cfcfbf +hi WildMenu ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#070707 guibg=#ff5533 + +" Diff +hi DiffText ctermfg=NONE ctermbg=NONE gui=NONE guifg=#07cfef guibg=#00151f +hi DiffChange ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ff97ff guibg=#2f002f +hi DiffDelete ctermfg=NONE ctermbg=NONE gui=NONE guifg=#dfdf00 guibg=#370d15 +hi DiffAdd ctermfg=NONE ctermbg=NONE gui=NONE guifg=#dfdf00 guibg=#370d15 + +" Cursor +hi Cursor ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffff00 guibg=#7fff00 +hi lCursor ctermfg=NONE ctermbg=NONE gui=NONE guifg=#070707 guibg=#7fff00 +hi CursorIM ctermfg=NONE ctermbg=NONE gui=NONE guifg=#070707 guibg=#7fff00 + +" Fold +hi Folded ctermfg=NONE ctermbg=NONE gui=NONE guifg=#87ff00 guibg=#1f2700 +hi FoldColumn ctermfg=NONE ctermbg=NONE gui=NONE guifg=#559f00 guibg=#0f0f0b + +" Other +hi Directory ctermfg=NONE ctermbg=NONE gui=NONE guifg=#aaaaba guibg=NONE +hi LineNr ctermfg=NONE ctermbg=NONE gui=NONE guifg=#7f7f5f guibg=NONE +hi NonText ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#211d1a guibg=#211d1a +hi SpecialKey ctermfg=NONE ctermbg=NONE gui=NONE guifg=#378fff guibg=NONE +hi Title ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffbf9f guibg=#370f07 +hi Visual ctermfg=NONE ctermbg=NONE gui=reverse guifg=#a5a5a5 guibg=#353535 + +" Syntax group +hi Comment ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#555565 guibg=NONE +hi Constant ctermfg=NONE ctermbg=NONE gui=NONE guifg=#d1bfb1 guibg=#151515 +hi Error ctermfg=NONE ctermbg=NONE gui=NONE guifg=#00ffff guibg=NONE +hi Identifier ctermfg=NONE ctermbg=NONE gui=NONE guifg=#aaaaba guibg=NONE +hi Ignore ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE +hi PreProc ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE +hi Special ctermfg=NONE ctermbg=NONE gui=NONE guifg=#aa1565 guibg=NONE +hi Statement ctermfg=NONE ctermbg=NONE gui=bold guifg=#d1bfb1 guibg=NONE +hi Todo ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE +hi Type ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#d1bfb1 guibg=NONE +hi Underlined ctermfg=NONE ctermbg=NONE gui=UNDERLINE guifg=NONE guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE guifg=#ffff00 guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC diff --git a/vim/colors/habiLight.vim b/vim/colors/habiLight.vim new file mode 100644 index 0000000..45d9133 --- /dev/null +++ b/vim/colors/habiLight.vim @@ -0,0 +1,138 @@ +" Vim color file +" A version of nuvola.vim colorscheme, original by Dr. J. Pfefferl +" I changed some colors and added some highlights for C and Vim 7 + +" vim: tw=0 ts=4 sw=4 +" Maintainer: Christian Habermann +" Email: christian( at )habermann-net( point )de +" Version: 1.2 +" History: 1.2: nicer colors for paren matching +" 1.1: Vim 7 support added (completion, spell checker, paren, tabs) +" 1.0: initial version +" +" Intro {{{1 +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "habiLight" + +" Normal {{{1 +hi Normal ctermfg=black ctermbg=NONE guifg=black guibg=#F9F5F9 + +" Search {{{1 +hi IncSearch cterm=UNDERLINE ctermfg=Black ctermbg=brown gui=UNDERLINE guifg=Black guibg=#FFE568 +hi Search term=reverse cterm=UNDERLINE ctermfg=Black ctermbg=brown gui=NONE guifg=Black guibg=#FFE568 + +" Messages {{{1 +hi ErrorMsg gui=BOLD guifg=#EB1513 guibg=NONE +hi! link WarningMsg ErrorMsg +hi ModeMsg gui=BOLD guifg=#0070ff guibg=NONE +hi MoreMsg guibg=NONE guifg=seagreen +hi! link Question MoreMsg + +" Split area {{{1 +hi StatusLine term=BOLD,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=BOLD guibg=#56A0EE guifg=white +hi StatusLineNC gui=NONE guibg=#56A0EE guifg=#E9E9F4 +hi! link VertSplit StatusLineNC +hi WildMenu gui=UNDERLINE guifg=#56A0EE guibg=#E9E9F4 + +" Diff {{{1 +hi DiffText gui=NONE guifg=#f83010 guibg=#ffeae0 +hi DiffChange gui=NONE guifg=#006800 guibg=#d0ffd0 +hi DiffDelete gui=NONE guifg=#2020ff guibg=#c8f2ea +hi! link DiffAdd DiffDelete + +" Cursor {{{1 +hi Cursor gui=none guifg=black guibg=orange +"hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold {{{1 +hi Folded gui=NONE guibg=#B5EEB5 guifg=black +"hi FoldColumn gui=NONE guibg=#9FD29F guifg=black +hi! link FoldColumn Folded + +" Other {{{1 +hi Directory gui=NONE guifg=#0000ff guibg=NONE +hi LineNr gui=NONE guifg=#8080a0 guibg=NONE +hi NonText gui=BOLD guifg=#4000ff guibg=#EFEFF7 +"hi SpecialKey gui=NONE guifg=#A35B00 guibg=NONE +hi Title gui=BOLD guifg=#1014AD guibg=NONE +hi Visual term=reverse ctermfg=yellow ctermbg=black gui=NONE guifg=Black guibg=#BDDFFF +hi VisualNOS term=reverse ctermfg=yellow ctermbg=black gui=UNDERLINE guifg=Black guibg=#BDDFFF + +" Syntax group {{{1 +hi Comment term=BOLD ctermfg=darkgray guifg=darkcyan +hi Constant term=UNDERLINE ctermfg=red guifg=#B91F49 +hi Error term=REVERSE ctermfg=15 ctermbg=9 guibg=Red guifg=White +hi Identifier term=UNDERLINE ctermfg=Blue guifg=Blue +hi Number term=UNDERLINE ctermfg=red gui=NONE guifg=#00C226 +hi PreProc term=UNDERLINE ctermfg=darkblue guifg=#1071CE +hi Special term=BOLD ctermfg=darkmagenta guifg=red2 +hi Statement term=BOLD ctermfg=DarkRed gui=NONE guifg=#F06F00 +hi Tag term=BOLD ctermfg=DarkGreen guifg=DarkGreen +hi Todo term=STANDOUT ctermbg=Yellow ctermfg=blue guifg=Blue guibg=Yellow +hi Type term=UNDERLINE ctermfg=Blue gui=NONE guifg=Blue +hi! link String Constant +hi! link Character Constant +hi! link Boolean Constant +hi! link Float Number +hi! link Function Identifier +hi! link Conditional Statement +hi! link Repeat Statement +hi! link Label Statement +hi! link Operator Statement +hi! link Keyword Statement +hi! link Exception Statement +hi! link Include PreProc +hi! link Define PreProc +hi! link Macro PreProc +hi! link PreCondit PreProc +hi! link StorageClass Type +hi! link Structure Type +hi! link Typedef Type +hi! link SpecialChar Special +hi! link Delimiter Special +hi! link SpecialComment Special +hi! link Debug Special + +" HTML {{{1 +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC + +" Tabs {{{1 +highlight TabLine term=underline cterm=underline ctermfg=0 ctermbg=7 gui=underline guibg=LightGrey +highlight TabLineFill term=reverse cterm=reverse gui=reverse +highlight TabLineSel term=bold cterm=bold gui=bold + +" Spell Checker {{{1 +if v:version >= 700 + highlight SpellBad term=reverse ctermbg=12 gui=undercurl guisp=Red + highlight SpellCap term=reverse ctermbg=9 gui=undercurl guisp=Blue + highlight SpellRare term=reverse ctermbg=13 gui=undercurl guisp=Magenta + highlight SpellLocale term=underline ctermbg=11 gui=undercurl guisp=DarkCyan +endif + +" Completion {{{1 +highlight Pmenu ctermbg=13 guifg=Black guibg=#BDDFFF +highlight PmenuSel ctermbg=7 guifg=Black guibg=Orange +highlight PmenuSbar ctermbg=7 guifg=#CCCCCC guibg=#CCCCCC +highlight PmenuThumb cterm=reverse gui=reverse guifg=Black guibg=#AAAAAA + +" Misc {{{1 +highlight KDE guifg=magenta gui=NONE +highlight mySpecialSymbols guifg=magenta gui=NONE + + +highlight MatchParen term=reverse ctermbg=11 gui=bold guibg=#B5EEB5 guifg=black + + +" vim600:foldmethod=marker diff --git a/vim/colors/hhazure.vim b/vim/colors/hhazure.vim new file mode 100644 index 0000000..9dfed35 --- /dev/null +++ b/vim/colors/hhazure.vim @@ -0,0 +1,83 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi VertSplit gui=underline guifg=bg guibg=#051525 +hi StatusLine gui=underline guifg=fg guibg=#051525 +hi StatusLineNC gui=underline guifg=#2c3c45 guibg=#051525 +hi LineNr gui=underline guifg=#54657d guibg=#051525 +hi Folded gui=none guifg=#54657d guibg=bg +hi FoldColumn gui=none guifg=#54657d guibg=bg +" title +hi Title gui=underline guifg=fg guibg=#34455d +" message +hi MoreMsg gui=underline guifg=bg guibg=#329858 +hi Question gui=underline guifg=bg guibg=#329858 + +hi Normal gui=none guifg=#7990a4 guibg=#152535 +hi NonText gui=underline guifg=#1d2d30 +hi NonText guibg=#1d2d30 + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#99ccb5 +hi Cursor gui=underline guifg=bg guibg=#99ccb5 +hi IncSearch gui=underline guifg=bg guibg=#99ccb5 +hi CursorIM gui=underline guifg=fg guibg=#006188 +hi Search gui=underline guifg=bg guibg=#33669a +hi Visual gui=underline guifg=bg guibg=#667888 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#8cdd66 +hi WarningMsg gui=underline guifg=bg guibg=#66cc6a +hi ModeMsg gui=underline guifg=bg guibg=#339599 + + +" inner {{{1 +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#66cc6a +hi Error gui=underline guifg=fg guibg=#884422 +hi Special gui=none guifg=#66bbb6 guibg=bg +hi SpecialKey gui=none guifg=#6695cc guibg=bg +hi Identifier gui=none guifg=#69be97 guibg=bg +hi Constant gui=none guifg=#22887b guibg=bg +hi Statement gui=none guifg=#74aa66 guibg=bg +hi Comment gui=none guifg=#006188 guibg=bg +hi Underlined gui=underline guifg=#826699 guibg=bg +hi Directory gui=none guifg=#447760 guibg=bg +hi PreProc gui=none guifg=#557767 guibg=bg +hi Type gui=none guifg=#429999 guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#99ffd0 +hi DiffChange gui=underline guifg=bg guibg=#55aa83 +hi DiffDelete gui=none guifg=bg guibg=#22a5aa +hi DiffAdd gui=underline guifg=bg guibg=#2ccc22 + + +" html {{{1 +hi htmlLink gui=underline guifg=#6696aa guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#74aa66 +hi htmlBoldUnderline gui=underline guifg=#74aa66 guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#44ccc0 +hi htmlUnderlineItalic gui=underline guifg=#44ccc0 guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#33aa40 +hi htmlBoldUnderlineItalic gui=underline guifg=#33aa40 guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhdblue.vim b/vim/colors/hhdblue.vim new file mode 100644 index 0000000..ebea8ba --- /dev/null +++ b/vim/colors/hhdblue.vim @@ -0,0 +1,233 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:08. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs___="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light +" "dark" : underline, fg=black, bg=dark +" "normal" : none, fg=light, bg=black +" nontext +" "underlined" : underline, fg=dark, bg=black +" "normal" : none, fg=dark, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkblue guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkblue ctermbg=black +hi Folded gui=NONE guifg=blue guibg=black +hi Folded cterm=NONE ctermfg=blue ctermbg=black +hi FoldColumn gui=NONE guifg=blue guibg=black +hi FoldColumn cterm=NONE ctermfg=blue ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=blue +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=blue +hi LineNr gui=UNDERLINE guifg=black guibg=lightblue +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi VertSplit gui=NONE guifg=darkblue guibg=darkblue +hi VertSplit cterm=NONE ctermfg=darkblue ctermbg=darkblue +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkblue +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkblue +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=blue +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=blue +hi Question gui=UNDERLINE guifg=black guibg=blue +hi Question cterm=UNDERLINE ctermfg=black ctermbg=blue + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdblue", "linenr", "light") +call s:SetOpt("cterm", "hhdblue", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightblue +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkblue +else + hi LineNr gui=NONE guifg=lightblue guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightblue +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkblue +else + hi LineNr cterm=NONE ctermfg=lightblue ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdblue", "nontext", "underlined") +call s:SetOpt("cterm", "hhdblue", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkblue guibg=black +else + hi NonText gui=NONE guifg=darkblue guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkblue ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkblue ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkblue +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhdcyan.vim b/vim/colors/hhdcyan.vim new file mode 100644 index 0000000..be41f2f --- /dev/null +++ b/vim/colors/hhdcyan.vim @@ -0,0 +1,233 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:10. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs___="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light +" "dark" : underline, fg=black, bg=dark +" "normal" : none, fg=light, bg=black +" nontext +" "underlined" : underline, fg=dark, bg=black +" "normal" : none, fg=dark, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkcyan guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkcyan ctermbg=black +hi Folded gui=NONE guifg=darkcyan guibg=black +hi Folded cterm=NONE ctermfg=darkcyan ctermbg=black +hi FoldColumn gui=NONE guifg=darkcyan guibg=black +hi FoldColumn cterm=NONE ctermfg=darkcyan ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkcyan +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=darkcyan +hi LineNr gui=UNDERLINE guifg=black guibg=lightcyan +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightcyan +hi VertSplit gui=NONE guifg=darkcyan guibg=darkcyan +hi VertSplit cterm=NONE ctermfg=darkcyan ctermbg=darkcyan +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkcyan +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkcyan +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkcyan +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkcyan +hi Question gui=UNDERLINE guifg=black guibg=darkcyan +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkcyan + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdcyan", "linenr", "light") +call s:SetOpt("cterm", "hhdcyan", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightcyan +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkcyan +else + hi LineNr gui=NONE guifg=lightcyan guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightcyan +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkcyan +else + hi LineNr cterm=NONE ctermfg=lightcyan ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdcyan", "nontext", "underlined") +call s:SetOpt("cterm", "hhdcyan", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkcyan guibg=black +else + hi NonText gui=NONE guifg=darkcyan guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkcyan ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkcyan ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkcyan +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhdgray.vim b/vim/colors/hhdgray.vim new file mode 100644 index 0000000..39249fc --- /dev/null +++ b/vim/colors/hhdgray.vim @@ -0,0 +1,233 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:11. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs___="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light +" "dark" : underline, fg=black, bg=dark +" "normal" : none, fg=light, bg=black +" nontext +" "underlined" : underline, fg=dark, bg=black +" "normal" : none, fg=dark, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkgray guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkgray ctermbg=black +hi Folded gui=NONE guifg=darkgray guibg=black +hi Folded cterm=NONE ctermfg=darkgray ctermbg=black +hi FoldColumn gui=NONE guifg=darkgray guibg=black +hi FoldColumn cterm=NONE ctermfg=darkgray ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkgray +hi StatusLineNC cterm=UNDERLINE ctermfg=black ctermbg=darkgray +hi LineNr gui=UNDERLINE guifg=black guibg=lightgray +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi VertSplit gui=NONE guifg=darkgray guibg=darkgray +hi VertSplit cterm=NONE ctermfg=darkgray ctermbg=darkgray +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkgray +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkgray +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkgray +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkgray +hi Question gui=UNDERLINE guifg=black guibg=darkgray +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkgray + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdgray", "linenr", "light") +call s:SetOpt("cterm", "hhdgray", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightgray +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkgray +else + hi LineNr gui=NONE guifg=lightgray guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightgray +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkgray +else + hi LineNr cterm=NONE ctermfg=lightgray ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdgray", "nontext", "underlined") +call s:SetOpt("cterm", "hhdgray", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkgray guibg=black +else + hi NonText gui=NONE guifg=darkgray guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkgray ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkgray ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkgray +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhdgreen.vim b/vim/colors/hhdgreen.vim new file mode 100644 index 0000000..f64cfc1 --- /dev/null +++ b/vim/colors/hhdgreen.vim @@ -0,0 +1,233 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:11. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs___="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light +" "dark" : underline, fg=black, bg=dark +" "normal" : none, fg=light, bg=black +" nontext +" "underlined" : underline, fg=dark, bg=black +" "normal" : none, fg=dark, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkgreen guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkgreen ctermbg=black +hi Folded gui=NONE guifg=darkgreen guibg=black +hi Folded cterm=NONE ctermfg=darkgreen ctermbg=black +hi FoldColumn gui=NONE guifg=darkgreen guibg=black +hi FoldColumn cterm=NONE ctermfg=darkgreen ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkgreen +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=darkgreen +hi LineNr gui=UNDERLINE guifg=black guibg=lightgreen +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi VertSplit gui=NONE guifg=darkgreen guibg=darkgreen +hi VertSplit cterm=NONE ctermfg=darkgreen ctermbg=darkgreen +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkgreen +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkgreen +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkgreen +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkgreen +hi Question gui=UNDERLINE guifg=black guibg=darkgreen +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkgreen + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdgreen", "linenr", "light") +call s:SetOpt("cterm", "hhdgreen", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightgreen +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkgreen +else + hi LineNr gui=NONE guifg=lightgreen guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkgreen +else + hi LineNr cterm=NONE ctermfg=lightgreen ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdgreen", "nontext", "underlined") +call s:SetOpt("cterm", "hhdgreen", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkgreen guibg=black +else + hi NonText gui=NONE guifg=darkgreen guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkgreen ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkgreen ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkgreen +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhdmagenta.vim b/vim/colors/hhdmagenta.vim new file mode 100644 index 0000000..ef91091 --- /dev/null +++ b/vim/colors/hhdmagenta.vim @@ -0,0 +1,233 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:12. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs___="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light +" "dark" : underline, fg=black, bg=dark +" "normal" : none, fg=light, bg=black +" nontext +" "underlined" : underline, fg=dark, bg=black +" "normal" : none, fg=dark, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkmagenta guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkmagenta ctermbg=black +hi Folded gui=NONE guifg=darkmagenta guibg=black +hi Folded cterm=NONE ctermfg=darkmagenta ctermbg=black +hi FoldColumn gui=NONE guifg=darkmagenta guibg=black +hi FoldColumn cterm=NONE ctermfg=darkmagenta ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkmagenta +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=darkmagenta +hi LineNr gui=UNDERLINE guifg=black guibg=lightmagenta +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightmagenta +hi VertSplit gui=NONE guifg=darkmagenta guibg=darkmagenta +hi VertSplit cterm=NONE ctermfg=darkmagenta ctermbg=darkmagenta +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkmagenta +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkmagenta +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkmagenta +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkmagenta +hi Question gui=UNDERLINE guifg=black guibg=darkmagenta +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkmagenta + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdmagenta", "linenr", "light") +call s:SetOpt("cterm", "hhdmagenta", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightmagenta +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkmagenta +else + hi LineNr gui=NONE guifg=lightmagenta guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightmagenta +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkmagenta +else + hi LineNr cterm=NONE ctermfg=lightmagenta ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdmagenta", "nontext", "underlined") +call s:SetOpt("cterm", "hhdmagenta", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkmagenta guibg=black +else + hi NonText gui=NONE guifg=darkmagenta guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkmagenta ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkmagenta ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkmagenta +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhdred.vim b/vim/colors/hhdred.vim new file mode 100644 index 0000000..a8f41a3 --- /dev/null +++ b/vim/colors/hhdred.vim @@ -0,0 +1,234 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:14. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs___="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light +" "dark" : underline, fg=black, bg=dark +" "normal" : none, fg=light, bg=black +" nontext +" "underlined" : underline, fg=dark, bg=black +" "normal" : none, fg=dark, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkred guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkred ctermbg=black +hi Folded gui=NONE guifg=brown guibg=black +hi Folded cterm=NONE ctermfg=brown ctermbg=black +hi FoldColumn gui=NONE guifg=brown guibg=black +hi FoldColumn cterm=NONE ctermfg=brown ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkred +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=darkred +hi LineNr gui=UNDERLINE guifg=black guibg=lightred +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi VertSplit gui=NONE guifg=darkred guibg=darkred +hi VertSplit cterm=NONE ctermfg=darkred ctermbg=darkred +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkred +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkred +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkred +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkred +hi Question gui=UNDERLINE guifg=black guibg=darkred +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkred + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdred", "linenr", "light") +call s:SetOpt("cterm", "hhdred", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightred +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkred +else + hi LineNr gui=NONE guifg=lightred guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightred +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkred +else + hi LineNr cterm=NONE ctermfg=lightred ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdred", "nontext", "underlined") +call s:SetOpt("cterm", "hhdred", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkred guibg=black +else + hi NonText gui=NONE guifg=darkred guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkred ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkred ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 brown +" 4 cyan +" 5 darkred +" 6 gray +" 7 green +" 8 lightblue +" 9 lightcyan +" 10 lightgray +" 11 lightgreen +" 12 lightmagenta +" 13 lightred +" 14 lightyellow +" 15 red +" 16 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhdyellow.vim b/vim/colors/hhdyellow.vim new file mode 100644 index 0000000..d8d1b33 --- /dev/null +++ b/vim/colors/hhdyellow.vim @@ -0,0 +1,235 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:19. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs___="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light +" "dark" : underline, fg=black, bg=dark +" "normal" : none, fg=light, bg=black +" nontext +" "underlined" : underline, fg=dark, bg=black +" "normal" : none, fg=dark, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkyellow guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkyellow ctermbg=black +hi Folded gui=NONE guifg=darkyellow guibg=black +hi Folded cterm=NONE ctermfg=darkyellow ctermbg=black +hi FoldColumn gui=NONE guifg=darkyellow guibg=black +hi FoldColumn cterm=NONE ctermfg=darkyellow ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkyellow +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=darkyellow +hi LineNr gui=NONE guifg=lightyellow guibg=black +hi LineNr cterm=NONE ctermfg=lightyellow ctermbg=black +hi LineNr gui=UNDERLINE guifg=black guibg=lightyellow +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightyellow +hi VertSplit gui=NONE guifg=darkyellow guibg=darkyellow +hi VertSplit cterm=NONE ctermfg=darkyellow ctermbg=darkyellow +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkyellow +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkyellow +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkyellow +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkyellow +hi Question gui=UNDERLINE guifg=black guibg=darkyellow +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkyellow + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdyellow", "linenr", "light") +call s:SetOpt("cterm", "hhdyellow", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightyellow +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkyellow +else + hi LineNr gui=NONE guifg=lightyellow guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightyellow +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkyellow +else + hi LineNr cterm=NONE ctermfg=lightyellow ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdyellow", "nontext", "underlined") +call s:SetOpt("cterm", "hhdyellow", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkyellow guibg=black +else + hi NonText gui=NONE guifg=darkyellow guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkyellow ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkyellow ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkyellow +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhorange.vim b/vim/colors/hhorange.vim new file mode 100644 index 0000000..a1de49d --- /dev/null +++ b/vim/colors/hhorange.vim @@ -0,0 +1,82 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi LineNr gui=underline guifg=#756664 guibg=#1c1200 +hi Folded gui=none guifg=#756664 guibg=bg +hi FoldColumn gui=none guifg=#756664 guibg=bg +" title +hi Title gui=underline guifg=fg guibg=#553614 +" message +hi MoreMsg gui=underline guifg=bg guibg=#983235 +hi Question gui=underline guifg=bg guibg=#983235 + +hi NonText gui=underline guifg=#2c2210 guibg=#2c2210 +hi VertSplit gui=underline guifg=bg guibg=#1c1200 +hi StatusLine gui=underline guifg=fg guibg=#1c1200 +hi StatusLineNC gui=underline guifg=#3c2e2c guibg=#1c1200 + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#cc9069 +hi Cursor gui=underline guifg=bg guibg=#cc9069 +hi IncSearch gui=underline guifg=bg guibg=#cc9069 +hi CursorIM gui=underline guifg=fg guibg=#887900 +hi Search gui=underline guifg=bg guibg=#994113 +hi Visual gui=underline guifg=bg guibg=#886b46 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#dd66bb +hi WarningMsg gui=underline guifg=bg guibg=#cc668b +hi ModeMsg gui=underline guifg=bg guibg=#997433 + + +" inner {{{1 +hi Normal gui=none guifg=#9b8f78 guibg=#332412 +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#cc668b +hi Error gui=underline guifg=fg guibg=#413399 +hi Special gui=none guifg=#bb9466 guibg=bg +hi SpecialKey gui=none guifg=#becc66 guibg=bg +hi Identifier gui=none guifg=#be7569 guibg=bg +hi Constant gui=none guifg=#885222 guibg=bg +hi Statement gui=none guifg=#aa668f guibg=bg +hi Comment gui=none guifg=#887900 guibg=bg +hi Underlined gui=underline guifg=#66996d guibg=bg +hi Directory gui=none guifg=#774b44 guibg=bg +hi PreProc gui=none guifg=#775a55 guibg=bg +hi Type gui=none guifg=#bb7b22 guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#ffa799 +hi DiffChange gui=underline guifg=bg guibg=#aa6155 +hi DiffDelete gui=none guifg=bg guibg=#aa7922 +hi DiffAdd gui=underline guifg=bg guibg=#cc2270 + + +" html {{{1 +hi htmlLink gui=underline guifg=#aaa366 guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#aa668f +hi htmlBoldUnderline gui=underline guifg=#aa668f guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#cc8a44 +hi htmlUnderlineItalic gui=underline guifg=#cc8a44 guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#aa3355 +hi htmlBoldUnderlineItalic gui=underline guifg=#aa3355 guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhpink.vim b/vim/colors/hhpink.vim new file mode 100644 index 0000000..cffe418 --- /dev/null +++ b/vim/colors/hhpink.vim @@ -0,0 +1,85 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi Folded gui=none guifg=#855060 guibg=bg +hi FoldColumn gui=none guifg=#855060 guibg=bg +hi LineNr gui=underline guifg=#855060 guibg=#200510 +hi VertSplit gui=underline guifg=bg guibg=#200510 +hi StatusLine gui=underline guifg=fg guibg=#200510 +hi StatusLineNC gui=underline guifg=#3c2c31 guibg=#200510 +hi NonText gui=underline guifg=#3c2530 +hi NonText guibg=#3c2530 +" title +hi Title gui=underline guifg=fg guibg=#653040 +" message +hi MoreMsg gui=underline guifg=bg guibg=#983266 +hi Question gui=underline guifg=bg guibg=#983266 + + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#cc7990 +hi Cursor gui=underline guifg=bg guibg=#cc7990 +hi IncSearch gui=underline guifg=bg guibg=#cc7990 +hi CursorIM gui=underline guifg=fg guibg=#884830 +hi Search gui=underline guifg=bg guibg=#993356 +hi Visual gui=underline guifg=bg guibg=#885672 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#c666dd +hi WarningMsg gui=underline guifg=bg guibg=#cc66bc +hi ModeMsg gui=underline guifg=bg guibg=#994333 + + +"TODO + +" inner {{{1 +hi Normal gui=none guifg=#bb7899 guibg=#40202a +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#cc568c +hi Error gui=underline guifg=fg guibg=#335699 +hi Special gui=none guifg=#bb6b66 guibg=bg +hi SpecialKey gui=none guifg=#cca966 guibg=bg +hi Identifier gui=none guifg=#be6986 guibg=bg +hi Constant gui=none guifg=#882223 guibg=bg +hi Statement gui=none guifg=#a466aa guibg=bg +hi Comment gui=none guifg=#884830 guibg=bg +hi Underlined gui=underline guifg=#779966 guibg=bg +hi Directory gui=none guifg=#774455 guibg=bg +hi PreProc gui=none guifg=#775561 guibg=bg +hi Type gui=none guifg=#aa3222 guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#ff99bc +hi DiffChange gui=underline guifg=bg guibg=#aa5572 +hi DiffDelete gui=none guifg=bg guibg=#aa3822 +hi DiffAdd gui=underline guifg=bg guibg=#cc22c2 + + +" html {{{1 +hi htmlLink gui=underline guifg=#aa8266 guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#a466aa +hi htmlBoldUnderline gui=underline guifg=#a466aa guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#cc4944 +hi htmlUnderlineItalic gui=underline guifg=#cc4944 guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#aa338e +hi htmlBoldUnderlineItalic gui=underline guifg=#aa338e guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhspring.vim b/vim/colors/hhspring.vim new file mode 100644 index 0000000..cee4174 --- /dev/null +++ b/vim/colors/hhspring.vim @@ -0,0 +1,83 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi LineNr gui=underline guifg=#757164 guibg=#1c1910 +hi Folded gui=none guifg=#757164 guibg=bg +hi FoldColumn gui=none guifg=#757164 guibg=bg +" title +hi Title gui=underline guifg=fg guibg=#555144 +" message +hi MoreMsg gui=underline guifg=bg guibg=#986c32 +hi Question gui=underline guifg=bg guibg=#986c32 + +hi NonText gui=underline guifg=#2c2920 guibg=#2c2920 +hi VertSplit gui=underline guifg=bg guibg=#1c1910 +hi StatusLine gui=underline guifg=fg guibg=#1c1910 +hi StatusLineNC gui=underline guifg=#3c382c guibg=#1c1910 + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#ccbf99 +hi Cursor gui=underline guifg=bg guibg=#ccbf99 +hi IncSearch gui=underline guifg=bg guibg=#ccbf99 +hi CursorIM gui=underline guifg=fg guibg=#458800 +hi Search gui=underline guifg=bg guibg=#997e33 +hi Visual gui=underline guifg=bg guibg=#887f66 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#dd6674 +hi WarningMsg gui=underline guifg=bg guibg=#cc7e66 +hi ModeMsg gui=underline guifg=bg guibg=#819933 + + +"TODO +" inner {{{1 +hi Normal gui=none guifg=#bbae88 guibg=#332f22 +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#cc7e66 +hi Error gui=underline guifg=fg guibg=#7e3399 +hi Special gui=none guifg=#afbb66 guibg=bg +hi SpecialKey gui=none guifg=#81cc66 guibg=bg +hi Identifier gui=none guifg=#bea869 guibg=bg +hi Constant gui=none guifg=#818822 guibg=bg +hi Statement gui=none guifg=#aa6667 guibg=bg +hi Comment gui=none guifg=#458800 guibg=bg +hi Underlined gui=underline guifg=#66998c guibg=bg +hi Directory gui=none guifg=#776a44 guibg=bg +hi PreProc gui=none guifg=#776e55 guibg=bg +hi Type gui=none guifg=#9fbb22 guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#ffe499 +hi DiffChange gui=underline guifg=bg guibg=#aa9455 +hi DiffDelete gui=none guifg=bg guibg=#89aa22 +hi DiffAdd gui=underline guifg=bg guibg=#cc3a22 + + +" html {{{1 +hi htmlLink gui=underline guifg=#89aa66 guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#aa6667 +hi htmlBoldUnderline gui=underline guifg=#aa6667 guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#bccc44 +hi htmlUnderlineItalic gui=underline guifg=#bccc44 guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#aa5833 +hi htmlBoldUnderlineItalic gui=underline guifg=#aa5833 guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhteal.vim b/vim/colors/hhteal.vim new file mode 100644 index 0000000..79dbb3c --- /dev/null +++ b/vim/colors/hhteal.vim @@ -0,0 +1,83 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi LineNr gui=underline guifg=#647564 guibg=#101c10 +hi Folded gui=none guifg=#647564 guibg=bg +hi FoldColumn gui=none guifg=#647564 guibg=bg +" title +hi Title gui=underline guifg=fg guibg=#445544 +" message +hi MoreMsg gui=underline guifg=bg guibg=#439832 +hi Question gui=underline guifg=bg guibg=#439832 + +hi NonText gui=underline guifg=#202c20 guibg=#202c20 +hi VertSplit gui=underline guifg=bg guibg=#101c10 +hi StatusLine gui=underline guifg=fg guibg=#101c10 +hi StatusLineNC gui=underline guifg=#2c3c2c guibg=#101c10 + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#99cc99 +hi Cursor gui=underline guifg=bg guibg=#99cc99 +hi IncSearch gui=underline guifg=bg guibg=#99cc99 +hi CursorIM gui=underline guifg=fg guibg=#008866 +hi Search gui=underline guifg=bg guibg=#339933 +hi Visual gui=underline guifg=bg guibg=#668866 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#ccdd66 +hi WarningMsg gui=underline guifg=bg guibg=#99cc66 +hi ModeMsg gui=underline guifg=bg guibg=#339966 + + +"TODO +" inner {{{1 +hi Normal gui=none guifg=#88bb88 guibg=#223322 +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#99cc66 +hi Error gui=underline guifg=fg guibg=#993333 +hi Special gui=none guifg=#66bb88 guibg=bg +hi SpecialKey gui=none guifg=#66cccc guibg=bg +hi Identifier gui=none guifg=#69be69 guibg=bg +hi Constant gui=none guifg=#228844 guibg=bg +hi Statement gui=none guifg=#99aa66 guibg=bg +hi Comment gui=none guifg=#008866 guibg=bg +hi Underlined gui=underline guifg=#666699 guibg=bg +hi Directory gui=none guifg=#447744 guibg=bg +hi PreProc gui=none guifg=#557755 guibg=bg +hi Type gui=none guifg=#22bb66 guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#99ff99 +hi DiffChange gui=underline guifg=bg guibg=#55aa55 +hi DiffDelete gui=none guifg=bg guibg=#22aa66 +hi DiffAdd gui=underline guifg=bg guibg=#88cc22 + + +" html {{{1 +hi htmlLink gui=underline guifg=#66aa99 guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#99aa66 +hi htmlBoldUnderline gui=underline guifg=#99aa66 guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#44cc77 +hi htmlUnderlineItalic gui=underline guifg=#44cc77 guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#66aa33 +hi htmlBoldUnderlineItalic gui=underline guifg=#66aa33 guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/hhviolet.vim b/vim/colors/hhviolet.vim new file mode 100644 index 0000000..b8fbf62 --- /dev/null +++ b/vim/colors/hhviolet.vim @@ -0,0 +1,83 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand(":t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi LineNr gui=underline guifg=#686475 guibg=#13101c +hi Folded gui=none guifg=#686475 guibg=bg +hi FoldColumn gui=none guifg=#686475 guibg=bg +" title +hi Title gui=underline guifg=fg guibg=#484455 +" message +hi MoreMsg gui=underline guifg=bg guibg=#373298 +hi Question gui=underline guifg=bg guibg=#373298 + +hi NonText gui=underline guifg=#23202c guibg=#23202c +hi VertSplit gui=underline guifg=bg guibg=#13101c +hi StatusLine gui=underline guifg=fg guibg=#13101c +hi StatusLineNC gui=underline guifg=#302c3c guibg=#13101c + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#a499cc +hi Cursor gui=underline guifg=bg guibg=#a499cc +hi IncSearch gui=underline guifg=bg guibg=#a499cc +hi CursorIM gui=underline guifg=fg guibg=#662088 +hi Search gui=underline guifg=bg guibg=#493399 +hi Visual gui=underline guifg=bg guibg=#6d6688 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#66b2dd +hi WarningMsg gui=underline guifg=bg guibg=#6683cc +hi ModeMsg gui=underline guifg=bg guibg=#7c3399 + + +"TODO +" inner {{{1 +hi Normal gui=none guifg=#9388bb guibg=#262233 +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#6683cc +hi Error gui=underline guifg=fg guibg=#335544 +hi Special gui=none guifg=#9b66bb guibg=bg +hi SpecialKey gui=none guifg=#cc66b6 guibg=bg +hi Identifier gui=none guifg=#7c69be guibg=bg +hi Constant gui=none guifg=#774499 guibg=bg +hi Statement gui=none guifg=#668aaa guibg=bg +hi Comment gui=none guifg=#662088 guibg=bg +hi Underlined gui=underline guifg=#997166 guibg=bg +hi Directory gui=none guifg=#4f4477 guibg=bg +hi PreProc gui=none guifg=#5c5577 guibg=bg +hi Type gui=none guifg=#7733cc guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#af99ff +hi DiffChange gui=underline guifg=bg guibg=#6855aa +hi DiffDelete gui=none guifg=bg guibg=#8422aa +hi DiffAdd gui=underline guifg=bg guibg=#2263cc + + +" html {{{1 +hi htmlLink gui=underline guifg=#a866aa guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#668aaa +hi htmlBoldUnderline gui=underline guifg=#668aaa guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#9544cc +hi htmlUnderlineItalic gui=underline guifg=#9544cc guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#334caa +hi htmlBoldUnderlineItalic gui=underline guifg=#334caa guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/vim/colors/ibmedit.vim b/vim/colors/ibmedit.vim new file mode 100644 index 0000000..4b846c6 --- /dev/null +++ b/vim/colors/ibmedit.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: Maarten Slaets +" Last Change: 2002 Aug 16 + +" Color settings similar to that used in IBM Edit + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="ibmedit" + +hi Normal term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkBlue +hi Normal gui=NONE guifg=#CCCCCC guibg=DarkBlue +hi NonText term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkBlue +hi NonText gui=NONE guifg=#CCCCCC guibg=DarkBlue + +hi Statement term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Statement gui=NONE guifg=White guibg=DarkBlue +hi Special term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Special gui=NONE guifg=White guibg=DarkBlue +hi Constant term=NONE cterm=NONE ctermfg=Cyan ctermbg=DarkBlue +hi Constant gui=NONE guifg=#99CCFF guibg=DarkBlue +hi Comment term=NONE cterm=NONE ctermfg=Blue ctermbg=DarkBlue +hi Comment gui=NONE guifg=#6666FF guibg=DarkBlue +hi Preproc term=NONE cterm=NONE ctermfg=Cyan ctermbg=DarkBlue +hi Preproc gui=NONE guifg=#99CCFF guibg=DarkBlue +hi Type term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkBlue +hi Type gui=NONE guifg=#CCCCCC guibg=DarkBlue +hi Identifier term=NONE cterm=NONE ctermfg=Grey ctermbg=DarkBlue +hi Identifier gui=NONE guifg=#CCCCCC guibg=DarkBlue + +hi StatusLine term=bold cterm=bold ctermfg=Black ctermbg=White +hi StatusLine gui=bold guifg=Black guibg=White + +hi StatusLineNC term=NONE cterm=NONE ctermfg=Black ctermbg=White +hi StatusLineNC gui=NONE guifg=Black guibg=White + +hi Visual term=NONE cterm=NONE ctermfg=Black ctermbg=DarkCyan +hi Visual gui=NONE guifg=Black guibg=Gray + +hi Search term=NONE cterm=NONE ctermbg=Gray +hi Search gui=NONE guibg=Gray + +hi VertSplit term=NONE cterm=NONE ctermfg=Black ctermbg=White +hi VertSplit gui=NONE guifg=Black guibg=White + +hi Directory term=NONE cterm=NONE ctermfg=Green ctermbg=DarkBlue +hi Directory gui=NONE guifg=Green guibg=DarkBlue + +hi WarningMsg term=standout cterm=NONE ctermfg=Red ctermbg=DarkBlue +hi WarningMsg gui=standout guifg=Red guibg=DarkBlue + +hi Error term=NONE cterm=NONE ctermfg=White ctermbg=Red +hi Error gui=NONE guifg=White guibg=Red + +hi Cursor ctermfg=Black ctermbg=Yellow +hi Cursor guifg=Black guibg=Yellow + diff --git a/vim/colors/impact.vim b/vim/colors/impact.vim new file mode 100644 index 0000000..507ff3d --- /dev/null +++ b/vim/colors/impact.vim @@ -0,0 +1,66 @@ +" Vim color file +" Maintainer: Shirk +" Last Change: 19 September 2005 - 0.2 +" URL: trinity.gentoofreaks.org + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark "or light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="impact" + +if exists("g:impact_transbg") + hi Normal ctermfg=LightGray ctermbg=none + hi NonText ctermfg=DarkGray ctermbg=none + + hi Statement ctermfg=Blue ctermbg=none + hi Comment ctermfg=DarkGray ctermbg=none cterm=bold term=bold + hi Constant ctermfg=DarkCyan ctermbg=none + hi Identifier ctermfg=Cyan ctermbg=none + hi Type ctermfg=DarkGreen ctermbg=none + hi Folded ctermfg=DarkGreen ctermbg=none cterm=underline term=none + hi Special ctermfg=Blue ctermbg=none + hi PreProc ctermfg=LightGray ctermbg=none cterm=bold term=bold + hi Scrollbar ctermfg=Blue ctermbg=none + hi Cursor ctermfg=white ctermbg=none + hi ErrorMsg ctermfg=Red ctermbg=none cterm=bold term=bold + hi WarningMsg ctermfg=Yellow ctermbg=none + hi VertSplit ctermfg=White ctermbg=none + hi Directory ctermfg=Cyan ctermbg=DarkBlue + hi Visual ctermfg=White ctermbg=DarkGray cterm=underline term=none + hi Title ctermfg=White ctermbg=DarkBlue + + hi StatusLine term=bold cterm=bold,underline ctermfg=White ctermbg=Black + hi StatusLineNC term=bold cterm=bold,underline ctermfg=Gray ctermbg=Black + hi LineNr term=bold cterm=bold ctermfg=White ctermbg=DarkGray +else + hi Normal ctermfg=LightGray ctermbg=Black + hi NonText ctermfg=DarkGray ctermbg=Black + + hi Statement ctermfg=Blue ctermbg=Black + hi Comment ctermfg=DarkGray ctermbg=Black cterm=bold term=bold + hi Constant ctermfg=DarkCyan ctermbg=Black + hi Identifier ctermfg=Cyan ctermbg=Black + hi Type ctermfg=DarkGreen ctermbg=Black + hi Folded ctermfg=DarkGreen ctermbg=Black cterm=underline term=none + hi Special ctermfg=Blue ctermbg=Black + hi PreProc ctermfg=LightGray ctermbg=Black cterm=bold term=bold + hi Scrollbar ctermfg=Blue ctermbg=Black + hi Cursor ctermfg=white ctermbg=Black + hi ErrorMsg ctermfg=Red ctermbg=Black cterm=bold term=bold + hi WarningMsg ctermfg=Yellow ctermbg=Black + hi VertSplit ctermfg=White ctermbg=Black + hi Directory ctermfg=Cyan ctermbg=DarkBlue + hi Visual ctermfg=White ctermbg=DarkGray cterm=underline term=none + hi Title ctermfg=White ctermbg=DarkBlue + + hi StatusLine term=bold cterm=bold,underline ctermfg=White ctermbg=Black + hi StatusLineNC term=bold cterm=bold,underline ctermfg=Gray ctermbg=Black + hi LineNr term=bold cterm=bold ctermfg=White ctermbg=DarkGray +endif diff --git a/vim/colors/inkpot.vim b/vim/colors/inkpot.vim new file mode 100644 index 0000000..a062248 --- /dev/null +++ b/vim/colors/inkpot.vim @@ -0,0 +1,212 @@ +" Vim color file +" Name: inkpot.vim +" Maintainer: Ciaran McCreesh +" This should work in the GUI, rxvt-unicode (88 colour mode) and xterm (256 +" colour mode). It won't work in 8/16 colour terminals. +" +" To use a black background, :let g:inkpot_black_background = 1 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "inkpot" + +" map a urxvt cube number to an xterm-256 cube number +fun! M(a) + return strpart("0135", a:a, 1) + 0 +endfun + +" map a urxvt colour to an xterm-256 colour +fun! X(a) + if &t_Co == 88 + return a:a + else + if a:a == 8 + return 237 + elseif a:a < 16 + return a:a + elseif a:a > 79 + return 232 + (3 * (a:a - 80)) + else + let l:b = a:a - 16 + let l:x = l:b % 4 + let l:y = (l:b / 4) % 4 + let l:z = (l:b / 16) + return 16 + M(l:x) + (6 * M(l:y)) + (36 * M(l:z)) + endif + endif +endfun + +if ! exists("g:inkpot_black_background") + let g:inkpot_black_background = 0 +endif + +if has("gui_running") + if ! g:inkpot_black_background + hi Normal gui=NONE guifg=#cfbfad guibg=#1e1e27 + else + hi Normal gui=NONE guifg=#cfbfad guibg=#000000 + endif + + hi IncSearch gui=BOLD guifg=#303030 guibg=#cd8b60 + hi Search gui=NONE guifg=#303030 guibg=#cd8b60 + hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#ce4e4e + hi WarningMsg gui=BOLD guifg=#ffffff guibg=#ce8e4e + hi ModeMsg gui=BOLD guifg=#7e7eae guibg=NONE + hi MoreMsg gui=BOLD guifg=#7e7eae guibg=NONE + hi Question gui=BOLD guifg=#ffcd00 guibg=NONE + + hi StatusLine gui=BOLD guifg=#b9b9b9 guibg=#3e3e5e + hi User1 gui=BOLD guifg=#00ff8b guibg=#3e3e5e + hi User2 gui=BOLD guifg=#7070a0 guibg=#3e3e5e + hi StatusLineNC gui=NONE guifg=#b9b9b9 guibg=#3e3e5e + hi VertSplit gui=NONE guifg=#b9b9b9 guibg=#3e3e5e + + hi WildMenu gui=BOLD guifg=#eeeeee guibg=#6e6eaf + + hi MBENormal guifg=#cfbfad guibg=#2e2e3f + hi MBEChanged guifg=#eeeeee guibg=#2e2e3f + hi MBEVisibleNormal guifg=#cfcfcd guibg=#4e4e8f + hi MBEVisibleChanged guifg=#eeeeee guibg=#4e4e8f + + hi DiffText gui=NONE guifg=#ffffcd guibg=#4a2a4a + hi DiffChange gui=NONE guifg=#ffffcd guibg=#306b8f + hi DiffDelete gui=NONE guifg=#ffffcd guibg=#6d3030 + hi DiffAdd gui=NONE guifg=#ffffcd guibg=#306d30 + + hi Cursor gui=NONE guifg=#404040 guibg=#8b8bff + hi lCursor gui=NONE guifg=#404040 guibg=#8fff8b + hi CursorIM gui=NONE guifg=#404040 guibg=#8b8bff + + hi Folded gui=NONE guifg=#cfcfcd guibg=#4b208f + hi FoldColumn gui=NONE guifg=#8b8bcd guibg=#2e2e2e + + hi Directory gui=NONE guifg=#00ff8b guibg=NONE + hi LineNr gui=NONE guifg=#8b8bcd guibg=#2e2e2e + hi NonText gui=BOLD guifg=#8b8bcd guibg=NONE + hi SpecialKey gui=BOLD guifg=#ab60ed guibg=NONE + hi Title gui=BOLD guifg=#af4f4b guibg=NONE + hi Visual gui=NONE guifg=#eeeeee guibg=#4e4e8f + + hi Comment gui=NONE guifg=#cd8b00 guibg=NONE + hi Constant gui=NONE guifg=#ffcd8b guibg=NONE + hi String gui=NONE guifg=#ffcd8b guibg=#404040 + hi Error gui=NONE guifg=#ffffff guibg=#6e2e2e + hi Identifier gui=NONE guifg=#ff8bff guibg=NONE + hi Ignore gui=NONE + hi Number gui=NONE guifg=#f0ad6d guibg=NONE + hi PreProc gui=NONE guifg=#409090 guibg=NONE + hi Special gui=NONE guifg=#c080d0 guibg=NONE + hi SpecialChar gui=NONE guifg=#c080d0 guibg=#404040 + hi Statement gui=NONE guifg=#808bed guibg=NONE + hi Todo gui=BOLD guifg=#303030 guibg=#d0a060 + hi Type gui=NONE guifg=#ff8bff guibg=NONE + hi Underlined gui=BOLD guifg=#df9f2d guibg=NONE + hi TaglistTagName gui=BOLD guifg=#808bed guibg=NONE + + hi perlSpecialMatch gui=NONE guifg=#c080d0 guibg=#404040 + hi perlSpecialString gui=NONE guifg=#c080d0 guibg=#404040 + + hi cSpecialCharacter gui=NONE guifg=#c080d0 guibg=#404040 + hi cFormat gui=NONE guifg=#c080d0 guibg=#404040 + + hi doxygenBrief gui=NONE guifg=#fdab60 guibg=NONE + hi doxygenParam gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenPrev gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenSmallSpecial gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenSpecial gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenComment gui=NONE guifg=#ad7b20 guibg=NONE + hi doxygenSpecial gui=NONE guifg=#fdab60 guibg=NONE + hi doxygenSpecialMultilineDesc gui=NONE guifg=#ad600b guibg=NONE + hi doxygenSpecialOnelineDesc gui=NONE guifg=#ad600b guibg=NONE + + if v:version >= 700 + hi Pmenu gui=NONE guifg=#eeeeee guibg=#4e4e8f + hi PmenuSel gui=BOLD guifg=#eeeeee guibg=#2e2e3f + hi PmenuSbar gui=BOLD guifg=#eeeeee guibg=#6e6eaf + hi PmenuThumb gui=BOLD guifg=#eeeeee guibg=#6e6eaf + + hi SpellBad gui=undercurl guisp=#cc6666 + hi SpellRare gui=undercurl guisp=#cc66cc + hi SpellLocal gui=undercurl guisp=#cccc66 + hi SpellCap gui=undercurl guisp=#66cccc + + hi MatchParen gui=NONE guifg=#404040 guibg=#8fff8b + endif +else + if ! g:inkpot_black_background + exec "hi Normal cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(80) + else + exec "hi Normal cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(16) + endif + + exec "hi IncSearch cterm=BOLD ctermfg=" . X(80) . " ctermbg=" . X(73) + exec "hi Search cterm=NONE ctermfg=" . X(80) . " ctermbg=" . X(73) + exec "hi ErrorMsg cterm=BOLD ctermfg=" . X(16) . " ctermbg=" . X(48) + exec "hi WarningMsg cterm=BOLD ctermfg=" . X(16) . " ctermbg=" . X(68) + exec "hi ModeMsg cterm=BOLD ctermfg=" . X(38) . " ctermbg=" . "NONE" + exec "hi MoreMsg cterm=BOLD ctermfg=" . X(38) . " ctermbg=" . "NONE" + exec "hi Question cterm=BOLD ctermfg=" . X(52) . " ctermbg=" . "NONE" + + exec "hi StatusLine cterm=BOLD ctermfg=" . X(85) . " ctermbg=" . X(81) + exec "hi User1 cterm=BOLD ctermfg=" . X(28) . " ctermbg=" . X(81) + exec "hi User2 cterm=BOLD ctermfg=" . X(39) . " ctermbg=" . X(81) + exec "hi StatusLineNC cterm=NONE ctermfg=" . X(84) . " ctermbg=" . X(81) + exec "hi VertSplit cterm=NONE ctermfg=" . X(84) . " ctermbg=" . X(81) + + exec "hi WildMenu cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(38) + + exec "hi MBENormal ctermfg=" . X(85) . " ctermbg=" . X(81) + exec "hi MBEChanged ctermfg=" . X(87) . " ctermbg=" . X(81) + exec "hi MBEVisibleNormal ctermfg=" . X(85) . " ctermbg=" . X(82) + exec "hi MBEVisibleChanged ctermfg=" . X(87) . " ctermbg=" . X(82) + + exec "hi DiffText cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(34) + exec "hi DiffChange cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(17) + exec "hi DiffDelete cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(32) + exec "hi DiffAdd cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(20) + + exec "hi Folded cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(35) + exec "hi FoldColumn cterm=NONE ctermfg=" . X(39) . " ctermbg=" . X(80) + + exec "hi Directory cterm=NONE ctermfg=" . X(28) . " ctermbg=" . "NONE" + exec "hi LineNr cterm=NONE ctermfg=" . X(39) . " ctermbg=" . X(80) + exec "hi NonText cterm=BOLD ctermfg=" . X(39) . " ctermbg=" . "NONE" + exec "hi SpecialKey cterm=BOLD ctermfg=" . X(55) . " ctermbg=" . "NONE" + exec "hi Title cterm=BOLD ctermfg=" . X(48) . " ctermbg=" . "NONE" + exec "hi Visual cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(38) + + exec "hi Comment cterm=NONE ctermfg=" . X(52) . " ctermbg=" . "NONE" + exec "hi Constant cterm=NONE ctermfg=" . X(73) . " ctermbg=" . "NONE" + exec "hi String cterm=NONE ctermfg=" . X(73) . " ctermbg=" . X(81) + exec "hi Error cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(32) + exec "hi Identifier cterm=NONE ctermfg=" . X(53) . " ctermbg=" . "NONE" + exec "hi Ignore cterm=NONE" + exec "hi Number cterm=NONE ctermfg=" . X(69) . " ctermbg=" . "NONE" + exec "hi PreProc cterm=NONE ctermfg=" . X(25) . " ctermbg=" . "NONE" + exec "hi Special cterm=NONE ctermfg=" . X(55) . " ctermbg=" . "NONE" + exec "hi SpecialChar cterm=NONE ctermfg=" . X(55) . " ctermbg=" . X(81) + exec "hi Statement cterm=NONE ctermfg=" . X(27) . " ctermbg=" . "NONE" + exec "hi Todo cterm=BOLD ctermfg=" . X(16) . " ctermbg=" . X(57) + exec "hi Type cterm=NONE ctermfg=" . X(71) . " ctermbg=" . "NONE" + exec "hi Underlined cterm=BOLD ctermfg=" . X(77) . " ctermbg=" . "NONE" + exec "hi TaglistTagName cterm=BOLD ctermfg=" . X(39) . " ctermbg=" . "NONE" + + if v:version >= 700 + exec "hi Pmenu cterm=NONE ctermfg=" . X(87) . " ctermbg=" . X(82) + exec "hi PmenuSel cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(38) + exec "hi PmenuSbar cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(39) + exec "hi PmenuThumb cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(39) + + exec "hi SpellBad cterm=NONE ctermbg=" . X(32) + exec "hi SpellRare cterm=NONE ctermbg=" . X(33) + exec "hi SpellLocal cterm=NONE ctermbg=" . X(36) + exec "hi SpellCap cterm=NONE ctermbg=" . X(21) + exec "hi MatchParen cterm=NONE ctermbg=" . X(14) . "ctermfg=" . X(25) + endif +endif + +" vim: set et : diff --git a/vim/colors/ir_black.vim b/vim/colors/ir_black.vim new file mode 100644 index 0000000..2e151d8 --- /dev/null +++ b/vim/colors/ir_black.vim @@ -0,0 +1,212 @@ +" ir_black color scheme +" More at: http://blog.infinitered.com/entries/show/8 + + +" ******************************************************************************** +" Standard colors used in all ir_black themes: +" Note, x:x:x are RGB values +" +" normal: #f6f3e8 +" +" string: #A8FF60 168:255:96 +" string inner (punc, code, etc): #00A0A0 0:160:160 +" number: #FF73FD 255:115:253 +" comments: #7C7C7C 124:124:124 +" keywords: #96CBFE 150:203:254 +" operators: white +" class: #FFFFB6 255:255:182 +" method declaration name: #FFD2A7 255:210:167 +" regular expression: #E9C062 233:192:98 +" regexp alternate: #FF8000 255:128:0 +" regexp alternate 2: #B18A3D 177:138:61 +" variable: #C6C5FE 198:197:254 +" +" Misc colors: +" red color (used for whatever): #FF6C60 255:108:96 +" light red: #FFB6B0 255:182:176 +" +" brown: #E18964 good for special +" +" lightpurpleish: #FFCCFF +" +" Interface colors: +" background color: black +" cursor (where underscore is used): #FFA560 255:165:96 +" cursor (where block is used): white +" visual selection: #1D1E2C +" current line: #151515 21:21:21 +" search selection: #07281C 7:40:28 +" line number: #3D3D3D 61:61:61 + + +" ******************************************************************************** +" The following are the preferred 16 colors for your terminal +" Colors Bright Colors +" Black #4E4E4E #7C7C7C +" Red #FF6C60 #FFB6B0 +" Green #A8FF60 #CEFFAB +" Yellow #FFFFB6 #FFFFCB +" Blue #96CBFE #FFFFCB +" Magenta #FF73FD #FF9CFE +" Cyan #C6C5FE #DFDFFE +" White #EEEEEE #FFFFFF + + +" ******************************************************************************** +set background=dark +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "ir_black" + + +"hi Example guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE + +" General colors +hi Normal guifg=#f6f3e8 guibg=black gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE +hi NonText guifg=#070707 guibg=black gui=NONE ctermfg=black ctermbg=NONE cterm=NONE + +hi Cursor guifg=black guibg=white gui=NONE ctermfg=black ctermbg=white cterm=reverse +hi LineNr guifg=#3D3D3D guibg=black gui=NONE ctermfg=darkgray ctermbg=NONE cterm=NONE + +hi VertSplit guifg=#202020 guibg=#202020 gui=NONE ctermfg=darkgray ctermbg=darkgray cterm=NONE +hi StatusLine guifg=#CCCCCC guibg=#202020 gui=italic ctermfg=white ctermbg=darkgray cterm=NONE +hi StatusLineNC guifg=black guibg=#202020 gui=NONE ctermfg=blue ctermbg=darkgray cterm=NONE + +hi Folded guifg=#a0a8b0 guibg=#384048 gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE +hi Title guifg=#f6f3e8 guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE +hi Visual guifg=NONE guibg=#262D51 gui=NONE ctermfg=NONE ctermbg=darkgray cterm=NONE + +hi SpecialKey guifg=#808080 guibg=#343434 gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE + +hi WildMenu guifg=green guibg=yellow gui=NONE ctermfg=black ctermbg=yellow cterm=NONE +hi PmenuSbar guifg=black guibg=white gui=NONE ctermfg=black ctermbg=white cterm=NONE +"hi Ignore guifg=gray guibg=black gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE + +hi Error guifg=NONE guibg=NONE gui=undercurl ctermfg=white ctermbg=red cterm=NONE guisp=#FF6C60 " undercurl color +hi ErrorMsg guifg=white guibg=#FF6C60 gui=BOLD ctermfg=white ctermbg=red cterm=NONE +hi WarningMsg guifg=white guibg=#FF6C60 gui=BOLD ctermfg=white ctermbg=red cterm=NONE + +" Message displayed in lower left, such as --INSERT-- +hi ModeMsg guifg=black guibg=#C6C5FE gui=BOLD ctermfg=black ctermbg=cyan cterm=BOLD + +if version >= 700 " Vim 7.x specific colors + hi CursorLine guifg=NONE guibg=#121212 gui=NONE ctermfg=NONE ctermbg=NONE cterm=BOLD + hi CursorColumn guifg=NONE guibg=#121212 gui=NONE ctermfg=NONE ctermbg=NONE cterm=BOLD + hi MatchParen guifg=#f6f3e8 guibg=#857b6f gui=BOLD ctermfg=white ctermbg=darkgray cterm=NONE + hi Pmenu guifg=#f6f3e8 guibg=#444444 gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE + hi PmenuSel guifg=#000000 guibg=#cae682 gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE + hi Search guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline +endif + +" Syntax highlighting +hi Comment guifg=#7C7C7C guibg=NONE gui=NONE ctermfg=darkgray ctermbg=NONE cterm=NONE +hi String guifg=#A8FF60 guibg=NONE gui=NONE ctermfg=green ctermbg=NONE cterm=NONE +hi Number guifg=#FF73FD guibg=NONE gui=NONE ctermfg=magenta ctermbg=NONE cterm=NONE + +hi Keyword guifg=#96CBFE guibg=NONE gui=NONE ctermfg=blue ctermbg=NONE cterm=NONE +hi PreProc guifg=#96CBFE guibg=NONE gui=NONE ctermfg=blue ctermbg=NONE cterm=NONE +hi Conditional guifg=#6699CC guibg=NONE gui=NONE ctermfg=blue ctermbg=NONE cterm=NONE " if else end + +hi Todo guifg=#8f8f8f guibg=NONE gui=NONE ctermfg=red ctermbg=NONE cterm=NONE +hi Constant guifg=#99CC99 guibg=NONE gui=NONE ctermfg=cyan ctermbg=NONE cterm=NONE + +hi Identifier guifg=#C6C5FE guibg=NONE gui=NONE ctermfg=cyan ctermbg=NONE cterm=NONE +hi Function guifg=#FFD2A7 guibg=NONE gui=NONE ctermfg=brown ctermbg=NONE cterm=NONE +hi Type guifg=#FFFFB6 guibg=NONE gui=NONE ctermfg=yellow ctermbg=NONE cterm=NONE +hi Statement guifg=#6699CC guibg=NONE gui=NONE ctermfg=lightblue ctermbg=NONE cterm=NONE + +hi Special guifg=#E18964 guibg=NONE gui=NONE ctermfg=white ctermbg=NONE cterm=NONE +hi Delimiter guifg=#00A0A0 guibg=NONE gui=NONE ctermfg=cyan ctermbg=NONE cterm=NONE +hi Operator guifg=white guibg=NONE gui=NONE ctermfg=white ctermbg=NONE cterm=NONE + +hi link Character Constant +hi link Boolean Constant +hi link Float Number +hi link Repeat Statement +hi link Label Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link SpecialComment Special +hi link Debug Special + + +" Special for Ruby +hi rubyRegexp guifg=#B18A3D guibg=NONE gui=NONE ctermfg=brown ctermbg=NONE cterm=NONE +hi rubyRegexpDelimiter guifg=#FF8000 guibg=NONE gui=NONE ctermfg=brown ctermbg=NONE cterm=NONE +hi rubyEscape guifg=white guibg=NONE gui=NONE ctermfg=cyan ctermbg=NONE cterm=NONE +hi rubyInterpolationDelimiter guifg=#00A0A0 guibg=NONE gui=NONE ctermfg=blue ctermbg=NONE cterm=NONE +hi rubyControl guifg=#6699CC guibg=NONE gui=NONE ctermfg=blue ctermbg=NONE cterm=NONE "and break, etc +"hi rubyGlobalVariable guifg=#FFCCFF guibg=NONE gui=NONE ctermfg=lightblue ctermbg=NONE cterm=NONE "yield +hi rubyStringDelimiter guifg=#336633 guibg=NONE gui=NONE ctermfg=lightgreen ctermbg=NONE cterm=NONE +"rubyInclude +"rubySharpBang +"rubyAccess +"rubyPredefinedVariable +"rubyBoolean +"rubyClassVariable +"rubyBeginEnd +"rubyRepeatModifier +"hi link rubyArrayDelimiter Special " [ , , ] +"rubyCurlyBlock { , , } + +hi link rubyClass Keyword +hi link rubyModule Keyword +hi link rubyKeyword Keyword +hi link rubyOperator Operator +hi link rubyIdentifier Identifier +hi link rubyInstanceVariable Identifier +hi link rubyGlobalVariable Identifier +hi link rubyClassVariable Identifier +hi link rubyConstant Type + + +" Special for Java +" hi link javaClassDecl Type +hi link javaScopeDecl Identifier +hi link javaCommentTitle javaDocSeeTag +hi link javaDocTags javaDocSeeTag +hi link javaDocParam javaDocSeeTag +hi link javaDocSeeTagParam javaDocSeeTag + +hi javaDocSeeTag guifg=#CCCCCC guibg=NONE gui=NONE ctermfg=darkgray ctermbg=NONE cterm=NONE +hi javaDocSeeTag guifg=#CCCCCC guibg=NONE gui=NONE ctermfg=darkgray ctermbg=NONE cterm=NONE +"hi javaClassDecl guifg=#CCFFCC guibg=NONE gui=NONE ctermfg=white ctermbg=NONE cterm=NONE + + +" Special for XML +hi link xmlTag Keyword +hi link xmlTagName Conditional +hi link xmlEndTag Identifier + + +" Special for HTML +hi link htmlTag Keyword +hi link htmlTagName Conditional +hi link htmlEndTag Identifier + + +" Special for Javascript +hi link javaScriptNumber Number + + +" Special for Python +"hi link pythonEscape Keyword + + +" Special for CSharp +hi link csXmlTag Keyword + + +" Special for PHP diff --git a/vim/colors/ironman.vim b/vim/colors/ironman.vim new file mode 100644 index 0000000..b34d89c --- /dev/null +++ b/vim/colors/ironman.vim @@ -0,0 +1,133 @@ +" Vim color file +" Maintainer: Michael Boehler +" Mail: michael@familie-boehler.de +" Last Change: 2008-2-21 +" Version: 3.2 +" This color scheme uses a light background. +" GUI only +" inspired by colorsheme PYTE + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "ironman" + +hi Normal guifg=#222222 guibg=#F0F0F0 + +" Search +hi IncSearch gui=NONE guifg=Black guibg=#FFFF4B +hi Search gui=NONE guifg=Black guibg=#FFFF8F + +" Messages +hi ErrorMsg gui=NONE guifg=#FF0000 guibg=NONE +hi WarningMsg gui=NONE guifg=#FF6600 guibg=NONE +hi ModeMsg gui=NONE guifg=#0070ff guibg=NONE +hi MoreMsg gui=NONE guifg=#FF6600 guibg=NONE +hi Question gui=NONE guifg=#008050 guibg=NONE + +" Completion Popup Menu +hi Pmenu gui=NONE guifg=#303040 guibg=#ccff00 +hi PmenuSel gui=NONE guifg=#303040 guibg=#ffff00 +" hi PmenuSbar scrollbar |hl-PmenuSbar| +" hi PmenuThumb thumb of the scrollbar |hl-PmenuThumb| + +" Split area +hi StatusLine gui=ITALIC guifg=white guibg=#8090a0 +hi StatusLineNC gui=ITALIC guifg=#506070 guibg=#a0b0c0 +hi VertSplit gui=NONE guifg=#a0b0c0 guibg=#a0b0c0 +hi WarningMsgildMenu gui=NONE guifg=Black guibg=Orange +" hi WildMenu gui=UNDERLINE guifg=#56A0EE guibg=#E9E9F4 + +" Diff +hi DiffText gui=NONE guifg=#2020ff guibg=#c8f2ea +hi DiffDelete gui=NONE guifg=#f83010 guibg=#ffeae0 +hi DiffAdd gui=NONE guifg=#006800 guibg=#d0ffd0 +hi DiffChange gui=NONE guifg=#2020ff guibg=#c8f2ea + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#DE7171 +hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorLine gui=NONE guifg=NONE guibg=#f6f6f6 +hi CursorColumn gui=NONE guifg=NONE guibg=#F9F9F9 + +" Fold +hi Folded gui=NONE guifg=#3399ff guibg=#EAF5FF +hi FoldColumn gui=NONE guifg=#3399ff guibg=#EAF5FF + +" Other hi Directory gui=NONE guifg=#0000ff guibg=NONE +hi LineNr gui=NONE guifg=#FFFFFF guibg=#C0D0E0 +hi NonText gui=NONE guifg=#C0C0C0 guibg=#E0E0E0 +hi SpecialKey gui=NONE guifg=#35E0DF guibg=NONE +hi Title gui=NONE guifg=#004060 guibg=#c8f0f8 +hi Visual gui=NONE guibg=#BDDFFF +hi MatchParen gui=NONE guifg=NONE guibg=#9FFF82 + +" Syntax group +hi Comment gui=ITALIC guifg=#A0B0C0 guibg=#EFEFFF +hi Paren gui=NONE guifg=#9326C1 guibg=NONE +hi Comma gui=NONE guifg=#C12660 guibg=NONE +hi Constant gui=NONE guifg=NONE guibg=#E8F1FF +hi Statement gui=NONE guifg=#005EC4 guibg=NONE +hi Error gui=BOLD,UNDERLINE guifg=#ff4080 guibg=NONE +hi Identifier gui=NONE guifg=#339933 guibg=NONE +hi Ignore gui=NONE guifg=#f8f8f8 guibg=NONE +hi Number gui=NONE guifg=#087B4D +hi PreProc gui=NONE guifg=#0070e6 guibg=NONE +hi Special gui=NONE guifg=#0000ff guibg=#ccf7ee +hi Delimiter gui=BOLD guifg=#A8360F guibg=NONE +hi Todo gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi Type gui=NONE guifg=#eb7950 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#0000ff guibg=NONE + +hi Conditional gui=None guifg=#0053FF guibg=bg +hi Repeat gui=None guifg=SeaGreen2 guibg=bg +hi Operator gui=None guifg=#0085B1 guibg=bg +hi Keyword gui=None guifg=DarkBlue guibg=bg +hi Exception gui=None guifg=DarkBlue guibg=bg +hi Function gui=BOLD guifg=#3E0F70 + +hi! link String Constant +hi! link SpecialComment Comment +hi! link Character Constant +hi! link Boolean Constant +hi! link Float Number +hi! link Label Statement +hi! link Include PreProc +hi! link Define PreProc +hi! link Macro PreProc +hi! link PreCondit PreProc +hi! link StorageClass Type +hi! link Structure Type +hi! link Typedef Type +hi! link SpecialChar Special +hi! link Debug Special + +" HTML +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC + +" Tabs {{{1 +highlight TabLine gui=underline guibg=LightGrey +highlight TabLineFill gui=reverse +highlight TabLineSel gui=bold + +highlight SpellBad gui=undercurl guisp=Red +highlight SpellCap gui=undercurl guisp=Blue +highlight SpellRare gui=undercurl guisp=Magenta +highlight SpellLocale gui=undercurl guisp=DarkCyan + +" Completion {{{1 +highlight Pmenu guifg=Black guibg=#BDDFFF +highlight PmenuSel guifg=Black guibg=Orange +highlight PmenuSbar guifg=#CCCCCC guibg=#CCCCCC +highlight PmenuThumb gui=reverse guifg=Black guibg=#AAAAAA diff --git a/vim/colors/jammy.vim b/vim/colors/jammy.vim new file mode 100644 index 0000000..7e79459 --- /dev/null +++ b/vim/colors/jammy.vim @@ -0,0 +1,111 @@ +" Vim color file inherit from the desrt.vim +" Maintainer: Jammy Lee +" Last Change: $Date: 2008/03/20 19:30:30 $ +" Version: $Id: jammy.vim,v 1.1 2008/03/20 $ + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="jammy" + +hi Normal guifg=White guibg=Black + +" highlight groups +hi Cursor guibg=khaki guifg=slategrey +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +hi String guifg=Skyblue +hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none +hi Folded guibg=grey30 guifg=gold +hi FoldColumn guibg=grey30 guifg=tan +hi IncSearch guifg=slategrey guibg=khaki +"hi LineNr +hi ModeMsg guifg=goldenrod +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=black +hi Question guifg=springgreen +hi Search guibg=peru guifg=wheat +hi SpecialKey guifg=yellowgreen +hi StatusLine guibg=#c2bfa5 guifg=black gui=none +hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none +hi Title guifg=indianred +hi Visual gui=none guibg=grey30 +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=grey60 +hi Constant guifg=indianred + +hi Identifier guifg=palegreen +"hi Identifier guifg=#D18B2C +"palegreen +"hi Statement guifg=khaki +hi Statement guifg=#E6DB74 +hi PreProc guifg=Skyblue +hi Type guifg=darkkhaki +hi Special guifg=navajowhite +"hi Underlined +hi Ignore guifg=grey40 +"hi Error +hi Todo guifg=orangered guibg=yellow2 + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore cterm=bold ctermfg=7 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + + +"vim: sw=4 diff --git a/vim/colors/jhdark.vim b/vim/colors/jhdark.vim new file mode 100644 index 0000000..22e5494 --- /dev/null +++ b/vim/colors/jhdark.vim @@ -0,0 +1,72 @@ +" Vim color file by Jörn Horstmann +" Light background in GUI, dark background in Console +" Last change 16.07.2004 +" TODO + +set bg=dark + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "jhdark" + +hi Normal guifg=#999999 guibg=#000000 gui=none ctermfg=gray ctermbg=black cterm=none + +hi ErrorMsg guifg=#ff0000 guibg=bg gui=none ctermfg=red ctermbg=bg cterm=none +hi Visual guifg=bg guibg=#4444aa gui=none ctermfg=bg ctermbg=darkcyan cterm=none +hi VisualNOS guifg=bg guibg=#4444aa gui=none ctermfg=bg ctermbg=darkcyan cterm=none +hi Todo guifg=bg guibg=#aaaa00 gui=none ctermfg=bg ctermbg=yellow cterm=none +"hi Todo guifg=#884400 guibg=bg gui=none ctermfg=bg ctermbg=yellow cterm=none +hi Search guifg=bg guibg=#8888ee gui=none ctermfg=bg ctermbg=blue cterm=none +hi IncSearch guifg=bg guibg=#8888ee gui=none ctermfg=bg ctermbg=blue cterm=none + +hi SpecialKey guifg=#775522 guibg=bg gui=none ctermfg=magenta ctermbg=bg cterm=none +hi Directory guifg=#000088 guibg=bg gui=none ctermfg=blue ctermbg=bg cterm=none +hi WarningMsg guifg=#ff0000 guibg=bg gui=none ctermfg=red ctermbg=bg cterm=none +hi WildMenu guifg=bg guibg=#ffff00 gui=none ctermfg=bg ctermbg=yellow cterm=none +hi ModeMsg guifg=fg guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi Title guifg=fg guibg=#cccccc gui=none ctermfg=bg ctermbg=fg cterm=none +hi MoreMsg guifg=fg guibg=bg gui=none ctermfg=bg ctermbg=fg cterm=none +hi Question guifg=fg guibg=bg gui=none ctermfg=bg ctermbg=fg cterm=none +hi NonText guifg=#666666 guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none + +hi StatusLine guifg=#dddddd guibg=#000088 gui=none ctermfg=bg ctermbg=darkblue cterm=none +hi StatusLineNC guifg=#dddddd guibg=#333333 gui=none ctermfg=bg ctermbg=darkgray cterm=none +hi VertSplit guifg=#dddddd guibg=#333333 gui=none ctermfg=bg ctermbg=darkgray cterm=none + +hi Folded guifg=#bb0099 guibg=#222222 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +hi FoldColumn guifg=#bb0099 guibg=#222222 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +hi SignColumn guifg=#bb0099 guibg=#222222 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +hi LineNr guifg=#bb0099 guibg=#222222 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none + +"hi Folded guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi FoldColumn guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi SignColumn guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi LineNr guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none + +hi DiffChange guifg=bg guibg=#888800 gui=none ctermfg=bg ctermbg=brown cterm=none +hi DiffAdd guifg=bg guibg=#000088 gui=none ctermfg=bg ctermbg=darkblue cterm=none +hi DiffDelete guifg=bg guibg=#880000 gui=none ctermfg=bg ctermbg=darkred cterm=none +hi DiffText guifg=fg guibg=#dd0000 gui=none ctermfg=fg ctermbg=red cterm=none + +hi Cursor guifg=bg guibg=fg gui=none ctermfg=bg ctermbg=fg cterm=none +hi lCursor guifg=bg guibg=fg gui=none ctermfg=bg ctermbg=fg cterm=none + +hi Comment guifg=#008800 guibg=bg gui=none ctermfg=darkgreen ctermbg=bg cterm=none +hi Operator guifg=fg guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi Constant guifg=#aa0000 guibg=bg gui=none ctermfg=darkred ctermbg=bg cterm=none +hi Special guifg=#997700 guibg=bg gui=none ctermfg=brown ctermbg=bg cterm=none + +hi Identifier guifg=#dddddd guibg=bg gui=none ctermfg=white ctermbg=bg cterm=none + +hi Type guifg=#6666dd guibg=bg gui=none ctermfg=cyan ctermbg=bg cterm=none +hi Statement guifg=#dddddd guibg=bg gui=none ctermfg=white ctermbg=bg cterm=none + +hi PreProc guifg=#008888 guibg=bg gui=none ctermfg=darkcyan ctermbg=bg cterm=none + +hi Error guifg=fg guibg=#ff0000 gui=none ctermfg=bg ctermbg=red cterm=none + +hi Ignore guifg=bg ctermfg=bg +hi Underlined guifg=fg guibg=bg ctermfg=fg ctermbg=bg cterm=underline term=underline gui=underline diff --git a/vim/colors/jhlight.vim b/vim/colors/jhlight.vim new file mode 100644 index 0000000..753232e --- /dev/null +++ b/vim/colors/jhlight.vim @@ -0,0 +1,80 @@ +" Vim color file by Jörn Horstmann +" Light background, works in GUI and cobnsole +" Last change 08.09.2004 +" TODO + +set bg=light + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "jhlight" + +hi Normal guifg=#000000 guibg=#dddddd gui=none ctermfg=black ctermbg=grey cterm=none + +hi ErrorMsg guifg=#ff0000 guibg=bg gui=none ctermfg=red ctermbg=bg cterm=none +hi Visual guifg=bg guibg=#4444aa gui=none ctermfg=bg ctermbg=darkcyan cterm=none +hi VisualNOS guifg=bg guibg=#4444aa gui=none ctermfg=bg ctermbg=darkcyan cterm=none +hi Todo guifg=fg guibg=#bbbb77 gui=none ctermfg=bg ctermbg=brown cterm=none +"hi Todo guifg=#884400 guibg=bg gui=none ctermfg=bg ctermbg=yellow cterm=none +hi Search guifg=fg guibg=#8888ee gui=none ctermfg=bg ctermbg=blue cterm=none +hi IncSearch guifg=fg guibg=#8888ee gui=none ctermfg=bg ctermbg=blue cterm=none + +hi SpecialKey guifg=#553300 guibg=bg gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +hi Directory guifg=#000088 guibg=bg gui=none ctermfg=blue ctermbg=bg cterm=none +hi WarningMsg guifg=#ff0000 guibg=bg gui=none ctermfg=red ctermbg=bg cterm=none +hi WildMenu guifg=fg guibg=#ffff00 gui=none ctermfg=bg ctermbg=brown cterm=none +hi ModeMsg guifg=fg guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi Title guifg=#000088 guibg=#cccccc gui=none ctermfg=fg ctermbg=bg cterm=none +hi MoreMsg guifg=#000088 guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi Question guifg=#000088 guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi NonText guifg=#444444 guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none + +hi StatusLine guifg=#dddddd guibg=#000088 gui=none ctermfg=white ctermbg=darkblue cterm=none +hi StatusLineNC guifg=#dddddd guibg=#333333 gui=none ctermfg=grey ctermbg=black cterm=none +hi VertSplit guifg=#dddddd guibg=#333333 gui=none ctermfg=white ctermbg=black cterm=none + +hi Folded guifg=#005500 guibg=#999999 gui=none ctermfg=darkgreen ctermbg=darkgray cterm=none +hi FoldColumn guifg=#005500 guibg=#999999 gui=none ctermfg=darkgreen ctermbg=darkgray cterm=none +hi SignColumn guifg=#005500 guibg=#999999 gui=none ctermfg=darkgreen ctermbg=darkgray cterm=none +hi LineNr guifg=#005500 guibg=#999999 gui=none ctermfg=darkgreen ctermbg=darkgray cterm=none + +"hi Folded guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi FoldColumn guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi SignColumn guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi LineNr guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none + +hi DiffChange guifg=bg guibg=#888800 gui=none ctermfg=bg ctermbg=brown cterm=none +hi DiffAdd guifg=bg guibg=#000088 gui=none ctermfg=bg ctermbg=darkblue cterm=none +hi DiffDelete guifg=bg guibg=#880000 gui=none ctermfg=bg ctermbg=darkred cterm=none +hi DiffText guifg=fg guibg=#dd0000 gui=none ctermfg=fg ctermbg=red cterm=none + +hi Cursor guifg=bg guibg=fg gui=none ctermfg=bg ctermbg=fg cterm=none +hi lCursor guifg=bg guibg=fg gui=none ctermfg=bg ctermbg=fg cterm=none + +hi Comment guifg=#005500 guibg=bg gui=none ctermfg=darkgreen ctermbg=bg cterm=none +hi Operator guifg=fg guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi Constant guifg=#880000 guibg=bg gui=none ctermfg=darkred ctermbg=bg cterm=none +hi Special guifg=#553300 guibg=bg gui=none ctermfg=brown ctermbg=bg cterm=none + +hi Identifier guifg=#000088 guibg=bg gui=none ctermfg=darkblue ctermbg=bg cterm=none +"hi Function guifg=#000044 gui=none + +"hi Keyword guifg=#000088 gui=none + +if exists("g:jh_hi_use_bold") + hi Type guifg=#660044 guibg=bg gui=bold ctermfg=darkmagenta ctermbg=bg cterm=none + hi Statement guifg=#440066 guibg=bg gui=bold ctermfg=darkmagenta ctermbg=bg cterm=none +else + hi Type guifg=#660044 guibg=bg gui=none ctermfg=darkmagenta ctermbg=bg cterm=none + hi Statement guifg=#440066 guibg=bg gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +endif + +hi PreProc guifg=#004466 guibg=bg gui=none ctermfg=darkcyan ctermbg=bg cterm=none + +hi Error guifg=fg guibg=#880000 gui=none ctermfg=bg ctermbg=red cterm=none + +hi Ignore guifg=bg ctermfg=bg +hi Underlined guifg=fg guibg=bg ctermfg=fg ctermbg=bg cterm=underline term=underline gui=underline diff --git a/vim/colors/leo.vim b/vim/colors/leo.vim new file mode 100644 index 0000000..7d47ce1 --- /dev/null +++ b/vim/colors/leo.vim @@ -0,0 +1,115 @@ +" Vim color file +" Maintainer: Lorenzo Leonini +" Last Change: 2008 Aug 13 +" URL: http://www.leonini.net + +" Description: +" A colored, contrasted theme for long programming sessions. +" For 256-colors term (xterm, Eterm, konsole, gnome-terminal, ...) +" Very good with Ruby, C, Lua, PHP, ... (but no language specific settings) + +" Note: +" If your term report 8 colors (but is 256 capable), put 'set t_Co=256' +" in your .vimrc + +" Tips: +" :verbose hi StatusLine +" Color numbers (0-255) see: +" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html + +if !has("gui_running") + if &t_Co != 256 + echomsg "err: Please use a 256-colors terminal (so that t_Co=256 could be set)." + echomsg "" + finish + end +endif + +let g:colors_name = "leo256" + +set background=dark +if v:version > 580 + highlight clear + if exists("syntax_on") + syntax reset + endif +endif + +hi Normal cterm=none ctermfg=255 ctermbg=16 guibg=#000000 guifg=#ffffff +hi CursorLine cterm=none ctermbg=233 guibg=#121212 +hi DiffAdd cterm=none ctermbg=235 +hi DiffChange cterm=none ctermbg=235 +hi DiffDelete cterm=none ctermfg=238 ctermbg=244 +hi DiffText cterm=bold ctermfg=255 ctermbg=196 +hi Directory cterm=none ctermfg=196 +hi ErrorMsg cterm=none ctermfg=255 ctermbg=160 +hi FoldColumn cterm=none ctermfg=110 ctermbg=16 guibg=#000000 +hi SignColumn cterm=none ctermfg=none ctermbg=16 guibg=#000000 +hi Folded cterm=none ctermfg=16 ctermbg=110 guifg=#000000 guibg=#87afd7 +hi IncSearch cterm=reverse +hi LineNr cterm=none ctermfg=124 guifg=#af0000 +hi ModeMsg cterm=bold +hi MoreMsg cterm=none ctermfg=40 +hi NonText cterm=none ctermfg=27 +hi Question cterm=none ctermfg=40 +hi Search cterm=none ctermfg=16 ctermbg=248 guifg=#000000 guibg=#a8a8a8 +hi SpecialKey cterm=none ctermfg=124 guifg=#af0000 +" grey style +"hi StatusLine cterm=none ctermfg=16 ctermbg=252 +"hi StatusLineNC cterm=none ctermfg=246 ctermbg=235 +" blue style +hi StatusLine cterm=none ctermfg=255 ctermbg=21 guibg=#FFFFFF guifg=#0000FF +hi StatusLineNC cterm=none ctermfg=252 ctermbg=17 guibg=#dddddd guifg=#0000aa +hi Title cterm=none ctermfg=33 +hi VertSplit cterm=none ctermfg=254 ctermbg=16 guibg=#EEEEEE guifg=#000000 +hi Visual cterm=reverse ctermbg=none +hi VisualNOS cterm=underline,bold +hi WarningMsg cterm=none ctermfg=255 +hi WildMenu cterm=none ctermfg=16 ctermbg=11 + +if v:version >= 700 + " light + "hi Pmenu cterm=none ctermfg=16 ctermbg=252 + "hi PmenuSel cterm=none ctermfg=255 ctermbg=21 + "hi PmenuSbar cterm=none ctermfg=240 ctermbg=240 + "hi PmenuThumb cterm=none ctermfg=255 ctermbg=255 + + "dark + hi Pmenu cterm=none ctermfg=255 ctermbg=235 guibg=#222222 guifg=#eeeeee + hi PmenuSel cterm=none ctermfg=255 ctermbg=21 guibg=#3333ff + hi PmenuSbar cterm=none ctermfg=240 ctermbg=240 guibg=#444444 + hi PmenuThumb cterm=none ctermfg=255 ctermbg=255 + + hi SpellBad cterm=none ctermfg=16 ctermbg=196 + hi SpellCap cterm=none ctermfg=16 ctermbg=196 + hi SpellLocal cterm=none ctermfg=16 ctermbg=196 + hi SpellRare cterm=none ctermfg=16 ctermbg=196 + hi TabLine cterm=none ctermfg=252 ctermbg=17 + hi TabLineSel cterm=none ctermfg=255 ctermbg=21 + hi TabLineFill cterm=none ctermfg=17 ctermbg=17 +endif + +hi Boolean cterm=none ctermfg=135 guifg=#af5fff +hi Character cterm=none ctermfg=184 +hi Comment cterm=none ctermfg=247 guifg=#A5A5A5 +hi Constant cterm=none ctermfg=226 guifg=#ffff00 +hi Conditional cterm=none ctermfg=154 guifg=#afff00 +hi Define cterm=bold ctermfg=27 guifg=#005fff +hi Delimiter cterm=none ctermfg=196 guifg=#af0000 +hi Exception cterm=bold ctermfg=226 guifg=#ffff00 +hi Error cterm=none ctermfg=255 ctermbg=9 +hi Keyword cterm=none ctermfg=159 guifg=#d7af00 +hi Function cterm=none ctermfg=red guifg=#ff0000 +hi Identifier cterm=none ctermfg=27 guifg=#005fff +hi Number cterm=none ctermfg=135 guifg=#af5fff +hi Operator cterm=none ctermfg=11 +hi PreProc cterm=none ctermfg=202 guifg=#ff5f00 +hi Special cterm=none ctermfg=206 ctermbg=234 guifg=#ff5fd7 +hi Statement cterm=none ctermfg=2 guifg=#00cd00 +hi String cterm=none ctermfg=224 ctermbg=234 guifg=#ffd7d7 guibg=#1c1c1c +hi Todo cterm=none ctermfg=0 ctermbg=11 guifg=#000000 guibg=#ffff00 +hi Type cterm=none ctermfg=75 guifg=#5fafff + +" ADDITIONNAL + +hi Repeat cterm=none ctermfg=142 guifg=#878700 diff --git a/vim/colors/less.vim b/vim/colors/less.vim new file mode 100644 index 0000000..c874913 --- /dev/null +++ b/vim/colors/less.vim @@ -0,0 +1,54 @@ +" vim color file +" Maintainer: Brian Nelson +" Last Change: $Revision: 1.1 $ $Date: 2003/12/15 17:25:08 $ +" +" Less is More - A minimal color scheme. +" Disigned to work equally well on 8 or 16 colors, terminal or gui. + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "less" + +hi Normal term=none ctermfg=7 ctermbg=0 gui=none guifg=LightGray guibg=black +hi Directory term=bold cterm=bold ctermfg=blue guifg=Blue +hi Search term=reverse ctermfg=white ctermbg=blue guifg=white guibg=Blue +hi MoreMsg term=bold cterm=bold ctermfg=darkgreen gui=bold guifg=DarkGreen +hi ModeMsg term=bold cterm=bold gui=bold guifg=White guibg=Blue +hi LineNr term=underline cterm=bold ctermfg=darkcyan guifg=DarkCyan +hi Question term=standout cterm=bold ctermfg=darkgreen gui=bold guifg=DarkGreen +hi Comment term=bold cterm=bold ctermfg=0 gui=none guifg=DarkGray +hi Constant term=bold cterm=none ctermfg=7 gui=none guifg=LightGray +hi Special term=bold cterm=none ctermfg=3 gui=none guifg=Orange +hi Identifier term=none cterm=none ctermfg=7 gui=none guifg=LightGray +hi PreProc term=underline cterm=bold ctermfg=7 gui=bold guifg=White +hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=Black guibg=Red +hi Todo term=standout cterm=none ctermfg=0 ctermbg=7 guifg=Black guibg=White +hi String term=none cterm=none ctermfg=3 gui=none guifg=LightYellow +hi Function term=bold cterm=bold ctermfg=3 gui=none guifg=Yellow +hi Statement term=bold cterm=bold ctermfg=7 gui=bold guifg=White +hi Include term=bold cterm=bold ctermfg=4 gui=none guifg=LightBlue +hi StorageClass term=bold cterm=bold ctermfg=5 gui=none guifg=LightMagenta +hi Type term=none cterm=none ctermfg=7 gui=none guifg=LightGray +hi Defined term=bold cterm=bold ctermfg=6 gui=none guifg=LightCyan +hi link Character String +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Macro Include +hi link PreCondit PreProc +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special diff --git a/vim/colors/lettuce.vim b/vim/colors/lettuce.vim new file mode 100644 index 0000000..223dc36 --- /dev/null +++ b/vim/colors/lettuce.vim @@ -0,0 +1,215 @@ +" Vim color file +" Version: 1.2 2007.08.08 +" Author: Valyaeff Valentin +" License: GPL +" +" Copyright 2007 Valyaeff Valentin +" +" 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 . + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="lettuce" + + +augroup Syntax_extensions + au! + au Syntax c,cpp,ruby,javascript syn match Operator "[*/%&|!=><^~,.;:?+-]\+" display contains=TOP + au Syntax c,cpp syn region cParen matchgroup=Operator transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell + au Syntax c,cpp syn region cCppParen matchgroup=Operator transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell + au Syntax c,cpp syn region cBracket matchgroup=Operator transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,cCppString,@Spell + au Syntax c,cpp syn region cCppBracket matchgroup=Operator transparent start='\[\|<::\@!' skip='\\$' excludenl end=']\|:>' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString,@Spell + au Syntax c,cpp syn region cBlock matchgroup=OperatorCurlyBrackets start="{" end="}" transparent fold + au Syntax ruby syn match rubyBlockParameter "\%(\%(\\|{\)\s*\)\@<=|\s*[( ,a-zA-Z0-9_*)]\+\ze\s*|"hs=s+1 display + au Syntax ruby syn region rubyCurlyBlock matchgroup=Operator start="{" end="}" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo fold + au Syntax ruby syn region rubyParentheses matchgroup=Operator start="(" end=")" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo + au Syntax ruby syn region rubySquareBrackets matchgroup=Operator start="\[" end="\]" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo + au Syntax javascript syn region javascriptCurlyBrackets matchgroup=Operator start="{" end="}" transparent fold + au Syntax javascript syn region javascriptParentheses matchgroup=Operator start="(" end=")" transparent + au Syntax javascript syn region javascriptSquareBrackets matchgroup=Operator start="\[" end="\]" transparent +augroup END + + +if !has("gui_running") + +hi rubyGlobalVariable cterm=none ctermfg=64 +hi rubyPredefinedIdentifier cterm=bold ctermfg=64 +hi def link rubyStringDelimiter String + +hi Normal cterm=none ctermbg=232 ctermfg=189 +hi StatusLine cterm=none ctermbg=236 ctermfg=231 +hi StatusLineNC cterm=none ctermbg=236 ctermfg=103 +hi User1 cterm=bold ctermbg=236 ctermfg=223 +hi User2 cterm=none ctermbg=236 ctermfg=240 +hi VertSplit cterm=none ctermbg=236 ctermfg=103 +hi TabLine cterm=none ctermbg=236 ctermfg=145 +hi TabLineFill cterm=none ctermbg=236 +hi TabLineSel cterm=none ctermbg=240 ctermfg=253 +hi LineNr cterm=none ctermfg=238 +hi NonText cterm=bold ctermbg=233 ctermfg=241 +hi Folded cterm=none ctermbg=234 ctermfg=136 +hi FoldColumn cterm=none ctermbg=236 ctermfg=103 +hi SignColumn cterm=none ctermbg=236 ctermfg=103 +hi CursorColumn cterm=none ctermbg=234 +hi CursorLine cterm=none ctermbg=234 +hi IncSearch cterm=bold ctermbg=63 ctermfg=232 +hi Search cterm=none ctermbg=36 ctermfg=232 +hi Visual cterm=none ctermbg=24 +hi WildMenu cterm=bold ctermbg=35 ctermfg=232 +hi ModeMsg cterm=bold ctermfg=110 +hi MoreMsg cterm=bold ctermfg=121 +hi Question cterm=bold ctermfg=121 +hi ErrorMsg cterm=none ctermbg=88 ctermfg=255 +hi WarningMsg cterm=none ctermbg=58 ctermfg=255 +hi SpecialKey cterm=none ctermfg=77 +hi Title cterm=bold ctermfg=147 +hi Directory ctermfg=105 +hi DiffAdd cterm=none ctermbg=18 +hi DiffChange cterm=none ctermbg=58 +hi DiffDelete cterm=none ctermbg=52 ctermfg=58 +hi DiffText cterm=none ctermbg=53 +hi Pmenu cterm=none ctermbg=17 ctermfg=121 +hi PmenuSel cterm=none ctermbg=24 ctermfg=121 +hi PmenuSbar cterm=none ctermbg=19 +hi PmenuThumb cterm=none ctermbg=37 +hi MatchParen cterm=bold ctermbg=24 +hi SpellBad cterm=none ctermbg=88 +hi SpellCap cterm=none ctermbg=18 +hi SpellLocal cterm=none ctermbg=30 +hi SpellRare cterm=none ctermbg=90 + +hi Comment cterm=none ctermfg=138 +hi Constant cterm=none ctermfg=215 + hi String cterm=none ctermbg=235 ctermfg=215 + hi Character cterm=none ctermbg=235 ctermfg=215 + hi Number cterm=none ctermfg=34 + hi Float cterm=none ctermfg=41 +hi Identifier cterm=none ctermfg=186 + hi Function cterm=none ctermfg=210 +hi Statement cterm=bold ctermfg=63 + hi Exception cterm=bold ctermfg=99 + hi Operator cterm=none ctermfg=75 + hi Label cterm=none ctermfg=63 +hi PreProc cterm=bold ctermfg=36 +hi Type cterm=bold ctermfg=71 +hi Special cterm=none ctermbg=235 ctermfg=87 +hi Underlined cterm=underline ctermfg=227 +hi Ignore cterm=bold ctermfg=235 +hi Error cterm=bold ctermbg=52 ctermfg=231 +hi Todo cterm=bold ctermbg=143 ctermfg=16 + +hi OperatorCurlyBrackets cterm=bold ctermfg=75 + +" highlight modes +autocmd InsertEnter * hi StatusLine ctermbg=52 +autocmd InsertEnter * hi User1 ctermbg=52 +autocmd InsertEnter * hi User2 ctermbg=52 +autocmd InsertLeave * hi User2 ctermbg=236 +autocmd InsertLeave * hi User1 ctermbg=236 +autocmd InsertLeave * hi StatusLine ctermbg=236 +autocmd CmdwinEnter * hi StatusLine ctermbg=22 +autocmd CmdwinEnter * hi User1 ctermbg=22 +autocmd CmdwinEnter * hi User2 ctermbg=22 +autocmd CmdwinLeave * hi User2 ctermbg=236 +autocmd CmdwinLeave * hi User1 ctermbg=236 +autocmd CmdwinLeave * hi StatusLine ctermbg=236 + +else + +hi rubyGlobalVariable gui=none guifg=#5f8700 +hi rubyPredefinedIdentifier gui=bold guifg=#5f8700 +hi def link rubyStringDelimiter String + +hi Normal gui=none guibg=#080808 guifg=#dfdfff +hi StatusLine gui=none guibg=#303030 guifg=#ffffff +hi StatusLineNC gui=none guibg=#303030 guifg=#8787af +hi User1 gui=bold guibg=#303030 guifg=#ffdfaf +hi User2 gui=none guibg=#303030 guifg=#585858 +hi VertSplit gui=none guibg=#303030 guifg=#8787af +hi TabLine gui=none guibg=#303030 guifg=#afafaf +hi TabLineFill gui=none guibg=#303030 +hi TabLineSel gui=none guibg=#585858 guifg=#dadada +hi LineNr gui=none guifg=#444444 +hi NonText gui=bold guibg=#121212 guifg=#606060 +hi Folded gui=none guibg=#1c1c1c guifg=#af8700 +hi FoldColumn gui=none guibg=#303030 guifg=#8787af +hi SignColumn gui=none guibg=#303030 guifg=#8787af +hi CursorColumn gui=none guibg=#1c1c1c +hi CursorLine gui=none guibg=#1c1c1c +hi IncSearch gui=bold guibg=#5f5fff guifg=#080808 +hi Search gui=none guibg=#00af87 guifg=#080808 +hi Visual gui=none guibg=#005f87 +hi WildMenu gui=bold guibg=#00af5f guifg=#080808 +hi ModeMsg gui=bold guifg=#87afdf +hi MoreMsg gui=bold guifg=#87ffaf +hi Question gui=bold guifg=#87ffaf +hi ErrorMsg gui=none guibg=#870000 guifg=#eeeeee +hi WarningMsg gui=none guibg=#5f5f00 guifg=#eeeeee +hi SpecialKey gui=none guifg=#5fdf5f +hi Title gui=bold guifg=#afafff +hi Directory guifg=#8787ff +hi DiffAdd gui=none guibg=#000087 +hi DiffChange gui=none guibg=#5f5f00 +hi DiffDelete gui=none guibg=#5f0000 guifg=#5f5f00 +hi DiffText gui=none guibg=#5f005f +hi Pmenu gui=none guibg=#00005f guifg=#87ffaf +hi PmenuSel gui=none guibg=#005f87 guifg=#87ffaf +hi PmenuSbar gui=none guibg=#0000af +hi PmenuThumb gui=none guibg=#00afaf +hi MatchParen gui=bold guibg=#005f87 +hi SpellBad gui=none guibg=#870000 +hi SpellCap gui=none guibg=#000087 +hi SpellLocal gui=none guibg=#008787 +hi SpellRare gui=none guibg=#870087 + +hi Comment gui=none guifg=#af8787 +hi Constant gui=none guifg=#ffaf5f + hi String gui=none guibg=#262626 guifg=#ffaf5f + hi Character gui=none guibg=#262626 guifg=#ffaf5f + hi Number gui=none guifg=#00af00 + hi Float gui=none guifg=#00df5f +hi Identifier gui=none guifg=#dfdf87 + hi Function gui=none guifg=#ff8787 +hi Statement gui=bold guifg=#5f5fff + hi Exception gui=bold guifg=#875fff + hi Operator gui=none guifg=#5fafff + hi Label gui=none guifg=#5f5fff +hi PreProc gui=bold guifg=#00af87 +hi Type gui=bold guifg=#5faf5f +hi Special gui=none guibg=#262626 guifg=#5fffff +hi Underlined gui=underline guifg=#ffff5f +hi Ignore gui=bold guifg=#262626 +hi Error gui=bold guibg=#5f0000 guifg=#ffffff +hi Todo gui=bold guibg=#afaf5f guifg=#000000 + +hi OperatorCurlyBrackets gui=bold guifg=#5fafff + +" highlight modes +autocmd InsertEnter * hi StatusLine guibg=#5f0000 +autocmd InsertEnter * hi User1 guibg=#5f0000 +autocmd InsertEnter * hi User2 guibg=#5f0000 +autocmd InsertLeave * hi User2 guibg=#303030 +autocmd InsertLeave * hi User1 guibg=#303030 +autocmd InsertLeave * hi StatusLine guibg=#303030 +autocmd CmdwinEnter * hi StatusLine guibg=#005f00 +autocmd CmdwinEnter * hi User1 guibg=#005f00 +autocmd CmdwinEnter * hi User2 guibg=#005f00 +autocmd CmdwinLeave * hi User2 guibg=#303030 +autocmd CmdwinLeave * hi User1 guibg=#303030 +autocmd CmdwinLeave * hi StatusLine guibg=#303030 + +end diff --git a/vim/colors/lilac.vim b/vim/colors/lilac.vim new file mode 100644 index 0000000..ef825fa --- /dev/null +++ b/vim/colors/lilac.vim @@ -0,0 +1,75 @@ +" GUI-only vim color file +" Author: Christian MICHON +" Version: 1.0 +" Last Change: 10 Oct 2002 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "lilac" + +hi Boolean guifg=#00f080 guibg=#503040 gui=none +hi Character guifg=#00f080 guibg=#503040 gui=none +hi Comment guifg=#c0c0c0 guibg=#503040 gui=underline +hi Conditional guifg=#60d0d0 guibg=#503040 gui=bold +hi Constant guifg=#00f080 guibg=#503040 gui=none +hi Cursor guifg=#000000 guibg=#f0f000 gui=none +hi Debug guifg=#b0d0f0 guibg=#503040 gui=none +hi Define guifg=#f0f000 guibg=#503040 gui=none +hi Delimiter guifg=#b0d0f0 guibg=#503040 gui=none +hi DiffAdd guifg=#f0f000 guibg=#805070 gui=bold +hi DiffChange guifg=#f0f0f0 guibg=#805070 gui=none +hi DiffDelete guifg=#503040 guibg=#805070 gui=none +hi DiffText guifg=#000000 guibg=#f0f000 gui=bold +hi Directory guifg=#f0f000 guibg=#503040 gui=underline +hi Error guifg=#000000 guibg=#b0d0f0 gui=bold +hi ErrorMsg guifg=#000000 guibg=#b0d0f0 gui=bold +hi Exception guifg=#60d0d0 guibg=#503040 gui=bold +hi Float guifg=#00f080 guibg=#503040 gui=none +hi FoldColumn guifg=#b0d0f0 guibg=#805070 gui=bold +hi Folded guifg=#b0d0f0 guibg=#805070 gui=bold +hi Function guifg=#f0a070 guibg=#503040 gui=none +hi Identifier guifg=#f0a070 guibg=#503040 gui=none +hi Ignore guifg=#503040 guibg=#503040 gui=none +hi Include guifg=#f0f000 guibg=#503040 gui=none +hi IncSearch guifg=#000000 guibg=#b0d0f0 gui=bold +hi Keyword guifg=#60d0d0 guibg=#503040 gui=bold +hi Label guifg=#60d0d0 guibg=#503040 gui=bold +hi lCursor guifg=#f0f0f0 guibg=#503040 gui=none +hi LineNr guifg=#c0c0c0 guibg=#805070 gui=bold +hi Macro guifg=#f0f000 guibg=#503040 gui=none +hi ModeMsg guifg=#f0f0f0 guibg=#503040 gui=bold +hi MoreMsg guifg=#f070a0 guibg=#503040 gui=bold +hi NonText guifg=#c0c0c0 guibg=#503040 gui=bold +hi Normal guifg=#f0f0f0 guibg=#503040 gui=none +hi Number guifg=#00f080 guibg=#503040 gui=none +hi Operator guifg=#60d0d0 guibg=#503040 gui=bold +hi PreCondit guifg=#f0f000 guibg=#503040 gui=none +hi PreProc guifg=#f0f000 guibg=#503040 gui=none +hi Question guifg=#f070a0 guibg=#503040 gui=bold +hi Repeat guifg=#60d0d0 guibg=#503040 gui=bold +hi Search guifg=#000000 guibg=#b0d0f0 gui=bold +hi Special guifg=#b0d0f0 guibg=#503040 gui=none +hi SpecialChar guifg=#b0d0f0 guibg=#503040 gui=none +hi SpecialComment guifg=#b0d0f0 guibg=#503040 gui=none +hi SpecialKey guifg=#f0f000 guibg=#503040 gui=none +hi Statement guifg=#60d0d0 guibg=#503040 gui=bold +hi StatusLine guifg=#000000 guibg=#f0f0f0 gui=bold +hi StatusLineNC guifg=#c0c0c0 guibg=#805070 gui=bold +hi StorageClass guifg=#f070a0 guibg=#503040 gui=bold +hi String guifg=#00f080 guibg=#503040 gui=none +hi Structure guifg=#f070a0 guibg=#503040 gui=bold +hi Tag guifg=#b0d0f0 guibg=#503040 gui=none +hi Title guifg=#00f080 guibg=#503040 gui=bold +hi Todo guifg=#f0f000 guibg=#0000f0 gui=none +hi Type guifg=#f070a0 guibg=#503040 gui=bold +hi Typedef guifg=#f070a0 guibg=#503040 gui=bold +hi Underlined guifg=#b0d0f0 guibg=#503040 gui=underline +hi VertSplit guifg=#000000 guibg=#b0d0f0 gui=bold +hi Visual guifg=#000000 guibg=#b0d0f0 gui=underline +hi VisualNOS guifg=#f0f0f0 guibg=#503040 gui=underline +hi WarningMsg guifg=#000000 guibg=#b0d0f0 gui=bold +hi WildMenu guifg=#f0f0f0 guibg=#0000f0 gui=none diff --git a/vim/colors/lingodirector.vim b/vim/colors/lingodirector.vim new file mode 100644 index 0000000..57f2b3c --- /dev/null +++ b/vim/colors/lingodirector.vim @@ -0,0 +1,44 @@ +" Vim color file +" Maintainer: Thomas Schmall +" Last Change: 2004 June 16 +" Version:1.0 +" URL: http://www.oxpal.com/index.php?o=dev_vim&lan=en +" +" Note: you can type :set number! to activate or deactivate the line numbering, wich also +" looks similar to Director + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="lingodirector" + +hi Normal guifg=black guibg=white ctermfg=Black ctermbg=white +hi Title guifg=black guibg=white ctermfg=Black ctermbg=white gui=BOLD +hi lCursor guibg=Cyan guifg=NONE + +hi LineNr guifg=white guibg=#8c9bfa + + + +" syntax highlighting groups +hi Comment ctermfg=Red guifg=#c80000 gui=NONE +hi Operator term=None cterm=None gui=None + +hi Identifier ctermfg=Green guifg=#008000 gui=NONE + +hi Statement ctermfg=Blue guifg=#0000c8 gui=NONE +hi TypeDef ctermfg=Blue guifg=#0000c8 gui=NONE +hi Type ctermfg=Blue guifg=#0000c8 gui=NONE +hi Boolean ctermfg=Blue guifg=#0000c8 gui=NONE + +hi String ctermfg=Gray guifg=#808080 gui=NONE +hi Number ctermfg=Gray guifg=#808080 gui=NONE +hi Constant ctermfg=Gray guifg=#808080 gui=NONE + +hi Function ctermfg=Green guifg=#008040 gui=NONE +hi PreProc ctermfg=Green guifg=#008040 gui=NONE +hi Keyword ctermfg=Green guifg=#008040 gui=NONE + +"set number diff --git a/vim/colors/manxome.vim b/vim/colors/manxome.vim new file mode 100644 index 0000000..9751f19 --- /dev/null +++ b/vim/colors/manxome.vim @@ -0,0 +1,47 @@ +""" local syntax file - set colors on a per-machine basis: +""" Vim color file +""" Title: Manxome Foes Color Scheme +""" Maintainer: Ricardo SIGNES +""" This Version: R2v2 [2003-07-16] +""" suggested vim editing options: tw=0 ts=4 sw=4 + +"" clear and re-initialize global variables +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "manxome" + +"" set highlight groups +"" you'll notice that the ctermbg is often 'none'; this is so that when +"" console vim runs in a terminal, transparency (if any) is not broken + +highlight Title ctermfg=3 ctermbg=none cterm=bold guifg=#ffff00 guibg=#000000 gui=none +highlight Directory ctermfg=4 ctermbg=none cterm=bold guifg=#0000ff guibg=#000000 gui=none +highlight StatusLine ctermfg=7 ctermbg=4 cterm=bold guifg=#ffffff guibg=#0000ff gui=none +highlight StatusLineNC ctermfg=0 ctermbg=4 cterm=bold guifg=#000000 guibg=#0000ff gui=none +highlight Normal ctermfg=7 ctermbg=none cterm=none guifg=#cccccc guibg=#000000 gui=none +highlight Search ctermfg=7 ctermbg=4 cterm=bold guifg=#ffffff guibg=#0000ff gui=none +highlight Visual ctermfg=7 ctermbg=6 cterm=bold guifg=#ffffff guibg=#00aaaa gui=none + +"" set major preferred groups + +highlight Comment ctermfg=2 ctermbg=none cterm=bold guifg=#00ff00 guibg=#000000 gui=none +highlight Constant ctermfg=6 ctermbg=none cterm=bold guifg=#00ffff guibg=#000000 gui=none +highlight Identifier ctermfg=4 ctermbg=none cterm=bold guifg=#0000ee guibg=#000000 gui=none +highlight Statement ctermfg=6 ctermbg=none cterm=none guifg=#00aaaa guibg=#000000 gui=none +highlight PreProc ctermfg=7 ctermbg=none cterm=bold guifg=#ffffff guibg=#000000 gui=none +highlight Type ctermfg=6 ctermbg=none cterm=none guifg=#00aaaa guibg=#000000 gui=none +highlight Special ctermfg=7 ctermbg=none cterm=bold guifg=#ffffff guibg=#000000 gui=none +highlight Underlined ctermfg=2 ctermbg=none cterm=none guifg=#00aa00 guibg=#000000 gui=none +highlight Ignore ctermfg=0 ctermbg=none cterm=bold guifg=#aaaaaa guibg=#000000 gui=none +highlight Error ctermfg=1 ctermbg=none cterm=bold guibg=#ff0000 guibg=#000000 gui=none +highlight Todo ctermfg=3 ctermbg=none cterm=none guifg=#aaaa00 guibg=#000000 gui=none + +" set syntax-specific groups +" I'd like to avoid using these, but the default settings for these two are +" just no good. Seeing italic text in Vim is just plain wrong. + +highlight htmlBold ctermfg=7 ctermbg=none cterm=bold guifg=#ffffff guibg=#000000 gui=none +highlight htmlItalic ctermfg=5 ctermbg=none cterm=bold guifg=#ff00ff guibg=#000000 gui=none diff --git a/vim/colors/marklar.vim b/vim/colors/marklar.vim new file mode 100644 index 0000000..5233ae1 --- /dev/null +++ b/vim/colors/marklar.vim @@ -0,0 +1,174 @@ +" ------------------------------------------------------------------ +" Filename: marklar.vim +" Last Modified: Nov, 30 2006 (13:01) +" Version: 0.5 +" Maintainer: SM Smithfield (m_smithfield AT yahoo DOT com) +" Copyright: 2006 SM Smithfield +" This script 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 2 of +" the License, or (at your option) any later version. +" Description: Vim colorscheme file. +" Install: Put this file in the users colors directory (~/.vim/colors) +" then load it with :colorscheme marklar +" ------------------------------------------------------------------ + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "marklar" + +if !exists("s:main") + + " OPTIONS: + let s:bold_opt = 0 + let s:ignore_opt = 1 + + function! s:main() + if version >= 700 + call s:apply_opts() + endif + + if s:bold_opt + let s:bold = 'bold' + else + let s:bold = 'NONE' + endif + + if s:ignore_opt + " completely invisible + let s:ignore = 'bg' + else + " nearly invisible + let s:ignore = '#467C5C' + endif + + execute "hi Constant guifg=#FFFFFF guibg=NONE ctermfg=7 cterm=NONE" + execute "hi Identifier guifg=#38FF56 guibg=NONE gui=".s:bold." ctermfg=8 cterm=bold" + execute "hi Statement guifg=#FFFF00 guibg=NONE gui=".s:bold." ctermfg=3 cterm=bold" + execute "hi Special guifg=#25B9F8 guibg=bg gui=".s:bold." ctermfg=2 cterm=underline" + execute "hi PreProc guifg=#FF80FF guibg=bg gui=NONE ctermfg=2" + execute "hi Type guifg=#00FFFF guibg=NONE gui=".s:bold." ctermfg=6 cterm=bold" + + execute "hi Ignore guifg=".s:ignore." guibg=NONE ctermfg=0" + + hi Comment guifg=#00BBBB guibg=NONE ctermfg=6 cterm=none + hi Cursor guifg=NONE guibg=#FF0000 + hi DiffAdd guifg=NONE guibg=#136769 ctermfg=4 ctermbg=7 cterm=NONE + hi DiffDelete guifg=NONE guibg=#50694A ctermfg=1 ctermbg=7 cterm=NONE + hi DiffChange guifg=fg guibg=#00463c gui=NONE ctermfg=4 ctermbg=2 cterm=NONE + hi DiffText guifg=#7CFC94 guibg=#00463c gui=bold ctermfg=4 ctermbg=3 cterm=NONE + hi Directory guifg=#25B9F8 guibg=NONE ctermfg=2 + hi Error guifg=#FFFFFF guibg=#000000 ctermfg=7 ctermbg=0 cterm=bold + hi ErrorMsg guifg=#8eff2e guibg=#204d40 + hi FoldColumn guifg=#00BBBB guibg=#204d40 + hi Folded guifg=#44DDDD guibg=#204d40 ctermfg=0 ctermbg=8 cterm=bold + + hi IncSearch guibg=#52891f gui=bold + hi LineNr guifg=#38ff56 guibg=#204d40 + hi ModeMsg guifg=#FFFFFF guibg=#0000FF ctermfg=7 ctermbg=4 cterm=bold + hi MoreMsg guifg=#FFFFFF guibg=#00A261 ctermfg=7 ctermbg=2 cterm=bold + hi NonText guifg=#00bbbb guibg=#204d40 + hi Normal guifg=#71C293 guibg=#06544a + hi Question guifg=#FFFFFF guibg=#00A261 + hi Search guifg=NONE guibg=#0f374c ctermfg=3 ctermbg=0 cterm=bold + + hi SignColumn guifg=#00BBBB guibg=#204d40 + hi SpecialKey guifg=#00FFFF guibg=#266955 + hi StatusLine guifg=#245748 guibg=#71C293 gui=NONE cterm=reverse + hi StatusLineNC guifg=#245748 guibg=#689C7C gui=NONE + hi Title guifg=#7CFC94 guibg=NONE gui=bold ctermfg=2 cterm=bold + hi Todo guifg=#FFFFFF guibg=#884400 ctermfg=6 ctermbg=4 cterm=NONE + hi Underlined guifg=#df820c guibg=NONE gui=underline ctermfg=8 cterm=underline + hi Visual guibg=#0B7260 gui=NONE + hi WarningMsg guifg=#FFFFFF guibg=#FF0000 ctermfg=7 ctermbg=1 cterm=bold + hi WildMenu guifg=#20012e guibg=#00a675 gui=bold ctermfg=NONE ctermbg=NONE cterm=bold + " + if version >= 700 + hi SpellBad guisp=#FF0000 + hi SpellCap guisp=#0000FF + hi SpellRare guisp=#ff4046 + hi SpellLocal guisp=#000000 ctermbg=0 + hi Pmenu guifg=#00ffff guibg=#000000 ctermbg=0 ctermfg=6 + hi PmenuSel guifg=#ffff00 guibg=#000000 gui=bold cterm=bold ctermfg=3 + hi PmenuSbar guibg=#204d40 ctermbg=6 + hi PmenuThumb guifg=#38ff56 ctermfg=3 + hi CursorColumn guibg=#096354 + hi CursorLine guibg=#096354 + hi Tabline guifg=bg guibg=fg gui=NONE cterm=reverse,bold ctermfg=NONE ctermbg=NONE + hi TablineSel guifg=#20012e guibg=#00a675 gui=bold + hi TablineFill guifg=#689C7C + hi MatchParen guifg=#38ff56 guibg=#0000ff gui=bold ctermbg=4 + endif + " + hi Tag guifg=#7CFC94 guibg=NONE gui=bold ctermfg=2 cterm=bold + hi link Bold Tag + " + hi pythonPreCondit ctermfg=2 cterm=NONE + execute "hi tkWidget guifg=#ffa0a0 guibg=bg gui=".s:bold." ctermfg=7 cterm=bold" + endfunction + + if version >= 700 + + let s:opts = {'bold': 0, 'ignore': 1} + + " preserves vim<7 compat, while letting me reuses some code + function! s:apply_opts() + let s:bold_opt = s:opts['bold'] + let s:ignore_opt = s:opts['ignore'] + endfunction + + function! s:print_opts(...) + let d = a:000 + if len(a:000) == 0 + let d = keys(s:opts) + endif + for k in d + echo k.': '.s:opts[k] + endfor + endfunction + + function! s:Marklar(...) + let args = a:000 + if len(args) == 0 + call s:print_opts() + else + while len(args)>0 + " take first arg + let k = args[0] + let args = args[1:] + " is it a key? + if k =~ '\a\+!' + " does it bang? + let k = strpart(k,0,strlen(k)-1) + let s:opts[k] = !s:opts[k] + call s:main() + elseif k =~ '\a\+?' + " does it quiz? + let k = strpart(k,0,strlen(k)-1) + call s:print_opts(k) + elseif len(args) + " is there another arg? + " take it + let v = args[0] + let args = args[1:] + " is it legal value? + if v == 0 || v == 1 + " assign val->key + let s:opts[k] = v + call s:main() + else + echoerr "(".v.") Bad value. Expected 0 or 1." + endif + else + endif + endwhile + endif + endfunction + command! -nargs=* Marklar :call s:Marklar() + endif +endif + +call s:main() diff --git a/vim/colors/mars.vim b/vim/colors/mars.vim new file mode 100644 index 0000000..408ae79 --- /dev/null +++ b/vim/colors/mars.vim @@ -0,0 +1,142 @@ +" Maintainer: Tim Aldrich +" Last Change: 19 November 2003 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="mars" +" GUI colors {{{ +"hi Normal guifg=#FFFFFF guibg=#961E00 +hi Normal guifg=#FFFFFF guibg=#961E00 +hi Cursor guifg=#A0963C guibg=#FFFFFF +hi CursorIM guifg=#6699CC guibg=#99CCCC +hi Directory guifg=#B45000 guibg=#961E00 +hi DiffAdd guifg=#FFFFCC guibg=#961E00 +hi DiffChange guifg=#FF9900 guibg=#961E00 +hi DiffDelete guifg=#999999 guibg=#961E00 +hi DiffText guifg=#FFFFFF guibg=#961E00 +hi ErrorMsg guifg=#FFFFFF guibg=#FF0000 +hi VertSplit guifg=#FFFFFF guibg=#961E00 +hi Folded guifg=#999999 guibg=#BE1E00 gui=italic +hi FoldColumn guifg=#CC0000 guibg=#999999 +hi IncSearch guifg=#FFFF00 guibg=#961E00 +hi LineNr guifg=#999999 guibg=#BE1E00 +hi ModeMsg guifg=#FFFFFF guibg=#961E00 +hi MoreMsg guifg=#FFFFFF guibg=#961E00 +hi NonText guifg=#FFFFFF guibg=#A0141E +hi Question guifg=#FFFFFF guibg=#EE0000 +hi Search guifg=#A0142B guibg=#FFFF00 gui=underline +hi SpecialKey guifg=#FFFF00 guibg=#961E00 +hi StatusLine guifg=#FFFFFF guibg=#961E00 +hi StatusLineNC guifg=#CCCCCC guibg=#961E00 +hi Title guifg=#FFFFFF guibg=#FF9900 +hi Visual guifg=#B45000 guibg=#961E00 +hi WarningMsg guifg=#FF0000 guibg=#FFFFFF +hi WildMenu guifg=#961E00 guibg=#999999 +" }}} + +" cterm colors {{{ +hi Normal ctermfg=white ctermbg=darkblue +hi Cursor ctermfg=darkblue ctermbg=white +hi CursorIM ctermfg=lightcyan ctermbg=lightcyan +hi Directory ctermfg=lightblue ctermbg=lightcyan +hi DiffAdd ctermfg=LightYellow ctermbg=darkblue +hi DiffChange ctermfg=darkred ctermbg=darkblue +hi DiffDelete ctermfg=grey ctermbg=darkblue +hi DiffText ctermfg=white ctermbg=darkblue +hi ErrorMsg ctermfg=red ctermbg=lightcyan +hi VertSplit ctermfg=white ctermbg=darkblue +hi Folded ctermfg=grey ctermbg=darkblue +hi FoldColumn ctermfg=darkred ctermbg=lightcyan +hi IncSearch ctermfg=yellow ctermbg=darkblue +hi LineNr ctermfg=lightyellow ctermbg=darkblue +hi ModeMsg ctermfg=white ctermbg=darkblue +hi MoreMsg ctermfg=white ctermbg=darkblue +hi NonText ctermfg=white ctermbg=lightblue +hi Question ctermfg=white ctermbg=darkblue +hi Search ctermfg=darkred ctermbg=lightcyan +hi SpecialKey ctermfg=yellow ctermbg=darkblue +hi StatusLine ctermfg=white ctermbg=darkblue +hi StatusLineNC ctermfg=lightgrey ctermbg=darkblue +hi Title ctermfg=white ctermbg=yellow +hi Visual ctermfg=lightblue ctermbg=cyan +hi WarningMsg ctermfg=red ctermbg=white +hi WildMenu ctermfg=darkblue ctermbg=grey +" }}} + +" GUI hilight groups {{{ + +hi Comment guifg=#999999 +hi Constant guifg=#FFFF00 +hi String guifg=#CCCC99 +hi Character guifg=#A0963C +hi Number guifg=#A0963C +hi Boolean guifg=#A0963C +hi Float guifg=#A0963C +hi Identifier guifg=#E6fA46 +hi Function guifg=#E6fA46 +hi Statement guifg=#FFFFCC +hi Conditional guifg=#FFFFCC +hi Repeat guifg=#FFFFCC +hi Label guifg=#E66E46 +hi Operator guifg=#FFFF00 +hi Keyword guifg=#FFFF00 +hi Exception guifg=#FFFFAA +hi PreProc guifg=#C8783C +hi Include guifg=#C8783C +hi Define guifg=#C8783C +hi Macro guifg=#C8783C +hi PreCondit guifg=#C8783C +hi Type guifg=#E6641E +hi StorageClass guifg=#E66E46 +hi Structure guifg=#E66E46 +hi Typedef guifg=#E66E46 +hi Special guifg=#00FF00 +hi SpecialChar guifg=#00FF00 +hi Tag guifg=#CCCCFF +hi Delimiter guifg=#CCCCFF +hi SpecialComment guifg=#FFFFCC +hi Debug guifg=#CC3300 +hi Ignore guifg=#961E00 +hi Error guifg=#FF0000 guibg=#FFFFFF +hi Todo guifg=#FFFF00 guibg=#961E00 +" }}} + +" cterm hilight groups {{{ +hi Comment ctermfg=grey +hi Constant ctermfg=lightgreen +hi String ctermfg=brown +hi Character ctermfg=lightgreen +hi Number ctermfg=lightgreen +hi Boolean ctermfg=lightgreen +hi Float ctermfg=lightgreen +hi Identifier ctermfg=lightcyan +hi Function ctermfg=lightcyan +hi Statement ctermfg=lightyellow +hi Conditional ctermfg=lightyellow +hi Repeat ctermfg=lightyellow +hi Label ctermfg=lightcyan +hi Operator ctermfg=yellow +hi Keyword ctermfg=yellow +hi Exception ctermfg=yellow +hi PreProc ctermfg=darkcyan +hi Include ctermfg=darkcyan +hi Define ctermfg=darkcyan +hi Macro ctermfg=darkcyan +hi PreCondit ctermfg=darkcyan +hi Type ctermfg=lightcyan +hi StorageClass ctermfg=lightcyan +hi Structure ctermfg=lightcyan +hi Typedef ctermfg=lightcyan +hi Special ctermfg=green +hi SpecialChar ctermfg=green +hi Tag ctermfg=brown +hi Delimiter ctermfg=brown +hi SpecialComment ctermfg=lightyellow +hi Debug ctermfg=magenta +hi Ignore ctermfg=lightblue +hi Error ctermfg=red ctermbg=white +hi Todo ctermfg=grey ctermbg=white +" }}} diff --git a/vim/colors/martin_krischik.vim b/vim/colors/martin_krischik.vim new file mode 100644 index 0000000..0975ba0 --- /dev/null +++ b/vim/colors/martin_krischik.vim @@ -0,0 +1,397 @@ +"------------------------------------------------------------------------------- +" Description: My personal colors +" $Id: martin_krischik.vim 458 2006-11-18 09:42:10Z krischik $ +" Copyright: Copyright (C) 2006 Martin Krischik +" Maintainer: Martin Krischik +" $Author: krischik $ +" $Date: 2006-11-18 10:42:10 +0100 (Sa, 18 Nov 2006) $ +" Version: 3.2 +" $Revision: 458 $ +" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/colors/martin_krischik.vim $ +" Note: Tried and Tested for 'builtin_gui', 'xterm' (KDE Konsole) +" 'vt320'" (OpenVMS) and 'linux' (Linux Console). +" History: 16.05.2006 MK Check that all vim 7.0 colors are set +" 16.05.2006 MK Split GUI from terminal. +" 24.05.2006 MK Unified Headers +" 24.07.2006 MK Omni-Completion Colors. +" 15.10.2006 MK Bram's suggestion for runtime integration +" Usage: copy to colors directory +"------------------------------------------------------------------------------ + +" First remove all existing highlighting. + +set background=light +highlight clear + +if exists ("syntax_on") + syntax reset +endif + +let colors_name = "martin_krischik" + +if version < 700 + " Section: works only with vim 7.0 use default otherwise {{{1 + " + colorscheme default + " + " }}}1 + finish +elseif (&term == "builtin_gui") + " Section: Set GUI colors. {{{1 + " + " Subsection: User-Interface Colors {{{2 + " + " Group: Normal Text Colors {{{3 + " + highlight Normal gui=none guifg=black guibg=white + highlight Search guibg=Yellow + highlight SpecialKey guifg=Blue + highlight Title gui=bold guifg=Magenta + highlight LineNr guifg=Brown guibg=grey80 + highlight NonText gui=bold guifg=Blue guibg=grey80 + highlight MatchParen guibg=Cyan + highlight IncSearch gui=reverse + " + " Group: Messages {{{3 + " + highlight WarningMsg guifg=Red + highlight ErrorMsg guifg=White guibg=Red + highlight ModeMsg gui=bold + highlight MoreMsg gui=bold guifg=SeaGreen + highlight Question gui=bold guifg=SeaGreen + " + " Group: Spell Checker {{{3 + " + highlight SpellBad gui=undercurl guisp=Red + highlight SpellCap gui=undercurl guisp=Blue + highlight SpellLocal gui=undercurl guisp=DarkCyan + highlight SpellRare gui=undercurl guisp=Magenta + " + " Group: Status line {{{3 + " + highlight StatusLine gui=bold,reverse guifg=LightBlue2 guibg=black + highlight StatusLineNC gui=reverse guifg=grey75 guibg=black + highlight VertSplit gui=reverse guifg=LightBlue3 guibg=black + " + " Group: Visual selektio {{{3n + " + highlight Visual gui=reverse guifg=firebrick guibg=white + highlight VisualNOS gui=reverse guifg=firebrick guibg=black + " + " Group: tab pages line {{{3 + " + highlight TabLine gui=reverse guifg=grey75 guibg=black + highlight TabLineFill gui=reverse + highlight TabLineSel gui=bold,reverse guifg=LightBlue2 guibg=black + " + " Group: Competion (omni and otherwise) menu colors {{{3 + " + highlight Pmenu guibg=Grey + highlight PmenuSel guifg=White guibg=firebrick + highlight PmenuSbar guibg=LightGrey guibg=DarkGrey + highlight PmenuThumb gui=reverse + highlight WildMenu guifg=White guibg=firebrick + " + " Group: Diff colors {{{3 + " + highlight DiffAdd guibg=LightBlue + highlight DiffChange guibg=LightMagenta + highlight DiffDelete gui=bold guifg=Blue guibg=LightCyan + highlight DiffText gui=bold guibg=Red + " + " Group: Fold colors {{{3 + " + highlight FoldColumn guifg=DarkBlue guibg=Grey + highlight Folded guifg=DarkBlue guibg=LightGrey + " + " Group: Other Syntax Highlight Colors {{{3 + " + highlight Directory guifg=Blue + highlight SignColumn guifg=DarkBlue guibg=Grey + " + " Group: Motif and Athena widget colors. {{{3 + " + highlight Menu guifg=Black guibg=LightGrey + highlight Scrollbar guifg=LightGrey guibg=DarkGrey + highlight Tooltip guifg=Black guibg=LightGrey + + " Subsection: Syntax Colors {{{2 + " + " Group: Comment colors syntax-group + " + highlight Comment guifg=grey30 + " + " Group: Constant colors group {{{3 + " + highlight Boolean guifg=DarkOrchid3 guibg=grey95 + highlight Character guifg=RoyalBlue3 guibg=grey95 + highlight Constant guifg=MediumOrchid3 guibg=grey95 + highlight Float guifg=MediumOrchid4 guibg=grey95 + highlight Number guifg=DarkOrchid4 guibg=grey95 + highlight String guifg=RoyalBlue4 guibg=grey95 + " + " Group: Identifier colors group {{{3 + " + highlight Function guifg=SteelBlue + highlight Identifier guifg=DarkCyan + " + " Group: Statement colors group {{{3 + " + highlight Conditional gui=bold guifg=DodgerBlue4 + highlight Exception gui=none guifg=SlateBlue4 + highlight Keyword gui=bold guifg=RoyalBlue4 + highlight Label gui=none guifg=SlateBlue3 + highlight Operator gui=none guifg=RoyalBlue3 + highlight Repeat gui=bold guifg=DodgerBlue3 + highlight Statement gui=none guifg=RoyalBlue4 + " + " Group: Preprocessor colors group {{{3 + " + highlight Define guifg=brown4 guibg=snow + highlight Include guifg=firebrick3 guibg=snow + highlight Macro guifg=brown3 guibg=snow + highlight PreCondit guifg=red guibg=snow + highlight PreProc guifg=firebrick4 guibg=snow + " + " Group: type group {{{3 + " + highlight StorageClass gui=none guifg=SeaGreen3 + highlight Structure gui=none guifg=DarkSlateGray4 + highlight Type gui=none guifg=SeaGreen4 + highlight Typedef gui=none guifg=DarkSeaGreen4 + " + " Group: special symbol group {{{3 + " + highlight Special guifg=SlateBlue guibg=GhostWhite + highlight SpecialChar guifg=DeepPink guibg=GhostWhite + highlight Tag guifg=DarkSlateBlue guibg=GhostWhite + highlight Delimiter guifg=DarkOrchid guibg=GhostWhite + highlight SpecialComment guifg=VioletRed guibg=GhostWhite + highlight Debug guifg=maroon guibg=GhostWhite + " + " Group: text that stands out {{{3 + " + highlight Underlined gui=underline guifg=SlateBlue + " + " Group: left blank, hidden {{{3 + " + highlight Ignore guifg=bg + " + " Group: any erroneous construct {{{3 + " + highlight Error gui=undercurl guifg=Red guibg=MistyRose + " + " Group: anything that needs extra attention {{{3 + " + highlight Todo guifg=Blue guibg=Yellow + + " Subsection: Cursor Colors {{{2 + " + " Group: Mouse Cursor {{{3 + " + highlight cCursor guifg=bg guibg=DarkRed + highlight Cursor guifg=bg guibg=DarkGreen + highlight CursorColumn guibg=FloralWhite + highlight CursorIM guifg=bg guibg=DarkGrey + highlight CursorLine guibg=cornsilk + highlight lCursor guifg=bg guibg=DarkMagenta + highlight oCursor guifg=bg guibg=DarkCyan + highlight vCursor guifg=bg guibg=DarkYellow + " + " Group: Text Cursor {{{3 + " + set guicursor=n:block-lCursor, + \i:ver25-Cursor, + \r:hor25-Cursor, + \v:block-vCursor, + \ve:ver35-vCursor, + \o:hor50-oCursor-blinkwait75-blinkoff50-blinkon75, + \c:block-cCursor, + \ci:ver20-cCursor, + \cr:hor20-cCursor, + \sm:block-Cursor-blinkwait175-blinkoff150-blinkon175 + + syntax enable + + " }}}1 + finish +elseif (&term == "xterm") || + \ (&term == "vt320") || + \ (&term == "linux") + " Section: Only set colors for terminals we actualy know of {{{1 + " + if &term=="vt320" + set t_Co=8 + else + set t_Co=16 + endif + + " Subsection: User Interface Colors {{{2 + " + " Group: Normal Text Colors {{{3 + " + highlight Normal term=none cterm=none ctermfg=Black ctermbg=LightGray + highlight Search term=reverse ctermbg=DarkYellow + highlight SpecialKey term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Title term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight LineNr term=underline ctermfg=DarkRed ctermbg=DarkGray + highlight NonText term=bold ctermfg=LightBlue ctermbg=LightGray + highlight MatchParen term=reverse ctermbg=DarkYellow + highlight IncSearch term=reverse cterm=reverse + " + " Group: Messages {{{3 + " + highlight WarningMsg term=standout ctermfg=DarkRed ctermbg=LightGray + highlight ErrorMsg term=standout ctermfg=White ctermbg=DarkRed + highlight ModeMsg term=bold cterm=bold ctermbg=LightGray + highlight MoreMsg term=bold ctermfg=DarkGreen ctermbg=LightGray + highlight Question term=standout ctermfg=DarkGreen ctermbg=LightGray + " + " Group: Spell Checker {{{3 + " + highlight SpellBad term=reverse ctermbg=LightRed + highlight SpellCap term=reverse ctermbg=LightBlue + highlight SpellLocal term=underline ctermbg=LightCyan + highlight SpellRare term=reverse ctermbg=LightMagenta + " + " Group: Status line {{{3 + " + highlight StatusLine term=bold,reverse cterm=bold,reverse + highlight StatusLineNC term=reverse cterm=reverse + highlight VertSplit term=reverse cterm=reverse + " + " Group: Visual selektion {{{3 + " + highlight Visual term=reverse cterm=reverse ctermfg=DarkRed ctermbg=LightGray + highlight VisualNOS term=bold,underline cterm=bold,underline + " + " Group: tab pages line {{{3 + " + highlight TabLine term=reverse cterm=reverse + highlight TabLineFill term=reverse cterm=reverse + highlight TabLineSel term=bold,reverse cterm=bold,reverse + " + " Group: Menu colors {{{3 + " + highlight Pmenu ctermbg=Grey + highlight PmenuSel ctermfg=White ctermbg=Red + highlight PmenuSbar ctermfg=LightGrey ctermbg=DarkGray + highlight PmenuThumb cterm=reverse + highlight WildMenu term=standout ctermfg=White ctermbg=Red + " + " Group: Diff colors {{{3 + " + highlight DiffAdd term=bold ctermbg=LightBlue + highlight DiffChange term=bold ctermbg=LightMagenta + highlight DiffDelete term=bold ctermfg=LightBlue ctermbg=LightCyan + highlight DiffText term=reverse cterm=bold ctermbg=LightRed + " + " Group: Fold colors {{{3 + " + highlight FoldColumn term=standout ctermfg=DarkBlue ctermbg=DarkGray + highlight Folded term=standout ctermfg=DarkBlue ctermbg=DarkGray + " + " Group: Other Syntax Highlight Colors {{{3 + " + highlight Directory term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight SignColumn term=standout ctermfg=DarkBlue ctermbg=DarkGray + + " Subsection: Syntax Colors {{{2 + " + " Group: Comment colors syntax-group {{{3 + " + highlight Comment term=bold ctermfg=DarkGray ctermbg=LightGray + " + " Group: Constant colors group {{{3 + " + highlight Boolean term=underline ctermfg=DarkRed ctermbg=LightGray + highlight Character term=underline ctermfg=DarkRed ctermbg=LightGray + highlight Constant term=underline ctermfg=DarkRed ctermbg=LightGray + highlight Float term=underline ctermfg=DarkRed ctermbg=LightGray + highlight Number term=underline ctermfg=DarkRed ctermbg=LightGray + highlight String term=underline ctermfg=DarkRed ctermbg=LightGray + " + " Group: Identifier colors group {{{3 + " + highlight Function term=underline ctermfg=DarkCyan ctermbg=LightGray + highlight Identifier term=underline ctermfg=DarkCyan ctermbg=LightGray + " + " Group: Statement colors group {{{3 + " + highlight Conditional term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Exception term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Keyword term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Label term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Operator term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Repeat term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Statement term=bold ctermfg=DarkBlue ctermbg=LightGray + " + " Group: Preprocessor colors group {{{3 + " + highlight Define term=underline ctermfg=DarkMagenta ctermbg=LightGray + highlight Include term=underline ctermfg=DarkMagenta ctermbg=LightGray + highlight Macro term=underline ctermfg=DarkMagenta ctermbg=LightGray + highlight PreCondit term=underline ctermfg=DarkMagenta ctermbg=LightGray + highlight PreProc term=underline ctermfg=DarkMagenta ctermbg=LightGray + " + " Group: type group {{{3 + " + highlight StorageClass term=underline ctermfg=DarkGreen ctermbg=LightGray + highlight Structure term=underline ctermfg=DarkGreen ctermbg=LightGray + highlight Type term=underline ctermfg=DarkGreen ctermbg=LightGray + highlight Typedef term=underline ctermfg=DarkGreen ctermbg=LightGray + " + " Group: special symbol group {{{3 + " + highlight Special term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight SpecialChar term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight Tag term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight Delimiter term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight SpecialComment term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight Debug term=bold ctermfg=DarkMagenta ctermbg=LightGray + " + " Group: text that stands out {{{3 + " + highlight Underlined term=underline cterm=underline ctermfg=DarkMagenta ctermbg=LightGray + " + " Group: left blank, hidden {{{3 + " + highlight Ignore ctermfg=White ctermbg=grey + " + " Group: any erroneous construct {{{3 + " + highlight Error term=reverse ctermfg=White ctermbg=LightRed + " + " Group: anything that needs extra attention {{{3 + " + highlight Todo term=standout ctermfg=Black ctermbg=Yellow + + " Subsection: Cursor Colors {{{2 + " + " Group: Mouse Cursor {{{3 + " + highlight Cursor ctermfg=bg ctermbg=DarkGreen + highlight CursorColumn term=reverse ctermbg=LightGray + highlight CursorIM ctermfg=bg ctermbg=DarkGrey + highlight CursorLine term=reverse ctermbg=LightGray + + syntax enable + + " }}}1 + finish +else + " Section: terminal is completely unknown - fallback to system default {{{1 + " + set t_Co=8 + + " }}}1 + finish +endif + +"------------------------------------------------------------------------------ +" Copyright (C) 2006 Martin Krischik +" +" Vim is Charityware - see ":help license" or uganda.txt for licence details. +"------------------------------------------------------------------------------ +" vim: nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab +" vim: filetype=vim foldmethod=marker textwidth=0 diff --git a/vim/colors/matrix.vim b/vim/colors/matrix.vim new file mode 100644 index 0000000..75a0950 --- /dev/null +++ b/vim/colors/matrix.vim @@ -0,0 +1,80 @@ +" vim:set ts=8 sts=2 sw=2 tw=0: +" +" matrix.vim - MATRIX like colorscheme. +" +" Maintainer: MURAOKA Taro +" Last Change: 10-Jun-2003. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = 'matrix' + +" the character under the cursor +hi Cursor guifg=#226622 guibg=#55ff55 +hi lCursor guifg=#226622 guibg=#55ff55 +" like Cursor, but used when in IME mode |CursorIM| +hi CursorIM guifg=#226622 guibg=#55ff55 +" directory names (and other special names in listings) +hi Directory guifg=#55ff55 guibg=#000000 +" diff mode: Added line |diff.txt| +hi DiffAdd guifg=#55ff55 guibg=#226622 gui=none +" diff mode: Changed line |diff.txt| +hi DiffChange guifg=#55ff55 guibg=#226622 gui=none +" diff mode: Deleted line |diff.txt| +hi DiffDelete guifg=#113311 guibg=#113311 gui=none +" diff mode: Changed text within a changed line |diff.txt| +hi DiffText guifg=#55ff55 guibg=#339933 gui=bold +" error messages on the command line +hi ErrorMsg guifg=#55ff55 guibg=#339933 +" the column separating vertically split windows +hi VertSplit guifg=#339933 guibg=#339933 +" line used for closed folds +hi Folded guifg=#44cc44 guibg=#113311 +" 'foldcolumn' +hi FoldColumn guifg=#44cc44 guibg=#226622 +" 'incsearch' highlighting; also used for the text replaced with +hi IncSearch guifg=#226622 guibg=#55ff55 gui=none +" line number for ":number" and ":#" commands, and when 'number' +hi LineNr guifg=#44cc44 guibg=#000000 +" 'showmode' message (e.g., "-- INSERT --") +hi ModeMsg guifg=#44cc44 guibg=#000000 +" |more-prompt| +hi MoreMsg guifg=#44cc44 guibg=#000000 +" '~' and '@' at the end of the window, characters from +hi NonText guifg=#44cc44 guibg=#113311 +" normal text +hi Normal guifg=#44cc44 guibg=#000000 +" |hit-enter| prompt and yes/no questions +hi Question guifg=#44cc44 guibg=#000000 +" Last search pattern highlighting (see 'hlsearch'). +hi Search guifg=#113311 guibg=#44cc44 gui=none +" Meta and special keys listed with ":map", also for text used +hi SpecialKey guifg=#44cc44 guibg=#000000 +" status line of current window +hi StatusLine guifg=#55ff55 guibg=#339933 gui=none +" status lines of not-current windows +hi StatusLineNC guifg=#113311 guibg=#339933 gui=none +" titles for output from ":set all", ":autocmd" etc. +hi Title guifg=#55ff55 guibg=#113311 gui=bold +" Visual mode selection +hi Visual guifg=#55ff55 guibg=#339933 gui=none +" Visual mode selection when vim is "Not Owning the Selection". +hi VisualNOS guifg=#44cc44 guibg=#000000 +" warning messages +hi WarningMsg guifg=#55ff55 guibg=#000000 +" current match in 'wildmenu' completion +hi WildMenu guifg=#226622 guibg=#55ff55 + +hi Comment guifg=#226622 guibg=#000000 +hi Constant guifg=#55ff55 guibg=#226622 +hi Special guifg=#44cc44 guibg=#226622 +hi Identifier guifg=#55ff55 guibg=#000000 +hi Statement guifg=#55ff55 guibg=#000000 gui=bold +hi PreProc guifg=#339933 guibg=#000000 +hi Type guifg=#55ff55 guibg=#000000 gui=bold +hi Underlined guifg=#55ff55 guibg=#000000 gui=underline +hi Error guifg=#55ff55 guibg=#339933 +hi Todo guifg=#113311 guibg=#44cc44 gui=none diff --git a/vim/colors/metacosm.vim b/vim/colors/metacosm.vim new file mode 100644 index 0000000..f6d561a --- /dev/null +++ b/vim/colors/metacosm.vim @@ -0,0 +1,147 @@ +" Vim color file +" Maintainer: Robert Melton ( vim at metacosm dot dhs dot org ) +" Last Change: 2006 April 21st + + + +" ----------------------------------------------------------------------------- +" This color scheme uses a dark grey background. +" This theme, based on evening (with some input from Torte) is designed to +" seperate active text (code) from background/line numbers/folds/listchars by +" having different background colors on the non-code and the code (just +" slightly). If you look at the screenshot below, you will get the idea. +" All non-code(include indents) and string literals have a black background +" while code has a very dark grey background. +" ----------------------------------------------------------------------------- +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "metacosm" + + + +" ----------------------------------------------------------------------------- +" Primary (hyper/selected/colored background) +" ----------------------------------------------------------------------------- +" Search +hi IncSearch guibg=black guifg=cyan +hi Search guibg=black guifg=cyan + +" Visual +hi Visual guibg=yellow guifg=black +hi VisualNOS guibg=yellow guifg=black gui=underline + +" Borders +hi StatusLine guibg=black guifg=#80a0ff +hi StatusLineNC guibg=black guifg=grey45 +hi VertSplit guibg=black guifg=grey45 + +" Cursors +hi Cursor guibg=white guifg=black +hi lCursor guibg=white guifg=black + +" Diff +hi DiffText guibg=red guifg=white gui=bold +hi DiffAdd guibg=darkblue guifg=white +hi DiffChange guibg=darkmagenta guifg=white +hi DiffDelete guibg=darkcyan guifg=blue gui=bold + +" Misc +hi Title guifg=magenta gui=bold +hi Question guibg=black guifg=green gui=bold +hi Todo guibg=black guifg=cyan +hi Error guibg=red guifg=white +hi WildMenu guibg=cyan guifg=black + + + +" ----------------------------------------------------------------------------- +" Primary (active/code/text/grey background) +" ----------------------------------------------------------------------------- +" Normal +hi Normal guibg=black guifg=white + +" Constants +hi Constant guibg=black guifg=#ffa0a0 +hi String guibg=black guifg=#ffa0a0 +hi Character guibg=black guifg=#ffa0a0 +hi Number guibg=black guifg=#ffa0a0 +hi Boolean guibg=black guifg=#ffa0a0 +hi Float guibg=black guifg=#ffa0a0 + +" Identifier +hi Identifier guibg=black guifg=#40ffff +hi Function guibg=black guifg=#40ffff + +" Statement +hi Statement guibg=black guifg=#ffff60 +hi Conditional guibg=black guifg=#ffff60 +hi Repeat guibg=black guifg=#ffff60 +hi Label guibg=black guifg=#ffff60 +hi Operator guibg=black guifg=#ffff60 +hi Keyword guibg=black guifg=#ffff60 +hi Exception guibg=black guifg=#ffff60 + +" PreProc +hi PreProc guibg=black guifg=#ff80ff +hi Include guibg=black guifg=#ff80ff +hi Define guibg=black guifg=#ff80ff +hi Macro guibg=black guifg=#ff80ff +hi PreCondit guibg=black guifg=#ff80ff + +" Type +hi Type guibg=black guifg=#60ff60 +hi StorageClass guibg=black guifg=#60ff60 +hi Structure guibg=black guifg=#60ff60 +hi Typedef guibg=black guifg=#60ff60 + +" Special +hi Special guibg=black guifg=orange +hi SpecialChar guibg=black guifg=orange +hi Tag guibg=black guifg=orange +hi Delimiter guibg=black guifg=orange +hi Debug guibg=black guifg=orange + +" Misc +hi Underlined guibg=black guifg=#ffff60 gui=underline + + + +" ----------------------------------------------------------------------------- +" Secondary (inactive/black background) +" ----------------------------------------------------------------------------- +" Comments +hi Comment guibg=black guifg=#80a0ff +hi SpecialComment guibg=black guifg=#80a0ff gui=underline + +" Messages +hi ModeMsg guibg=black guifg=white gui=bold +hi MoreMsg guibg=black guifg=seagreen gui=bold +hi WarningMsg guibg=black guifg=blue gui=bold +hi ErrorMsg guibg=black guifg=red gui=bold + +" Folding +hi Folded guibg=black guifg=grey50 +hi FoldColumn guibg=black guifg=grey30 + +" Misc +hi Ignore guibg=black guifg=grey45 +hi NonText guibg=black guifg=grey45 +hi LineNr guibg=black guifg=grey45 +hi SpecialKey guibg=black guifg=grey45 +hi SignColumn guibg=black guifg=grey45 +hi Directory guibg=black guifg=cyan + + + +" ----------------------------------------------------------------------------- +" Vim 7.x only +" ---------------------------------------------------------------------------- +hi MatchParen guibg=purple guifg=yellow +hi CursorLine guibg=grey15 +hi CursorColumn guibg=grey15 +hi Pmenu guibg=grey20 guifg=white +hi PmenuSel guibg=lightblue guifg=black diff --git a/vim/colors/midnight.vim b/vim/colors/midnight.vim new file mode 100644 index 0000000..643b988 --- /dev/null +++ b/vim/colors/midnight.vim @@ -0,0 +1,102 @@ +" Vim color file +" Maintainer: Michael Brailsford +" Date: $Date: 2002/11/25 20:25:54 $ +" Version: $Revision: 1.1 $ +" Inspiration: This colorscheme was inspired by midnight.vim. It is a darker +" version of it. With some colors tweaked. +" +" Thanks: Thanks go to Hans Fugal for creating the colorscheme template. +" Without it I would have been lost creating the original midnight.vim +" Thanks to Mark Lodato for providing vim7 updates. +" +" Note: If you do not like the dark look of the colorscheme, you can +" easily lighten things up with the following line: +" :%s/\(\w\)3/\12/g +" It is easily pasteable into the command line. you can also +" change "\12" to "\11", "\1" or "\14" (if you want things even +" darker). If you do use the "\14" replacement, then it looks +" like your monitor in a fog bank. :) + +" your pick: +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="midnight2" + +hi Normal guifg=slategray3 guibg=#000029 ctermfg=14 + +"Toggle semicolon matching at the end of lines +nmap ; :call ToggleSemicolonHighlighting() +"{{{ +function! ToggleSemicolonHighlighting() + if exists("b:semicolon") + unlet b:semicolon + hi semicolon guifg=NONE gui=NONE ctermfg=NONE + else + syn match semicolon #;$# + hi semicolon guifg=red3 gui=bold ctermfg=1 + let b:semicolon = 1 + endif +endfunction +"}}} + +hi Cursor guibg=fg guifg=bg ctermfg=0 ctermbg=11 +"hi CursorIM +hi Directory gui=bold +hi DiffAdd guibg=slategray4 ctermbg=0 +hi DiffChange guibg=steelblue3 guifg=bg gui=NONE +hi DiffDelete guibg=slategray4 guifg=slategray3 +hi DiffText guibg=steelblue4 gui=bold +hi ErrorMsg guibg=red3 ctermfg=1 +"hi VertSplit +hi Folded guibg=#00001a guifg=yellow3 ctermbg=4 ctermfg=11 gui=NONE +hi FoldColumn guibg=steelblue3 ctermbg=14 guifg=navyblue ctermfg=11 gui=bold +"hi SignColumn +"hi IncSearch +hi LineNr guifg=yellow3 ctermfg=3 +hi MatchParen guibg=navyblue gui=italic +hi ModeMsg guifg=yellow3 gui=bold ctermfg=3 +"hi MoreMsg( ) +"hi NonText +hi Pmenu guibg=steelblue3 guifg=bg ctermfg=7 ctermbg=4 cterm=bold +hi PmenuSel guibg=fg guifg=bg gui=bold ctermfg=4 ctermbg=7 cterm=bold +hi link PmenuSbar Pmenu +"hi PmenuThumb +"hi Question +hi Search guibg=yellow3 guifg=bg +"hi SpecialKey +"hi SpellBad +"hi SpellCap +"hi SpellLocal +"hi SpellRare +hi StatusLine guifg=steelblue3 +hi StatusLineNC guifg=steelblue4 +"hi TabLine +"hi TabLineFill +"hi TabLineSel +"hi Title +hi Visual guifg=bg guibg=fg +"hi VisualNOS +"hi WarningMsg +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=chartreuse3 ctermfg=10 +hi Constant guifg=plum3 gui=bold ctermfg=13 +hi String guifg=indianred3 ctermfg=5 +hi Character guifg=mediumpurple3 ctermfg=5 +hi Number guifg=turquoise3 ctermfg=5 +"hi Identifier +hi Statement guifg=khaki3 gui=bold ctermfg=15 cterm=underline +hi PreProc guifg=firebrick3 gui=italic ctermfg=9 +hi Type guifg=gold3 gui=bold ctermfg=3 +hi Special guifg=orange ctermfg=208 +hi Underlined ctermfg=white cterm=underline +"hi Ignore +"hi Error +hi Todo guifg=yellow3 guibg=blue3 gui=bold ctermfg=3 diff --git a/vim/colors/midnight2.vim b/vim/colors/midnight2.vim new file mode 100644 index 0000000..643b988 --- /dev/null +++ b/vim/colors/midnight2.vim @@ -0,0 +1,102 @@ +" Vim color file +" Maintainer: Michael Brailsford +" Date: $Date: 2002/11/25 20:25:54 $ +" Version: $Revision: 1.1 $ +" Inspiration: This colorscheme was inspired by midnight.vim. It is a darker +" version of it. With some colors tweaked. +" +" Thanks: Thanks go to Hans Fugal for creating the colorscheme template. +" Without it I would have been lost creating the original midnight.vim +" Thanks to Mark Lodato for providing vim7 updates. +" +" Note: If you do not like the dark look of the colorscheme, you can +" easily lighten things up with the following line: +" :%s/\(\w\)3/\12/g +" It is easily pasteable into the command line. you can also +" change "\12" to "\11", "\1" or "\14" (if you want things even +" darker). If you do use the "\14" replacement, then it looks +" like your monitor in a fog bank. :) + +" your pick: +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="midnight2" + +hi Normal guifg=slategray3 guibg=#000029 ctermfg=14 + +"Toggle semicolon matching at the end of lines +nmap ; :call ToggleSemicolonHighlighting() +"{{{ +function! ToggleSemicolonHighlighting() + if exists("b:semicolon") + unlet b:semicolon + hi semicolon guifg=NONE gui=NONE ctermfg=NONE + else + syn match semicolon #;$# + hi semicolon guifg=red3 gui=bold ctermfg=1 + let b:semicolon = 1 + endif +endfunction +"}}} + +hi Cursor guibg=fg guifg=bg ctermfg=0 ctermbg=11 +"hi CursorIM +hi Directory gui=bold +hi DiffAdd guibg=slategray4 ctermbg=0 +hi DiffChange guibg=steelblue3 guifg=bg gui=NONE +hi DiffDelete guibg=slategray4 guifg=slategray3 +hi DiffText guibg=steelblue4 gui=bold +hi ErrorMsg guibg=red3 ctermfg=1 +"hi VertSplit +hi Folded guibg=#00001a guifg=yellow3 ctermbg=4 ctermfg=11 gui=NONE +hi FoldColumn guibg=steelblue3 ctermbg=14 guifg=navyblue ctermfg=11 gui=bold +"hi SignColumn +"hi IncSearch +hi LineNr guifg=yellow3 ctermfg=3 +hi MatchParen guibg=navyblue gui=italic +hi ModeMsg guifg=yellow3 gui=bold ctermfg=3 +"hi MoreMsg( ) +"hi NonText +hi Pmenu guibg=steelblue3 guifg=bg ctermfg=7 ctermbg=4 cterm=bold +hi PmenuSel guibg=fg guifg=bg gui=bold ctermfg=4 ctermbg=7 cterm=bold +hi link PmenuSbar Pmenu +"hi PmenuThumb +"hi Question +hi Search guibg=yellow3 guifg=bg +"hi SpecialKey +"hi SpellBad +"hi SpellCap +"hi SpellLocal +"hi SpellRare +hi StatusLine guifg=steelblue3 +hi StatusLineNC guifg=steelblue4 +"hi TabLine +"hi TabLineFill +"hi TabLineSel +"hi Title +hi Visual guifg=bg guibg=fg +"hi VisualNOS +"hi WarningMsg +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=chartreuse3 ctermfg=10 +hi Constant guifg=plum3 gui=bold ctermfg=13 +hi String guifg=indianred3 ctermfg=5 +hi Character guifg=mediumpurple3 ctermfg=5 +hi Number guifg=turquoise3 ctermfg=5 +"hi Identifier +hi Statement guifg=khaki3 gui=bold ctermfg=15 cterm=underline +hi PreProc guifg=firebrick3 gui=italic ctermfg=9 +hi Type guifg=gold3 gui=bold ctermfg=3 +hi Special guifg=orange ctermfg=208 +hi Underlined ctermfg=white cterm=underline +"hi Ignore +"hi Error +hi Todo guifg=yellow3 guibg=blue3 gui=bold ctermfg=3 diff --git a/vim/colors/mod_tcsoft.vim b/vim/colors/mod_tcsoft.vim new file mode 100644 index 0000000..b36dab2 --- /dev/null +++ b/vim/colors/mod_tcsoft.vim @@ -0,0 +1,68 @@ +"mod_tcsoft is based on the tcsoft-color scheme +"(http://www.vim.org/scripts/script.php?script_id=641), made by Ingo Fabbri +" +" +"I changed the cursor and the background-colors. Hope you like it. + +" Author: André Kelpe +" Last Change: Jan 13 10:33:46 CET 2005 +" + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "mod_tcsoft" + +hi Normal guifg=#000000 guibg=floralwhite +hi Ignore guifg=bg +hi Comment guifg=#1050ff gui=italic +hi Folded guifg=black guibg=#d1cdc5 +hi FoldColumn guifg=black guibg=#d1cdc5 +hi Constant guifg=#666666 gui=NONE "grau +hi Special guifg=#FF0000 gui=NONE "rot +hi Identifier guifg=#993300 gui=NONE "rostfarbig +hi Statement guifg=#FF9900 gui=NONE "orange +hi PreProc guifg=#009900 gui=NONE "dunkelgrün +hi Type guifg=#FF9900 gui=bold "orange +hi Cursor guifg=#FFFFFF guibg=#000000 "schwarz +hi LineNr guifg=#000000 gui=NONE "schwarz +hi StatusLine guifg=#000000 gui=reverse,bold "schwarz +hi Title guifg=#1050ff gui=bold +hi Todo guibg=#1050ff guifg=floralwhite gui=bold +hi Search guifg=white guibg=#1050ff + + +hi link Function PreProc +hi link String Constant +hi link Character Constant + +hi! link MoreMsg Comment +hi! link ErrorMsg Visual +hi! link WarningMsg ErrorMsg +hi! link Question Comment + +hi link Number Special +hi link Boolean Constant +hi link Float Number + +hi link Operator Identifier +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc + +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement + +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Comment +hi link Debug Special diff --git a/vim/colors/molokai.vim b/vim/colors/molokai.vim new file mode 100644 index 0000000..985e333 --- /dev/null +++ b/vim/colors/molokai.vim @@ -0,0 +1,211 @@ +" Vim color file +" +" Author: Tomas Restrepo +" +" Note: Based on the monokai theme for textmate +" by Wimer Hazenberg and its darker variant +" by Hamish Stuart Macpherson +" + +hi clear + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="molokai" + +if exists("g:molokai_original") + let s:molokai_original = g:molokai_original +else + let s:molokai_original = 0 +endif + + +hi Boolean guifg=#AE81FF +hi Character guifg=#E6DB74 +hi Number guifg=#AE81FF +hi String guifg=#E6DB74 +hi Conditional guifg=#F92672 gui=bold +hi Constant guifg=#AE81FF gui=bold +hi Cursor guifg=#000000 guibg=#F8F8F0 +hi Debug guifg=#BCA3A3 gui=bold +hi Define guifg=#66D9EF +hi Delimiter guifg=#8F8F8F +hi DiffAdd guibg=#13354A +hi DiffChange guifg=#89807D guibg=#4C4745 +hi DiffDelete guifg=#960050 guibg=#1E0010 +hi DiffText guibg=#4C4745 gui=italic,bold + +hi Directory guifg=#A6E22E gui=bold +hi Error guifg=#960050 guibg=#1E0010 +hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold +hi Exception guifg=#A6E22E gui=bold +hi Float guifg=#AE81FF +hi FoldColumn guifg=#465457 guibg=#000000 +hi Folded guifg=#465457 guibg=#000000 +hi Function guifg=#A6E22E +hi Identifier guifg=#FD971F +hi Ignore guifg=#808080 guibg=bg +hi IncSearch guifg=#C4BE89 guibg=#000000 + +hi Keyword guifg=#F92672 gui=bold +hi Label guifg=#E6DB74 gui=none +hi Macro guifg=#C4BE89 gui=italic +hi SpecialKey guifg=#66D9EF gui=italic + +hi MatchParen guifg=#000000 guibg=#FD971F gui=bold +hi ModeMsg guifg=#E6DB74 +hi MoreMsg guifg=#E6DB74 +hi Operator guifg=#F92672 + +" complete menu +hi Pmenu guifg=#66D9EF guibg=#000000 +hi PmenuSel guibg=#808080 +hi PmenuSbar guibg=#080808 +hi PmenuThumb guifg=#66D9EF + +hi PreCondit guifg=#A6E22E gui=bold +hi PreProc guifg=#A6E22E +hi Question guifg=#66D9EF +hi Repeat guifg=#F92672 gui=bold +hi Search guifg=#FFFFFF guibg=#455354 +" marks column +hi SignColumn guifg=#A6E22E guibg=#232526 +hi SpecialChar guifg=#F92672 gui=bold +hi SpecialComment guifg=#465457 gui=bold +hi Special guifg=#66D9EF guibg=bg gui=italic +hi SpecialKey guifg=#888A85 gui=italic +if has("spell") + hi SpellBad guisp=#FF0000 gui=undercurl + hi SpellCap guisp=#7070F0 gui=undercurl + hi SpellLocal guisp=#70F0F0 gui=undercurl + hi SpellRare guisp=#FFFFFF gui=undercurl +endif +hi Statement guifg=#F92672 gui=bold +hi StatusLine guifg=#455354 guibg=fg +hi StatusLineNC guifg=#808080 guibg=#080808 +hi StorageClass guifg=#FD971F gui=italic +hi Structure guifg=#66D9EF +hi Tag guifg=#F92672 gui=italic +hi Title guifg=#ef5939 +hi Todo guifg=#FFFFFF guibg=bg gui=bold + +hi Typedef guifg=#66D9EF +hi Type guifg=#66D9EF gui=none +hi Underlined guifg=#808080 gui=underline + +hi VertSplit guifg=#808080 guibg=#080808 gui=bold +hi VisualNOS guibg=#403D3D +hi Visual guibg=#403D3D +hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold +hi WildMenu guifg=#66D9EF guibg=#000000 + +if s:molokai_original == 1 + hi Normal guifg=#F8F8F2 guibg=#272822 + hi Comment guifg=#75715E + hi CursorLine guibg=#3E3D32 + hi CursorColumn guibg=#3E3D32 + hi LineNr guifg=#BCBCBC guibg=#3B3A32 + hi NonText guifg=#BCBCBC guibg=#3B3A32 +else + hi Normal guifg=#F8F8F2 guibg=#1B1D1E + hi Comment guifg=#465457 + hi CursorLine guibg=#293739 + hi CursorColumn guibg=#293739 + hi LineNr guifg=#BCBCBC guibg=#232526 + hi NonText guifg=#BCBCBC guibg=#232526 +end + +" +" Support for 256-color terminal +" +if &t_Co > 255 + hi Boolean ctermfg=135 + hi Character ctermfg=144 + hi Number ctermfg=135 + hi String ctermfg=144 + hi Conditional ctermfg=161 cterm=bold + hi Constant ctermfg=135 cterm=bold + hi Cursor ctermfg=16 ctermbg=253 + hi Debug ctermfg=225 cterm=bold + hi Define ctermfg=81 + hi Delimiter ctermfg=241 + + hi DiffAdd ctermbg=24 + hi DiffChange ctermfg=181 ctermbg=239 + hi DiffDelete ctermfg=162 ctermbg=53 + hi DiffText ctermbg=102 cterm=bold + + hi Directory ctermfg=118 cterm=bold + hi Error ctermfg=219 ctermbg=89 + hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold + hi Exception ctermfg=118 cterm=bold + hi Float ctermfg=135 + hi FoldColumn ctermfg=67 ctermbg=16 + hi Folded ctermfg=67 ctermbg=16 + hi Function ctermfg=118 + hi Identifier ctermfg=208 cterm=none + hi Ignore ctermfg=244 ctermbg=232 + hi IncSearch ctermfg=193 ctermbg=16 + + hi Keyword ctermfg=161 cterm=bold + hi Label ctermfg=229 cterm=none + hi Macro ctermfg=193 + hi SpecialKey ctermfg=81 + + hi MatchParen ctermfg=16 ctermbg=208 cterm=bold + hi ModeMsg ctermfg=229 + hi MoreMsg ctermfg=229 + hi Operator ctermfg=161 + + " complete menu + hi Pmenu ctermfg=81 ctermbg=16 + hi PmenuSel ctermbg=244 + hi PmenuSbar ctermbg=232 + hi PmenuThumb ctermfg=81 + + hi PreCondit ctermfg=118 cterm=bold + hi PreProc ctermfg=118 + hi Question ctermfg=81 + hi Repeat ctermfg=161 cterm=bold + hi Search ctermfg=253 ctermbg=66 + + " marks column + hi SignColumn ctermfg=118 ctermbg=235 + hi SpecialChar ctermfg=161 cterm=bold + hi SpecialComment ctermfg=245 cterm=bold + hi Special ctermfg=81 ctermbg=232 + hi SpecialKey ctermfg=245 + + hi Statement ctermfg=161 cterm=bold + hi StatusLine ctermfg=238 ctermbg=253 + hi StatusLineNC ctermfg=244 ctermbg=232 + hi StorageClass ctermfg=208 + hi Structure ctermfg=81 + hi Tag ctermfg=161 + hi Title ctermfg=166 + hi Todo ctermfg=231 ctermbg=232 cterm=bold + + hi Typedef ctermfg=81 + hi Type ctermfg=81 cterm=none + hi Underlined ctermfg=244 cterm=underline + + hi VertSplit ctermfg=244 ctermbg=232 cterm=bold + hi VisualNOS ctermbg=238 + hi Visual ctermbg=235 + hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold + hi WildMenu ctermfg=81 ctermbg=16 + + hi Normal ctermfg=252 ctermbg=233 + hi Comment ctermfg=59 + hi CursorLine ctermbg=234 cterm=none + hi CursorColumn ctermbg=234 + hi LineNr ctermfg=250 ctermbg=234 + hi NonText ctermfg=250 ctermbg=234 +end diff --git a/vim/colors/moria.vim b/vim/colors/moria.vim new file mode 100644 index 0000000..6562cb7 --- /dev/null +++ b/vim/colors/moria.vim @@ -0,0 +1,247 @@ +if exists("g:moria_style") + let s:moria_style = g:moria_style +else + let s:moria_style = &background +endif + +if exists("g:moria_monochrome") + let s:moria_monochrome = g:moria_monochrome +else + let s:moria_monochrome = 0 +endif + +if exists("g:moria_fontface") + let s:moria_fontface = g:moria_fontface +else + let s:moria_fontface = "plain" +endif + +execute "command! -nargs=1 Colo let g:moria_style = \"\" | colo moria" + +if s:moria_style == "black" || s:moria_style == "dark" + set background=dark +elseif s:moria_style == "light" || s:moria_style == "white" + set background=light +else + let s:moria_style = &background +endif + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "moria" + +if &background == "dark" + if s:moria_style == "dark" + hi Normal ctermbg=Black ctermfg=LightGray guibg=#202020 guifg=#d0d0d0 gui=none + + hi CursorColumn ctermbg=DarkGray ctermfg=White guibg=#404040 gui=none + hi CursorLine ctermbg=DarkGray ctermfg=White guibg=#404040 gui=none + elseif s:moria_style == "black" + hi Normal ctermbg=Black ctermfg=LightGray guibg=#000000 guifg=#d0d0d0 gui=none + + hi CursorColumn ctermbg=DarkGray ctermfg=White guibg=#3a3a3a gui=none + hi CursorLine ctermbg=DarkGray ctermfg=White guibg=#3a3a3a gui=none + endif + if s:moria_monochrome == 1 + hi FoldColumn ctermbg=bg guibg=bg guifg=#a0a0a0 gui=none + hi LineNr guifg=#a0a0a0 gui=none + hi MoreMsg guibg=bg guifg=#b6b6b6 gui=bold + hi NonText ctermfg=DarkGray guibg=bg guifg=#a0a0a0 gui=bold + hi Pmenu guibg=#909090 guifg=#000000 gui=none + hi PmenuSbar guibg=#707070 guifg=fg gui=none + hi PmenuThumb guibg=#d0d0d0 guifg=bg gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#a0a0a0 gui=none + hi StatusLine ctermbg=LightGray ctermfg=Black guibg=#4c4c4c guifg=fg gui=bold + hi StatusLineNC ctermbg=DarkGray ctermfg=Black guibg=#404040 guifg=fg gui=none + hi TabLine guibg=#6e6e6e guifg=fg gui=underline + hi TabLineFill guibg=#6e6e6e guifg=fg gui=underline + hi VertSplit ctermbg=LightGray ctermfg=Black guibg=#404040 guifg=fg gui=none + if s:moria_fontface == "mixed" + hi Folded guibg=#4e4e4e guifg=#c0c0c0 gui=bold + else + hi Folded guibg=#4e4e4e guifg=#c0c0c0 gui=none + endif + else + hi FoldColumn ctermbg=bg guibg=bg guifg=#8fa5d1 gui=none + hi LineNr guifg=#8fa5d1 gui=none + hi MoreMsg guibg=bg guifg=#97abd5 gui=bold + hi NonText ctermfg=DarkGray guibg=bg guifg=#8fa5d1 gui=bold + hi Pmenu guibg=#6381be guifg=#000000 gui=none + hi PmenuSbar guibg=#41609e guifg=fg gui=none + hi PmenuThumb guibg=#bdcae3 guifg=bg gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#8fa5d1 gui=none + hi StatusLine ctermbg=LightGray ctermfg=Black guibg=#334b7d guifg=fg gui=bold + hi StatusLineNC ctermbg=DarkGray ctermfg=Black guibg=#25365a guifg=fg gui=none + hi TabLine guibg=#41609e guifg=fg gui=underline + hi TabLineFill guibg=#41609e guifg=fg gui=underline + hi VertSplit ctermbg=LightGray ctermfg=Black guibg=#25365a guifg=fg gui=none + if s:moria_fontface == "mixed" + hi Folded guibg=#4e4e4e guifg=#bdcae3 gui=bold + else + hi Folded guibg=#4e4e4e guifg=#bdcae3 gui=none + endif + endif + hi Cursor guibg=#ffa500 guifg=bg gui=none + hi DiffAdd guibg=#008b00 guifg=fg gui=none + hi DiffChange guibg=#00008b guifg=fg gui=none + hi DiffDelete guibg=#8b0000 guifg=fg gui=none + hi DiffText guibg=#0000cd guifg=fg gui=bold + hi Directory guibg=bg guifg=#1e90ff gui=none + hi ErrorMsg guibg=#ee2c2c guifg=#ffffff gui=bold + hi IncSearch guibg=#e0cd78 guifg=#000000 gui=none + hi ModeMsg guibg=bg guifg=fg gui=bold + hi PmenuSel guibg=#e0e000 guifg=#000000 gui=none + hi Question guibg=bg guifg=#e8b87e gui=bold + hi Search guibg=#90e090 guifg=#000000 gui=none + hi SpecialKey guibg=bg guifg=#e8b87e gui=none + if has("spell") + hi SpellBad guisp=#ee2c2c gui=undercurl + hi SpellCap guisp=#2c2cee gui=undercurl + hi SpellLocal guisp=#2ceeee gui=undercurl + hi SpellRare guisp=#ee2cee gui=undercurl + endif + hi TabLineSel guibg=bg guifg=fg gui=bold + hi Title ctermbg=Black ctermfg=White guifg=fg gui=bold + if version >= 700 + hi Visual ctermbg=LightGray ctermfg=Black guibg=#606060 gui=none + else + hi Visual ctermbg=LightGray ctermfg=Black guibg=#606060 guifg=fg gui=none + endif + hi VisualNOS ctermbg=DarkGray ctermfg=Black guibg=bg guifg=#a0a0a0 gui=bold,underline + hi WarningMsg guibg=bg guifg=#ee2c2c gui=bold + hi WildMenu guibg=#e0e000 guifg=#000000 gui=bold + + hi Comment guibg=bg guifg=#d0d0a0 gui=none + hi Constant guibg=bg guifg=#87df71 gui=none + hi Error guibg=bg guifg=#ee2c2c gui=none + hi Identifier guibg=bg guifg=#7ee0ce gui=none + hi Ignore guibg=bg guifg=bg gui=none + hi lCursor guibg=#00e700 guifg=#000000 gui=none + hi MatchParen guibg=#008b8b gui=none + hi PreProc guibg=bg guifg=#d7a0d7 gui=none + hi Special guibg=bg guifg=#e8b87e gui=none + hi Todo guibg=#e0e000 guifg=#000000 gui=none + hi Underlined ctermbg=Black ctermfg=White guibg=bg guifg=#00a0ff gui=underline + + if s:moria_fontface == "mixed" + hi Statement guibg=bg guifg=#7ec0ee gui=bold + hi Type guibg=bg guifg=#f09479 gui=bold + else + hi Statement guibg=bg guifg=#7ec0ee gui=none + hi Type guibg=bg guifg=#f09479 gui=none + endif + + hi htmlBold ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=bold + hi htmlBoldItalic ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=bold,italic + hi htmlBoldUnderline ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=bold,underline + hi htmlBoldUnderlineItalic ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=bold,underline,italic + hi htmlItalic ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=italic + hi htmlUnderline ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=underline + hi htmlUnderlineItalic ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=underline,italic +elseif &background == "light" + if s:moria_style == "light" + hi Normal ctermbg=White ctermfg=Black guibg=#f0f0f0 guifg=#000000 gui=none + + hi CursorColumn ctermbg=LightGray ctermfg=Black guibg=#d8d8d8 gui=none + hi CursorLine ctermbg=LightGray ctermfg=Black guibg=#d8d8d8 gui=none + elseif s:moria_style == "white" + hi Normal ctermbg=White ctermfg=Black guibg=#ffffff guifg=#000000 gui=none + + hi CursorColumn ctermbg=LightGray ctermfg=Black guibg=#dfdfdf gui=none + hi CursorLine ctermbg=LightGray ctermfg=Black guibg=#dfdfdf gui=none + endif + if s:moria_monochrome == 1 + hi FoldColumn ctermbg=bg guibg=bg guifg=#7a7a7a gui=none + hi Folded guibg=#cfcfcf guifg=#404040 gui=bold + hi LineNr guifg=#7a7a7a gui=none + hi MoreMsg guibg=bg guifg=#505050 gui=bold + hi NonText ctermfg=DarkGray guibg=bg guifg=#7a7a7a gui=bold + hi Pmenu guibg=#9a9a9a guifg=#000000 gui=none + hi PmenuSbar guibg=#808080 guifg=fg gui=none + hi PmenuThumb guibg=#c0c0c0 guifg=fg gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#7a7a7a gui=none + hi StatusLine ctermbg=Black ctermfg=White guibg=#a0a0a0 guifg=fg gui=bold + hi StatusLineNC ctermbg=LightGray ctermfg=Black guibg=#b0b0b0 guifg=fg gui=none + hi TabLine guibg=#cdcdcd guifg=fg gui=underline + hi TabLineFill guibg=#cdcdcd guifg=fg gui=underline + hi VertSplit ctermbg=LightGray ctermfg=Black guibg=#b0b0b0 guifg=fg gui=none + else + hi FoldColumn ctermbg=bg guibg=bg guifg=#375288 gui=none + hi Folded guibg=#cfcfcf guifg=#25365a gui=bold + hi LineNr guifg=#375288 gui=none + hi MoreMsg guibg=bg guifg=#2f4471 gui=bold + hi NonText ctermfg=DarkGray guibg=bg guifg=#375288 gui=bold + hi Pmenu guibg=#708bc5 guifg=#000000 gui=none + hi PmenuSbar guibg=#4a6db5 guifg=fg gui=none + hi PmenuThumb guibg=#a6b7db guifg=fg gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#375288 gui=none + hi StatusLine ctermbg=Black ctermfg=White guibg=#8fa5d1 guifg=fg gui=bold + hi StatusLineNC ctermbg=LightGray ctermfg=Black guibg=#a6b7db guifg=fg gui=none + hi TabLine guibg=#b8c6e2 guifg=fg gui=underline + hi TabLineFill guibg=#b8c6e2 guifg=fg gui=underline + hi VertSplit ctermbg=LightGray ctermfg=Black guibg=#a6b7db guifg=fg gui=none + endif + hi Cursor guibg=#883400 guifg=bg gui=none + hi DiffAdd guibg=#008b00 guifg=#ffffff gui=none + hi DiffChange guibg=#00008b guifg=#ffffff gui=none + hi DiffDelete guibg=#8b0000 guifg=#ffffff gui=none + hi DiffText guibg=#0000cd guifg=#ffffff gui=bold + hi Directory guibg=bg guifg=#0000f0 gui=none + hi ErrorMsg guibg=#ee2c2c guifg=#ffffff gui=bold + hi IncSearch guibg=#ffcd78 gui=none + hi ModeMsg ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=bold + hi PmenuSel guibg=#ffff00 guifg=#000000 gui=none + hi Question guibg=bg guifg=#813f11 gui=bold + hi Search guibg=#a0f0a0 gui=none + hi SpecialKey guibg=bg guifg=#912f11 gui=none + if has("spell") + hi SpellBad guisp=#ee2c2c gui=undercurl + hi SpellCap guisp=#2c2cee gui=undercurl + hi SpellLocal guisp=#008b8b gui=undercurl + hi SpellRare guisp=#ee2cee gui=undercurl + endif + hi TabLineSel guibg=bg guifg=fg gui=bold + hi Title guifg=fg gui=bold + if version >= 700 + hi Visual ctermbg=LightGray ctermfg=Black guibg=#c4c4c4 gui=none + else + hi Visual ctermbg=LightGray ctermfg=Black guibg=#c4c4c4 guifg=fg gui=none + endif + hi VisualNOS ctermbg=DarkGray ctermfg=Black guibg=bg guifg=#a0a0a0 gui=bold,underline + hi WarningMsg guibg=bg guifg=#ee2c2c gui=bold + hi WildMenu guibg=#ffff00 guifg=fg gui=bold + + hi Comment guibg=bg guifg=#786000 gui=none + hi Constant guibg=bg guifg=#077807 gui=none + hi Error guibg=bg guifg=#ee2c2c gui=none + hi Identifier guibg=bg guifg=#007080 gui=none + hi Ignore guibg=bg guifg=bg gui=none + hi lCursor guibg=#008000 guifg=#ffffff gui=none + hi MatchParen guibg=#00ffff gui=none + hi PreProc guibg=bg guifg=#800090 gui=none + hi Special guibg=bg guifg=#912f11 gui=none + hi Statement guibg=bg guifg=#1f3f81 gui=bold + hi Todo guibg=#ffff00 guifg=fg gui=none + hi Type guibg=bg guifg=#912f11 gui=bold + hi Underlined ctermbg=White ctermfg=Black guibg=bg guifg=#0000cd gui=underline + + hi htmlBold ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=bold + hi htmlBoldItalic ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=bold,italic + hi htmlBoldUnderline ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=bold,underline + hi htmlBoldUnderlineItalic ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=bold,underline,italic + hi htmlItalic ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=italic + hi htmlUnderline ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=underline + hi htmlUnderlineItalic ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=underline,italic +endif + +hi! default link bbcodeBold htmlBold +hi! default link bbcodeBoldItalic htmlBoldItalic +hi! default link bbcodeBoldItalicUnderline htmlBoldUnderlineItalic +hi! default link bbcodeBoldUnderline htmlBoldUnderline +hi! default link bbcodeItalic htmlItalic +hi! default link bbcodeItalicUnderline htmlUnderlineItalic +hi! default link bbcodeUnderline htmlUnderline diff --git a/vim/colors/motus.vim b/vim/colors/motus.vim new file mode 100644 index 0000000..5efcc2b --- /dev/null +++ b/vim/colors/motus.vim @@ -0,0 +1,66 @@ +" Vim color file +" Dark (grey on black) color scheme based on on a popular torte config. +" Maintainer: Sergei Matusevich +" ICQ: 31114346 Yahoo: motus2 +" http://motus.kiev.ua/motus2/Files/motus.vim +" Last Change: 3 November 2005 +" Orinal torte screme maintainer: Thorsten Maerz +" Licence: Public Domain + +" INSTALLATION: copy this file to ~/.vim/colors/ directory +" and add "colorscheme motus" to your ~/.vimrc file + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "motus" + +" hardcoded colors : +" GUI Comment : #80a0ff = Light blue + +" GUI +highlight Normal guifg=Grey80 guibg=Black +highlight Search guifg=Grey guibg=DarkBlue +highlight Visual guifg=Black guibg=DarkGrey gui=NONE +" highlight Cursor guifg=Black guibg=Green gui=bold +highlight Special guifg=Orange +highlight Comment guifg=#80a0ff +highlight Statement guifg=Yellow gui=NONE +highlight Type gui=NONE + +highlight VertSplit gui=bold guifg=Grey25 guibg=Black +highlight StatusLine gui=bold guifg=White guibg=Grey25 +highlight StatusLineNC gui=NONE guifg=LightGrey guibg=Grey25 + +highlight FoldColumn gui=bold guifg=White guibg=Black + +" Console +highlight Normal ctermfg=LightGrey ctermbg=Black +highlight Search ctermfg=Grey ctermbg=DarkBlue cterm=NONE +highlight Visual cterm=reverse +" highlight Cursor ctermfg=Black ctermbg=Green cterm=bold +highlight Special ctermfg=Brown +highlight Comment ctermfg=Blue +highlight Statement ctermfg=Yellow cterm=NONE +highlight Type cterm=NONE + +highlight VertSplit ctermfg=DarkGrey ctermbg=Black cterm=bold +highlight StatusLine ctermfg=White ctermbg=Grey cterm=bold +highlight StatusLineNC ctermfg=Black ctermbg=Grey cterm=NONE + +highlight FoldColumn ctermbg=Black ctermfg=White cterm=bold + +" only for vim 5 +if has("unix") + if v:version<600 + highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE + highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold + highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=Grey25 gui=bold + highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue gui=NONE + highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue gui=NONE + endif +endif + diff --git a/vim/colors/navajo-night.vim b/vim/colors/navajo-night.vim new file mode 100644 index 0000000..b100c0a --- /dev/null +++ b/vim/colors/navajo-night.vim @@ -0,0 +1,119 @@ +" Vim colour file +" Maintainer: Matthew Hawkins +" Last Change: Mon, 22 Apr 2002 15:28:04 +1000 +" URI: http://mh.dropbear.id.au/vim/navajo-night.png +" +" This colour scheme uses a "navajo-black" background +" I have added colours for the statusbar and for spell checking +" as taken from Cream (http://cream.sf.net/) + + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "navajo-night" + +" This is the list of colour changes from Navajo that +" weren't a simple mathematical subtraction from 0xffffff +" DarkBlue -> #ffff74 +" DarkRed -> #74ffff +" DarkGreen -> #ff9bff +" DarkCyan -> #ff7474 +" DarkMagenta -> #74ff74 +" DarkYellow -> #7474ff +" DarkGray -> #565656 +" Blue -> Yellow +" Red -> Cyan +" Yellow -> Blue +" Gray -> #414141 +" Brown -> #5ad5d5 +" #ff8060 -> #007f9f +" #f6e8d0 -> #09172f +" #edb5cd -> #124a32 +" #c0c0c0 -> #3f3f3f +" #907050 -> #6f8faf +" #808080 -> #7f7f7f +" #707070 -> #8f8f8f +" SeaGreen -> #d174a8 +" LightRed (assuming #ee9090) -> #116f6f +" LightBlue -> #522719 + +hi Normal ctermfg=White guifg=White guibg=#35536f + +hi SpecialKey term=bold ctermfg=darkblue guifg=Yellow +hi NonText term=bold ctermfg=darkblue cterm=bold gui=bold guifg=#7f7f7f +hi Directory term=bold ctermfg=darkblue guifg=Yellow +hi ErrorMsg term=standout ctermfg=grey ctermbg=darkred cterm=bold gui=bold guifg=Black guibg=Cyan +hi IncSearch term=reverse cterm=reverse gui=reverse +hi Search term=reverse ctermbg=White ctermfg=Black cterm=reverse guibg=Black guifg=Yellow +hi MoreMsg term=bold ctermfg=green gui=bold guifg=#d174a8 +hi ModeMsg term=bold cterm=bold gui=bold +hi LineNr term=underline ctermfg=darkcyan ctermbg=grey guibg=#7f7f7f gui=bold guifg=White +hi Question term=standout ctermfg=darkgreen gui=bold guifg=#d174a8 +hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=Black guibg=White +hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=#116f6f guibg=#8f8f8f +hi VertSplit term=reverse cterm=reverse gui=bold guifg=Black guibg=#8f8f8f +hi Title term=bold ctermfg=green gui=bold guifg=#74ff74 +"+++ Cream: +"hi Visual term=reverse cterm=reverse gui=reverse guifg=#3f3f3f guibg=White +"+++ +hi VisualNOS term=bold,underline cterm=bold,underline gui=reverse guifg=#414141 guibg=Black +hi WarningMsg term=standout ctermfg=darkred gui=bold guifg=Cyan +hi WildMenu term=standout ctermfg=White ctermbg=darkyellow guifg=White guibg=Blue +hi Folded term=standout ctermfg=darkblue ctermbg=grey guifg=White guibg=NONE guifg=#afcfef +hi FoldColumn term=standout ctermfg=darkblue ctermbg=grey guifg=#ffff74 guibg=#3f3f3f +hi DiffAdd term=bold ctermbg=darkblue guibg=Black +hi DiffChange term=bold ctermbg=darkmagenta guibg=#124a32 +hi DiffDelete term=bold ctermfg=darkblue ctermbg=blue cterm=bold gui=bold guifg=#522719 guibg=#09172f +hi DiffText term=reverse ctermbg=darkblue cterm=bold gui=bold guibg=#007f9f +hi Cursor gui=reverse guifg=#bfbfef guibg=Black +hi lCursor guifg=fg guibg=bg +hi Match term=bold,reverse ctermbg=Blue ctermfg=Yellow cterm=bold,reverse gui=bold,reverse guifg=Blue guibg=Yellow + + +" Colours for syntax highlighting +hi Comment term=bold ctermfg=darkblue guifg=#e7e77f +hi Constant term=underline ctermfg=darkred guifg=#3fffa7 +hi Special term=bold ctermfg=darkgreen guifg=#bfbfef +hi Identifier term=underline ctermfg=darkcyan cterm=NONE guifg=#ef9f9f +hi Statement term=bold ctermfg=darkred cterm=bold gui=bold guifg=#5ad5d5 +hi PreProc term=underline ctermfg=darkmagenta guifg=#74ff74 +hi Type term=underline ctermfg=green gui=bold guifg=#d174a8 +hi Ignore ctermfg=grey cterm=bold guifg=bg + +hi Error term=reverse ctermfg=grey ctermbg=darkred cterm=bold gui=bold guifg=Black guibg=Cyan +hi Todo term=standout ctermfg=darkblue ctermbg=Blue guifg=Yellow guibg=Blue + +"+++ Cream: statusbar +" Colours for statusbar +"hi User1 gui=bold guifg=#565656 guibg=#0c0c0c +"hi User2 gui=bold guifg=White guibg=#0c0c0c +"hi User3 gui=bold guifg=Yellow guibg=#0c0c0c +"hi User4 gui=bold guifg=Cyan guibg=#0c0c0c +highlight User1 gui=bold guifg=#999933 guibg=#45637f +highlight User2 gui=bold guifg=#e7e77f guibg=#45637f +highlight User3 gui=bold guifg=Black guibg=#45637f +highlight User4 gui=bold guifg=#33cc99 guibg=#45637f +"+++ + +"+++ Cream: selection +highlight Visual gui=bold guifg=Black guibg=#aacc77 +"+++ + +"+++ Cream: bookmarks +highlight Cream_ShowMarksHL ctermfg=blue ctermbg=lightblue cterm=bold guifg=Black guibg=#aacc77 gui=bold +"+++ + +"+++ Cream: spell check +" Colour misspelt words +"hi BadWord ctermfg=White ctermbg=darkred cterm=bold guifg=Yellow guibg=#522719 gui=bold +" mathematically correct: +"highlight BadWord ctermfg=black ctermbg=lightblue gui=NONE guifg=White guibg=#003333 +" adjusted: +highlight BadWord ctermfg=black ctermbg=lightblue gui=NONE guifg=#ff9999 guibg=#003333 +"+++ + + diff --git a/vim/colors/navajo.vim b/vim/colors/navajo.vim new file mode 100644 index 0000000..e7eebe7 --- /dev/null +++ b/vim/colors/navajo.vim @@ -0,0 +1,65 @@ +" Vim color file +" Maintainer: R. Edward Ralston +" Last Change: 2002-01-24 09:56:48 +" URI: http://eralston.tripod.com/navajo.png +" +" This color scheme uses a "navajo-white" background +" + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "navajo" + +" looks good on Linux +"hi Normal ctermfg=Black guifg=Black guibg=#b39674 +"hi Normal ctermfg=Black guifg=Black guibg=NavajoWhite3 + +" slightly brighter for w32 +hi Normal ctermfg=Black guifg=Black guibg=#ba9c80 + +hi SpecialKey term=bold ctermfg=DarkBlue guifg=Blue +hi NonText term=bold ctermfg=DarkBlue cterm=bold gui=bold guifg=#808080 +hi Directory term=bold ctermfg=DarkBlue guifg=Blue +hi ErrorMsg term=standout ctermfg=Gray ctermbg=DarkRed cterm=bold gui=bold guifg=White guibg=Red +hi IncSearch term=reverse cterm=reverse gui=reverse +hi Search term=reverse ctermbg=Black ctermfg=White cterm=reverse guibg=White +hi MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi ModeMsg term=bold cterm=bold gui=bold +hi LineNr term=underline ctermfg=DarkCyan ctermbg=Gray guibg=#808080 gui=bold guifg=black +hi Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Black +hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=LightRed guibg=#707070 +hi VertSplit term=reverse cterm=reverse gui=bold guifg=White guibg=#707070 +hi Title term=bold ctermfg=DarkMagenta gui=bold guifg=DarkMagenta +hi Visual term=reverse cterm=reverse gui=reverse guifg=#c0c0c0 guibg=black +hi VisualNOS term=bold,underline cterm=bold,underline gui=reverse guifg=Grey guibg=white +hi WarningMsg term=standout ctermfg=DarkRed gui=bold guifg=Red +hi WildMenu term=standout ctermfg=Black ctermbg=DarkYellow guifg=Black guibg=Yellow +hi Folded term=standout ctermfg=DarkBlue ctermbg=Gray guifg=Black guibg=NONE guifg=#907050 +hi FoldColumn term=standout ctermfg=DarkBlue ctermbg=Gray guifg=DarkBlue guibg=#c0c0c0 +hi DiffAdd term=bold ctermbg=DarkBlue guibg=White +hi DiffChange term=bold ctermbg=DarkMagenta guibg=#edb5cd +hi DiffDelete term=bold ctermfg=DarkBlue ctermbg=6 cterm=bold gui=bold guifg=LightBlue guibg=#f6e8d0 +hi DiffText term=reverse ctermbg=DarkRed cterm=bold gui=bold guibg=#ff8060 +hi Cursor gui=reverse guifg=#404010 guibg=white +hi lCursor guifg=bg guibg=fg +hi Match term=bold,reverse ctermbg=Yellow ctermfg=Blue cterm=bold,reverse gui=bold,reverse guifg=yellow guibg=blue + + +" Colors for syntax highlighting +hi Comment term=bold ctermfg=DarkBlue guifg=#181880 +hi Constant term=underline ctermfg=DarkRed guifg=#c00058 +hi Special term=bold ctermfg=DarkMagenta guifg=#404010 +hi Identifier term=underline ctermfg=DarkCyan cterm=NONE guifg=#106060 +hi Statement term=bold ctermfg=DarkRed cterm=bold gui=bold guifg=Brown +hi PreProc term=underline ctermfg=DarkMagenta guifg=DarkMagenta +hi Type term=underline ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi Ignore ctermfg=Gray cterm=bold guifg=bg +hi Error term=reverse ctermfg=Gray ctermbg=DarkRed cterm=bold gui=bold guifg=White guibg=Red +hi Todo term=standout ctermfg=DarkBlue ctermbg=Yellow guifg=Blue guibg=Yellow + +" vim:set list et: diff --git a/vim/colors/nedit.vim b/vim/colors/nedit.vim new file mode 100644 index 0000000..652891f --- /dev/null +++ b/vim/colors/nedit.vim @@ -0,0 +1,26 @@ +" Vim color file +" Maintainer: Vladimir Vrzic +" Last Change: 28. june 2003. +" URL: http://galeb.etf.bg.ac.yu/~random/pub/vim/ + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="nedit" + +hi Normal guifg=Black guibg=grey90 + +hi Comment gui=italic guifg=gray20 guibg=NONE +hi Constant gui=NONE guifg=darkGreen guibg=NONE +hi Identifier gui=bold guifg=red guibg=NONE +hi Statement gui=bold guifg=black guibg=NONE +hi PreProc gui=NONE guifg=RoyalBlue4 guibg=NONE +hi Type gui=bold guifg=brown guibg=NONE +hi Special gui=NONE guifg=darkGreen guibg=NONE +"hi Underlined +"hi Ignore +"hi Error +"hi Todo + diff --git a/vim/colors/nedit2.vim b/vim/colors/nedit2.vim new file mode 100644 index 0000000..54811f0 --- /dev/null +++ b/vim/colors/nedit2.vim @@ -0,0 +1,29 @@ +" Vim color file based on nedit by Vladimir Vrzic +" Maintainer: KraL +" Last Change: Friday 13 february 2004. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="nedit2" + +hi Normal guifg=Black guibg=grey90 + +hi Cursor guifg=white guibg=black +hi CursorIM guifg=black guibg=black + +hi Comment gui=italic guifg=Purple guibg=NONE +hi Constant gui=NONE guifg=blue guibg=NONE +hi Identifier gui=bold guifg=red guibg=NONE +hi Statement gui=bold guifg=black guibg=NONE +hi PreProc gui=NONE guifg=RoyalBlue4 guibg=NONE +hi Type gui=bold guifg=brown guibg=NONE +hi String gui=NONE guifg=RoyalBlue guibg=NONE +hi Special gui=bold guifg=Magenta3 guibg=NONE +"hi Underlined +"hi Ignore +"hi Error gui=NONE guifg=Red guibg=Linen +"hi Todo + diff --git a/vim/colors/neon.vim b/vim/colors/neon.vim new file mode 100644 index 0000000..d0ba309 --- /dev/null +++ b/vim/colors/neon.vim @@ -0,0 +1,70 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/25 Fri 16:23. +" version: 1.2 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "neon" + +hi Normal guifg=#f0f0f0 guibg=#303030 + +" Search +hi IncSearch gui=UNDERLINE guifg=#80ffff guibg=#0060c0 +hi Search gui=NONE guifg=#ffffa8 guibg=#808000 +" hi Search gui=NONE guifg=#b0ffb0 guibg=#008000 + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi WarningMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi ModeMsg gui=BOLD guifg=#a0d0ff guibg=NONE +hi MoreMsg gui=BOLD guifg=#70ffc0 guibg=#8040ff +hi Question gui=BOLD guifg=#e8e800 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#c4c4c4 +hi StatusLineNC gui=NONE guifg=#707070 guibg=#c4c4c4 +hi VertSplit gui=NONE guifg=#707070 guibg=#c4c4c4 +hi WildMenu gui=NONE guifg=#000000 guibg=#ff80c0 + +" Diff +hi DiffText gui=NONE guifg=#ff78f0 guibg=#a02860 +hi DiffChange gui=NONE guifg=#e03870 guibg=#601830 +hi DiffDelete gui=NONE guifg=#a0d0ff guibg=#0020a0 +hi DiffAdd gui=NONE guifg=#a0d0ff guibg=#0020a0 + +" Cursor +hi Cursor gui=NONE guifg=#70ffc0 guibg=#8040ff +hi lCursor gui=NONE guifg=#ffffff guibg=#8800ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8800ff + +" Fold +hi Folded gui=NONE guifg=#40f0f0 guibg=#006090 +hi FoldColumn gui=NONE guifg=#40c0ff guibg=#404040 + +" Other +hi Directory gui=NONE guifg=#c8c8ff guibg=NONE +hi LineNr gui=NONE guifg=#707070 guibg=NONE +hi NonText gui=BOLD guifg=#d84070 guibg=#383838 +hi SpecialKey gui=BOLD guifg=#8888ff guibg=NONE +hi Title gui=BOLD guifg=fg guibg=NONE +hi Visual gui=NONE guifg=#b0ffb0 guibg=#008000 +hi VisualNOS gui=NONE guifg=#ffe8c8 guibg=#c06800 + +" Syntax group +hi Comment gui=NONE guifg=#c0c0c0 guibg=NONE +hi Constant gui=NONE guifg=#92d4ff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#8000ff +hi Identifier gui=NONE guifg=#40f8f8 guibg=NONE +hi Ignore gui=NONE guifg=bg guibg=NONE +hi PreProc gui=NONE guifg=#ffa8ff guibg=NONE +hi Special gui=NONE guifg=#ffc890 guibg=NONE +hi Statement gui=NONE guifg=#dcdc78 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ff80d0 guibg=NONE +hi Type gui=NONE guifg=#60f0a8 guibg=NONE +hi Underlined gui=UNDERLINE guifg=fg guibg=NONE diff --git a/vim/colors/neverness.vim b/vim/colors/neverness.vim new file mode 100644 index 0000000..d8ea5a0 --- /dev/null +++ b/vim/colors/neverness.vim @@ -0,0 +1,116 @@ +" NEVERNESS colour scheme +" Author: Yann GOLANSKI +" Version: 1.1 +" Last Change: 22 May 2006 +" url http://web.njit.edu/~kevin/rgb.txt.html + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = 'neverness' + +" Comments: grey +hi Comment ctermfg=DarkCyan ctermbg=black guifg=#848484 guibg=#000000 gui=none + +" Constants: SkyBlue +hi Boolean ctermfg=Cyan ctermbg=black guifg=#87ceeb guibg=#000000 gui=none +hi Character ctermfg=Cyan ctermbg=black guifg=#87ceeb guibg=#000000 gui=none +hi Constant ctermfg=Cyan ctermbg=black guifg=#87ceeb guibg=#000000 gui=none +hi Float ctermfg=Cyan ctermbg=black guifg=#87ceeb guibg=#000000 gui=none +hi Number ctermfg=Cyan ctermbg=black guifg=#87ceeb guibg=#000000 gui=none +hi String ctermfg=Cyan ctermbg=black guifg=#87ceeb guibg=#000000 gui=none + +" Identifier: SteelBlue1 +hi Identifier ctermfg=LightCyan ctermbg=black guifg=#63b8ff guibg=#000000 gui=none +hi Function ctermfg=LightCyan ctermbg=black guifg=#63b8ff guibg=#000000 gui=none + +" Statement: SteelBlue +hi Conditional ctermfg=DarkBlue ctermbg=black guifg=#4682b4 guibg=#000000 gui=bold +hi Exception ctermfg=DarkBlue ctermbg=black guifg=#4682b4 guibg=#000000 gui=bold +hi Keyword ctermfg=DarkBlue ctermbg=black guifg=#4682b4 guibg=#000000 gui=bold +hi Label ctermfg=DarkBlue ctermbg=black guifg=#4682b4 guibg=#000000 gui=bold +hi Operator ctermfg=DarkBlue ctermbg=black guifg=#4682b4 guibg=#000000 gui=bold +hi Repeat ctermfg=DarkBlue ctermbg=black guifg=#4682b4 guibg=#000000 gui=bold +hi Statement ctermfg=DarkBlue ctermbg=black guifg=#4682b4 guibg=#000000 gui=bold + +" PreProc: DarkOrchid1 +hi PreProc ctermfg=DarkGreen ctermbg=black guifg=#bf3eff guibg=#000000 gui=none +hi Include ctermfg=DarkGreen ctermbg=black guifg=#bf3eff guibg=#000000 gui=none +hi Define ctermfg=DarkGreen ctermbg=black guifg=#bf3eff guibg=#000000 gui=none +hi Macro ctermfg=DarkGreen ctermbg=black guifg=#bf3eff guibg=#000000 gui=none +hi PreCondit ctermfg=DarkGreen ctermbg=black guifg=#bf3eff guibg=#000000 gui=none + +" Type: orchid2 +hi Type ctermfg=DarkGreen ctermbg=black guifg=#ee7ae9 guibg=#000000 gui=bold +hi StorageClass ctermfg=DarkGreen ctermbg=black guifg=#ee7ae9 guibg=#000000 gui=bold +hi Structure ctermfg=DarkGreen ctermbg=black guifg=#ee7ae9 guibg=#000000 gui=bold +hi Typedef ctermfg=DarkGreen ctermbg=black guifg=#ee7ae9 guibg=#000000 gui=bold + +" Special: cyan2 +hi Special ctermfg=DarkGray ctermbg=black guifg=#00eeee guibg=#000000 gui=none +hi SpecialChar ctermfg=DarkGray ctermbg=black guifg=#00eeee guibg=#000000 gui=none +hi Tag ctermfg=DarkGray ctermbg=black guifg=#00eeee guibg=#000000 gui=none +hi SpecialComment ctermfg=DarkGray ctermbg=black guifg=#00eeee guibg=#000000 gui=none +hi Delimiter ctermfg=DarkGray ctermbg=black guifg=#00eeee guibg=#000000 gui=none +hi Debug ctermfg=DarkGray ctermbg=black guifg=#00eeee guibg=#000000 gui=none + +" Underline: NavajoWhite2 +hi Underlined ctermfg=LightGray ctermbg=black guifg=#eecfa1 guibg=#000000 gui=none + +" Ignore: black +hi Ignore ctermfg=LightGray ctermbg=black guifg=#ffffff guibg=#000000 gui=none + +" Error: red +hi Error ctermfg=LightGray ctermbg=black guifg=#ff0000 guibg=#232323 gui=bold + +" To do: SlateGray3 +hi Todo ctermfg=LightMagenta ctermbg=black guifg=#9fb6cd guibg=#232323 gui=none + +" Spelling... +hi SpellBad ctermfg=DarkRed ctermbg=black +hi SpellCap ctermfg=DarkBlue ctermbg=black +hi SpellRare ctermfg=DarkYellow ctermbg=black +hi SpellLocal ctermfg=DarkGreen ctermbg=black + +" "set cursorline" and "set cursorcolumn" options. +hi lCursor guifg=#43705a guibg=#e6fff3 gui=none +hi CursorColumn guibg=#222222 gui=none +hi CursorLine guibg=#222222 gui=none + +" Line number. +"hi LineNr ctermfg=DarkMagenta ctermbg=black guifg=#4682b4 guibg=#000000 gui=bold +hi LineNr ctermfg=DarkMagenta ctermbg=black guifg=#213d54 guibg=#000000 gui=none + +" Normal colour: just white thank you. +hi Normal guifg=#ffffff guibg=#000000 gui=none + +" Others: These are "highlight-groups" and "highlight-default" in help section. +hi Cursor guifg=#43705a guibg=#e6fff3 gui=none +hi DiffAdd guifg=#e6fff3 guibg=#43705a gui=bold +hi DiffChange guifg=#e6fff3 guibg=#43705a gui=none +hi DiffDelete guifg=#e6fff3 guibg=#43705a gui=none +hi DiffText guifg=#000000 guibg=#e6fff3 gui=bold +hi Directory guifg=#e6fff3 guibg=#000000 gui=none +hi ErrorMsg guifg=#e6fff3 guibg=#61a181 gui=bold +hi FoldColumn guifg=#9bcfb5 guibg=#43705a gui=bold +hi Folded guifg=#9bcfb5 guibg=#43705a gui=bold +hi IncSearch guifg=#1d3026 guibg=#61a181 gui=bold +hi ModeMsg guifg=#4EEE94 guibg=#000000 gui=bold +hi MoreMsg guifg=#4EEE94 guibg=#000000 gui=bold +hi NonText guifg=#c0c0c0 guibg=#000000 gui=bold +hi Question guifg=#9bcfb5 guibg=#000000 gui=bold +hi Search guifg=#1d3026 guibg=#61a181 gui=bold +hi SpecialKey guifg=#9bcfb5 guibg=#000000 gui=none +"hi StatusLine guifg=#e6fff3 guibg=#61a181 gui=bold +"hi StatusLineNC guifg=#1d3026 guibg=#61a181 gui=bold +hi StatusLine guifg=#4EEE94 guibg=#333333 gui=none +hi StatusLineNC guifg=#4EEE94 guibg=#222222 gui=none +hi Title guifg=#e6fff3 guibg=#1d3026 gui=bold +hi VertSplit guifg=#61a181 guibg=#61a181 gui=none +hi Visual guifg=#e6fff3 guibg=#61a181 gui=none +hi VisualNOS guifg=#9bcfb5 guibg=#000000 gui=none +hi WarningMsg guifg=#BF3EFF guibg=#000000 gui=bold +hi WildMenu guifg=#43705a guibg=#e6fff3 gui=none diff --git a/vim/colors/night.vim b/vim/colors/night.vim new file mode 100644 index 0000000..ffa3024 --- /dev/null +++ b/vim/colors/night.vim @@ -0,0 +1,79 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/03/08 Fri 21:39. +" version: 2.0 +" This color scheme uses a dark background. +" GUI only + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "night" + +hi Normal guifg=#f0f0f8 guibg=#303040 + +" Search +hi IncSearch gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=#d000d0 +hi Search gui=BOLD guifg=#ffd0ff guibg=#c000c0 + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#f00080 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#f00080 +hi ModeMsg gui=BOLD guifg=#00e0ff guibg=NONE +hi MoreMsg gui=BOLD guifg=#00ffdd guibg=NONE +hi Question gui=BOLD guifg=#d0d050 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#101018 guibg=#c8c8d8 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#c8c8d8 +hi VertSplit gui=NONE guifg=#606080 guibg=#c8c8d8 +hi WildMenu gui=NONE guifg=#101018 guibg=#ffffff + +" Diff +hi DiffText gui=NONE guifg=#ffffff guibg=#40a060 +hi DiffChange gui=NONE guifg=#ffffff guibg=#007070 +hi DiffDelete gui=NONE guifg=#ffffff guibg=#40a0c0 +hi DiffAdd gui=NONE guifg=#ffffff guibg=#40a0c0 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=BOLD guifg=#e8e8ff guibg=#7070c0 +hi FoldColumn gui=NONE guifg=#a0a0b0 guibg=#404050 + +" Other +hi Directory gui=NONE guifg=#00ffff guibg=NONE +hi LineNr gui=NONE guifg=#808098 guibg=NONE +hi NonText gui=BOLD guifg=#8040ff guibg=#383848 +hi SpecialKey gui=BOLD guifg=#60a0ff guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=#9000a0 +hi Visual gui=NONE guifg=#ffffff guibg=#d09050 + +" Syntax group +hi Comment gui=BOLD guifg=#f080ff guibg=NONE +hi Constant gui=NONE guifg=#f0f0f8 guibg=#4830a0 +hi Error gui=BOLD guifg=#ffffff guibg=#f00080 +hi Identifier gui=NONE guifg=#90d0ff guibg=NONE +hi Ignore gui=NONE guifg=#303040 guibg=NONE +hi PreProc gui=NONE guifg=#40ffa0 guibg=NONE +hi Special gui=NONE guifg=#40f8f8 guibg=#4830a0 +hi Statement gui=BOLD guifg=#00ccbb guibg=NONE +hi Todo gui=BOLD guifg=#ffe0c8 guibg=#c07038 +hi Type gui=BOLD guifg=#bb99ff guibg=NONE +hi Underlined gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE,BOLD +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC diff --git a/vim/colors/nightshimmer.vim b/vim/colors/nightshimmer.vim new file mode 100644 index 0000000..53dce84 --- /dev/null +++ b/vim/colors/nightshimmer.vim @@ -0,0 +1,111 @@ +" Vim color file +" Maintainer: Niklas Lindström +" Last Change: 2002-03-22 +" Version: 0.3 +" URI: http://localhost/ + + +""" Init +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "nightshimmer" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=Green guifg=White +highlight CursorIM gui=bold guifg=white guibg=Green1 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +" previously 'FillColumn': +"highlight FillColumn gui=NONE guifg=black guibg=grey60 +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=bold guibg=#305060 guifg=#b0d0e0 +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=bold guibg=grey6 guifg=Purple3 +highlight ModeMsg guibg=DarkGreen guifg=LightGreen +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=grey6 guifg=Purple +endif +highlight Normal gui=None guibg=#103040 guifg=honeydew2 +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=Purple4 guifg=NONE +highlight SpecialKey guibg=#123A4A guifg=#426272 +highlight StatusLine gui=bold guibg=grey88 guifg=black +highlight StatusLineNC gui=NONE guibg=grey60 guifg=grey10 +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +highlight Comment gui=reverse guifg=#507080 +"highlight Comment gui=None guifg=#507080 + +highlight Constant guifg=Cyan guibg=bg + "hi String gui=None guifg=Cyan guibg=bg + "hi Character gui=None guifg=Cyan guibg=bg + highlight Number gui=None guifg=Cyan guibg=bg + highlight Boolean gui=bold guifg=Cyan guibg=bg + "hi Float gui=None guifg=Cyan guibg=bg + +highlight Identifier guifg=orchid1 + "hi Function gui=None guifg=orchid1 guibg=bg + +highlight Statement gui=NONE guifg=LightGreen + highlight Conditional gui=None guifg=LightGreen guibg=bg + highlight Repeat gui=None guifg=SeaGreen2 guibg=bg + "hi Label gui=None guifg=LightGreen guibg=bg + highlight Operator gui=None guifg=Chartreuse guibg=bg + highlight Keyword gui=bold guifg=LightGreen guibg=bg + highlight Exception gui=bold guifg=LightGreen guibg=bg + +highlight PreProc guifg=MediumPurple1 + "hi Include gui=None guifg=MediumPurple1 guibg=bg + "hi Define gui=None guifg=MediumPurple1g guibg=bg + "hi Macro gui=None guifg=MediumPurple1g guibg=bg + "hi PreCondit gui=None guifg=MediumPurple1g guibg=bg + +highlight Type gui=NONE guifg=LightBlue + "hi StorageClass gui=None guifg=LightBlue guibg=bg + "hi Structure gui=None guifg=LightBlue guibg=bg + "hi Typedef gui=None guifg=LightBlue guibg=bg + +highlight Special gui=bold guifg=White + "hi SpecialChar gui=bold guifg=White guibg=bg + "hi Tag gui=bold guifg=White guibg=bg + "hi Delimiter gui=bold guifg=White guibg=bg + "hi SpecialComment gui=bold guifg=White guibg=bg + "hi Debug gui=bold guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=LightYellow guibg=FireBrick + +highlight Todo guifg=Cyan guibg=#507080 + +""" OLD COLORS + + + diff --git a/vim/colors/nightwish.vim b/vim/colors/nightwish.vim new file mode 100644 index 0000000..9b97597 --- /dev/null +++ b/vim/colors/nightwish.vim @@ -0,0 +1,59 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file, derived from colorscheme 'murphy' +" Maintainer: Michael Muhler +" Version: 1.0 +" URL: http://home.arcor.de/muhler +" Last Change: 2003 Apr 15 + +"help see colortest.vim + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "nightwish" + + +hi Comment term=bold ctermfg=LightRed guifg=Orange +hi Constant term=underline ctermfg=LightGreen guifg=White gui=NONE +hi Directory term=bold ctermfg=LightCyan guifg=Cyan +hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White +hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White +hi Identifier term=underline ctermfg=LightCyan guifg=#00ffff +hi Ignore ctermfg=black guifg=bg +hi IncSearch term=reverse cterm=reverse gui=reverse +hi LineNr term=underline ctermfg=Yellow guifg=Yellow +hi ModeMsg term=bold cterm=bold gui=bold +hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen +hi NonText term=bold ctermfg=Blue gui=bold guifg=Blue +hi PreProc term=underline ctermfg=LightBlue guifg=Wheat +hi Question term=standout ctermfg=LightGreen gui=bold guifg=Cyan +hi Search term=reverse guifg=white guibg=Blue +hi Special term=bold ctermfg=LightRed guifg=magenta +hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan +hi Statement term=bold ctermfg=Yellow guifg=#ffff00 gui=NONE +hi StatusLine term=reverse,bold cterm=reverse gui=NONE guifg=White guibg=darkblue +hi StatusLineNC term=reverse cterm=reverse gui=NONE guifg=white guibg=#333333 +hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Pink +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow +hi Type ctermfg=LightGreen guifg=grey gui=none +hi Visual term=reverse cterm=reverse gui=NONE guifg=white guibg=darkgreen +hi WarningMsg term=standout ctermfg=LightRed guifg=Red + +hi Normal ctermbg=Black ctermfg=lightgreen guibg=Black guifg=#a0a0ff +hi Cursor guifg=bg guibg=Green +hi String term=underline cterm=bold ctermfg=magenta guifg=#ffa0a0 +hi Repeat term=underline ctermfg=Magenta guifg=Red +hi Delimiter term=standout ctermfg=Blue guifg=#00ff88 +hi Label term=standout ctermfg=DarkYellow guifg=DarkYellow +hi Keyword term=standout ctermfg=Green guifg=Green +hi Operator term=standout ctermfg=Yellow guifg=#ff5555 +hi Exception term=standout ctermfg=Magenta guifg=#ff0dd5 +hi Tag term=standout ctermfg=Green guifg=#55ff0d + +" missing items in murphy +hi Scrollbar guifg=darkcyan guibg=cyan +hi Menu guifg=black guibg=cyan +hi link Conditional Repeat diff --git a/vim/colors/no_quarter.vim b/vim/colors/no_quarter.vim new file mode 100644 index 0000000..254c0e9 --- /dev/null +++ b/vim/colors/no_quarter.vim @@ -0,0 +1,123 @@ +" Vim color file +" Maintainer: Otavio Fernandes +" Last Change: 2008/08/10 Sun 20:35 +" Version: 1.0.4 +" +" ts=4 +" + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "no_quarter" + +" +" Vim Colors (( Default Options )) +" + +hi Normal guifg=grey80 guibg=#343434 +hi IncSearch gui=UNDERLINE guifg=#80ffff guibg=#0060c0 +hi Search gui=NONE guifg=bg guibg=grey60 +hi ErrorMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi WarningMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi ModeMsg gui=BOLD guifg=#a0d0ff guibg=NONE +hi MoreMsg gui=BOLD guifg=#70ffc0 guibg=#8040ff +hi Question gui=BOLD guifg=#e8e800 guibg=NONE +hi StatusLine gui=NONE guifg=#000000 guibg=#909090 +hi StatusLineNC gui=NONE guifg=#abac84 guibg=#404040 +hi VertSplit gui=NONE guifg=#abac84 guibg=#404040 +hi WildMenu gui=NONE guifg=#000000 guibg=#abac84 +hi DiffText gui=NONE guifg=#ff78f0 guibg=#a02860 +hi DiffChange gui=NONE guifg=#e03870 guibg=#601830 +hi DiffDelete gui=NONE guifg=#a0d0ff guibg=#0020a0 +hi DiffAdd gui=NONE guifg=#a0d0ff guibg=#0020a0 +hi Cursor gui=NONE guifg=#424242 guibg=green +hi CursorLine gui=NONE guibg=gray17 +hi lCursor gui=NONE guifg=#ffffff guibg=#8800ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8800ff +hi Folded gui=NONE guifg=#40f0f0 guibg=#006090 +hi FoldColumn gui=NONE guifg=#40c0ff guibg=#404040 +hi Directory gui=NONE guifg=red guibg=NONE +hi LineNr gui=NONE guifg=#707070 guibg=NONE +hi NonText gui=BOLD guifg=#707070 guibg=#383838 +hi SpecialKey gui=BOLD guifg=green guibg=NONE +hi Title gui=BOLD guifg=#707070 guibg=NONE +hi Visual gui=NONE guifg=#b0ffb0 guibg=#008000 +hi VisualNOS gui=NONE guifg=#ffe8c8 guibg=#c06800 +hi Comment gui=NONE guifg=#647bcf guibg=NONE +hi Constant gui=NONE guifg=#b07050 guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#8000ff +hi Identifier gui=NONE guifg=#90c0c0 guibg=NONE +hi Ignore gui=NONE guifg=bg guibg=NONE +hi PreProc gui=NONE guifg=#c090c0 guibg=NONE +hi Special gui=NONE guifg=#c090c0 guibg=NONE +hi Statement gui=NONE guifg=#c0c090 guibg=NONE +hi Todo gui=BOLD guifg=#ff80d0 guibg=NONE +hi Type gui=NONE guifg=#60f0a8 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#707070 guibg=NONE +hi htmlTagName gui=NONE guifg=grey70 guibg=bg + +" +" Tag List +" + +hi MyTagListFileName gui=underline guifg=fg guibg=grey25 + +" +" Perl +" + +hi perlIdentifier gui=NONE guifg=#90c0c0 guibg=NONE +hi perlStatement gui=NONE guifg=#c0c090 guibg=NONE +hi perlStatementHash gui=NONE guifg=#c0c090 guibg=#404040 +hi perlStatementNew gui=NONE guifg=#c0c090 guibg=#424242 +hi perlMatchStartEnd gui=NONE guifg=#c0c090 guibg=#424242 +hi perlVarPlain gui=NONE guifg=#74c5c6 guibg=bg +hi perlVarNotInMatches gui=NONE guifg=#915555 guibg=bg +hi perlVarPlain2 gui=NONE guifg=#74c6a8 guibg=bg +hi perlFunctionName gui=NONE guifg=white guibg=bg +hi perlNumber gui=NONE guifg=#80ac7b guibg=bg +hi perlQQ gui=NONE guifg=fg guibg=#393939 +hi perlSpecialString gui=NONE guifg=#dc966b guibg=bg +hi perlSpecialMatch gui=NONE guifg=#c864c7 guibg=bg +hi perlSpecialBEOM gui=NONE guifg=fg guibg=#404040 +hi perlStringStartEnd gui=NONE guifg=#b07050 guibg=#353535 +hi perlShellCommand gui=NONE guibg=#c090c0 guibg=#424242 +hi perlOperator gui=NONE guifg=#c0c090 guibg=#404040 +hi perlLabel gui=NONE guifg=#c0c090 guibg=#404040 +hi perlControl gui=NONE guifg=#c0c090 guibg=#404040 +hi perlSharpBang gui=NONE guifg=#c0c090 guibg=#505050 +hi perlPackageDecl gui=NONE guifg=#80ac7b guibg=#404040 +hi perlStatementFiledesc gui=NONE guifg=#a2c090 guibg=bg +hi perlRepeat gui=NONE guifg=#c0b790 guibg=bg +hi perlStatementInclude gui=NONE guifg=#c0c090 guibg=#3b4038 +hi perlStatementControl gui=NONE guifg=#dcdb6b guibg=bg +hi perlStatementSub gui=NONE guifg=#c0c090 guibg=bg +hi perlVarSimpleMember gui=NONE guifg=#c0c090 guibg=bg +hi perlVarSimpleMemberName gui=NONE guifg=grey70 guibg=bg + +" ------------------------------------------------------------------------------------------------- +" perlStatementRegexp perlSpecialDollar perlSpecialStringU perlSubstitutionBracket +" perlTranslationBracket perlType perlStatementStorage perlStatementScalar +" perlStatementNumeric perlStatementList perlStatementIOfunc +" perlStatementVector perlStatementFiles perlStatementFlow perlStatementScope +" perlStatementProc perlStatementSocket perlStatementIPC perlStatementNetwork perlStatementPword +" perlStatementTime perlStatementMisc perlStatementPackage perlList perlMisc +" perlVarSlash perlMethod perlFiledescRead perlFiledescStatement perlFormatName +" perlFloat perlString perlSubstitutionSQ perlSubstitutionDQ +" perlSubstitutionSlash perlSubstitutionHash perlSubstitutionCurly perlSubstitutionPling +" perlTranslationSlash perlTranslationHash perlTranslationCurly perlHereDoc perlFormatField +" perlStringUnexpanded perlCharacter perlSpecialAscii perlConditional perlInclude +" perlStorageClass perlPackageRef perlFunctionPRef +" ------------------------------------------------------------------------------------------------- + +" +" Omni Menu +" + +hi Pmenu guifg=grey10 guibg=grey50 +hi PmenuSel guifg=#abac84 guibg=#404040 +hi PmenuSbar guibg=grey20 +hi PmenuThumb guifg=grey30 diff --git a/vim/colors/northsky.vim b/vim/colors/northsky.vim new file mode 100644 index 0000000..e705ae4 --- /dev/null +++ b/vim/colors/northsky.vim @@ -0,0 +1,70 @@ +" Vim color file based on bluegreen +" Maintainer: Sergey Khorev +" Last Change: +" URL: + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="northsky" + +hi Normal guifg=white guibg=#061A3E + +" Search +"hi Search guibg=#A28D68 guifg=bg gui=none +"hi Search guibg=#4668A1 guifg=bg gui=none +hi Search guibg=#3D5B8C guifg=yellow gui=none +hi IncSearch guifg=bg guibg=cyan gui=bold + +" highlight groups +hi Cursor guibg=#D74141 guifg=#e3e3e3 +hi VertSplit guibg=#C0FFFF guifg=#075554 gui=none +hi Folded guifg=plum1 guibg=#061A3E +hi FoldColumn guibg=#800080 guifg=tan +hi ModeMsg guifg=#404040 guibg=#C0C0C0 +hi MoreMsg guifg=darkturquoise guibg=#188F90 +hi NonText guibg=#334C75 guifg=#9FADC5 +hi Question guifg=#F4BB7E + +hi SpecialKey guifg=#BF9261 +hi StatusLine guibg=#067C7B guifg=cyan gui=none +hi StatusLineNC guibg=#004443 guifg=DimGrey gui=none +hi Title guifg=#8DB8C3 +"hi Visual gui=bold guifg=black guibg=#C0FFC0 +hi Visual gui=bold guifg=black guibg=#84AF84 +hi WarningMsg guifg=#F60000 gui=underline + +" syntax highlighting groups +hi Comment guifg=DarkGray +hi Constant guifg=#72A5E4 gui=bold +hi Number guifg=chartreuse2 gui=bold +hi Identifier guifg=#ADCBF1 +hi Statement guifg=yellow +hi PreProc guifg=#14967C +hi Type guifg=#FFAE66 +hi Special guifg=#EEBABA +hi Ignore guifg=grey60 +hi Todo guibg=#9C8C84 guifg=#244C0A +hi Label guifg=#ffc0c0 + +" Vim defaults +hi ErrorMsg guifg=White guibg=Red +hi DiffAdd guibg=DarkBlue +hi DiffChange guibg=aquamarine4 +hi DiffDelete gui=bold guifg=Yellow guibg=DarkBlue +hi DiffText gui=bold guibg=firebrick3 +hi Directory guifg=Cyan +hi LineNr guifg=DarkGreen +hi WildMenu guifg=Black guibg=Yellow +" hi lCursor guifg=bg guibg=fg +hi lCursor guibg=SeaGreen1 guifg=NONE +hi Underlined gui=underline guifg=#80a0ff +hi Error guifg=White guibg=Red diff --git a/vim/colors/nuvola.vim b/vim/colors/nuvola.vim new file mode 100644 index 0000000..9106ad7 --- /dev/null +++ b/vim/colors/nuvola.vim @@ -0,0 +1,107 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Dr. J. Pfefferl +" Source: $Source: /MISC/projects/cvsroot/user/pfefferl/vim/colors/nuvola.vim,v $ +" Id: $Id: nuvola.vim,v 1.14 2003/08/11 14:03:28 pfefferl Exp $ +" Last Change: $Date: 2003/08/11 14:03:28 $ + +" Intro {{{1 +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "nuvola" + +" Normal {{{1 +hi Normal ctermfg=black ctermbg=NONE guifg=black guibg=#F9F5F9 + +" Search {{{1 +hi IncSearch cterm=UNDERLINE ctermfg=Black ctermbg=brown gui=UNDERLINE guifg=Black guibg=#FFE568 +hi Search term=reverse cterm=UNDERLINE ctermfg=Black ctermbg=brown gui=NONE guifg=Black guibg=#FFE568 + +" Messages {{{1 +hi ErrorMsg gui=BOLD guifg=#EB1513 guibg=NONE +hi! link WarningMsg ErrorMsg +hi ModeMsg gui=BOLD guifg=#0070ff guibg=NONE +hi MoreMsg guibg=NONE guifg=seagreen +hi! link Question MoreMsg + +" Split area {{{1 +hi StatusLine term=BOLD,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=BOLD guibg=#56A0EE guifg=white +hi StatusLineNC gui=NONE guibg=#56A0EE guifg=#E9E9F4 +hi! link VertSplit StatusLineNC +hi WildMenu gui=UNDERLINE guifg=#56A0EE guibg=#E9E9F4 + +" Diff {{{1 +hi DiffText gui=NONE guifg=#f83010 guibg=#ffeae0 +hi DiffChange gui=NONE guifg=#006800 guibg=#d0ffd0 +hi DiffDelete gui=NONE guifg=#2020ff guibg=#c8f2ea +hi! link DiffAdd DiffDelete + +" Cursor {{{1 +hi Cursor gui=none guifg=black guibg=orange +"hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold {{{1 +hi Folded gui=NONE guibg=#B5EEB5 guifg=black +"hi FoldColumn gui=NONE guibg=#9FD29F guifg=black +hi! link FoldColumn Folded + +" Other {{{1 +hi Directory gui=NONE guifg=#0000ff guibg=NONE +hi LineNr gui=NONE guifg=#8080a0 guibg=NONE +hi NonText gui=BOLD guifg=#4000ff guibg=#EFEFF7 +"hi SpecialKey gui=NONE guifg=#A35B00 guibg=NONE +hi Title gui=BOLD guifg=#1014AD guibg=NONE +hi Visual term=reverse ctermfg=yellow ctermbg=black gui=NONE guifg=Black guibg=#BDDFFF +hi VisualNOS term=reverse ctermfg=yellow ctermbg=black gui=UNDERLINE guifg=Black guibg=#BDDFFF + +" Syntax group {{{1 +hi Comment term=BOLD ctermfg=darkgray guifg=#3F6B5B +hi Constant term=UNDERLINE ctermfg=red guifg=#B91F49 +hi Error term=REVERSE ctermfg=15 ctermbg=9 guibg=Red guifg=White +hi Identifier term=UNDERLINE ctermfg=Blue guifg=Blue +hi Number term=UNDERLINE ctermfg=red gui=NONE guifg=#00C226 +hi PreProc term=UNDERLINE ctermfg=darkblue guifg=#1071CE +hi Special term=BOLD ctermfg=darkmagenta guifg=red2 +hi Statement term=BOLD ctermfg=DarkRed gui=NONE guifg=#F06F00 +hi Tag term=BOLD ctermfg=DarkGreen guifg=DarkGreen +hi Todo term=STANDOUT ctermbg=Yellow ctermfg=blue guifg=Blue guibg=Yellow +hi Type term=UNDERLINE ctermfg=Blue gui=NONE guifg=Blue +hi! link String Constant +hi! link Character Constant +hi! link Boolean Constant +hi! link Float Number +hi! link Function Identifier +hi! link Conditional Statement +hi! link Repeat Statement +hi! link Label Statemengreen +hi! link Operator Statement +hi! link Keyword Statement +hi! link Exception Statement +hi! link Include PreProc +hi! link Define PreProc +hi! link Macro PreProc +hi! link PreCondit PreProc +hi! link StorageClass Type +hi! link Structure Type +hi! link Typedef Type +hi! link SpecialChar Special +hi! link Delimiter Special +hi! link SpecialComment Special +hi! link Debug Special + +" HTML {{{1 +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC + +" vim600:foldmethod=marker diff --git a/vim/colors/oceanblack.vim b/vim/colors/oceanblack.vim new file mode 100644 index 0000000..e6e6be3 --- /dev/null +++ b/vim/colors/oceanblack.vim @@ -0,0 +1,115 @@ +" Vim color file +" Maintainer: Chris Vertonghen +" Last Change: 2003-03-25 +" Version: 0.1 +" based on Tom Regner's oceanblue.vim + +""" Init +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "oceanblack" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=PaleTurquoise3 guifg=White +highlight CursorIM gui=bold guifg=white guibg=PaleTurquoise3 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +" previously 'FillColumn': +"highlight FillColumn gui=NONE guifg=black guibg=grey60 +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=None guibg=#305060 guifg=#b0d0e0 +highlight IncSearch gui=reverse guifg=fg guibg=bg +"highlight LineNr guibg=grey6 guifg=LightSkyBlue3 +highlight LineNr guibg=grey6 guifg=#777777 +highlight ModeMsg guibg=DarkGreen guifg=LightGreen +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=#000000 guifg=LightSkyBlue +endif +highlight Normal gui=None guibg=#000000 guifg=honeydew2 +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=LightSkyBlue4 guifg=NONE +highlight SpecialKey guibg=#103040 guifg=#324262 +highlight StatusLine gui=bold guibg=grey88 guifg=black +highlight StatusLineNC gui=NONE guibg=grey60 guifg=grey10 +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +"highlight Comment gui=reverse guifg=#507080 +"highlight Comment gui=None guifg=#507080 +highlight Comment gui=None guifg=#7C7268 + +highlight Constant guifg=cyan3 guibg=bg +"hi String gui=None guifg=turquoise2 guibg=bg +hi String gui=None guifg=#80a0ff guibg=bg + "hi Character gui=None guifg=Cyan guibg=bg + "highlight Number gui=None guifg=Cyan guibg=bg + highlight Number gui=None guifg=Cyan guibg=black + highlight Boolean gui=bold guifg=Cyan guibg=bg + "hi Float gui=None guifg=Cyan guibg=bg + +highlight Identifier guifg=LightSkyBlue3 +hi Function gui=None guifg=DarkSeaGreen3 guibg=bg + +highlight Statement gui=NONE guifg=LightGreen + highlight Conditional gui=None guifg=LightGreen guibg=bg + highlight Repeat gui=None guifg=SeaGreen2 guibg=bg + "hi Label gui=None guifg=LightGreen guibg=bg + highlight Operator gui=None guifg=Chartreuse guibg=bg + highlight Keyword gui=None guifg=LightGreen guibg=bg + highlight Exception gui=None guifg=LightGreen guibg=bg + +highlight PreProc guifg=SkyBlue1 +hi Include gui=None guifg=LightSteelBlue3 guibg=bg +hi Define gui=None guifg=LightSteelBlue2 guibg=bg +hi Macro gui=None guifg=LightSkyBlue3 guibg=bg +hi PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=LightBlue +hi StorageClass gui=None guifg=LightBlue guibg=bg +hi Structure gui=None guifg=LightBlue guibg=bg +hi Typedef gui=None guifg=LightBlue guibg=bg + +"highlight Special gui=bold guifg=aquamarine3 +highlight Special guifg=#999999 + "hi SpecialChar gui=bold guifg=White guibg=bg + "hi Tag gui=bold guifg=White guibg=bg + "hi Delimiter gui=bold guifg=White guibg=bg + "hi SpecialComment gui=bold guifg=White guibg=bg + "hi Debug gui=bold guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=LightYellow guibg=FireBrick + +highlight Todo guifg=Cyan guibg=#507080 + +""" OLD COLORS + + + diff --git a/vim/colors/oceandeep.vim b/vim/colors/oceandeep.vim new file mode 100644 index 0000000..08923d0 --- /dev/null +++ b/vim/colors/oceandeep.vim @@ -0,0 +1,140 @@ +" Vim color file +" Maintainer: Tom Regner +" Last Change: +" +" 2007-10-16 change by Alexei Alexandrov +" - highlight CursorColumn +" +" 2007-08-20 change by Diederick Niehorster +" - highlight CursorLine +" +" 2007-02-05 +" - included changes from Keffin Barnaby +" (vim>=7.0 PMenu and Spellchecking) +" +" 2006-09-06 +" - changed String to DarkCyan, Macro to DarkRed +" +" 2006-09-05 +" - more console-colors +" - added console-colors, clean-up +" +" Version: 1.2.5 +" URL: http://vim.sourceforge.net/script.php?script_id=368 + + +""" Init +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "oceandeep" + +"""" GUI + +highlight Cursor gui=None guibg=PaleTurquoise3 guifg=White +highlight CursorIM gui=bold guifg=white guibg=PaleTurquoise3 +highlight CursorLine gui=None guibg=#003853 +highlight CursorColumn gui=None guibg=#003853 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=bold guibg=#305060 guifg=#b0d0e0 +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=bold guibg=grey6 guifg=LightSkyBlue3 +highlight ModeMsg guibg=DarkGreen guifg=LightGreen +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=#103040 guifg=LightSkyBlue +endif +highlight Normal gui=None guibg=#103040 guifg=honeydew2 +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=LightSkyBlue4 guifg=NONE +highlight SpecialKey guibg=#103040 guifg=#324262 +highlight StatusLine gui=bold guibg=grey88 guifg=black +highlight StatusLineNC gui=NONE guibg=grey60 guifg=grey10 +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + +highlight Comment gui=None guifg=#507080 +highlight Constant guifg=cyan3 guibg=bg +highlight String gui=None guifg=turquoise2 guibg=bg +highlight Number gui=None guifg=Cyan guibg=bg +highlight Boolean gui=bold guifg=Cyan guibg=bg +highlight Identifier guifg=LightSkyBlue3 +highlight Function gui=None guifg=DarkSeaGreen3 guibg=bg + +highlight Statement gui=NONE guifg=LightGreen +highlight Conditional gui=None guifg=LightGreen guibg=bg +highlight Repeat gui=None guifg=SeaGreen2 guibg=bg +highlight Operator gui=None guifg=Chartreuse guibg=bg +highlight Keyword gui=bold guifg=LightGreen guibg=bg +highlight Exception gui=bold guifg=LightGreen guibg=bg + +highlight PreProc guifg=SkyBlue1 +highlight Include gui=None guifg=LightSteelBlue3 guibg=bg +highlight Define gui=None guifg=LightSteelBlue2 guibg=bg +highlight Macro gui=None guifg=LightSkyBlue3 guibg=bg +highlight PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=LightBlue +highlight StorageClass gui=None guifg=LightBlue guibg=bg +highlight Structure gui=None guifg=LightBlue guibg=bg +highlight Typedef gui=None guifg=LightBlue guibg=bg + +highlight Special gui=bold guifg=aquamarine3 +highlight Underlined gui=underline guifg=honeydew4 guibg=bg +highlight Ignore guifg=#204050 +highlight Error guifg=LightYellow guibg=FireBrick +highlight Todo guifg=Cyan guibg=#507080 +if v:version >= 700 + highlight PMenu gui=bold guibg=LightSkyBlue4 guifg=honeydew2 + highlight PMenuSel gui=bold guibg=DarkGreen guifg=honeydew2 + highlight PMenuSbar gui=bold guibg=LightSkyBlue4 + highlight PMenuThumb gui=bold guibg=DarkGreen + highlight SpellBad gui=undercurl guisp=Red + highlight SpellRare gui=undercurl guisp=Orange + highlight SpellLocal gui=undercurl guisp=Orange + highlight SpellCap gui=undercurl guisp=Yellow +endif + +""" Console +if v:version >= 700 + highlight PMenu cterm=bold ctermbg=DarkGreen ctermfg=Gray + highlight PMenuSel cterm=bold ctermbg=Yellow ctermfg=Gray + highlight PMenuSbar cterm=bold ctermbg=DarkGreen + highlight PMenuThumb cterm=bold ctermbg=Yellow + highlight SpellBad ctermbg=Red + highlight SpellRare ctermbg=Red + highlight SpellLocal ctermbg=Red + highlight SpellCap ctermbg=Yellow +endif + +highlight Normal ctermfg=Gray ctermbg=None +highlight Search ctermfg=Black ctermbg=Red cterm=NONE +highlight Visual cterm=reverse +highlight Cursor ctermfg=Black ctermbg=Green cterm=bold +highlight Special ctermfg=Brown +highlight Comment ctermfg=DarkGray +highlight StatusLine ctermfg=Blue ctermbg=White +highlight Statement ctermfg=Yellow cterm=NONE +highlight Type cterm=NONE +highlight Macro ctermfg=DarkRed +highlight Identifier ctermfg=DarkYellow +highlight Structure ctermfg=DarkGreen +highlight String ctermfg=DarkCyan + +" vim: sw=4 ts=4 et diff --git a/vim/colors/oceanlight.vim b/vim/colors/oceanlight.vim new file mode 100644 index 0000000..08fb22e --- /dev/null +++ b/vim/colors/oceanlight.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Håkan Wikström +" Last Change: 2005-01-06 +" Version: 0.1 +" URL: +" Originally based on oceandeep by Tom Regner (Vim script #368) + + +""" Init +set background=light +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "oceanlight" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=PaleTurquoise3 guifg=White +highlight CursorIM gui=none guifg=white guibg=PaleTurquoise3 +highlight Directory guifg=SeaGreen guibg=bg +highlight DiffAdd gui=None guifg=SteelBlue guibg=LightGray +highlight DiffChange gui=None guifg=fg guibg=CadetBlue +highlight DiffDelete gui=None guifg=LightGray guibg=SteelBlue +highlight DiffText gui=none guifg=fg guibg=bg +highlight ErrorMsg guifg=FireBrick guibg=bg +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=none guibg=LightSteelBlue guifg=SteelBlue +highlight FoldColumn gui=none guibg=LightSteelBLue guifg=SteelBlue +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=none guibg=#d3d3d3 guifg=#5daf83 +highlight ModeMsg guibg=CadetBlue guifg=LightGrey +highlight MoreMsg gui=none guifg=CadetBlue guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#d3d3d3 guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=#d3d3d3 guifg=#5daf83 +endif +highlight Normal gui=None guibg=#f5f5f5 guifg=DimGray +highlight Question gui=none guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=SlateGray2 guifg=NONE +highlight SpecialKey guibg=LightGray guifg=CadetBlue +highlight StatusLine gui=none guibg=SlateGrey guifg=LightGrey +highlight StatusLineNC gui=NONE guibg=LightGrey guifg=SlateGrey +highlight Title gui=none guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=slategray4 guifg=SlateGray2 +highlight VisualNOS gui=none,underline guifg=fg guibg=bg +highlight WarningMsg gui=none guifg=FireBrick1 guibg=bg +highlight WildMenu gui=none guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +"highlight Comment gui=reverse guifg=#507080 +highlight Comment gui=None guifg=LightSteelBlue + +highlight Constant guifg=#483d8b guibg=bg +hi String gui=None guifg=MediumAquamarine guibg=bg + "hi Character gui=None guifg=Cyan guibg=bg + highlight Number gui=None guifg=MediumSeaGreen guibg=bg + highlight Boolean gui=none guifg=DarkSeaGreen guibg=bg + "hi Float gui=None guifg=Cyan guibg=bg + +highlight Identifier guifg=CornflowerBlue +hi Function gui=None guifg=DarkSeaGreen guibg=bg + +highlight Statement gui=NONE guifg=SeaGreen + highlight Conditional gui=None guifg=#5daf83 guibg=bg + highlight Repeat gui=None guifg=#5daf83 guibg=bg + "hi Label gui=None guifg=seagreen guibg=bg + highlight Operator gui=None guifg=LightSlateBlue guibg=bg + highlight Keyword gui=none guifg=SeaGreen guibg=bg + highlight Exception gui=none guifg=SeaGreen guibg=bg + +highlight PreProc guifg=SkyBlue1 +hi Include gui=None guifg=SteelBlue guibg=bg +hi Define gui=None guifg=LightSteelBlue2 guibg=bg +hi Macro gui=None guifg=LightSkyBlue3 guibg=bg +hi PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=SteelBlue +hi StorageClass gui=None guifg=SteelBlue guibg=bg +hi Structure gui=None guifg=SteelBlue guibg=bg +hi Typedef gui=None guifg=SteelBlue guibg=bg + +highlight Special gui=none guifg=aquamarine3 + "hi SpecialChar gui=none guifg=White guibg=bg + "hi Tag gui=none guifg=White guibg=bg + "hi Delimiter gui=none guifg=White guibg=bg + "hi SpecialComment gui=none guifg=White guibg=bg + "hi Debug gui=none guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=FireBrick gui=Bold guibg=bg + +highlight Todo guifg=LightSkyBlue guibg=SlateGray diff --git a/vim/colors/olive.vim b/vim/colors/olive.vim new file mode 100644 index 0000000..02de085 --- /dev/null +++ b/vim/colors/olive.vim @@ -0,0 +1,119 @@ +" Vim color file +" Maintainer: Charles +" Last Change: 11 June 2004 +" URL: http:// + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="olive" + +"======================================================= +hi Normal guifg=#D9D9C3 guibg=#333300 +hi Cursor guifg=black guibg=white +hi CursorIM guifg=black guibg=green +hi Directory guifg=gold gui=underline +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=indianred +"hi VertSplit guifg=gold +hi Folded guifg=khaki guibg=darkolivegreen gui=underline +hi FoldColumn guifg=khaki guibg=darkolivegreen gui=none +hi IncSearch guifg=black guibg=khaki +hi LineNr guifg=gray80 +hi ModeMsg guifg=greenyellow gui=bold +hi MoreMsg guifg=greenyellow gui=bold +"hi NonText guibg=black +hi Question guifg=yellowgreen gui=NONE +hi Search guifg=black guibg=khaki gui=NONE +hi SpecialKey guifg=black guibg=darkkhaki +hi StatusLine guifg=palegoldenrod guibg=#808000 gui=none +hi StatusLineNC guifg=gray guibg=darkolivegreen gui=none +hi Title guifg=gold gui=bold +hi Visual guifg=black guibg=darkkhaki gui=NONE +"hi VisualNOS +hi WarningMsg guifg=palevioletred +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + + +" ============================================================ +" syntax highlighting groups +" ============================================================ +hi Comment guifg=darkkhaki guibg=#4C4C00 gui=underline + +hi Constant guifg=navajowhite +hi String guifg=greenyellow +"hi Character +"hi Number +"hi Boolean +"hi Float + +hi Identifier guifg=lightsteelblue +" hi Function guibg=gray60 + +hi Statement guifg=darkseagreen gui=bold +"hi Conditional +"hi Repeat +"hi Label +hi Operator guifg=gold +"hi Keyword +"hi Exception + +hi PreProc guifg=sandybrown gui=bold +"hi Include +"hi Define +"hi Macro +"hi PreCondit + +hi Type guifg=goldenrod +"hi StorageClass +"hi Structure +"hi Typedef + +hi Special guifg=navajowhite gui=underline +"hi SpecialChar +"hi Tag +"hi Delimiter +"hi SpecialComment +"hi Debug + +hi Underlined gui=underline + +hi Ignore guifg=black + +hi Error guifg=white + +hi Todo guifg=black guibg=gold gui=NONE + +" ================================================================= +" Language specific color +" ================================================================= + +" C / C++ +hi cIncluded guifg=yellowgreen + +" HTML +hi Title guifg=palegoldenrod + +" VIM +hi VimError guifg=red gui=bold +hi VimOption guifg=gold + +" TeX / LaTeX +hi texSection guifg=greenyellow +" tex between { and } +hi texMatcher guifg=yellowgreen gui=none +hi texMath gui=none + diff --git a/vim/colors/papayawhip.vim b/vim/colors/papayawhip.vim new file mode 100644 index 0000000..5f8725a --- /dev/null +++ b/vim/colors/papayawhip.vim @@ -0,0 +1,31 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2003 Apr 17 + +" A nice light background (you guessed it, PapayaWhip) that's relatively easy +" on the eyes yet very usable. Not nearly as "puffy" as peachpuff. +" +" Only values that differ from defaults are specified. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "PapayaWhip" + +hi Normal guifg=#3f1f1f guibg=PapayaWhip ctermbg=Gray ctermfg=Black +hi NonText guibg=Moccasin guifg=Brown ctermfg=Brown +hi LineNr guibg=Moccasin +hi DiffDelete guibg=LightRed guifg=Black ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=LightGreen ctermbg=DarkGreen ctermfg=White +hi DiffChange guibg=LightCyan3 ctermbg=DarkCyan ctermfg=White +hi DiffText gui=NONE guibg=Gray80 ctermbg=DarkCyan ctermfg=Yellow +hi Comment guifg=MediumBlue +hi Constant guifg=DeepPink +hi PreProc guifg=DarkMagenta +hi StatusLine guibg=White guifg=#5f3705 cterm=bold ctermbg=Brown ctermfg=White +hi StatusLineNC gui=None guibg=Gray +hi VertSplit gui=None guibg=Gray +hi Identifier guifg=#005f5f +hi Statement ctermfg=DarkRed diff --git a/vim/colors/peaksea.vim b/vim/colors/peaksea.vim new file mode 100644 index 0000000..359a9ac --- /dev/null +++ b/vim/colors/peaksea.vim @@ -0,0 +1,597 @@ +" Vim color file --- psc (peak sea color) "Lite version" +" Maintainer: Pan, Shi Zhu +" URL: http://vim.sourceforge.net/scripts/script.php?script_id=760 +" Last Change: 31 Oct 2008 +" Version: 3.3 +" +" Comments and e-mails are welcomed, thanks. +" +" The peaksea color is simply a colorscheme with the default settings of +" the original ps_color. Lite version means there's no custom settings +" and fancy features such as integration with reloaded.vim +" +" The full version of ps_color.vim will be maintained until Vim 8. +" By then there will be only the lite version: peaksea.vim +" +" Note: Please set the background option in your .vimrc and/or .gvimrc +" +" It is much better *not* to set 'background' option inside +" a colorscheme file. because ":set background" inside a colorscheme +" may cause colorscheme be sourced twice or in the worst case result an +" infinite loop. +" +" Color Scheme Overview: +" :ru syntax/hitest.vim +" +" Relevant Help: +" :h highlight-groups +" :h psc-cterm-color-table +" +" Colors Order: +" #rrggbb +" + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = expand(":t:r") + +" I don't want to abuse folding, but here folding is used to avoid confusion. +if &background=='light' + " for background=light {{{2 + " LIGHT COLOR DEFINE START + + hi Normal guifg=#000000 guibg=#e0e0e0 gui=NONE + hi Search guifg=NONE guibg=#f8f8f8 gui=NONE + hi Visual guifg=NONE guibg=#a6caf0 gui=NONE + hi Cursor guifg=#f0f0f0 guibg=#008000 gui=NONE + " The idea of CursorIM is pretty good, however, the feature is still buggy + " in the current version (Vim 7.0). + " The following line will be kept commented until the bug fixed. + " + " hi CursorIM guifg=#f0f0f0 guibg=#800080 + hi Special guifg=#907000 guibg=NONE gui=NONE + hi Comment guifg=#606000 guibg=NONE gui=NONE + hi Number guifg=#907000 guibg=NONE gui=NONE + hi Constant guifg=#007068 guibg=NONE gui=NONE + hi StatusLine guifg=fg guibg=#a6caf0 gui=NONE + hi LineNr guifg=#686868 guibg=NONE gui=NONE + hi Question guifg=fg guibg=#d0d090 gui=NONE + hi PreProc guifg=#009030 guibg=NONE gui=NONE + hi Statement guifg=#2060a8 guibg=NONE gui=NONE + hi Type guifg=#0850a0 guibg=NONE gui=NONE + hi Todo guifg=#800000 guibg=#e0e090 gui=NONE + " NOTE THIS IS IN THE WARM SECTION + hi Error guifg=#c03000 guibg=NONE gui=NONE + hi Identifier guifg=#a030a0 guibg=NONE gui=NONE + hi ModeMsg guifg=fg guibg=#b0b0e0 gui=NONE + hi VisualNOS guifg=fg guibg=#b0b0e0 gui=NONE + hi SpecialKey guifg=#1050a0 guibg=NONE gui=NONE + hi NonText guifg=#002090 guibg=#d0d0d0 gui=NONE + hi Directory guifg=#a030a0 guibg=NONE gui=NONE + hi ErrorMsg guifg=fg guibg=#f0b090 gui=NONE + hi MoreMsg guifg=#489000 guibg=NONE gui=NONE + hi Title guifg=#a030a0 guibg=NONE gui=NONE + hi WarningMsg guifg=#b02000 guibg=NONE gui=NONE + hi WildMenu guifg=fg guibg=#d0d090 gui=NONE + hi Folded guifg=NONE guibg=#b0e0b0 gui=NONE + hi FoldColumn guifg=fg guibg=#90e090 gui=NONE + hi DiffAdd guifg=NONE guibg=#b0b0e0 gui=NONE + hi DiffChange guifg=NONE guibg=#e0b0e0 gui=NONE + hi DiffDelete guifg=#002090 guibg=#d0d0d0 gui=NONE + hi DiffText guifg=NONE guibg=#c0e080 gui=NONE + hi SignColumn guifg=fg guibg=#90e090 gui=NONE + + hi IncSearch guifg=#f0f0f0 guibg=#806060 gui=NONE + hi StatusLineNC guifg=fg guibg=#c0c0c0 gui=NONE + hi VertSplit guifg=fg guibg=#c0c0c0 gui=NONE + hi Underlined guifg=#6a5acd guibg=NONE gui=underline + hi Ignore guifg=bg guibg=NONE + " NOTE THIS IS IN THE WARM SECTION + if v:version >= 700 + if has('spell') + hi SpellBad guifg=NONE guibg=NONE guisp=#c03000 + hi SpellCap guifg=NONE guibg=NONE guisp=#2060a8 + hi SpellRare guifg=NONE guibg=NONE guisp=#a030a0 + hi SpellLocal guifg=NONE guibg=NONE guisp=#007068 + endif + hi Pmenu guifg=fg guibg=#e0b0e0 + hi PmenuSel guifg=#f0f0f0 guibg=#806060 gui=NONE + hi PmenuSbar guifg=fg guibg=#c0c0c0 gui=NONE + hi PmenuThumb guifg=fg guibg=#c0e080 gui=NONE + hi TabLine guifg=fg guibg=#c0c0c0 gui=NONE + hi TabLineFill guifg=fg guibg=#c0c0c0 gui=NONE + hi TabLineSel guifg=fg guibg=NONE gui=NONE + hi CursorColumn guifg=NONE guibg=#f0b090 + hi CursorLine guifg=NONE guibg=NONE gui=underline + hi MatchParen guifg=NONE guibg=#c0e080 + endif + + " LIGHT COLOR DEFINE END + + " Vim 7 added stuffs + if v:version >= 700 + hi Ignore gui=NONE + + " the gui=undercurl guisp could only support in Vim 7 + if has('spell') + hi SpellBad gui=undercurl + hi SpellCap gui=undercurl + hi SpellRare gui=undercurl + hi SpellLocal gui=undercurl + endif + hi TabLine gui=underline + hi TabLineFill gui=underline + hi CursorLine gui=underline + endif + + " For reversed stuffs, clear the reversed prop and set the bold prop again + hi IncSearch gui=bold + hi StatusLine gui=bold + hi StatusLineNC gui=bold + hi VertSplit gui=bold + hi Visual gui=bold + + " Enable the bold property + hi Question gui=bold + hi DiffText gui=bold + hi Statement gui=bold + hi Type gui=bold + hi MoreMsg gui=bold + hi ModeMsg gui=bold + hi NonText gui=bold + hi Title gui=bold + hi DiffDelete gui=bold + hi TabLineSel gui=bold + + " gui define for background=light end here + + if &t_Co==256 + " 256color light terminal support here + + hi Normal ctermfg=16 ctermbg=254 cterm=NONE + " Comment/Uncomment the following line to disable/enable transparency + "hi Normal ctermfg=16 ctermbg=NONE cterm=NONE + hi Search ctermfg=NONE ctermbg=231 cterm=NONE + hi Visual ctermfg=NONE ctermbg=153 cterm=NONE + hi Cursor ctermfg=255 ctermbg=28 cterm=NONE + " hi CursorIM ctermfg=255 ctermbg=90 + hi Special ctermfg=94 ctermbg=NONE cterm=NONE + hi Comment ctermfg=58 ctermbg=NONE cterm=NONE + hi Number ctermfg=94 ctermbg=NONE cterm=NONE + hi Constant ctermfg=23 ctermbg=NONE cterm=NONE + hi StatusLine ctermfg=fg ctermbg=153 cterm=NONE + hi LineNr ctermfg=242 ctermbg=NONE cterm=NONE + hi Question ctermfg=fg ctermbg=186 cterm=NONE + hi PreProc ctermfg=29 ctermbg=NONE cterm=NONE + hi Statement ctermfg=25 ctermbg=NONE cterm=NONE + hi Type ctermfg=25 ctermbg=NONE cterm=NONE + hi Todo ctermfg=88 ctermbg=186 cterm=NONE + " NOTE THIS IS IN THE WARM SECTION + hi Error ctermfg=130 ctermbg=NONE cterm=NONE + hi Identifier ctermfg=133 ctermbg=NONE cterm=NONE + hi ModeMsg ctermfg=fg ctermbg=146 cterm=NONE + hi VisualNOS ctermfg=fg ctermbg=146 cterm=NONE + hi SpecialKey ctermfg=25 ctermbg=NONE cterm=NONE + hi NonText ctermfg=18 ctermbg=252 cterm=NONE + " Comment/Uncomment the following line to disable/enable transparency + "hi NonText ctermfg=18 ctermbg=NONE cterm=NONE + hi Directory ctermfg=133 ctermbg=NONE cterm=NONE + hi ErrorMsg ctermfg=fg ctermbg=216 cterm=NONE + hi MoreMsg ctermfg=64 ctermbg=NONE cterm=NONE + hi Title ctermfg=133 ctermbg=NONE cterm=NONE + hi WarningMsg ctermfg=124 ctermbg=NONE cterm=NONE + hi WildMenu ctermfg=fg ctermbg=186 cterm=NONE + hi Folded ctermfg=NONE ctermbg=151 cterm=NONE + hi FoldColumn ctermfg=fg ctermbg=114 cterm=NONE + hi DiffAdd ctermfg=NONE ctermbg=146 cterm=NONE + hi DiffChange ctermfg=NONE ctermbg=182 cterm=NONE + hi DiffDelete ctermfg=18 ctermbg=252 cterm=NONE + hi DiffText ctermfg=NONE ctermbg=150 cterm=NONE + hi SignColumn ctermfg=fg ctermbg=114 cterm=NONE + + hi IncSearch ctermfg=255 ctermbg=95 cterm=NONE + hi StatusLineNC ctermfg=fg ctermbg=250 cterm=NONE + hi VertSplit ctermfg=fg ctermbg=250 cterm=NONE + hi Underlined ctermfg=62 ctermbg=NONE cterm=underline + hi Ignore ctermfg=bg ctermbg=NONE + " NOTE THIS IS IN THE WARM SECTION + if v:version >= 700 + if has('spell') + if 0 + " ctermsp is not supported in Vim7, we ignore it. + hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=130 + hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=25 + hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=133 + hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=23 + else + hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=NONE + endif + endif + hi Pmenu ctermfg=fg ctermbg=182 + hi PmenuSel ctermfg=255 ctermbg=95 cterm=NONE + hi PmenuSbar ctermfg=fg ctermbg=250 cterm=NONE + hi PmenuThumb ctermfg=fg ctermbg=150 cterm=NONE + hi TabLine ctermfg=fg ctermbg=250 cterm=NONE + hi TabLineFill ctermfg=fg ctermbg=250 cterm=NONE + hi TabLineSel ctermfg=fg ctermbg=NONE cterm=NONE + hi CursorColumn ctermfg=NONE ctermbg=216 + hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline + hi MatchParen ctermfg=NONE ctermbg=150 + endif + + hi TabLine cterm=underline + hi TabLineFill cterm=underline + hi CursorLine cterm=underline + + " For reversed stuffs, clear the reversed prop and set the bold prop again + hi IncSearch cterm=bold + hi StatusLine cterm=bold + hi StatusLineNC cterm=bold + hi VertSplit cterm=bold + hi Visual cterm=bold + + hi NonText cterm=bold + hi Question cterm=bold + hi Title cterm=bold + hi DiffDelete cterm=bold + hi DiffText cterm=bold + hi Statement cterm=bold + hi Type cterm=bold + hi MoreMsg cterm=bold + hi ModeMsg cterm=bold + hi TabLineSel cterm=bold + + hi lCursor ctermfg=bg ctermbg=fg cterm=NONE + endif " t_Co==256 + " }}}2 +elseif &background=='dark' + " for background=dark {{{2 + " DARK COLOR DEFINE START + + hi Normal guifg=#d0d0d0 guibg=#202020 gui=NONE + hi Comment guifg=#d0d090 guibg=NONE gui=NONE + hi Constant guifg=#80c0e0 guibg=NONE gui=NONE + hi Number guifg=#e0c060 guibg=NONE gui=NONE + hi Identifier guifg=#f0c0f0 guibg=NONE gui=NONE + hi Statement guifg=#c0d8f8 guibg=NONE gui=NONE + hi PreProc guifg=#60f080 guibg=NONE gui=NONE + hi Type guifg=#b0d0f0 guibg=NONE gui=NONE + hi Special guifg=#e0c060 guibg=NONE gui=NONE + hi Error guifg=#f08060 guibg=NONE gui=NONE + hi Todo guifg=#800000 guibg=#d0d090 gui=NONE + hi Search guifg=NONE guibg=#800000 gui=NONE + hi Visual guifg=#000000 guibg=#a6caf0 gui=NONE + hi Cursor guifg=#000000 guibg=#00f000 gui=NONE + " NOTE THIS IS IN THE COOL SECTION + " hi CursorIM guifg=#000000 guibg=#f000f0 gui=NONE + hi StatusLine guifg=#000000 guibg=#a6caf0 gui=NONE + hi LineNr guifg=#b0b0b0 guibg=NONE gui=NONE + hi Question guifg=#000000 guibg=#d0d090 gui=NONE + hi ModeMsg guifg=fg guibg=#000080 gui=NONE + hi VisualNOS guifg=fg guibg=#000080 gui=NONE + hi SpecialKey guifg=#b0d0f0 guibg=NONE gui=NONE + hi NonText guifg=#6080f0 guibg=#101010 gui=NONE + hi Directory guifg=#80c0e0 guibg=NONE gui=NONE + hi ErrorMsg guifg=#d0d090 guibg=#800000 gui=NONE + hi MoreMsg guifg=#c0e080 guibg=NONE gui=NONE + hi Title guifg=#f0c0f0 guibg=NONE gui=NONE + hi WarningMsg guifg=#f08060 guibg=NONE gui=NONE + hi WildMenu guifg=#000000 guibg=#d0d090 gui=NONE + hi Folded guifg=NONE guibg=#004000 gui=NONE + hi FoldColumn guifg=#e0e0e0 guibg=#008000 gui=NONE + hi DiffAdd guifg=NONE guibg=#000080 gui=NONE + hi DiffChange guifg=NONE guibg=#800080 gui=NONE + hi DiffDelete guifg=#6080f0 guibg=#202020 gui=NONE + hi DiffText guifg=#000000 guibg=#c0e080 gui=NONE + hi SignColumn guifg=#e0e0e0 guibg=#008000 gui=NONE + hi IncSearch guifg=#000000 guibg=#d0d0d0 gui=NONE + hi StatusLineNC guifg=#000000 guibg=#c0c0c0 gui=NONE + hi VertSplit guifg=#000000 guibg=#c0c0c0 gui=NONE + hi Underlined guifg=#80a0ff guibg=NONE gui=underline + hi Ignore guifg=#000000 guibg=NONE + " NOTE THIS IS IN THE COOL SECTION + if v:version >= 700 + if has('spell') + " the guisp= could only support in Vim 7 + hi SpellBad guifg=NONE guibg=NONE guisp=#f08060 + hi SpellCap guifg=NONE guibg=NONE guisp=#6080f0 + hi SpellRare guifg=NONE guibg=NONE guisp=#f0c0f0 + hi SpellLocal guifg=NONE guibg=NONE guisp=#c0d8f8 + endif + hi Pmenu guifg=fg guibg=#800080 + hi PmenuSel guifg=#000000 guibg=#d0d0d0 gui=NONE + hi PmenuSbar guifg=fg guibg=#000080 gui=NONE + hi PmenuThumb guifg=fg guibg=#008000 gui=NONE + hi TabLine guifg=fg guibg=#008000 gui=NONE + hi TabLineFill guifg=fg guibg=#008000 gui=NONE + hi TabLineSel guifg=fg guibg=NONE gui=NONE + hi CursorColumn guifg=NONE guibg=#800000 gui=NONE + hi CursorLine guifg=NONE guibg=NONE gui=underline + hi MatchParen guifg=NONE guibg=#800080 + endif + + " DARK COLOR DEFINE END + + " Vim 7 added stuffs + if v:version >= 700 + hi Ignore gui=NONE + + " the gui=undercurl could only support in Vim 7 + if has('spell') + hi SpellBad gui=undercurl + hi SpellCap gui=undercurl + hi SpellRare gui=undercurl + hi SpellLocal gui=undercurl + endif + hi TabLine gui=underline + hi TabLineFill gui=underline + hi Underlined gui=underline + hi CursorLine gui=underline + endif + + " gui define for background=dark end here + + if &t_Co==8 || &t_Co==16 + " for 8-color and 16-color term + hi Normal ctermfg=LightGrey ctermbg=Black + hi Special ctermfg=Yellow ctermbg=bg + hi Comment ctermfg=DarkYellow ctermbg=bg + hi Constant ctermfg=Blue ctermbg=bg + hi Number ctermfg=Yellow ctermbg=bg + hi LineNr ctermfg=DarkGrey ctermbg=bg + hi PreProc ctermfg=Green ctermbg=bg + hi Statement ctermfg=Cyan ctermbg=bg + hi Type ctermfg=Cyan ctermbg=bg + hi Error ctermfg=Red ctermbg=bg + hi Identifier ctermfg=Magenta ctermbg=bg + hi SpecialKey ctermfg=Cyan ctermbg=bg + hi NonText ctermfg=Blue ctermbg=bg + hi Directory ctermfg=Blue ctermbg=bg + hi MoreMsg ctermfg=Green ctermbg=bg + hi Title ctermfg=Magenta ctermbg=bg + hi WarningMsg ctermfg=Red ctermbg=bg + hi DiffDelete ctermfg=Blue ctermbg=bg + + hi Search ctermfg=NONE ctermbg=DarkRed + hi Visual ctermfg=Black ctermbg=DarkCyan + hi Cursor ctermfg=Black ctermbg=Green + hi StatusLine ctermfg=Black ctermbg=DarkCyan + hi Question ctermfg=Black ctermbg=DarkYellow + hi Todo ctermfg=DarkRed ctermbg=DarkYellow + hi Folded ctermfg=White ctermbg=DarkGreen + hi ModeMsg ctermfg=Grey ctermbg=DarkBlue + hi VisualNOS ctermfg=Grey ctermbg=DarkBlue + hi ErrorMsg ctermfg=DarkYellow ctermbg=DarkRed + hi WildMenu ctermfg=Black ctermbg=DarkYellow + hi FoldColumn ctermfg=White ctermbg=DarkGreen + hi SignColumn ctermfg=White ctermbg=DarkGreen + hi DiffText ctermfg=Black ctermbg=DarkYellow + + if v:version >= 700 + if has('spell') + hi SpellBad ctermfg=NONE ctermbg=DarkRed + hi SpellCap ctermfg=NONE ctermbg=DarkBlue + hi SpellRare ctermfg=NONE ctermbg=DarkMagenta + hi SpellLocal ctermfg=NONE ctermbg=DarkGreen + endif + hi Pmenu ctermfg=fg ctermbg=DarkMagenta + hi PmenuSel ctermfg=Black ctermbg=fg + hi PmenuSbar ctermfg=fg ctermbg=DarkBlue + hi PmenuThumb ctermfg=fg ctermbg=DarkGreen + hi TabLine ctermfg=fg ctermbg=DarkGreen cterm=underline + hi TabLineFill ctermfg=fg ctermbg=DarkGreen cterm=underline + hi CursorColumn ctermfg=NONE ctermbg=DarkRed + + hi TabLineSel ctermfg=fg ctermbg=bg + hi CursorLine ctermfg=NONE ctermbg=bg cterm=underline + + hi MatchParen ctermfg=NONE ctermbg=DarkMagenta + endif + if &t_Co==8 + " 8 colour terminal support, this assumes 16 colour is available through + " setting the 'bold' attribute, will get bright foreground colour. + " However, the bright background color is not available for 8-color terms. + " + " You can manually set t_Co=16 in your .vimrc to see if your terminal + " supports 16 colours, + hi DiffText cterm=none + hi Visual cterm=none + hi Cursor cterm=none + hi Comment cterm=none + hi Todo cterm=none + hi StatusLine cterm=none + hi Question cterm=none + hi DiffChange cterm=none + hi ModeMsg cterm=none + hi VisualNOS cterm=none + hi ErrorMsg cterm=none + hi WildMenu cterm=none + hi DiffAdd cterm=none + hi Folded cterm=none + hi DiffDelete cterm=none + hi Normal cterm=none + hi PmenuThumb cterm=none + hi Search cterm=bold + hi Special cterm=bold + hi Constant cterm=bold + hi Number cterm=bold + hi LineNr cterm=bold + hi PreProc cterm=bold + hi Statement cterm=bold + hi Type cterm=bold + hi Error cterm=bold + hi Identifier cterm=bold + hi SpecialKey cterm=bold + hi NonText cterm=bold + hi MoreMsg cterm=bold + hi Title cterm=bold + hi WarningMsg cterm=bold + hi FoldColumn cterm=bold + hi SignColumn cterm=bold + hi Directory cterm=bold + hi DiffDelete cterm=bold + else + " Background > 7 is only available with 16 or more colors + + hi WarningMsg cterm=none + hi Search cterm=none + hi Visual cterm=none + hi Cursor cterm=none + hi Special cterm=none + hi Comment cterm=none + hi Constant cterm=none + hi Number cterm=none + hi LineNr cterm=none + hi PreProc cterm=none + hi Todo cterm=none + hi Error cterm=none + hi Identifier cterm=none + hi Folded cterm=none + hi SpecialKey cterm=none + hi Directory cterm=none + hi ErrorMsg cterm=none + hi Normal cterm=none + hi PmenuThumb cterm=none + hi WildMenu cterm=none + hi FoldColumn cterm=none + hi SignColumn cterm=none + hi DiffAdd cterm=none + hi DiffChange cterm=none + hi Question cterm=none + hi StatusLine cterm=none + hi DiffText cterm=none + hi IncSearch cterm=reverse + hi StatusLineNC cterm=reverse + hi VertSplit cterm=reverse + + " Well, well, bold font with color 0-7 is not possible. + " So, the Question, StatusLine, DiffText cannot act as expected. + + hi Statement cterm=none + hi Type cterm=none + hi MoreMsg cterm=none + hi ModeMsg cterm=none + hi NonText cterm=none + hi Title cterm=none + hi VisualNOS cterm=none + hi DiffDelete cterm=none + hi TabLineSel cterm=none + + endif + elseif &t_Co==256 + " 256color dark terminal support here + hi Normal ctermfg=252 ctermbg=234 cterm=NONE + " Comment/Uncomment the following line to disable/enable transparency + "hi Normal ctermfg=252 ctermbg=NONE cterm=NONE + hi Comment ctermfg=186 ctermbg=NONE cterm=NONE + hi Constant ctermfg=110 ctermbg=NONE cterm=NONE + hi Number ctermfg=179 ctermbg=NONE cterm=NONE + hi Identifier ctermfg=219 ctermbg=NONE cterm=NONE + hi Statement ctermfg=153 ctermbg=NONE cterm=NONE + hi PreProc ctermfg=84 ctermbg=NONE cterm=NONE + hi Type ctermfg=153 ctermbg=NONE cterm=NONE + hi Special ctermfg=179 ctermbg=NONE cterm=NONE + hi Error ctermfg=209 ctermbg=NONE cterm=NONE + hi Todo ctermfg=88 ctermbg=186 cterm=NONE + hi Search ctermfg=NONE ctermbg=88 cterm=NONE + hi Visual ctermfg=16 ctermbg=153 cterm=NONE + hi Cursor ctermfg=16 ctermbg=46 cterm=NONE + " NOTE THIS IS IN THE COOL SECTION + " hi CursorIM ctermfg=16 ctermbg=201 cterm=NONE + hi StatusLine ctermfg=16 ctermbg=153 cterm=NONE + hi LineNr ctermfg=249 ctermbg=NONE cterm=NONE + hi Question ctermfg=16 ctermbg=186 cterm=NONE + hi ModeMsg ctermfg=fg ctermbg=18 cterm=NONE + hi VisualNOS ctermfg=fg ctermbg=18 cterm=NONE + hi SpecialKey ctermfg=153 ctermbg=NONE cterm=NONE + hi NonText ctermfg=69 ctermbg=233 cterm=NONE + " Comment/Uncomment the following line to disable/enable transparency + "hi NonText ctermfg=69 ctermbg=NONE cterm=NONE + hi Directory ctermfg=110 ctermbg=NONE cterm=NONE + hi ErrorMsg ctermfg=186 ctermbg=88 cterm=NONE + hi MoreMsg ctermfg=150 ctermbg=NONE cterm=NONE + hi Title ctermfg=219 ctermbg=NONE cterm=NONE + hi WarningMsg ctermfg=209 ctermbg=NONE cterm=NONE + hi WildMenu ctermfg=16 ctermbg=186 cterm=NONE + hi Folded ctermfg=NONE ctermbg=22 cterm=NONE + hi FoldColumn ctermfg=254 ctermbg=28 cterm=NONE + hi DiffAdd ctermfg=NONE ctermbg=18 cterm=NONE + hi DiffChange ctermfg=NONE ctermbg=90 cterm=NONE + hi DiffDelete ctermfg=69 ctermbg=234 cterm=NONE + hi DiffText ctermfg=16 ctermbg=150 cterm=NONE + hi SignColumn ctermfg=254 ctermbg=28 cterm=NONE + hi IncSearch ctermfg=16 ctermbg=252 cterm=NONE + hi StatusLineNC ctermfg=16 ctermbg=250 cterm=NONE + hi VertSplit ctermfg=16 ctermbg=250 cterm=NONE + hi Underlined ctermfg=111 ctermbg=NONE cterm=underline + hi Ignore ctermfg=16 ctermbg=NONE + " NOTE THIS IS IN THE COOL SECTION + if v:version >= 700 + if has('spell') + " the ctermsp= is not supported in Vim 7 we simply ignored + if 0 + hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=209 + hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=69 + hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=219 + hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=153 + else + hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=NONE + endif + endif + hi Pmenu ctermfg=fg ctermbg=90 + hi PmenuSel ctermfg=16 ctermbg=252 cterm=NONE + hi PmenuSbar ctermfg=fg ctermbg=18 cterm=NONE + hi PmenuThumb ctermfg=fg ctermbg=28 cterm=NONE + hi TabLine ctermfg=fg ctermbg=28 cterm=NONE + hi TabLineFill ctermfg=fg ctermbg=28 cterm=NONE + hi TabLineSel ctermfg=fg ctermbg=NONE cterm=NONE + hi CursorColumn ctermfg=NONE ctermbg=88 cterm=NONE + hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline + hi MatchParen ctermfg=NONE ctermbg=90 + hi TabLine cterm=underline + hi TabLineFill cterm=underline + hi Underlined cterm=underline + hi CursorLine cterm=underline + endif + + endif " t_Co + + " }}}2 +endif + +" Links: +" +" COLOR LINKS DEFINE START + +hi link String Constant +" Character must be different from strings because in many languages +" (especially C, C++) a 'char' variable is scalar while 'string' is pointer, +" mistaken a 'char' for a 'string' will cause disaster! +hi link Character Number +hi link SpecialChar LineNr +hi link Tag Identifier +hi link cCppOut LineNr +" The following are not standard hi links, +" these are used by DrChip +hi link Warning MoreMsg +hi link Notice Constant +" these are used by Calendar +hi link CalToday PreProc +" these are used by TagList +hi link MyTagListTagName IncSearch +hi link MyTagListTagScope Constant + +" COLOR LINKS DEFINE END + +" vim:et:nosta:sw=2:ts=8: +" vim600:fdm=marker:fdl=1: diff --git a/vim/colors/potts.vim b/vim/colors/potts.vim new file mode 100644 index 0000000..79bc5e9 --- /dev/null +++ b/vim/colors/potts.vim @@ -0,0 +1,53 @@ +" -*- vim -*- +" FILE: "/home/dp/.vim/colors/potts2.vim" {{{ +" LAST MODIFICATION: "Fri, 08 Feb 2002 09:47:10 (dp)" +" (C) 2001 by Douglas L. Potts, +" $Id: potts2.vim,v 1.3 2002/02/18 20:25:27 dp Exp $ }}} + +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="potts2" + +highlight SpecialKey term=bold ctermfg=9 guifg=Cyan +highlight NonText term=bold ctermfg=9 gui=bold guifg=green +highlight Directory term=bold ctermfg=11 guifg=Cyan +highlight ErrorMsg term=standout ctermfg=15 ctermbg=4 guifg=White guibg=Red +highlight IncSearch term=reverse cterm=reverse gui=reverse +highlight Search term=reverse ctermfg=15 ctermbg=12 guifg=white guibg=Red +highlight MoreMsg term=bold ctermfg=10 gui=bold guifg=SeaGreen +highlight ModeMsg term=bold cterm=bold gui=bold +highlight LineNr term=underline ctermfg=14 guifg=Yellow +highlight Question term=standout ctermfg=10 gui=bold guifg=Green +highlight StatusLine term=bold,reverse cterm=bold,reverse gui=bold,reverse +highlight StatusLineNC term=reverse cterm=reverse gui=reverse +highlight VertSplit term=reverse cterm=reverse gui=reverse +highlight Title term=bold ctermfg=13 gui=bold guifg=Magenta +highlight Visual term=reverse cterm=reverse gui=reverse guifg=gray guibg=black +highlight VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline +highlight WarningMsg term=standout ctermfg=12 guifg=Red +highlight WildMenu term=standout ctermfg=0 ctermbg=14 guifg=Black guibg=Yellow +highlight Folded term=standout cterm=bold ctermfg=11 guifg=cyan guibg=bg +highlight FoldColumn term=standout cterm=bold ctermfg=11 guifg=cyan guibg=bg +highlight DiffAdd term=bold ctermfg=10 ctermbg=9 guifg=Green guibg=Black +highlight DiffChange term=bold ctermfg=15 ctermbg=9 guifg=White guibg=Blue +highlight DiffDelete term=bold ctermfg=13 ctermbg=11 gui=bold guifg=Magenta guibg=Black +highlight DiffText term=reverse cterm=bold ctermfg=15 ctermbg=12 gui=bold guifg=White guibg=Red +highlight Cursor guifg=bg guibg=fg +highlight lCursor guifg=bg guibg=fg +highlight Normal guifg=gray guibg=black font='6x13' +highlight Comment term=bold ctermfg=11 guifg=#80a0ff +highlight Constant term=underline ctermfg=13 guifg=#ffa0a0 +highlight Special term=bold ctermfg=12 guifg=Orange +highlight Identifier term=underline cterm=bold ctermfg=11 guifg=#40ffff +highlight Statement term=bold ctermfg=14 gui=bold guifg=#ffff60 +highlight PreProc term=underline ctermfg=9 guifg=#ff80ff +highlight Type term=underline ctermfg=10 gui=bold guifg=#60ff60 +highlight Underlined term=underline cterm=underline ctermfg=9 gui=underline guifg=#80a0ff +highlight Ignore ctermfg=0 guifg=bg +highlight Error term=reverse ctermfg=15 ctermbg=12 guifg=White guibg=Red +highlight Todo term=standout ctermfg=0 ctermbg=14 guifg=Blue guibg=Yellow +highlight DebugBreak ctermfg=15 ctermbg=4 guifg=white guibg=darkred +highlight DebugStop ctermfg=15 ctermbg=10 guifg=white guibg=lightgreen diff --git a/vim/colors/print_bw.vim b/vim/colors/print_bw.vim new file mode 100644 index 0000000..7a4f5e1 --- /dev/null +++ b/vim/colors/print_bw.vim @@ -0,0 +1,65 @@ +" Vim color file +" Maintainer: Mike Williams +" Last Change: 2nd June 2003 +" Version: 1.1 + +" Remove all existing highlighting. +set background=light + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "print_bw" + +highlight Normal cterm=NONE ctermfg=black ctermbg=white gui=NONE guifg=black guibg=white +highlight NonText ctermfg=black ctermbg=white guifg=black guibg=white +highlight LineNr cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white + +" Syntax highlighting scheme +highlight Comment cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white + +highlight Constant ctermfg=black ctermbg=white guifg=black guibg=white +highlight String ctermfg=black ctermbg=white guifg=black guibg=white +highlight Character ctermfg=black ctermbg=white guifg=black guibg=white +highlight Number ctermfg=black ctermbg=white guifg=black guibg=white +" Boolean defaults to Constant +highlight Float ctermfg=black ctermbg=white guifg=black guibg=white + +highlight Identifier ctermfg=black ctermbg=white guifg=black guibg=white +highlight Function ctermfg=black ctermbg=white guifg=black guibg=white + +highlight Statement ctermfg=black ctermbg=white guifg=black guibg=white +highlight Conditional ctermfg=black ctermbg=white guifg=black guibg=white +highlight Repeat ctermfg=black ctermbg=white guifg=black guibg=white +highlight Label ctermfg=black ctermbg=white guifg=black guibg=white +highlight Operator ctermfg=black ctermbg=white guifg=black guibg=white +" Keyword defaults to Statement +" Exception defaults to Statement + +highlight PreProc cterm=bold ctermfg=black ctermbg=white gui=bold guifg=black guibg=white +" Include defaults to PreProc +" Define defaults to PreProc +" Macro defaults to PreProc +" PreCondit defaults to PreProc + +highlight Type cterm=bold ctermfg=black ctermbg=white gui=bold guifg=black guibg=white +" StorageClass defaults to Type +" Structure defaults to Type +" Typedef defaults to Type + +highlight Special cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white +" SpecialChar defaults to Special +" Tag defaults to Special +" Delimiter defaults to Special +highlight SpecialComment cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white +" Debug defaults to Special + +highlight Todo cterm=italic,bold ctermfg=black ctermbg=white gui=italic,bold guifg=black guibg=white +" Ideally, the bg color would be white but VIM cannot print white on black! +highlight Error cterm=bold,reverse ctermfg=black ctermbg=grey gui=bold,reverse guifg=black guibg=grey + +" vim:et:ff=unix:tw=0:ts=4:sw=4 +" EOF print_bw.vim diff --git a/vim/colors/professional.vim b/vim/colors/professional.vim new file mode 100644 index 0000000..58702b9 --- /dev/null +++ b/vim/colors/professional.vim @@ -0,0 +1,62 @@ +" Vim color file +" Maintainer: iyerns +" +" Comments are welcome ! +" Spammers will be shot. Survivors will be shot again +" +" Last Change: 10 Sep 2005 +" Version:1.4 +" Changes:Changed background color for better tone +" Comment: Atlast, a professional colorscheme for Vim +" Released by popular demand. in case other highlighting +" terms are to be included, please feel free to add those +" and send me your updated .vim file :) to be included in +" the next version.If there are enough requests, I will +" release a cterm version also. +" Recolored comments and Statement +" Uses only safe HTML colors +" + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="professional" + +hi Normal guifg=black guibg=#ffffdd +hi Statusline gui=none guibg=#006666 guifg=#ffffff +hi VertSplit gui=none guibg=#006666 guifg=#ffffff +hi StatuslineNC gui=none guibg=#666633 guifg=#ffffff + +hi Title guifg=black guibg=white gui=BOLD +hi lCursor guibg=Cyan guifg=NONE +hi LineNr guifg=white guibg=#006666 +"guibg=#8c9bfa + +" syntax highlighting groups +hi Comment gui=NONE guifg=SteelBlue +hi Operator guifg=#ff0000 + +hi Identifier guifg=#339900 gui=NONE + +hi Statement guifg=orange gui=NONE +hi TypeDef guifg=#c000c8 gui=NONE +hi Type guifg=#0000c8 gui=NONE +hi Boolean guifg=#0000aa gui=NONE + +hi String guifg=#006600 gui=NONE +hi Number guifg=#9933ff gui=NONE +hi Constant guifg=#ff8080 gui=NONE + +hi Function gui=NONE guifg=#6600ff +hi PreProc guifg=#993300 gui=NONE +hi Define gui=bold guifg=#ff0000 + +hi Keyword guifg=#ff8088 gui=NONE +hi Search gui=NONE guibg=#ffff00 +"guibg=#339900 +hi IncSearch gui=NONE guifg=#ffff00 guibg=#990000 +hi Conditional gui=none guifg=#660000 guibg=#ffffff +hi browseDirectory gui=none guifg=#660000 guibg=#ffffff + diff --git a/vim/colors/ps_color.vim b/vim/colors/ps_color.vim new file mode 100644 index 0000000..df8c39a --- /dev/null +++ b/vim/colors/ps_color.vim @@ -0,0 +1,538 @@ +" Vim colour file --- PSC +" Maintainer: Pan, Shi Zhu +" URL: http://vim.sourceforge.net/scripts/script.php?script_id=760 +" Last Change: 23 Oct 2006 +" Version: 3.00 +" +" Please prepend [VIM] in the title when writing e-mail to me, or it will +" be automatically treated as spam and removed. +" +" See the help document for all details, the help document will be +" installed after the script has been sourced once, do not open the +" script when you source it for the first time. +" + +" Initializations: {{{1 +" + +" without user_commands, all these are not possible +if !has("user_commands") + finish +end + +" Init the option to the default value if not defined by user. +function! s:init_option(var, value) + if !exists("g:psc_".a:var) + execute "let s:".a:var." = ".a:value + else + let s:{a:var} = g:psc_{a:var} + endif +endfunction +command! -nargs=+ InitOpt call s:init_option() + +" give highlight setting to multiple highlight groups, maximum 20 +function! s:multi_hi(setting, ...) + let l:idx = a:0 + while l:idx > 0 + let l:hlgroup = a:{l:idx} + execute "highlight ".l:hlgroup." ".a:setting + let l:idx = l:idx - 1 + endwhile +endfunction +command! -nargs=+ MultiHi call s:multi_hi() + +InitOpt style 'cool' +InitOpt cterm_transparent 0 +InitOpt inversed_todo 0 +InitOpt use_default_for_cterm 0 +InitOpt statement_different_from_type 0 + +if !has("gui_running") + call s:init_option("cterm_style", "'".s:style."'") + + if s:use_default_for_cterm==1 | let s:cterm_style = 'default' + elseif s:use_default_for_cterm==2 | let s:cterm_style = 'defdark' + endif +endif + + +InitOpt other_style 0 + +" WJMc had changed a version of this, however, it will messed up some features +" when the psc_style being other values than 'warm' and 'cool'. The psc_style +" is designed to accept any colorscheme name, such as 'desert'. The following +" code follows the basic principle of WJMc's code. +if &background=='light' + if has("gui_running") + if s:style=='warm' || s:style=='default' + " nothing to do + elseif s:style=='cool' + let s:style = 'warm' + elseif s:style=='defdark' + let s:style = 'default' + else + let s:other_style = 1 + endif + else + if s:cterm_style=='cool' || s:cterm_style=='defdark' || s:cterm_style=='warm' + let s:cterm_style='default' + elseif s:cterm_style=='default' + " nothing to do + else + let s:other_style = 1 + endif + endif +elseif &background=='dark' + if s:style=='warm' + let s:style = 'cool' + elseif s:style=='default' + let s:style = 'defdark' + elseif s:style=='cool' || s:style=='defdark' + " nothing to do + else + let s:other_style = 1 + endif + let s:cterm_style = s:style +else + echo "unrecognized background=" &background ", ps_color halt.\n" + finish +endif + +" This should be after the style mangling +if s:style == 'warm' + InitOpt fontface 'mixed' +else + InitOpt fontface 'plain' +endif + + +" === Traditional Color Scheme script starts here. === +highlight clear + +if exists("syntax_on") + syntax reset +endif + +let s:color_name = expand(":t:r") + +if s:other_style==0 + let g:colors_name = s:color_name + " Go from console version to gui, the color scheme should be sourced again + execute "autocmd TermChanged * if g:colors_name == '".s:color_name."' | " + \."colo ".s:color_name." | endif" +else + execute "runtime colors/".s:style.".vim" +endif + +" Command to go different schemes easier. +" This is a multi-purpose command, might be a poor design. +" WJMc had a change for this, but the 'reloaded' style and other colorscheme +" cannot be launched that way. +execute "command! -nargs=1 Colo if '".s:color_name."'!=\"\" |". + \'let g:psc_style = ""| endif |'. + \'if g:psc_style=="warm" | set background=light | endif |'. + \'if g:psc_style=="cool" | set background=dark | endif |'. + \'colo '.s:color_name + +" Give control to 'reloaded' scheme if possible +if s:style == 'reloaded' + finish +endif + +" }}}1 + +" Relevant Help: +" :h highlight-groups +" :h psc-cterm-color-table +" :ru syntax/hitest.vim +" +" Hard coded Colors Comment: +" #aabbcc = Red aa, Green bb, Blue cc +" we must use hard-coded colours to get more 'tender' colours +" + + +" GUI: +" +" I don't want to abuse folding, but here folding is used to avoid confusion. +if s:style=='warm' + " Warm style for gui here {{{2 + " LIGHT COLOR DEFINE START + + highlight Normal guifg=#000000 guibg=#e0e0e0 + highlight Search guifg=NONE guibg=#f8f8f8 + highlight Visual guifg=NONE guibg=#a6caf0 + highlight Cursor guifg=#f0f0f0 guibg=#008000 + " The idea of CursorIM is pretty good, however, the feature is still buggy + " in the current version (Vim 7.0). + " The following line will be kept commented until the bug fixed. + " + " highlight CursorIM guifg=#f0f0f0 guibg=#800080 + highlight Special guifg=#907000 guibg=NONE + highlight Comment guifg=#606000 guibg=NONE + highlight Number guifg=#907000 guibg=NONE + highlight Constant guifg=#007068 guibg=NONE + highlight StatusLine guifg=fg guibg=#a6caf0 + highlight LineNr guifg=#686868 guibg=NONE + highlight Question guifg=fg guibg=#d0d090 + highlight PreProc guifg=#009030 guibg=NONE + if s:statement_different_from_type==1 + highlight Statement guifg=#4020a0 guibg=NONE + else + highlight Statement guifg=#2060a8 guibg=NONE + endif + highlight Type guifg=#0850a0 guibg=NONE + if s:inversed_todo==1 + highlight Todo guifg=#e0e090 guibg=#000080 + else + highlight Todo guifg=#800000 guibg=#e0e090 + endif + " NOTE THIS IS IN THE WARM SECTION + highlight Error guifg=#c03000 guibg=NONE + highlight Identifier guifg=#a030a0 guibg=NONE + highlight ModeMsg guifg=fg guibg=#b0b0e0 + highlight VisualNOS guifg=fg guibg=#b0b0e0 + highlight SpecialKey guifg=#1050a0 guibg=NONE + highlight NonText guifg=#002090 guibg=#d0d0d0 + highlight Directory guifg=#a030a0 guibg=NONE + highlight ErrorMsg guifg=fg guibg=#f0b090 + highlight MoreMsg guifg=#489000 guibg=NONE + highlight Title guifg=#a030a0 guibg=NONE + highlight WarningMsg guifg=#b02000 guibg=NONE + highlight WildMenu guifg=fg guibg=#d0d090 + highlight Folded guifg=NONE guibg=#b0e0b0 + highlight FoldColumn guifg=fg guibg=#90e090 + highlight DiffAdd guifg=NONE guibg=#b0b0e0 + highlight DiffChange guifg=NONE guibg=#e0b0e0 + highlight DiffDelete guifg=#002090 guibg=#d0d0d0 + highlight DiffText guifg=NONE guibg=#c0e080 + highlight SignColumn guifg=fg guibg=#90e090 + highlight IncSearch guifg=#f0f0f0 guibg=#806060 + highlight StatusLineNC guifg=fg guibg=#c0c0c0 + highlight VertSplit guifg=fg guibg=#c0c0c0 + highlight Underlined guifg=#6a5acd guibg=NONE gui=underline + highlight Ignore guifg=bg guibg=NONE + " NOTE THIS IS IN THE WARM SECTION + if v:version >= 700 + if has('spell') + highlight SpellBad guifg=NONE guibg=NONE guisp=#c03000 + highlight SpellCap guifg=NONE guibg=NONE guisp=#2060a8 + highlight SpellRare guifg=NONE guibg=NONE guisp=#a030a0 + highlight SpellLocal guifg=NONE guibg=NONE guisp=#007068 + endif + highlight Pmenu guifg=fg guibg=#e0b0e0 + highlight PmenuSel guifg=#f0f0f0 guibg=#806060 + highlight PmenuSbar guifg=fg guibg=#c0c0c0 + highlight PmenuThumb guifg=fg guibg=#c0e080 + highlight TabLine guifg=fg guibg=#c0c0c0 gui=underline + highlight TabLineFill guifg=fg guibg=#c0c0c0 gui=underline + highlight TabLineSel guifg=fg guibg=NONE + highlight CursorColumn guifg=NONE guibg=#f0b090 + highlight CursorLine guifg=NONE guibg=NONE gui=underline + highlight MatchParen guifg=NONE guibg=#c0e080 + endif + + " LIGHT COLOR DEFINE END + " }}}2 +elseif s:style=='cool' + " Cool style for gui here {{{2 + " DARK COLOR DEFINE START + + highlight Normal guifg=#d0d0d0 guibg=#202020 + highlight Comment guifg=#d0d090 guibg=NONE + highlight Constant guifg=#80c0e0 guibg=NONE + highlight Number guifg=#e0c060 guibg=NONE + highlight Identifier guifg=#f0c0f0 guibg=NONE + if s:statement_different_from_type==1 + highlight Statement guifg=#98a8f0 guibg=NONE + else + highlight Statement guifg=#c0d8f8 guibg=NONE + endif + highlight PreProc guifg=#60f080 guibg=NONE + highlight Type guifg=#b0d0f0 guibg=NONE + highlight Special guifg=#e0c060 guibg=NONE + highlight Error guifg=#f08060 guibg=NONE + if s:inversed_todo==1 + highlight Todo guifg=#d0d090 guibg=#000080 + else + highlight Todo guifg=#800000 guibg=#d0d090 + endif + highlight Search guifg=NONE guibg=#800000 + highlight Visual guifg=#000000 guibg=#a6caf0 + highlight Cursor guifg=#000000 guibg=#00f000 + " NOTE THIS IS IN THE COOL SECTION + " highlight CursorIM guifg=#000000 guibg=#f000f0 + highlight StatusLine guifg=#000000 guibg=#a6caf0 + highlight LineNr guifg=#b0b0b0 guibg=NONE + highlight Question guifg=#000000 guibg=#d0d090 + highlight ModeMsg guifg=fg guibg=#000080 + highlight VisualNOS guifg=fg guibg=#000080 + highlight SpecialKey guifg=#b0d0f0 guibg=NONE + highlight NonText guifg=#6080f0 guibg=#101010 + highlight Directory guifg=#80c0e0 guibg=NONE + highlight ErrorMsg guifg=#d0d090 guibg=#800000 + highlight MoreMsg guifg=#c0e080 guibg=NONE + highlight Title guifg=#f0c0f0 guibg=NONE + highlight WarningMsg guifg=#f08060 guibg=NONE + highlight WildMenu guifg=#000000 guibg=#d0d090 + highlight Folded guifg=NONE guibg=#004000 + highlight FoldColumn guifg=#e0e0e0 guibg=#008000 + highlight DiffAdd guifg=NONE guibg=#000080 + highlight DiffChange guifg=NONE guibg=#800080 + highlight DiffDelete guifg=#6080f0 guibg=#202020 + highlight DiffText guifg=#000000 guibg=#c0e080 + highlight SignColumn guifg=#e0e0e0 guibg=#008000 + highlight IncSearch guifg=#000000 guibg=#d0d0d0 + highlight StatusLineNC guifg=#000000 guibg=#c0c0c0 + highlight VertSplit guifg=#000000 guibg=#c0c0c0 + highlight Underlined guifg=#80a0ff guibg=NONE gui=underline + highlight Ignore guifg=#000000 guibg=NONE + " NOTE THIS IS IN THE COOL SECTION + if v:version >= 700 + if has('spell') + highlight SpellBad guifg=NONE guibg=NONE guisp=#f08060 + highlight SpellCap guifg=NONE guibg=NONE guisp=#6080f0 + highlight SpellRare guifg=NONE guibg=NONE guisp=#f0c0f0 + highlight SpellLocal guifg=NONE guibg=NONE guisp=#c0d8f8 + endif + highlight Pmenu guifg=fg guibg=#800080 + highlight PmenuSel guifg=#000000 guibg=#d0d0d0 + highlight PmenuSbar guifg=fg guibg=#000080 + highlight PmenuThumb guifg=fg guibg=#008000 + highlight TabLine guifg=fg guibg=#008000 gui=underline + highlight TabLineFill guifg=fg guibg=#008000 gui=underline + highlight TabLineSel guifg=fg guibg=NONE + highlight CursorColumn guifg=NONE guibg=#800000 + highlight CursorLine guifg=NONE guibg=NONE gui=underline + highlight MatchParen guifg=NONE guibg=#800080 + endif + + " DARK COLOR DEFINE END + " }}}2 +elseif s:style=='defdark' + highlight Normal guifg=#f0f0f0 guibg=#000000 +endif + +" Take NT gui for example, If you want to use a console font such as +" Lucida_Console with font size larger than 14, the font looks already thick, +" and the bold font for that will be too thick, you may not want it be bold. +" The following code does this. +" +" All of the bold font may be disabled, since continuously switching between +" bold and plain font hurts consistency and will inevitably fatigue your eye! + +" Maximum 20 parameters for vim script function +" +MultiHi gui=NONE ModeMsg Search Cursor Special Comment Constant Number LineNr Question PreProc Statement Type Todo Error Identifier Normal + +MultiHi gui=NONE VisualNOS SpecialKey NonText Directory ErrorMsg MoreMsg Title WarningMsg WildMenu Folded FoldColumn DiffAdd DiffChange DiffDelete DiffText SignColumn + +" Vim 7 added stuffs +if v:version >= 700 + MultiHi gui=NONE Ignore PmenuSel PmenuSel PmenuSbar PmenuThumb TabLine TabLineFill TabLineSel + + " the gui=undercurl guisp could only support in Vim 7 + if has('spell') + MultiHi gui=undercurl SpellBad SpellCap SpellRare SpellLocal + endif + if s:style=="cool" || s:style=="warm" + MultiHi gui=underline TabLine TabLineFill Underlined CursorLine + else + MultiHi gui=underline TabLine Underlined + endif +endif + +" For reversed stuffs +MultiHi gui=NONE IncSearch StatusLine StatusLineNC VertSplit Visual + +if s:style=="cool" || s:style=="warm" + if s:fontface=="mixed" + MultiHi gui=bold IncSearch StatusLine StatusLineNC VertSplit Visual + endif +else + if s:fontface=="mixed" + hi StatusLine gui=bold,reverse + else + hi StatusLine gui=reverse + endif + MultiHi gui=reverse IncSearch StatusLineNC VertSplit Visual +endif + +" Enable the bold style +if s:fontface=="mixed" + MultiHi gui=bold Question DiffText Statement Type MoreMsg ModeMsg NonText Title VisualNOS DiffDelete TabLineSel +endif + + + + +" Color Term: + +" It's not quite possible to support 'cool' and 'warm' simultaneously, since +" we cannot expect a terminal to have more than 16 color names. +" + +" I assume Vim will never go to cterm mode when has("gui_running") returns 1, +" Please enlighten me if I am wrong. +" +if !has('gui_running') + " cterm settings {{{1 + if s:cterm_style=='cool' + + if s:cterm_transparent + highlight Normal ctermfg=LightGrey ctermbg=NONE + highlight Special ctermfg=Yellow ctermbg=NONE + highlight Comment ctermfg=DarkYellow ctermbg=NONE + highlight Constant ctermfg=Blue ctermbg=NONE + highlight Number ctermfg=Yellow ctermbg=NONE + highlight LineNr ctermfg=DarkGrey ctermbg=NONE + highlight PreProc ctermfg=Green ctermbg=NONE + highlight Statement ctermfg=Cyan ctermbg=NONE + highlight Type ctermfg=Cyan ctermbg=NONE + highlight Error ctermfg=Red ctermbg=NONE + highlight Identifier ctermfg=Magenta ctermbg=NONE + highlight SpecialKey ctermfg=Cyan ctermbg=NONE + highlight NonText ctermfg=Blue ctermbg=NONE + highlight Directory ctermfg=Blue ctermbg=NONE + highlight MoreMsg ctermfg=Green ctermbg=NONE + highlight Title ctermfg=Magenta ctermbg=NONE + highlight WarningMsg ctermfg=Red ctermbg=NONE + highlight DiffDelete ctermfg=Blue ctermbg=NONE + else + highlight Normal ctermfg=LightGrey ctermbg=Black + highlight Special ctermfg=Yellow ctermbg=bg + highlight Comment ctermfg=DarkYellow ctermbg=bg + highlight Constant ctermfg=Blue ctermbg=bg + highlight Number ctermfg=Yellow ctermbg=bg + highlight LineNr ctermfg=DarkGrey ctermbg=bg + highlight PreProc ctermfg=Green ctermbg=bg + highlight Statement ctermfg=Cyan ctermbg=bg + highlight Type ctermfg=Cyan ctermbg=bg + highlight Error ctermfg=Red ctermbg=bg + highlight Identifier ctermfg=Magenta ctermbg=bg + highlight SpecialKey ctermfg=Cyan ctermbg=bg + highlight NonText ctermfg=Blue ctermbg=bg + highlight Directory ctermfg=Blue ctermbg=bg + highlight MoreMsg ctermfg=Green ctermbg=bg + highlight Title ctermfg=Magenta ctermbg=bg + highlight WarningMsg ctermfg=Red ctermbg=bg + highlight DiffDelete ctermfg=Blue ctermbg=bg + endif + highlight Search ctermfg=NONE ctermbg=DarkRed + highlight Visual ctermfg=Black ctermbg=DarkCyan + highlight Cursor ctermfg=Black ctermbg=Green + highlight StatusLine ctermfg=Black ctermbg=DarkCyan + highlight Question ctermfg=Black ctermbg=DarkYellow + if s:inversed_todo==0 + highlight Todo ctermfg=DarkRed ctermbg=DarkYellow + else + highlight Todo ctermfg=DarkYellow ctermbg=DarkBlue + endif + highlight Folded ctermfg=White ctermbg=DarkGreen + highlight ModeMsg ctermfg=Grey ctermbg=DarkBlue + highlight VisualNOS ctermfg=Grey ctermbg=DarkBlue + highlight ErrorMsg ctermfg=DarkYellow ctermbg=DarkRed + highlight WildMenu ctermfg=Black ctermbg=DarkYellow + highlight FoldColumn ctermfg=White ctermbg=DarkGreen + highlight SignColumn ctermfg=White ctermbg=DarkGreen + highlight DiffText ctermfg=Black ctermbg=DarkYellow + + if v:version >= 700 + if has('spell') + highlight SpellBad ctermfg=NONE ctermbg=DarkRed + highlight SpellCap ctermfg=NONE ctermbg=DarkBlue + highlight SpellRare ctermfg=NONE ctermbg=DarkMagenta + highlight SpellLocal ctermfg=NONE ctermbg=DarkGreen + endif + highlight Pmenu ctermfg=fg ctermbg=DarkMagenta + highlight PmenuSel ctermfg=Black ctermbg=fg + highlight PmenuSbar ctermfg=fg ctermbg=DarkBlue + highlight PmenuThumb ctermfg=fg ctermbg=DarkGreen + highlight TabLine ctermfg=fg ctermbg=DarkGreen cterm=underline + highlight TabLineFill ctermfg=fg ctermbg=DarkGreen cterm=underline + highlight CursorColumn ctermfg=NONE ctermbg=DarkRed + if s:cterm_transparent + highlight TabLineSel ctermfg=fg ctermbg=NONE + highlight CursorLine ctermfg=NONE ctermbg=NONE cterm=underline + else + highlight TabLineSel ctermfg=fg ctermbg=bg + highlight CursorLine ctermfg=NONE ctermbg=bg cterm=underline + endif + highlight MatchParen ctermfg=NONE ctermbg=DarkMagenta + endif + if &t_Co==8 + " 8 colour terminal support, this assumes 16 colour is available through + " setting the 'bold' attribute, will get bright foreground colour. + " However, the bright background color is not available for 8-color terms. + " + " You can manually set t_Co=16 in your .vimrc to see if your terminal + " supports 16 colours, + MultiHi cterm=none DiffText Visual Cursor Comment Todo StatusLine Question DiffChange ModeMsg VisualNOS ErrorMsg WildMenu DiffAdd Folded DiffDelete Normal PmenuThumb + MultiHi cterm=bold Search Special Constant Number LineNr PreProc Statement Type Error Identifier SpecialKey NonText MoreMsg Title WarningMsg FoldColumn SignColumn Directory DiffDelete + + else + " Background > 7 is only available with 16 or more colors + + " Only use the s:fontface option when there is 16-colour(or more) + " terminal support + + MultiHi cterm=none WarningMsg Search Visual Cursor Special Comment Constant Number LineNr PreProc Todo Error Identifier Folded SpecialKey Directory ErrorMsg Normal PmenuThumb + MultiHi cterm=none WildMenu FoldColumn SignColumn DiffAdd DiffChange Question StatusLine DiffText + MultiHi cterm=reverse IncSearch StatusLineNC VertSplit + + " Well, well, bold font with color 0-7 is not possible. + " So, the Question, StatusLine, DiffText cannot act as expected. + + call s:multi_hi("cterm=".((s:fontface=="plain") ? "none" : "bold"), "Statement", "Type", "MoreMsg", "ModeMsg", "NonText", "Title", "VisualNOS", "DiffDelete", "TabLineSel") + + endif + + elseif s:cterm_style=='defdark' + highlight Normal ctermfg=LightGrey ctermbg=NONE + endif + " }}}1 +endif + + +" Term: +" For console with only 4 colours (term, not cterm), we'll use the default. +" ... +" The default colorscheme is good enough for terms with no more than 4 colours +" + + +" Links: +" +if (s:style=='cool') || (s:style == 'warm') + " COLOR LINKS DEFINE START + + highlight link String Constant + " Character must be different from strings because in many languages + " (especially C, C++) a 'char' variable is scalar while 'string' is pointer, + " mistaken a 'char' for a 'string' will cause disaster! + highlight link Character Number + highlight link SpecialChar LineNr + highlight link Tag Identifier + " The following are not standard hi links, + " these are used by DrChip + highlight link Warning MoreMsg + highlight link Notice Constant + " these are used by Calendar + highlight link CalToday PreProc + " these are used by TagList + highlight link MyTagListTagName IncSearch + highlight link MyTagListTagScope Constant + + " COLOR LINKS DEFINE END +endif + + +" Clean: +" these clean stuffs are proved to have problem, so I removed them. +delcommand InitOpt +delcommand MultiHi +" delfunction init_option +" delfunction multi_hi + +" vim:et:nosta:sw=2:ts=8: +" vim600:fdm=marker:fdl=1: diff --git a/vim/colors/psql.vim b/vim/colors/psql.vim new file mode 100644 index 0000000..f01fe06 --- /dev/null +++ b/vim/colors/psql.vim @@ -0,0 +1,1182 @@ +" Vim syntax file +" Language: SQL, PLPGSQL (PostgreSQL) +" Maintainer: Devdas Bhagat +" Derived from the syntax file for plsql maintained by +" Paul Moore +" Last Change: 2004 April 17 +" Version: 0.04 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn case ignore + +" The SQL reserved words, defined as keywords. + +syn keyword psqlSpecial false null true + +syn keyword psqlKeyword access add as asc begin by case check cluster column +syn keyword psqlKeyword compress connect current cursor decimal default desc +syn keyword psqlKeyword else elsif end exception exclusive file for from +syn keyword psqlKeyword function group having identified if immediate increment +syn keyword psqlKeyword index initial into is level loop maxextents mode modify +syn keyword psqlKeyword nocompress nowait of offline on online start +syn keyword psqlKeyword successful synonym table then to trigger uid +syn keyword psqlKeyword unique user validate values view whenever +syn keyword psqlKeyword where with option order privileges procedural +syn keyword psqlKeyword public resource return row rowlabel rownum rows +syn keyword psqlKeyword session share size type using close open +syn keyword psqlKeyword declare constraint join temporary sequence +syn keyword psqlKeyword inner outer cross natural full left right +syn keyword psqlKeyword language handler trusted untrusted validator + +syn keyword psqlOperator not and or primary key +syn keyword psqlOperator in any some all between exists +syn keyword psqlOperator ilike like escape cast +syn keyword psqlOperator union intersect minus +syn keyword psqlOperator prior distinct references + +syn match psqlOperator "\(+\|%\|-\|=\|\/\|!\|!!\|!!=\|!\~\|!\~\*\)" +syn match psqlOperator "\(!\~\~\|!\~\~\*\|#\|##\|#<\|#<>\|?||\)" +syn match psqlOperator "\(#<=\|#=\|#>\|#>=\|&\|&&\|&<\|&>\|?|\)" +syn match psqlOperator "\(\*\|>\|<\|<=\|>=\|<->\|<<\|>>\|?-|\)" +syn match psqlOperator "\(<<=\|<>\|<^\|>^\|>>=\|?#\|?-\|@\)" +syn match psqlOperator "\(@@\|@-@\|^\||\|||\|||\/\|\~\|\~\*\)" +syn match psqlOperator "\(\~=\|\~\~\|\~\~\*\|:=\)" + +syn keyword psqlStatement alter analyze audit comment commit create +syn keyword psqlStatement delete drop execute explain grant insert lock +syn keyword psqlStatement rename revoke rollback savepoint select set +syn keyword psqlStatement truncate update analyze vacuum replace + +syn keyword psqlType boolean char character date float integer long +syn keyword psqlType mlslabel number raw rowid varchar varchar2 varray +syn keyword psqlType int int4 int8 float4 float8 line interval lseq +syn keyword psqlType smallint bigint serial bigserial inet cidr macaddr +syn keyword psqlType bit varbit bool box bytea circle numeric decimal +syn keyword psqlType path point polygon text time timetz timestamp +syn keyword psqlType timestamptz real name int2vector regproc +syn keyword psqlType oid tid xid cid oidvector smgr lseg double +syn keyword psqlType abstime reltime tinterval aclitem void opaque +syn keyword psqlType refcursor regprocedure regoper regoperator regclass +syn keyword psqlType regtype record cstring anyarray array +syn keyword psqlType language_handler + +syn keyword psqlAggregate avg count max min stddev sum variance + +" Strings and characters: +syn region psqlString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn region psqlString start=+'+ skip=+\\\\\|\\'+ end=+'+ + +" Numbers: +syn match psqlNumber "-\=\<\d*\.\=[0-9_]\>" + +" Comments: +syn region psqlComment start="/\*" end="\*/" +syn match psqlComment "--.*" + +syn sync ccomment psqlComment + +syn region psqlFunction start="abbrev(" end=")" contains=ALL +syn region psqlFunction start="abs(" end=")" contains=ALL +syn region psqlFunction start="abstime(" end=")" contains=ALL +syn region psqlFunction start="abstimeeq(" end=")" contains=ALL +syn region psqlFunction start="abstimege(" end=")" contains=ALL +syn region psqlFunction start="abstimegt(" end=")" contains=ALL +syn region psqlFunction start="abstimele(" end=")" contains=ALL +syn region psqlFunction start="abstimelt(" end=")" contains=ALL +syn region psqlFunction start="abstimene(" end=")" contains=ALL +syn region psqlFunction start="aclcontains(" end=")" contains=ALL +syn region psqlFunction start="aclinsert(" end=")" contains=ALL +syn region psqlFunction start="aclremove(" end=")" contains=ALL +syn region psqlFunction start="acos(" end=")" contains=ALL +syn region psqlFunction start="age(" end=")" contains=ALL +syn region psqlFunction start="alt_to_iso(" end=")" contains=ALL +syn region psqlFunction start="alt_to_koi8r(" end=")" contains=ALL +syn region psqlFunction start="alt_to_mic(" end=")" contains=ALL +syn region psqlFunction start="alt_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="alt_to_win1251(" end=")" contains=ALL +syn region psqlFunction start="area(" end=")" contains=ALL +syn region psqlFunction start="areajoinsel(" end=")" contains=ALL +syn region psqlFunction start="areasel(" end=")" contains=ALL +syn region psqlFunction start="array_dims(" end=")" contains=ALL +syn region psqlFunction start="array_eq(" end=")" contains=ALL +syn region psqlFunction start="array_length_coerce(" end=")" contains=ALL +syn region psqlFunction start="ascii(" end=")" contains=ALL +syn region psqlFunction start="ascii_to_mic(" end=")" contains=ALL +syn region psqlFunction start="ascii_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="asin(" end=")" contains=ALL +syn region psqlFunction start="atan2(" end=")" contains=ALL +syn region psqlFunction start="atan(" end=")" contains=ALL +syn region psqlFunction start="big5_to_euc_tw(" end=")" contains=ALL +syn region psqlFunction start="big5_to_mic(" end=")" contains=ALL +syn region psqlFunction start="big5_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="bitand(" end=")" contains=ALL +syn region psqlFunction start="bitcat(" end=")" contains=ALL +syn region psqlFunction start="bitcmp(" end=")" contains=ALL +syn region psqlFunction start="bit(" end=")" contains=ALL +syn region psqlFunction start="biteq(" end=")" contains=ALL +syn region psqlFunction start="bitge(" end=")" contains=ALL +syn region psqlFunction start="bitgt(" end=")" contains=ALL +syn region psqlFunction start="bitle(" end=")" contains=ALL +syn region psqlFunction start="bit_length(" end=")" contains=ALL +syn region psqlFunction start="bitlt(" end=")" contains=ALL +syn region psqlFunction start="bitne(" end=")" contains=ALL +syn region psqlFunction start="bitnot(" end=")" contains=ALL +syn region psqlFunction start="bitor(" end=")" contains=ALL +syn region psqlFunction start="bitshiftleft(" end=")" contains=ALL +syn region psqlFunction start="bitshiftright(" end=")" contains=ALL +syn region psqlFunction start="bitxor(" end=")" contains=ALL +syn region psqlFunction start="booleq(" end=")" contains=ALL +syn region psqlFunction start="boolge(" end=")" contains=ALL +syn region psqlFunction start="boolgt(" end=")" contains=ALL +syn region psqlFunction start="boolle(" end=")" contains=ALL +syn region psqlFunction start="boollt(" end=")" contains=ALL +syn region psqlFunction start="boolne(" end=")" contains=ALL +syn region psqlFunction start="box_above(" end=")" contains=ALL +syn region psqlFunction start="box_add(" end=")" contains=ALL +syn region psqlFunction start="box_below(" end=")" contains=ALL +syn region psqlFunction start="box_center(" end=")" contains=ALL +syn region psqlFunction start="box_contained(" end=")" contains=ALL +syn region psqlFunction start="box_contain(" end=")" contains=ALL +syn region psqlFunction start="box_distance(" end=")" contains=ALL +syn region psqlFunction start="box_div(" end=")" contains=ALL +syn region psqlFunction start="box(" end=")" contains=ALL +syn region psqlFunction start="box_eq(" end=")" contains=ALL +syn region psqlFunction start="box_ge(" end=")" contains=ALL +syn region psqlFunction start="box_gt(" end=")" contains=ALL +syn region psqlFunction start="box_intersect(" end=")" contains=ALL +syn region psqlFunction start="box_le(" end=")" contains=ALL +syn region psqlFunction start="box_left(" end=")" contains=ALL +syn region psqlFunction start="box_lt(" end=")" contains=ALL +syn region psqlFunction start="box_mul(" end=")" contains=ALL +syn region psqlFunction start="box_overlap(" end=")" contains=ALL +syn region psqlFunction start="box_overleft(" end=")" contains=ALL +syn region psqlFunction start="box_overright(" end=")" contains=ALL +syn region psqlFunction start="box_right(" end=")" contains=ALL +syn region psqlFunction start="box_same(" end=")" contains=ALL +syn region psqlFunction start="box_sub(" end=")" contains=ALL +syn region psqlFunction start="bpcharcmp(" end=")" contains=ALL +syn region psqlFunction start="bpchar(" end=")" contains=ALL +syn region psqlFunction start="bpchareq(" end=")" contains=ALL +syn region psqlFunction start="bpcharge(" end=")" contains=ALL +syn region psqlFunction start="bpchargt(" end=")" contains=ALL +syn region psqlFunction start="bpcharle(" end=")" contains=ALL +syn region psqlFunction start="bpcharlt(" end=")" contains=ALL +syn region psqlFunction start="bpcharne(" end=")" contains=ALL +syn region psqlFunction start="broadcast(" end=")" contains=ALL +syn region psqlFunction start="btabstimecmp(" end=")" contains=ALL +syn region psqlFunction start="btbeginscan(" end=")" contains=ALL +syn region psqlFunction start="btboolcmp(" end=")" contains=ALL +syn region psqlFunction start="btbuild(" end=")" contains=ALL +syn region psqlFunction start="btbulkdelete(" end=")" contains=ALL +syn region psqlFunction start="btcharcmp(" end=")" contains=ALL +syn region psqlFunction start="btcostestimate(" end=")" contains=ALL +syn region psqlFunction start="btendscan(" end=")" contains=ALL +syn region psqlFunction start="btfloat4cmp(" end=")" contains=ALL +syn region psqlFunction start="btfloat8cmp(" end=")" contains=ALL +syn region psqlFunction start="btgettuple(" end=")" contains=ALL +syn region psqlFunction start="btinsert(" end=")" contains=ALL +syn region psqlFunction start="btint2cmp(" end=")" contains=ALL +syn region psqlFunction start="btint4cmp(" end=")" contains=ALL +syn region psqlFunction start="btint8cmp(" end=")" contains=ALL +syn region psqlFunction start="btmarkpos(" end=")" contains=ALL +syn region psqlFunction start="btnamecmp(" end=")" contains=ALL +syn region psqlFunction start="btoidcmp(" end=")" contains=ALL +syn region psqlFunction start="btoidvectorcmp(" end=")" contains=ALL +syn region psqlFunction start="btrescan(" end=")" contains=ALL +syn region psqlFunction start="btrestrpos(" end=")" contains=ALL +syn region psqlFunction start="btrim(" end=")" contains=ALL +syn region psqlFunction start="bttextcmp(" end=")" contains=ALL +syn region psqlFunction start="byteacat(" end=")" contains=ALL +syn region psqlFunction start="byteacmp(" end=")" contains=ALL +syn region psqlFunction start="byteaeq(" end=")" contains=ALL +syn region psqlFunction start="byteage(" end=")" contains=ALL +syn region psqlFunction start="byteagt(" end=")" contains=ALL +syn region psqlFunction start="byteale(" end=")" contains=ALL +syn region psqlFunction start="bytealike(" end=")" contains=ALL +syn region psqlFunction start="bytealt(" end=")" contains=ALL +syn region psqlFunction start="byteane(" end=")" contains=ALL +syn region psqlFunction start="byteanlike(" end=")" contains=ALL +syn region psqlFunction start="cash_div_flt4(" end=")" contains=ALL +syn region psqlFunction start="cash_div_flt8(" end=")" contains=ALL +syn region psqlFunction start="cash_div_int2(" end=")" contains=ALL +syn region psqlFunction start="cash_div_int4(" end=")" contains=ALL +syn region psqlFunction start="cash_eq(" end=")" contains=ALL +syn region psqlFunction start="cash_ge(" end=")" contains=ALL +syn region psqlFunction start="cash_gt(" end=")" contains=ALL +syn region psqlFunction start="cashlarger(" end=")" contains=ALL +syn region psqlFunction start="cash_le(" end=")" contains=ALL +syn region psqlFunction start="cash_lt(" end=")" contains=ALL +syn region psqlFunction start="cash_mi(" end=")" contains=ALL +syn region psqlFunction start="cash_mul_flt4(" end=")" contains=ALL +syn region psqlFunction start="cash_mul_flt8(" end=")" contains=ALL +syn region psqlFunction start="cash_mul_int2(" end=")" contains=ALL +syn region psqlFunction start="cash_mul_int4(" end=")" contains=ALL +syn region psqlFunction start="cash_ne(" end=")" contains=ALL +syn region psqlFunction start="cash_pl(" end=")" contains=ALL +syn region psqlFunction start="cashsmaller(" end=")" contains=ALL +syn region psqlFunction start="cash_words(" end=")" contains=ALL +syn region psqlFunction start="cbrt(" end=")" contains=ALL +syn region psqlFunction start="ceil(" end=")" contains=ALL +syn region psqlFunction start="center(" end=")" contains=ALL +syn region psqlFunction start="character_length(" end=")" contains=ALL +syn region psqlFunction start="chardiv(" end=")" contains=ALL +syn region psqlFunction start="char(" end=")" contains=ALL +syn region psqlFunction start="chareq(" end=")" contains=ALL +syn region psqlFunction start="charge(" end=")" contains=ALL +syn region psqlFunction start="chargt(" end=")" contains=ALL +syn region psqlFunction start="charle(" end=")" contains=ALL +syn region psqlFunction start="char_length(" end=")" contains=ALL +syn region psqlFunction start="charlt(" end=")" contains=ALL +syn region psqlFunction start="charmi(" end=")" contains=ALL +syn region psqlFunction start="charmul(" end=")" contains=ALL +syn region psqlFunction start="charne(" end=")" contains=ALL +syn region psqlFunction start="charpl(" end=")" contains=ALL +syn region psqlFunction start="chr(" end=")" contains=ALL +syn region psqlFunction start="cideq(" end=")" contains=ALL +syn region psqlFunction start="cidr(" end=")" contains=ALL +syn region psqlFunction start="circle_above(" end=")" contains=ALL +syn region psqlFunction start="circle_add_pt(" end=")" contains=ALL +syn region psqlFunction start="circle_below(" end=")" contains=ALL +syn region psqlFunction start="circle_center(" end=")" contains=ALL +syn region psqlFunction start="circle_contained(" end=")" contains=ALL +syn region psqlFunction start="circle_contain(" end=")" contains=ALL +syn region psqlFunction start="circle_contain_pt(" end=")" contains=ALL +syn region psqlFunction start="circle_distance(" end=")" contains=ALL +syn region psqlFunction start="circle_div_pt(" end=")" contains=ALL +syn region psqlFunction start="circle(" end=")" contains=ALL +syn region psqlFunction start="circle_eq(" end=")" contains=ALL +syn region psqlFunction start="circle_ge(" end=")" contains=ALL +syn region psqlFunction start="circle_gt(" end=")" contains=ALL +syn region psqlFunction start="circle_le(" end=")" contains=ALL +syn region psqlFunction start="circle_left(" end=")" contains=ALL +syn region psqlFunction start="circle_lt(" end=")" contains=ALL +syn region psqlFunction start="circle_mul_pt(" end=")" contains=ALL +syn region psqlFunction start="circle_ne(" end=")" contains=ALL +syn region psqlFunction start="circle_overlap(" end=")" contains=ALL +syn region psqlFunction start="circle_overleft(" end=")" contains=ALL +syn region psqlFunction start="circle_overright(" end=")" contains=ALL +syn region psqlFunction start="circle_right(" end=")" contains=ALL +syn region psqlFunction start="circle_same(" end=")" contains=ALL +syn region psqlFunction start="circle_sub_pt(" end=")" contains=ALL +syn region psqlFunction start="close_lb(" end=")" contains=ALL +syn region psqlFunction start="close_lseg(" end=")" contains=ALL +syn region psqlFunction start="close_ls(" end=")" contains=ALL +syn region psqlFunction start="close_pb(" end=")" contains=ALL +syn region psqlFunction start="close_pl(" end=")" contains=ALL +syn region psqlFunction start="close_ps(" end=")" contains=ALL +syn region psqlFunction start="close_sb(" end=")" contains=ALL +syn region psqlFunction start="close_sl(" end=")" contains=ALL +syn region psqlFunction start="col_description(" end=")" contains=ALL +syn region psqlFunction start="contjoinsel(" end=")" contains=ALL +syn region psqlFunction start="contsel(" end=")" contains=ALL +syn region psqlFunction start="convert(" end=")" contains=ALL +syn region psqlFunction start="convert_using(" end=")" contains=ALL +syn region psqlFunction start="cos(" end=")" contains=ALL +syn region psqlFunction start="cot(" end=")" contains=ALL +syn region psqlFunction start="current_database(" end=")" contains=ALL +syn region psqlFunction start="current_schema(" end=")" contains=ALL +syn region psqlFunction start="current_schemas(" end=")" contains=ALL +syn region psqlFunction start="current_setting(" end=")" contains=ALL +syn region psqlFunction start="current_user(" end=")" contains=ALL +syn region psqlFunction start="currtid2(" end=")" contains=ALL +syn region psqlFunction start="currtid(" end=")" contains=ALL +syn region psqlFunction start="currval(" end=")" contains=ALL +syn region psqlFunction start="date_cmp(" end=")" contains=ALL +syn region psqlFunction start="date(" end=")" contains=ALL +syn region psqlFunction start="date_eq(" end=")" contains=ALL +syn region psqlFunction start="date_ge(" end=")" contains=ALL +syn region psqlFunction start="date_gt(" end=")" contains=ALL +syn region psqlFunction start="date_larger(" end=")" contains=ALL +syn region psqlFunction start="date_le(" end=")" contains=ALL +syn region psqlFunction start="date_lt(" end=")" contains=ALL +syn region psqlFunction start="date_mi(" end=")" contains=ALL +syn region psqlFunction start="date_mii(" end=")" contains=ALL +syn region psqlFunction start="date_mi_interval(" end=")" contains=ALL +syn region psqlFunction start="date_ne(" end=")" contains=ALL +syn region psqlFunction start="date_part(" end=")" contains=ALL +syn region psqlFunction start="date_pli(" end=")" contains=ALL +syn region psqlFunction start="date_pl_interval(" end=")" contains=ALL +syn region psqlFunction start="date_smaller(" end=")" contains=ALL +syn region psqlFunction start="datetime_pl(" end=")" contains=ALL +syn region psqlFunction start="datetimetz_pl(" end=")" contains=ALL +syn region psqlFunction start="date_trunc(" end=")" contains=ALL +syn region psqlFunction start="dcbrt(" end=")" contains=ALL +syn region psqlFunction start="decode(" end=")" contains=ALL +syn region psqlFunction start="degrees(" end=")" contains=ALL +syn region psqlFunction start="dexp(" end=")" contains=ALL +syn region psqlFunction start="diagonal(" end=")" contains=ALL +syn region psqlFunction start="diameter(" end=")" contains=ALL +syn region psqlFunction start="dist_cpoly(" end=")" contains=ALL +syn region psqlFunction start="dist_lb(" end=")" contains=ALL +syn region psqlFunction start="dist_pb(" end=")" contains=ALL +syn region psqlFunction start="dist_pc(" end=")" contains=ALL +syn region psqlFunction start="dist_pl(" end=")" contains=ALL +syn region psqlFunction start="dist_ppath(" end=")" contains=ALL +syn region psqlFunction start="dist_ps(" end=")" contains=ALL +syn region psqlFunction start="dist_sb(" end=")" contains=ALL +syn region psqlFunction start="dist_sl(" end=")" contains=ALL +syn region psqlFunction start="dlog10(" end=")" contains=ALL +syn region psqlFunction start="dlog1(" end=")" contains=ALL +syn region psqlFunction start="dpow(" end=")" contains=ALL +syn region psqlFunction start="dround(" end=")" contains=ALL +syn region psqlFunction start="dsqrt(" end=")" contains=ALL +syn region psqlFunction start="dtrunc(" end=")" contains=ALL +syn region psqlFunction start="encode(" end=")" contains=ALL +syn region psqlFunction start="eqjoinsel(" end=")" contains=ALL +syn region psqlFunction start="eqsel(" end=")" contains=ALL +syn region psqlFunction start="euc_cn_to_mic(" end=")" contains=ALL +syn region psqlFunction start="euc_cn_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="euc_jp_to_mic(" end=")" contains=ALL +syn region psqlFunction start="euc_jp_to_sjis(" end=")" contains=ALL +syn region psqlFunction start="euc_jp_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="euc_kr_to_mic(" end=")" contains=ALL +syn region psqlFunction start="euc_kr_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="euc_tw_to_big5(" end=")" contains=ALL +syn region psqlFunction start="euc_tw_to_mic(" end=")" contains=ALL +syn region psqlFunction start="euc_tw_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="exp(" end=")" contains=ALL +syn region psqlFunction start="factorial(" end=")" contains=ALL +syn region psqlFunction start="float48div(" end=")" contains=ALL +syn region psqlFunction start="float48eq(" end=")" contains=ALL +syn region psqlFunction start="float48ge(" end=")" contains=ALL +syn region psqlFunction start="float48gt(" end=")" contains=ALL +syn region psqlFunction start="float48le(" end=")" contains=ALL +syn region psqlFunction start="float48lt(" end=")" contains=ALL +syn region psqlFunction start="float48mi(" end=")" contains=ALL +syn region psqlFunction start="float48mul(" end=")" contains=ALL +syn region psqlFunction start="float48ne(" end=")" contains=ALL +syn region psqlFunction start="float48pl(" end=")" contains=ALL +syn region psqlFunction start="float4abs(" end=")" contains=ALL +syn region psqlFunction start="float4_accum(" end=")" contains=ALL +syn region psqlFunction start="float4div(" end=")" contains=ALL +syn region psqlFunction start="float4(" end=")" contains=ALL +syn region psqlFunction start="float4eq(" end=")" contains=ALL +syn region psqlFunction start="float4ge(" end=")" contains=ALL +syn region psqlFunction start="float4gt(" end=")" contains=ALL +syn region psqlFunction start="float4larger(" end=")" contains=ALL +syn region psqlFunction start="float4le(" end=")" contains=ALL +syn region psqlFunction start="float4lt(" end=")" contains=ALL +syn region psqlFunction start="float4mi(" end=")" contains=ALL +syn region psqlFunction start="float4mul(" end=")" contains=ALL +syn region psqlFunction start="float4ne(" end=")" contains=ALL +syn region psqlFunction start="float4pl(" end=")" contains=ALL +syn region psqlFunction start="float4smaller(" end=")" contains=ALL +syn region psqlFunction start="float4um(" end=")" contains=ALL +syn region psqlFunction start="float4up(" end=")" contains=ALL +syn region psqlFunction start="float84div(" end=")" contains=ALL +syn region psqlFunction start="float84eq(" end=")" contains=ALL +syn region psqlFunction start="float84ge(" end=")" contains=ALL +syn region psqlFunction start="float84gt(" end=")" contains=ALL +syn region psqlFunction start="float84le(" end=")" contains=ALL +syn region psqlFunction start="float84lt(" end=")" contains=ALL +syn region psqlFunction start="float84mi(" end=")" contains=ALL +syn region psqlFunction start="float84mul(" end=")" contains=ALL +syn region psqlFunction start="float84ne(" end=")" contains=ALL +syn region psqlFunction start="float84pl(" end=")" contains=ALL +syn region psqlFunction start="float8abs(" end=")" contains=ALL +syn region psqlFunction start="float8_accum(" end=")" contains=ALL +syn region psqlFunction start="float8_avg(" end=")" contains=ALL +syn region psqlFunction start="float8div(" end=")" contains=ALL +syn region psqlFunction start="float8(" end=")" contains=ALL +syn region psqlFunction start="float8eq(" end=")" contains=ALL +syn region psqlFunction start="float8ge(" end=")" contains=ALL +syn region psqlFunction start="float8gt(" end=")" contains=ALL +syn region psqlFunction start="float8larger(" end=")" contains=ALL +syn region psqlFunction start="float8le(" end=")" contains=ALL +syn region psqlFunction start="float8lt(" end=")" contains=ALL +syn region psqlFunction start="float8mi(" end=")" contains=ALL +syn region psqlFunction start="float8mul(" end=")" contains=ALL +syn region psqlFunction start="float8ne(" end=")" contains=ALL +syn region psqlFunction start="float8pl(" end=")" contains=ALL +syn region psqlFunction start="float8smaller(" end=")" contains=ALL +syn region psqlFunction start="float8_stddev(" end=")" contains=ALL +syn region psqlFunction start="float8um(" end=")" contains=ALL +syn region psqlFunction start="float8up(" end=")" contains=ALL +syn region psqlFunction start="float8_variance(" end=")" contains=ALL +syn region psqlFunction start="floor(" end=")" contains=ALL +syn region psqlFunction start="flt4_mul_cash(" end=")" contains=ALL +syn region psqlFunction start="flt8_mul_cash(" end=")" contains=ALL +syn region psqlFunction start="fmgr_c_validator(" end=")" contains=ALL +syn region psqlFunction start="fmgr_internal_validator(" end=")" contains=ALL +syn region psqlFunction start="fmgr_sql_validator(" end=")" contains=ALL +syn region psqlFunction start="format_type(" end=")" contains=ALL +syn region psqlFunction start="gb18030_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="gbk_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="get_bit(" end=")" contains=ALL +syn region psqlFunction start="get_byte(" end=")" contains=ALL +syn region psqlFunction start="getdatabaseencoding(" end=")" contains=ALL +syn region psqlFunction start="getpgusername(" end=")" contains=ALL +syn region psqlFunction start="gistbeginscan(" end=")" contains=ALL +syn region psqlFunction start="gistbuild(" end=")" contains=ALL +syn region psqlFunction start="gistbulkdelete(" end=")" contains=ALL +syn region psqlFunction start="gistcostestimate(" end=")" contains=ALL +syn region psqlFunction start="gistendscan(" end=")" contains=ALL +syn region psqlFunction start="gistgettuple(" end=")" contains=ALL +syn region psqlFunction start="gistinsert(" end=")" contains=ALL +syn region psqlFunction start="gistmarkpos(" end=")" contains=ALL +syn region psqlFunction start="gistrescan(" end=")" contains=ALL +syn region psqlFunction start="gistrestrpos(" end=")" contains=ALL +syn region psqlFunction start="has_database_privilege(" end=")" contains=ALL +syn region psqlFunction start="has_function_privilege(" end=")" contains=ALL +syn region psqlFunction start="hashbeginscan(" end=")" contains=ALL +syn region psqlFunction start="hashbpchar(" end=")" contains=ALL +syn region psqlFunction start="hashbuild(" end=")" contains=ALL +syn region psqlFunction start="hashbulkdelete(" end=")" contains=ALL +syn region psqlFunction start="hashchar(" end=")" contains=ALL +syn region psqlFunction start="hashcostestimate(" end=")" contains=ALL +syn region psqlFunction start="hashendscan(" end=")" contains=ALL +syn region psqlFunction start="hashfloat4(" end=")" contains=ALL +syn region psqlFunction start="hashfloat8(" end=")" contains=ALL +syn region psqlFunction start="hashgettuple(" end=")" contains=ALL +syn region psqlFunction start="hashinsert(" end=")" contains=ALL +syn region psqlFunction start="hashint2(" end=")" contains=ALL +syn region psqlFunction start="hashint4(" end=")" contains=ALL +syn region psqlFunction start="hashint8(" end=")" contains=ALL +syn region psqlFunction start="hashmacaddr(" end=")" contains=ALL +syn region psqlFunction start="hashmarkpos(" end=")" contains=ALL +syn region psqlFunction start="hashname(" end=")" contains=ALL +syn region psqlFunction start="hashoid(" end=")" contains=ALL +syn region psqlFunction start="hashoidvector(" end=")" contains=ALL +syn region psqlFunction start="hashrescan(" end=")" contains=ALL +syn region psqlFunction start="hashrestrpos(" end=")" contains=ALL +syn region psqlFunction start="hashvarlena(" end=")" contains=ALL +syn region psqlFunction start="has_language_privilege(" end=")" contains=ALL +syn region psqlFunction start="has_schema_privilege(" end=")" contains=ALL +syn region psqlFunction start="has_table_privilege(" end=")" contains=ALL +syn region psqlFunction start="height(" end=")" contains=ALL +syn region psqlFunction start="host(" end=")" contains=ALL +syn region psqlFunction start="iclikejoinsel(" end=")" contains=ALL +syn region psqlFunction start="iclikesel(" end=")" contains=ALL +syn region psqlFunction start="icnlikejoinsel(" end=")" contains=ALL +syn region psqlFunction start="icnlikesel(" end=")" contains=ALL +syn region psqlFunction start="icregexeqjoinsel(" end=")" contains=ALL +syn region psqlFunction start="icregexeqsel(" end=")" contains=ALL +syn region psqlFunction start="icregexnejoinsel(" end=")" contains=ALL +syn region psqlFunction start="icregexnesel(" end=")" contains=ALL +syn region psqlFunction start="inet(" end=")" contains=ALL +syn region psqlFunction start="initcap(" end=")" contains=ALL +syn region psqlFunction start="int24div(" end=")" contains=ALL +syn region psqlFunction start="int24eq(" end=")" contains=ALL +syn region psqlFunction start="int24ge(" end=")" contains=ALL +syn region psqlFunction start="int24gt(" end=")" contains=ALL +syn region psqlFunction start="int24le(" end=")" contains=ALL +syn region psqlFunction start="int24lt(" end=")" contains=ALL +syn region psqlFunction start="int24mi(" end=")" contains=ALL +syn region psqlFunction start="int24mod(" end=")" contains=ALL +syn region psqlFunction start="int24mul(" end=")" contains=ALL +syn region psqlFunction start="int24ne(" end=")" contains=ALL +syn region psqlFunction start="int24pl(" end=")" contains=ALL +syn region psqlFunction start="int28eq(" end=")" contains=ALL +syn region psqlFunction start="int28ge(" end=")" contains=ALL +syn region psqlFunction start="int28gt(" end=")" contains=ALL +syn region psqlFunction start="int28le(" end=")" contains=ALL +syn region psqlFunction start="int28lt(" end=")" contains=ALL +syn region psqlFunction start="int28ne(" end=")" contains=ALL +syn region psqlFunction start="int2abs(" end=")" contains=ALL +syn region psqlFunction start="int2_accum(" end=")" contains=ALL +syn region psqlFunction start="int2and(" end=")" contains=ALL +syn region psqlFunction start="int2_avg_accum(" end=")" contains=ALL +syn region psqlFunction start="int2div(" end=")" contains=ALL +syn region psqlFunction start="int2(" end=")" contains=ALL +syn region psqlFunction start="int2eq(" end=")" contains=ALL +syn region psqlFunction start="int2fac(" end=")" contains=ALL +syn region psqlFunction start="int2ge(" end=")" contains=ALL +syn region psqlFunction start="int2gt(" end=")" contains=ALL +syn region psqlFunction start="int2larger(" end=")" contains=ALL +syn region psqlFunction start="int2le(" end=")" contains=ALL +syn region psqlFunction start="int2lt(" end=")" contains=ALL +syn region psqlFunction start="int2mi(" end=")" contains=ALL +syn region psqlFunction start="int2mod(" end=")" contains=ALL +syn region psqlFunction start="int2_mul_cash(" end=")" contains=ALL +syn region psqlFunction start="int2mul(" end=")" contains=ALL +syn region psqlFunction start="int2ne(" end=")" contains=ALL +syn region psqlFunction start="int2not(" end=")" contains=ALL +syn region psqlFunction start="int2or(" end=")" contains=ALL +syn region psqlFunction start="int2pl(" end=")" contains=ALL +syn region psqlFunction start="int2shl(" end=")" contains=ALL +syn region psqlFunction start="int2shr(" end=")" contains=ALL +syn region psqlFunction start="int2smaller(" end=")" contains=ALL +syn region psqlFunction start="int2_sum(" end=")" contains=ALL +syn region psqlFunction start="int2um(" end=")" contains=ALL +syn region psqlFunction start="int2up(" end=")" contains=ALL +syn region psqlFunction start="int2vectoreq(" end=")" contains=ALL +syn region psqlFunction start="int2xor(" end=")" contains=ALL +syn region psqlFunction start="int42div(" end=")" contains=ALL +syn region psqlFunction start="int42eq(" end=")" contains=ALL +syn region psqlFunction start="int42ge(" end=")" contains=ALL +syn region psqlFunction start="int42gt(" end=")" contains=ALL +syn region psqlFunction start="int42le(" end=")" contains=ALL +syn region psqlFunction start="int42lt(" end=")" contains=ALL +syn region psqlFunction start="int42mi(" end=")" contains=ALL +syn region psqlFunction start="int42mod(" end=")" contains=ALL +syn region psqlFunction start="int42mul(" end=")" contains=ALL +syn region psqlFunction start="int42ne(" end=")" contains=ALL +syn region psqlFunction start="int42pl(" end=")" contains=ALL +syn region psqlFunction start="int48div(" end=")" contains=ALL +syn region psqlFunction start="int48eq(" end=")" contains=ALL +syn region psqlFunction start="int48ge(" end=")" contains=ALL +syn region psqlFunction start="int48gt(" end=")" contains=ALL +syn region psqlFunction start="int48le(" end=")" contains=ALL +syn region psqlFunction start="int48lt(" end=")" contains=ALL +syn region psqlFunction start="int48mi(" end=")" contains=ALL +syn region psqlFunction start="int48mul(" end=")" contains=ALL +syn region psqlFunction start="int48ne(" end=")" contains=ALL +syn region psqlFunction start="int48pl(" end=")" contains=ALL +syn region psqlFunction start="int4abs(" end=")" contains=ALL +syn region psqlFunction start="int4_accum(" end=")" contains=ALL +syn region psqlFunction start="int4and(" end=")" contains=ALL +syn region psqlFunction start="int4_avg_accum(" end=")" contains=ALL +syn region psqlFunction start="int4div(" end=")" contains=ALL +syn region psqlFunction start="int4(" end=")" contains=ALL +syn region psqlFunction start="int4eq(" end=")" contains=ALL +syn region psqlFunction start="int4fac(" end=")" contains=ALL +syn region psqlFunction start="int4ge(" end=")" contains=ALL +syn region psqlFunction start="int4gt(" end=")" contains=ALL +syn region psqlFunction start="int4inc(" end=")" contains=ALL +syn region psqlFunction start="int4larger(" end=")" contains=ALL +syn region psqlFunction start="int4le(" end=")" contains=ALL +syn region psqlFunction start="int4lt(" end=")" contains=ALL +syn region psqlFunction start="int4mi(" end=")" contains=ALL +syn region psqlFunction start="int4mod(" end=")" contains=ALL +syn region psqlFunction start="int4_mul_cash(" end=")" contains=ALL +syn region psqlFunction start="int4mul(" end=")" contains=ALL +syn region psqlFunction start="int4ne(" end=")" contains=ALL +syn region psqlFunction start="int4not(" end=")" contains=ALL +syn region psqlFunction start="int4notin(" end=")" contains=ALL +syn region psqlFunction start="int4or(" end=")" contains=ALL +syn region psqlFunction start="int4pl(" end=")" contains=ALL +syn region psqlFunction start="int4shl(" end=")" contains=ALL +syn region psqlFunction start="int4shr(" end=")" contains=ALL +syn region psqlFunction start="int4smaller(" end=")" contains=ALL +syn region psqlFunction start="int4_sum(" end=")" contains=ALL +syn region psqlFunction start="int4um(" end=")" contains=ALL +syn region psqlFunction start="int4up(" end=")" contains=ALL +syn region psqlFunction start="int4xor(" end=")" contains=ALL +syn region psqlFunction start="int82eq(" end=")" contains=ALL +syn region psqlFunction start="int82ge(" end=")" contains=ALL +syn region psqlFunction start="int82gt(" end=")" contains=ALL +syn region psqlFunction start="int82le(" end=")" contains=ALL +syn region psqlFunction start="int82lt(" end=")" contains=ALL +syn region psqlFunction start="int82ne(" end=")" contains=ALL +syn region psqlFunction start="int84div(" end=")" contains=ALL +syn region psqlFunction start="int84eq(" end=")" contains=ALL +syn region psqlFunction start="int84ge(" end=")" contains=ALL +syn region psqlFunction start="int84gt(" end=")" contains=ALL +syn region psqlFunction start="int84le(" end=")" contains=ALL +syn region psqlFunction start="int84lt(" end=")" contains=ALL +syn region psqlFunction start="int84mi(" end=")" contains=ALL +syn region psqlFunction start="int84mul(" end=")" contains=ALL +syn region psqlFunction start="int84ne(" end=")" contains=ALL +syn region psqlFunction start="int84pl(" end=")" contains=ALL +syn region psqlFunction start="int8abs(" end=")" contains=ALL +syn region psqlFunction start="int8_accum(" end=")" contains=ALL +syn region psqlFunction start="int8and(" end=")" contains=ALL +syn region psqlFunction start="int8_avg(" end=")" contains=ALL +syn region psqlFunction start="int8div(" end=")" contains=ALL +syn region psqlFunction start="int8(" end=")" contains=ALL +syn region psqlFunction start="int8eq(" end=")" contains=ALL +syn region psqlFunction start="int8fac(" end=")" contains=ALL +syn region psqlFunction start="int8ge(" end=")" contains=ALL +syn region psqlFunction start="int8gt(" end=")" contains=ALL +syn region psqlFunction start="int8inc(" end=")" contains=ALL +syn region psqlFunction start="int8larger(" end=")" contains=ALL +syn region psqlFunction start="int8le(" end=")" contains=ALL +syn region psqlFunction start="int8lt(" end=")" contains=ALL +syn region psqlFunction start="int8mi(" end=")" contains=ALL +syn region psqlFunction start="int8mod(" end=")" contains=ALL +syn region psqlFunction start="int8mul(" end=")" contains=ALL +syn region psqlFunction start="int8ne(" end=")" contains=ALL +syn region psqlFunction start="int8not(" end=")" contains=ALL +syn region psqlFunction start="int8or(" end=")" contains=ALL +syn region psqlFunction start="int8pl(" end=")" contains=ALL +syn region psqlFunction start="int8shl(" end=")" contains=ALL +syn region psqlFunction start="int8shr(" end=")" contains=ALL +syn region psqlFunction start="int8smaller(" end=")" contains=ALL +syn region psqlFunction start="int8_sum(" end=")" contains=ALL +syn region psqlFunction start="int8um(" end=")" contains=ALL +syn region psqlFunction start="int8up(" end=")" contains=ALL +syn region psqlFunction start="int8xor(" end=")" contains=ALL +syn region psqlFunction start="inter_lb(" end=")" contains=ALL +syn region psqlFunction start="inter_sb(" end=")" contains=ALL +syn region psqlFunction start="inter_sl(" end=")" contains=ALL +syn region psqlFunction start="interval_accum(" end=")" contains=ALL +syn region psqlFunction start="interval_avg(" end=")" contains=ALL +syn region psqlFunction start="interval_cmp(" end=")" contains=ALL +syn region psqlFunction start="interval_div(" end=")" contains=ALL +syn region psqlFunction start="interval(" end=")" contains=ALL +syn region psqlFunction start="interval_eq(" end=")" contains=ALL +syn region psqlFunction start="interval_ge(" end=")" contains=ALL +syn region psqlFunction start="interval_gt(" end=")" contains=ALL +syn region psqlFunction start="interval_hash(" end=")" contains=ALL +syn region psqlFunction start="interval_larger(" end=")" contains=ALL +syn region psqlFunction start="interval_le(" end=")" contains=ALL +syn region psqlFunction start="interval_lt(" end=")" contains=ALL +syn region psqlFunction start="interval_mi(" end=")" contains=ALL +syn region psqlFunction start="interval_mi_time(" end=")" contains=ALL +syn region psqlFunction start="interval_mi_timetz(" end=")" contains=ALL +syn region psqlFunction start="interval_mul(" end=")" contains=ALL +syn region psqlFunction start="interval_ne(" end=")" contains=ALL +syn region psqlFunction start="interval_pl(" end=")" contains=ALL +syn region psqlFunction start="interval_pl_time(" end=")" contains=ALL +syn region psqlFunction start="interval_smaller(" end=")" contains=ALL +syn region psqlFunction start="interval_um(" end=")" contains=ALL +syn region psqlFunction start="intinterval(" end=")" contains=ALL +syn region psqlFunction start="isclosed(" end=")" contains=ALL +syn region psqlFunction start="isfalse(" end=")" contains=ALL +syn region psqlFunction start="isfinite(" end=")" contains=ALL +syn region psqlFunction start="ishorizontal(" end=")" contains=ALL +syn region psqlFunction start="isnotfalse(" end=")" contains=ALL +syn region psqlFunction start="isnottrue(" end=")" contains=ALL +syn region psqlFunction start="iso8859_1_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="iso8859_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="isopen(" end=")" contains=ALL +syn region psqlFunction start="iso_to_alt(" end=")" contains=ALL +syn region psqlFunction start="iso_to_koi8r(" end=")" contains=ALL +syn region psqlFunction start="iso_to_mic(" end=")" contains=ALL +syn region psqlFunction start="iso_to_win1251(" end=")" contains=ALL +syn region psqlFunction start="isparallel(" end=")" contains=ALL +syn region psqlFunction start="isperp(" end=")" contains=ALL +syn region psqlFunction start="istrue(" end=")" contains=ALL +syn region psqlFunction start="isvertical(" end=")" contains=ALL +syn region psqlFunction start="johab_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="koi8r_to_alt(" end=")" contains=ALL +syn region psqlFunction start="koi8r_to_iso(" end=")" contains=ALL +syn region psqlFunction start="koi8r_to_mic(" end=")" contains=ALL +syn region psqlFunction start="koi8r_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="koi8r_to_win1251(" end=")" contains=ALL +syn region psqlFunction start="latin1_to_mic(" end=")" contains=ALL +syn region psqlFunction start="latin2_to_mic(" end=")" contains=ALL +syn region psqlFunction start="latin2_to_win1250(" end=")" contains=ALL +syn region psqlFunction start="latin3_to_mic(" end=")" contains=ALL +syn region psqlFunction start="latin4_to_mic(" end=")" contains=ALL +syn region psqlFunction start="length(" end=")" contains=ALL +syn region psqlFunction start="like(" end=")" contains=ALL +syn region psqlFunction start="like_escape(" end=")" contains=ALL +syn region psqlFunction start="likejoinsel(" end=")" contains=ALL +syn region psqlFunction start="likesel(" end=")" contains=ALL +syn region psqlFunction start="line_distance(" end=")" contains=ALL +syn region psqlFunction start="line(" end=")" contains=ALL +syn region psqlFunction start="line_eq(" end=")" contains=ALL +syn region psqlFunction start="line_horizontal(" end=")" contains=ALL +syn region psqlFunction start="line_interpt(" end=")" contains=ALL +syn region psqlFunction start="line_intersect(" end=")" contains=ALL +syn region psqlFunction start="line_parallel(" end=")" contains=ALL +syn region psqlFunction start="line_perp(" end=")" contains=ALL +syn region psqlFunction start="line_vertical(" end=")" contains=ALL +syn region psqlFunction start="ln(" end=")" contains=ALL +syn region psqlFunction start="lo_close(" end=")" contains=ALL +syn region psqlFunction start="lo_creat(" end=")" contains=ALL +syn region psqlFunction start="lo_export(" end=")" contains=ALL +syn region psqlFunction start="log(" end=")" contains=ALL +syn region psqlFunction start="lo_import(" end=")" contains=ALL +syn region psqlFunction start="lo_lseek(" end=")" contains=ALL +syn region psqlFunction start="lo_open(" end=")" contains=ALL +syn region psqlFunction start="loread(" end=")" contains=ALL +syn region psqlFunction start="lo_tell(" end=")" contains=ALL +syn region psqlFunction start="lo_unlink(" end=")" contains=ALL +syn region psqlFunction start="lower(" end=")" contains=ALL +syn region psqlFunction start="lowrite(" end=")" contains=ALL +syn region psqlFunction start="lpad(" end=")" contains=ALL +syn region psqlFunction start="lseg_center(" end=")" contains=ALL +syn region psqlFunction start="lseg_distance(" end=")" contains=ALL +syn region psqlFunction start="lseg(" end=")" contains=ALL +syn region psqlFunction start="lseg_eq(" end=")" contains=ALL +syn region psqlFunction start="lseg_ge(" end=")" contains=ALL +syn region psqlFunction start="lseg_gt(" end=")" contains=ALL +syn region psqlFunction start="lseg_horizontal(" end=")" contains=ALL +syn region psqlFunction start="lseg_interpt(" end=")" contains=ALL +syn region psqlFunction start="lseg_intersect(" end=")" contains=ALL +syn region psqlFunction start="lseg_le(" end=")" contains=ALL +syn region psqlFunction start="lseg_length(" end=")" contains=ALL +syn region psqlFunction start="lseg_lt(" end=")" contains=ALL +syn region psqlFunction start="lseg_ne(" end=")" contains=ALL +syn region psqlFunction start="lseg_parallel(" end=")" contains=ALL +syn region psqlFunction start="lseg_perp(" end=")" contains=ALL +syn region psqlFunction start="lseg_vertical(" end=")" contains=ALL +syn region psqlFunction start="ltrim(" end=")" contains=ALL +syn region psqlFunction start="macaddr_cmp(" end=")" contains=ALL +syn region psqlFunction start="macaddr(" end=")" contains=ALL +syn region psqlFunction start="macaddr_eq(" end=")" contains=ALL +syn region psqlFunction start="macaddr_ge(" end=")" contains=ALL +syn region psqlFunction start="macaddr_gt(" end=")" contains=ALL +syn region psqlFunction start="macaddr_le(" end=")" contains=ALL +syn region psqlFunction start="macaddr_lt(" end=")" contains=ALL +syn region psqlFunction start="macaddr_ne(" end=")" contains=ALL +syn region psqlFunction start="masklen(" end=")" contains=ALL +syn region psqlFunction start="mic_to_alt(" end=")" contains=ALL +syn region psqlFunction start="mic_to_ascii(" end=")" contains=ALL +syn region psqlFunction start="mic_to_big5(" end=")" contains=ALL +syn region psqlFunction start="mic_to_euc_cn(" end=")" contains=ALL +syn region psqlFunction start="mic_to_euc_jp(" end=")" contains=ALL +syn region psqlFunction start="mic_to_euc_kr(" end=")" contains=ALL +syn region psqlFunction start="mic_to_euc_tw(" end=")" contains=ALL +syn region psqlFunction start="mic_to_iso(" end=")" contains=ALL +syn region psqlFunction start="mic_to_koi8r(" end=")" contains=ALL +syn region psqlFunction start="mic_to_latin1(" end=")" contains=ALL +syn region psqlFunction start="mic_to_latin2(" end=")" contains=ALL +syn region psqlFunction start="mic_to_latin3(" end=")" contains=ALL +syn region psqlFunction start="mic_to_latin4(" end=")" contains=ALL +syn region psqlFunction start="mic_to_sjis(" end=")" contains=ALL +syn region psqlFunction start="mic_to_win1250(" end=")" contains=ALL +syn region psqlFunction start="mic_to_win1251(" end=")" contains=ALL +syn region psqlFunction start="mktinterval(" end=")" contains=ALL +syn region psqlFunction start="mod(" end=")" contains=ALL +syn region psqlFunction start="mul_d_interval(" end=")" contains=ALL +syn region psqlFunction start="name(" end=")" contains=ALL +syn region psqlFunction start="nameeq(" end=")" contains=ALL +syn region psqlFunction start="namege(" end=")" contains=ALL +syn region psqlFunction start="namegt(" end=")" contains=ALL +syn region psqlFunction start="nameiclike(" end=")" contains=ALL +syn region psqlFunction start="nameicnlike(" end=")" contains=ALL +syn region psqlFunction start="nameicregexeq(" end=")" contains=ALL +syn region psqlFunction start="nameicregexne(" end=")" contains=ALL +syn region psqlFunction start="namele(" end=")" contains=ALL +syn region psqlFunction start="namelike(" end=")" contains=ALL +syn region psqlFunction start="namelt(" end=")" contains=ALL +syn region psqlFunction start="namene(" end=")" contains=ALL +syn region psqlFunction start="namenlike(" end=")" contains=ALL +syn region psqlFunction start="nameregexeq(" end=")" contains=ALL +syn region psqlFunction start="nameregexne(" end=")" contains=ALL +syn region psqlFunction start="neqjoinsel(" end=")" contains=ALL +syn region psqlFunction start="neqsel(" end=")" contains=ALL +syn region psqlFunction start="netmask(" end=")" contains=ALL +syn region psqlFunction start="network_cmp(" end=")" contains=ALL +syn region psqlFunction start="network(" end=")" contains=ALL +syn region psqlFunction start="network_eq(" end=")" contains=ALL +syn region psqlFunction start="network_ge(" end=")" contains=ALL +syn region psqlFunction start="network_gt(" end=")" contains=ALL +syn region psqlFunction start="network_le(" end=")" contains=ALL +syn region psqlFunction start="network_lt(" end=")" contains=ALL +syn region psqlFunction start="network_ne(" end=")" contains=ALL +syn region psqlFunction start="network_sub(" end=")" contains=ALL +syn region psqlFunction start="network_subeq(" end=")" contains=ALL +syn region psqlFunction start="network_sup(" end=")" contains=ALL +syn region psqlFunction start="network_supeq(" end=")" contains=ALL +syn region psqlFunction start="nextval(" end=")" contains=ALL +syn region psqlFunction start="nlikejoinsel(" end=")" contains=ALL +syn region psqlFunction start="nlikesel(" end=")" contains=ALL +syn region psqlFunction start="nonnullvalue(" end=")" contains=ALL +syn region psqlFunction start="notlike(" end=")" contains=ALL +syn region psqlFunction start="now(" end=")" contains=ALL +syn region psqlFunction start="npoints(" end=")" contains=ALL +syn region psqlFunction start="nullvalue(" end=")" contains=ALL +syn region psqlFunction start="numeric_abs(" end=")" contains=ALL +syn region psqlFunction start="numeric_accum(" end=")" contains=ALL +syn region psqlFunction start="numeric_add(" end=")" contains=ALL +syn region psqlFunction start="numeric_avg(" end=")" contains=ALL +syn region psqlFunction start="numeric_cmp(" end=")" contains=ALL +syn region psqlFunction start="numeric_div(" end=")" contains=ALL +syn region psqlFunction start="numeric(" end=")" contains=ALL +syn region psqlFunction start="numeric_eq(" end=")" contains=ALL +syn region psqlFunction start="numeric_exp(" end=")" contains=ALL +syn region psqlFunction start="numeric_ge(" end=")" contains=ALL +syn region psqlFunction start="numeric_gt(" end=")" contains=ALL +syn region psqlFunction start="numeric_inc(" end=")" contains=ALL +syn region psqlFunction start="numeric_larger(" end=")" contains=ALL +syn region psqlFunction start="numeric_le(" end=")" contains=ALL +syn region psqlFunction start="numeric_ln(" end=")" contains=ALL +syn region psqlFunction start="numeric_log(" end=")" contains=ALL +syn region psqlFunction start="numeric_lt(" end=")" contains=ALL +syn region psqlFunction start="numeric_mod(" end=")" contains=ALL +syn region psqlFunction start="numeric_mul(" end=")" contains=ALL +syn region psqlFunction start="numeric_ne(" end=")" contains=ALL +syn region psqlFunction start="numeric_power(" end=")" contains=ALL +syn region psqlFunction start="numeric_smaller(" end=")" contains=ALL +syn region psqlFunction start="numeric_sqrt(" end=")" contains=ALL +syn region psqlFunction start="numeric_stddev(" end=")" contains=ALL +syn region psqlFunction start="numeric_sub(" end=")" contains=ALL +syn region psqlFunction start="numeric_uminus(" end=")" contains=ALL +syn region psqlFunction start="numeric_uplus(" end=")" contains=ALL +syn region psqlFunction start="numeric_variance(" end=")" contains=ALL +syn region psqlFunction start="obj_description(" end=")" contains=ALL +syn region psqlFunction start="octet_length(" end=")" contains=ALL +syn region psqlFunction start="oid(" end=")" contains=ALL +syn region psqlFunction start="oideq(" end=")" contains=ALL +syn region psqlFunction start="oidge(" end=")" contains=ALL +syn region psqlFunction start="oidgt(" end=")" contains=ALL +syn region psqlFunction start="oidlarger(" end=")" contains=ALL +syn region psqlFunction start="oidle(" end=")" contains=ALL +syn region psqlFunction start="oidlt(" end=")" contains=ALL +syn region psqlFunction start="oidne(" end=")" contains=ALL +syn region psqlFunction start="oidnotin(" end=")" contains=ALL +syn region psqlFunction start="oidrand(" end=")" contains=ALL +syn region psqlFunction start="oidsmaller(" end=")" contains=ALL +syn region psqlFunction start="oidsrand(" end=")" contains=ALL +syn region psqlFunction start="oidvectoreq(" end=")" contains=ALL +syn region psqlFunction start="oidvectorge(" end=")" contains=ALL +syn region psqlFunction start="oidvectorgt(" end=")" contains=ALL +syn region psqlFunction start="oidvectorle(" end=")" contains=ALL +syn region psqlFunction start="oidvectorlt(" end=")" contains=ALL +syn region psqlFunction start="oidvectorne(" end=")" contains=ALL +syn region psqlFunction start="oidvectortypes(" end=")" contains=ALL +syn region psqlFunction start="on_pb(" end=")" contains=ALL +syn region psqlFunction start="on_pl(" end=")" contains=ALL +syn region psqlFunction start="on_ppath(" end=")" contains=ALL +syn region psqlFunction start="on_ps(" end=")" contains=ALL +syn region psqlFunction start="on_sb(" end=")" contains=ALL +syn region psqlFunction start="on_sl(" end=")" contains=ALL +syn region psqlFunction start="overlaps(" end=")" contains=ALL +syn region psqlFunction start="overlay(" end=")" contains=ALL +syn region psqlFunction start="path_add(" end=")" contains=ALL +syn region psqlFunction start="path_add_pt(" end=")" contains=ALL +syn region psqlFunction start="path_center(" end=")" contains=ALL +syn region psqlFunction start="path_contain_pt(" end=")" contains=ALL +syn region psqlFunction start="path_distance(" end=")" contains=ALL +syn region psqlFunction start="path_div_pt(" end=")" contains=ALL +syn region psqlFunction start="path(" end=")" contains=ALL +syn region psqlFunction start="path_inter(" end=")" contains=ALL +syn region psqlFunction start="path_length(" end=")" contains=ALL +syn region psqlFunction start="path_mul_pt(" end=")" contains=ALL +syn region psqlFunction start="path_n_eq(" end=")" contains=ALL +syn region psqlFunction start="path_n_ge(" end=")" contains=ALL +syn region psqlFunction start="path_n_gt(" end=")" contains=ALL +syn region psqlFunction start="path_n_le(" end=")" contains=ALL +syn region psqlFunction start="path_n_lt(" end=")" contains=ALL +syn region psqlFunction start="path_npoints(" end=")" contains=ALL +syn region psqlFunction start="path_sub_pt(" end=")" contains=ALL +syn region psqlFunction start="pclose(" end=")" contains=ALL +syn region psqlFunction start="pg_backend_pid(" end=")" contains=ALL +syn region psqlFunction start="pg_char_to_encoding(" end=")" contains=ALL +syn region psqlFunction start="pg_client_encoding(" end=")" contains=ALL +syn region psqlFunction start="pg_encoding_to_char(" end=")" contains=ALL +syn region psqlFunction start="pg_function_is_visible(" end=")" contains=ALL +syn region psqlFunction start="pg_get_constraintdef(" end=")" contains=ALL +syn region psqlFunction start="pg_get_expr(" end=")" contains=ALL +syn region psqlFunction start="pg_get_indexdef(" end=")" contains=ALL +syn region psqlFunction start="pg_get_ruledef(" end=")" contains=ALL +syn region psqlFunction start="pg_get_userbyid(" end=")" contains=ALL +syn region psqlFunction start="pg_get_viewdef(" end=")" contains=ALL +syn region psqlFunction start="pg_lock_status(" end=")" contains=ALL +syn region psqlFunction start="pg_opclass_is_visible(" end=")" contains=ALL +syn region psqlFunction start="pg_operator_is_visible(" end=")" contains=ALL +syn region psqlFunction start="pg_show_all_settings(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_backend_activity(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_backend_dbid(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_backend_idset(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_backend_pid(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_backend_userid(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_blocks_fetched(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_blocks_hit(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_db_blocks_fetched(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_db_blocks_hit(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_db_numbackends(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_db_xact_commit(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_db_xact_rollback(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_numscans(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_tuples_deleted(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_tuples_fetched(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_tuples_inserted(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_tuples_returned(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_get_tuples_updated(" end=")" contains=ALL +syn region psqlFunction start="pg_stat_reset(" end=")" contains=ALL +syn region psqlFunction start="pg_table_is_visible(" end=")" contains=ALL +syn region psqlFunction start="pg_type_is_visible(" end=")" contains=ALL +syn region psqlFunction start="pi(" end=")" contains=ALL +syn region psqlFunction start="plpgsql_call_handler(" end=")" contains=ALL +syn region psqlFunction start="point_above(" end=")" contains=ALL +syn region psqlFunction start="point_add(" end=")" contains=ALL +syn region psqlFunction start="point_below(" end=")" contains=ALL +syn region psqlFunction start="point_distance(" end=")" contains=ALL +syn region psqlFunction start="point_div(" end=")" contains=ALL +syn region psqlFunction start="point(" end=")" contains=ALL +syn region psqlFunction start="point_eq(" end=")" contains=ALL +syn region psqlFunction start="point_horiz(" end=")" contains=ALL +syn region psqlFunction start="point_left(" end=")" contains=ALL +syn region psqlFunction start="point_mul(" end=")" contains=ALL +syn region psqlFunction start="point_ne(" end=")" contains=ALL +syn region psqlFunction start="point_right(" end=")" contains=ALL +syn region psqlFunction start="point_sub(" end=")" contains=ALL +syn region psqlFunction start="point_vert(" end=")" contains=ALL +syn region psqlFunction start="poly_center(" end=")" contains=ALL +syn region psqlFunction start="poly_contained(" end=")" contains=ALL +syn region psqlFunction start="poly_contain(" end=")" contains=ALL +syn region psqlFunction start="poly_contain_pt(" end=")" contains=ALL +syn region psqlFunction start="poly_distance(" end=")" contains=ALL +syn region psqlFunction start="polygon(" end=")" contains=ALL +syn region psqlFunction start="poly_left(" end=")" contains=ALL +syn region psqlFunction start="poly_npoints(" end=")" contains=ALL +syn region psqlFunction start="poly_overlap(" end=")" contains=ALL +syn region psqlFunction start="poly_overleft(" end=")" contains=ALL +syn region psqlFunction start="poly_overright(" end=")" contains=ALL +syn region psqlFunction start="poly_right(" end=")" contains=ALL +syn region psqlFunction start="poly_same(" end=")" contains=ALL +syn region psqlFunction start="popen(" end=")" contains=ALL +syn region psqlFunction start="position(" end=")" contains=ALL +syn region psqlFunction start="positionjoinsel(" end=")" contains=ALL +syn region psqlFunction start="positionsel(" end=")" contains=ALL +syn region psqlFunction start="pow(" end=")" contains=ALL +syn region psqlFunction start="pt_contained_circle(" end=")" contains=ALL +syn region psqlFunction start="pt_contained_poly(" end=")" contains=ALL +syn region psqlFunction start="quote_ident(" end=")" contains=ALL +syn region psqlFunction start="quote_literal(" end=")" contains=ALL +syn region psqlFunction start="radians(" end=")" contains=ALL +syn region psqlFunction start="radius(" end=")" contains=ALL +syn region psqlFunction start="random(" end=")" contains=ALL +syn region psqlFunction start="regexeqjoinsel(" end=")" contains=ALL +syn region psqlFunction start="regexeqsel(" end=")" contains=ALL +syn region psqlFunction start="regexnejoinsel(" end=")" contains=ALL +syn region psqlFunction start="regexnesel(" end=")" contains=ALL +syn region psqlFunction start="reltime(" end=")" contains=ALL +syn region psqlFunction start="reltimeeq(" end=")" contains=ALL +syn region psqlFunction start="reltimege(" end=")" contains=ALL +syn region psqlFunction start="reltimegt(" end=")" contains=ALL +syn region psqlFunction start="reltimele(" end=")" contains=ALL +syn region psqlFunction start="reltimelt(" end=")" contains=ALL +syn region psqlFunction start="reltimene(" end=")" contains=ALL +syn region psqlFunction start="repeat(" end=")" contains=ALL +syn region psqlFunction start="replace(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_cascade_del(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_cascade_upd(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_check_ins(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_check_upd(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_noaction_del(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_noaction_upd(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_restrict_del(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_restrict_upd(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_setdefault_del(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_setdefault_upd(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_setnull_del(" end=")" contains=ALL +syn region psqlFunction start="RI_FKey_setnull_upd(" end=")" contains=ALL +syn region psqlFunction start="round(" end=")" contains=ALL +syn region psqlFunction start="rpad(" end=")" contains=ALL +syn region psqlFunction start="rtbeginscan(" end=")" contains=ALL +syn region psqlFunction start="rt_bigbox_size(" end=")" contains=ALL +syn region psqlFunction start="rt_box_inter(" end=")" contains=ALL +syn region psqlFunction start="rt_box_size(" end=")" contains=ALL +syn region psqlFunction start="rt_box_union(" end=")" contains=ALL +syn region psqlFunction start="rtbuild(" end=")" contains=ALL +syn region psqlFunction start="rtbulkdelete(" end=")" contains=ALL +syn region psqlFunction start="rtcostestimate(" end=")" contains=ALL +syn region psqlFunction start="rtendscan(" end=")" contains=ALL +syn region psqlFunction start="rtgettuple(" end=")" contains=ALL +syn region psqlFunction start="rtinsert(" end=")" contains=ALL +syn region psqlFunction start="rtmarkpos(" end=")" contains=ALL +syn region psqlFunction start="rt_poly_inter(" end=")" contains=ALL +syn region psqlFunction start="rt_poly_size(" end=")" contains=ALL +syn region psqlFunction start="rt_poly_union(" end=")" contains=ALL +syn region psqlFunction start="rtrescan(" end=")" contains=ALL +syn region psqlFunction start="rtrestrpos(" end=")" contains=ALL +syn region psqlFunction start="rtrim(" end=")" contains=ALL +syn region psqlFunction start="scalargtjoinsel(" end=")" contains=ALL +syn region psqlFunction start="scalargtsel(" end=")" contains=ALL +syn region psqlFunction start="scalarltjoinsel(" end=")" contains=ALL +syn region psqlFunction start="scalarltsel(" end=")" contains=ALL +syn region psqlFunction start="session_user(" end=")" contains=ALL +syn region psqlFunction start="set_bit(" end=")" contains=ALL +syn region psqlFunction start="set_byte(" end=")" contains=ALL +syn region psqlFunction start="set_config(" end=")" contains=ALL +syn region psqlFunction start="seteval(" end=")" contains=ALL +syn region psqlFunction start="set_masklen(" end=")" contains=ALL +syn region psqlFunction start="setseed(" end=")" contains=ALL +syn region psqlFunction start="setval(" end=")" contains=ALL +syn region psqlFunction start="sign(" end=")" contains=ALL +syn region psqlFunction start="similar_escape(" end=")" contains=ALL +syn region psqlFunction start="sin(" end=")" contains=ALL +syn region psqlFunction start="sjis_to_euc_jp(" end=")" contains=ALL +syn region psqlFunction start="sjis_to_mic(" end=")" contains=ALL +syn region psqlFunction start="sjis_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="slope(" end=")" contains=ALL +syn region psqlFunction start="smgreq(" end=")" contains=ALL +syn region psqlFunction start="smgrne(" end=")" contains=ALL +syn region psqlFunction start="split_part(" end=")" contains=ALL +syn region psqlFunction start="sqrt(" end=")" contains=ALL +syn region psqlFunction start="strpos(" end=")" contains=ALL +syn region psqlFunction start="substr(" end=")" contains=ALL +syn region psqlFunction start="substring(" end=")" contains=ALL +syn region psqlFunction start="tan(" end=")" contains=ALL +syn region psqlFunction start="tcvn_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="textcat(" end=")" contains=ALL +syn region psqlFunction start="text(" end=")" contains=ALL +syn region psqlFunction start="texteq(" end=")" contains=ALL +syn region psqlFunction start="text_ge(" end=")" contains=ALL +syn region psqlFunction start="text_gt(" end=")" contains=ALL +syn region psqlFunction start="texticlike(" end=")" contains=ALL +syn region psqlFunction start="texticnlike(" end=")" contains=ALL +syn region psqlFunction start="texticregexeq(" end=")" contains=ALL +syn region psqlFunction start="texticregexne(" end=")" contains=ALL +syn region psqlFunction start="text_larger(" end=")" contains=ALL +syn region psqlFunction start="text_le(" end=")" contains=ALL +syn region psqlFunction start="textlen(" end=")" contains=ALL +syn region psqlFunction start="textlike(" end=")" contains=ALL +syn region psqlFunction start="text_lt(" end=")" contains=ALL +syn region psqlFunction start="textne(" end=")" contains=ALL +syn region psqlFunction start="textnlike(" end=")" contains=ALL +syn region psqlFunction start="textregexeq(" end=")" contains=ALL +syn region psqlFunction start="textregexne(" end=")" contains=ALL +syn region psqlFunction start="text_smaller(" end=")" contains=ALL +syn region psqlFunction start="tideq(" end=")" contains=ALL +syn region psqlFunction start="time_cmp(" end=")" contains=ALL +syn region psqlFunction start="timedate_pl(" end=")" contains=ALL +syn region psqlFunction start="time(" end=")" contains=ALL +syn region psqlFunction start="time_eq(" end=")" contains=ALL +syn region psqlFunction start="time_ge(" end=")" contains=ALL +syn region psqlFunction start="time_gt(" end=")" contains=ALL +syn region psqlFunction start="time_larger(" end=")" contains=ALL +syn region psqlFunction start="time_le(" end=")" contains=ALL +syn region psqlFunction start="time_lt(" end=")" contains=ALL +syn region psqlFunction start="timemi(" end=")" contains=ALL +syn region psqlFunction start="time_mi_interval(" end=")" contains=ALL +syn region psqlFunction start="time_mi_time(" end=")" contains=ALL +syn region psqlFunction start="time_ne(" end=")" contains=ALL +syn region psqlFunction start="timenow(" end=")" contains=ALL +syn region psqlFunction start="timeofday(" end=")" contains=ALL +syn region psqlFunction start="timepl(" end=")" contains=ALL +syn region psqlFunction start="time_pl_interval(" end=")" contains=ALL +syn region psqlFunction start="time_smaller(" end=")" contains=ALL +syn region psqlFunction start="timestamp_cmp(" end=")" contains=ALL +syn region psqlFunction start="timestamp(" end=")" contains=ALL +syn region psqlFunction start="timestamp_eq(" end=")" contains=ALL +syn region psqlFunction start="timestamp_ge(" end=")" contains=ALL +syn region psqlFunction start="timestamp_gt(" end=")" contains=ALL +syn region psqlFunction start="timestamp_larger(" end=")" contains=ALL +syn region psqlFunction start="timestamp_le(" end=")" contains=ALL +syn region psqlFunction start="timestamp_lt(" end=")" contains=ALL +syn region psqlFunction start="timestamp_mi(" end=")" contains=ALL +syn region psqlFunction start="timestamp_mi_span(" end=")" contains=ALL +syn region psqlFunction start="timestamp_ne(" end=")" contains=ALL +syn region psqlFunction start="timestamp_pl_span(" end=")" contains=ALL +syn region psqlFunction start="timestamp_smaller(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_cmp(" end=")" contains=ALL +syn region psqlFunction start="timestamptz(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_eq(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_ge(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_gt(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_larger(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_le(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_lt(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_mi(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_mi_span(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_ne(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_pl_span(" end=")" contains=ALL +syn region psqlFunction start="timestamptz_smaller(" end=")" contains=ALL +syn region psqlFunction start="timetz_cmp(" end=")" contains=ALL +syn region psqlFunction start="timetzdate_pl(" end=")" contains=ALL +syn region psqlFunction start="timetz(" end=")" contains=ALL +syn region psqlFunction start="timetz_eq(" end=")" contains=ALL +syn region psqlFunction start="timetz_ge(" end=")" contains=ALL +syn region psqlFunction start="timetz_gt(" end=")" contains=ALL +syn region psqlFunction start="timetz_hash(" end=")" contains=ALL +syn region psqlFunction start="timetz_larger(" end=")" contains=ALL +syn region psqlFunction start="timetz_le(" end=")" contains=ALL +syn region psqlFunction start="timetz_lt(" end=")" contains=ALL +syn region psqlFunction start="timetz_mi_interval(" end=")" contains=ALL +syn region psqlFunction start="timetz_ne(" end=")" contains=ALL +syn region psqlFunction start="timetz_pl_interval(" end=")" contains=ALL +syn region psqlFunction start="timetz_smaller(" end=")" contains=ALL +syn region psqlFunction start="timezone(" end=")" contains=ALL +syn region psqlFunction start="tintervalct(" end=")" contains=ALL +syn region psqlFunction start="tinterval(" end=")" contains=ALL +syn region psqlFunction start="tintervalend(" end=")" contains=ALL +syn region psqlFunction start="tintervaleq(" end=")" contains=ALL +syn region psqlFunction start="tintervalge(" end=")" contains=ALL +syn region psqlFunction start="tintervalgt(" end=")" contains=ALL +syn region psqlFunction start="tintervalle(" end=")" contains=ALL +syn region psqlFunction start="tintervalleneq(" end=")" contains=ALL +syn region psqlFunction start="tintervallenge(" end=")" contains=ALL +syn region psqlFunction start="tintervallengt(" end=")" contains=ALL +syn region psqlFunction start="tintervallenle(" end=")" contains=ALL +syn region psqlFunction start="tintervallenlt(" end=")" contains=ALL +syn region psqlFunction start="tintervallenne(" end=")" contains=ALL +syn region psqlFunction start="tintervallt(" end=")" contains=ALL +syn region psqlFunction start="tintervalne(" end=")" contains=ALL +syn region psqlFunction start="tintervalov(" end=")" contains=ALL +syn region psqlFunction start="tintervalrel(" end=")" contains=ALL +syn region psqlFunction start="tintervalsame(" end=")" contains=ALL +syn region psqlFunction start="tintervalstart(" end=")" contains=ALL +syn region psqlFunction start="to_ascii(" end=")" contains=ALL +syn region psqlFunction start="to_char(" end=")" contains=ALL +syn region psqlFunction start="to_date(" end=")" contains=ALL +syn region psqlFunction start="to_hex(" end=")" contains=ALL +syn region psqlFunction start="to_number(" end=")" contains=ALL +syn region psqlFunction start="to_timestamp(" end=")" contains=ALL +syn region psqlFunction start="translate(" end=")" contains=ALL +syn region psqlFunction start="trunc(" end=")" contains=ALL +syn region psqlFunction start="uhc_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="update_pg_pwd_and_pg_group(" end=")" contains=ALL +syn region psqlFunction start="upper(" end=")" contains=ALL +syn region psqlFunction start="userfntest(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_alt(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_ascii(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_big5(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_euc_cn(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_euc_jp(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_euc_kr(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_euc_tw(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_gb18030(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_gbk(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_iso8859_1(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_iso8859(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_johab(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_koi8r(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_sjis(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_tcvn(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_uhc(" end=")" contains=ALL +syn region psqlFunction start="utf8_to_win1251(" end=")" contains=ALL +syn region psqlFunction start="utf_to_win1250(" end=")" contains=ALL +syn region psqlFunction start="utf_to_win1256(" end=")" contains=ALL +syn region psqlFunction start="utf_to_win874(" end=")" contains=ALL +syn region psqlFunction start="varbitcmp(" end=")" contains=ALL +syn region psqlFunction start="varbit(" end=")" contains=ALL +syn region psqlFunction start="varbiteq(" end=")" contains=ALL +syn region psqlFunction start="varbitge(" end=")" contains=ALL +syn region psqlFunction start="varbitgt(" end=")" contains=ALL +syn region psqlFunction start="varbitle(" end=")" contains=ALL +syn region psqlFunction start="varbitlt(" end=")" contains=ALL +syn region psqlFunction start="varbitne(" end=")" contains=ALL +syn region psqlFunction start="varcharcmp(" end=")" contains=ALL +syn region psqlFunction start="varchar(" end=")" contains=ALL +syn region psqlFunction start="varchareq(" end=")" contains=ALL +syn region psqlFunction start="varcharge(" end=")" contains=ALL +syn region psqlFunction start="varchargt(" end=")" contains=ALL +syn region psqlFunction start="varcharle(" end=")" contains=ALL +syn region psqlFunction start="varcharlt(" end=")" contains=ALL +syn region psqlFunction start="varcharne(" end=")" contains=ALL +syn region psqlFunction start="version(" end=")" contains=ALL +syn region psqlFunction start="width(" end=")" contains=ALL +syn region psqlFunction start="win1250_to_latin2(" end=")" contains=ALL +syn region psqlFunction start="win1250_to_mic(" end=")" contains=ALL +syn region psqlFunction start="win1250_to_utf(" end=")" contains=ALL +syn region psqlFunction start="win1251_to_alt(" end=")" contains=ALL +syn region psqlFunction start="win1251_to_iso(" end=")" contains=ALL +syn region psqlFunction start="win1251_to_koi8r(" end=")" contains=ALL +syn region psqlFunction start="win1251_to_mic(" end=")" contains=ALL +syn region psqlFunction start="win1251_to_utf8(" end=")" contains=ALL +syn region psqlFunction start="win1256_to_utf(" end=")" contains=ALL +syn region psqlFunction start="win874_to_utf(" end=")" contains=ALL +syn region psqlFunction start="xideq(" end=")" contains=ALL + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_psql_syn_inits") + if version < 508 + let did_psql_syn_inits = 1 + command -nargs=+ HiLink hi link + else + command -nargs=+ HiLink hi def link + endif + + HiLink psqlComment Comment + HiLink psqlKeyword psqlSpecial + HiLink psqlNumber Number + HiLink psqlOperator psqlFunction + HiLink psqlSpecial Special + HiLink psqlStatement Statement + HiLink psqlString String + HiLink psqlType Type + HiLink psqlFunction Function + HiLink psqlAggregate Special + + delcommand HiLink +endif + +let b:current_syntax = "psql" + +" vim: ts=8 diff --git a/vim/colors/putty.vim b/vim/colors/putty.vim new file mode 100644 index 0000000..4c86ad5 --- /dev/null +++ b/vim/colors/putty.vim @@ -0,0 +1,82 @@ +" Vim color file +" Maintainer: Prachya Boonkwan +" Last Change: April 29, 2003 +" Licence: Public Domain + +" This package offers a eye-catching color scheme that resembles the +" default color scheme of Putty telnet terminal. + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "putty" + +hi Normal guifg=Grey guibg=Black + +hi ErrorMsg guibg=Red guifg=White +hi IncSearch gui=reverse +hi ModeMsg gui=bold +hi StatusLine gui=reverse,bold +hi StatusLineNC gui=reverse +hi VertSplit gui=reverse +hi Visual gui=reverse guifg=Grey guibg=fg +hi VisualNOS gui=underline,bold +hi DiffText gui=bold guibg=Red +hi Cursor guibg=Green guifg=NONE +hi lCursor guibg=Cyan guifg=NONE +hi Directory guifg=Blue +hi LineNr guifg=#BBBB00 +hi MoreMsg gui=bold guifg=SeaGreen +hi NonText gui=bold guifg=Blue guibg=Black +hi Question gui=bold guifg=SeaGreen +hi Search guibg=#BBBB00 guifg=NONE +hi SpecialKey guifg=Blue +hi Title gui=bold guifg=Magenta +hi WarningMsg guifg=Red +hi WildMenu guibg=Cyan guifg=Black +hi Folded guibg=White guifg=DarkBlue +hi FoldColumn guibg=Grey guifg=DarkBlue +hi DiffAdd guibg=LightBlue +hi DiffChange guibg=LightMagenta +hi DiffDelete gui=bold guifg=Blue guibg=LightCyan + +hi Comment guifg=Blue guibg=Black +hi Constant guifg=#BB0000 guibg=Black +hi PreProc guifg=#BB00BB guibg=Black +hi Statement gui=NONE guifg=#BBBB00 guibg=Black +hi Special guifg=#BB00BB guibg=Black +hi Ignore guifg=Grey +hi Identifier guifg=#00BBBB guibg=Black +hi Type guifg=#00BB00 guibg=Black + +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special + +" vim: sw=2 diff --git a/vim/colors/pyte.vim b/vim/colors/pyte.vim new file mode 100644 index 0000000..76b53e7 --- /dev/null +++ b/vim/colors/pyte.vim @@ -0,0 +1,92 @@ + +set background=light + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "pyte" + +if version >= 700 + hi CursorLine guibg=#f6f6f6 + hi CursorColumn guibg=#eaeaea + hi MatchParen guifg=white guibg=#80a090 gui=bold + + "Tabpages + hi TabLine guifg=black guibg=#b0b8c0 gui=italic + hi TabLineFill guifg=#9098a0 + hi TabLineSel guifg=black guibg=#f0f0f0 gui=italic,bold + + "P-Menu (auto-completion) + hi Pmenu guifg=white guibg=#808080 + "PmenuSel + "PmenuSbar + "PmenuThumb +endif +" +" Html-Titles +hi Title guifg=#202020 gui=bold +hi Underlined guifg=#202020 gui=underline + + +hi Cursor guifg=black guibg=#b0b4b8 +hi lCursor guifg=black guibg=white +hi LineNr guifg=#ffffff guibg=#c0d0e0 + +hi Normal guifg=#202020 guibg=#f0f0f0 + +hi StatusLine guifg=white guibg=#8090a0 gui=bold,italic +hi StatusLineNC guifg=#506070 guibg=#a0b0c0 gui=italic +hi VertSplit guifg=#a0b0c0 guibg=#a0b0c0 gui=NONE + +hi Folded guifg=#708090 guibg=#c0d0e0 + +hi NonText guifg=#c0c0c0 guibg=#e0e0e0 +" Kommentare +hi Comment guifg=#a0b0c0 gui=italic + +" Konstanten +hi Constant guifg=#a07040 +hi String guifg=#4070a0 +hi Number guifg=#40a070 +hi Float guifg=#70a040 +"hi Statement guifg=#0070e0 gui=NONE +" Python: def and so on, html: tag-names +hi Statement guifg=#007020 gui=bold + + +" HTML: arguments +hi Type guifg=#e5a00d gui=italic +" Python: Standard exceptions, True&False +hi Structure guifg=#007020 gui=italic +hi Function guifg=#06287e gui=italic + +hi Identifier guifg=#5b3674 gui=italic + +hi Repeat guifg=#7fbf58 gui=bold +hi Conditional guifg=#4c8f2f gui=bold + +" Cheetah: #-Symbol, function-names +hi PreProc guifg=#1060a0 gui=NONE +" Cheetah: def, for and so on, Python: Decorators +hi Define guifg=#1060a0 gui=bold + +hi Error guifg=red guibg=white gui=bold,underline +hi Todo guifg=#a0b0c0 guibg=NONE gui=italic,bold,underline + +" Python: %(...)s - constructs, encoding +hi Special guifg=#70a0d0 gui=italic + +hi Operator guifg=#408010 + +" color of s etc... +hi SpecialKey guifg=#d8a080 guibg=#e8e8e8 gui=italic + +" Diff +hi DiffChange guifg=NONE guibg=#e0e0e0 gui=italic,bold +hi DiffText guifg=NONE guibg=#f0c8c8 gui=italic,bold +hi DiffAdd guifg=NONE guibg=#c0e0d0 gui=italic,bold +hi DiffDelete guifg=NONE guibg=#f0e0b0 gui=italic,bold + + diff --git a/vim/colors/python.vim b/vim/colors/python.vim new file mode 100644 index 0000000..6f4a765 --- /dev/null +++ b/vim/colors/python.vim @@ -0,0 +1,104 @@ +""" Init +set background=light +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "python" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=Palegreen3 guifg=White +highlight CursorIM gui=bold guifg=white guibg=PaleTurquoise3 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +" previously 'FillColumn': +"highlight FillColumn gui=NONE guifg=black guibg=grey60 +highlight VertSplit gui=NONE guifg=black guibg=#c8d6b3 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=bold guibg=#395602 guifg=#6f9b1f +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=bold guibg=#395602 guifg=#6f9b1f +highlight ModeMsg guibg=DarkGreen guifg=Green +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=bg guifg=fg +endif +highlight Normal gui=None guibg=#f6ffe5 guifg=black +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=LightSkyBlue4 guifg=NONE +highlight SpecialKey guibg=#103040 guifg=#324262 +highlight StatusLine gui=bold guibg=#c8d6b3 guifg=black +highlight StatusLineNC gui=NONE guibg=#c8d6b3 guifg=black +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +"highlight Comment gui=reverse guifg=#507080 +highlight Comment gui=italic guifg=#507080 + +highlight Constant guifg=black guibg=bg +hi String gui=None guifg=#ccab3f guibg=bg + "hi Character gui=None guifg=#969248 guibg=bg + highlight Number gui=None guifg=#969248 guibg=bg + highlight Boolean gui=bold guifg=#969248 guibg=bg + "hi Float gui=None guifg=#969248 guibg=bg + +highlight Identifier guifg=#6f9b1f +hi Function gui=None guifg=#775d05 guibg=bg + +highlight Statement gui=NONE guifg=#669907 + highlight Conditional gui=None guifg=Green guibg=bg + highlight Repeat gui=None guifg=SeaGreen2 guibg=bg + "hi Label gui=None guifg=Green guibg=bg + highlight Operator gui=None guifg=Chartreuse guibg=bg + highlight Keyword gui=bold guifg=#6f9b1f guibg=bg + highlight Exception gui=bold guifg=Green guibg=bg + +highlight PreProc guifg=SkyBlue1 +hi Include gui=None guifg=#725c05 guibg=bg +hi Define gui=None guifg=#725c05 guibg=bg +hi Macro gui=None guifg=#486610 guibg=bg +hi PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=#ccab3f +hi StorageClass gui=None guifg=#ccab3f guibg=bg +hi Structure gui=None guifg=#ccab3f guibg=bg +hi Typedef gui=None guifg=#ccab3f guibg=bg + +highlight Special gui=bold guifg=#ddb100 + "hi SpecialChar gui=bold guifg=White guibg=bg + "hi Tag gui=bold guifg=White guibg=bg + "hi Delimiter gui=bold guifg=White guibg=bg + "hi SpecialComment gui=bold guifg=White guibg=bg + "hi Debug gui=bold guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=LightYellow guibg=FireBrick + +highlight Todo guifg=#969248 guibg=#507080 + +""" OLD COLORS + + + diff --git a/vim/colors/railscasts.vim b/vim/colors/railscasts.vim new file mode 100644 index 0000000..4441177 --- /dev/null +++ b/vim/colors/railscasts.vim @@ -0,0 +1,96 @@ +" Vim color scheme +" +" Name: railscasts.vim +" Maintainer: Nick Moffitt +" Last Change: 01 Mar 2008 +" License: WTFPL +" Version: 2.1 +" +" This theme is based on Josh O'Rourke's Vim clone of the railscast +" textmate theme. The key thing I have done here is supply 256-color +" terminal equivalents for as many of the colors as possible, and fixed +" up some of the funny behaviors for editing e-mails and such. +" +" To use for gvim: +" 1: install this file as ~/.vim/colors/railscasts.vim +" 2: put "colorscheme railscasts" in your .gvimrc +" +" If you are using Ubuntu, you can get the benefit of this in your +" terminals using ordinary vim by taking the following steps: +" +" 1: sudo apt-get install ncurses-term +" 2: put the following in your .vimrc +" if $COLORTERM == 'gnome-terminal' +" set term=gnome-256color +" colorscheme railscasts +" else +" colorscheme default +" endif +" 3: if you wish to use this with screen, add the following to your .screenrc: +" attrcolor b ".I" +" termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' +" defbce "on" +" term screen-256color-bce + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "railscasts" + +hi link htmlTag xmlTag +hi link htmlTagName xmlTagName +hi link htmlEndTag xmlEndTag + +highlight Normal guifg=#E6E1DC guibg=#111111 +highlight Cursor guifg=#000000 ctermfg=0 guibg=#FFFFFF ctermbg=15 +highlight CursorLine guibg=#000000 ctermbg=233 cterm=NONE +highlight Comment guifg=#BC9458 ctermfg=180 gui=italic +highlight Constant guifg=#6D9CBE ctermfg=73 +highlight Define guifg=#CC7833 ctermfg=173 +highlight Error guifg=#FFC66D ctermfg=221 guibg=#990000 ctermbg=88 +highlight Function guifg=#FFC66D ctermfg=221 gui=NONE cterm=NONE +highlight Identifier guifg=#6D9CBE ctermfg=73 gui=NONE cterm=NONE +highlight Include guifg=#CC7833 ctermfg=173 gui=NONE cterm=NONE +highlight PreCondit guifg=#CC7833 ctermfg=173 gui=NONE cterm=NONE +highlight Keyword guifg=#CC7833 ctermfg=173 cterm=NONE +highlight LineNr guifg=#2B2B2B ctermfg=159 guibg=#C0C0FF +highlight Number guifg=#A5C261 ctermfg=107 +highlight PreProc guifg=#E6E1DC ctermfg=103 +highlight Search guifg=NONE ctermfg=NONE guibg=#2b2b2b ctermbg=235 gui=italic cterm=underline +highlight Statement guifg=#CC7833 ctermfg=173 gui=NONE cterm=NONE +highlight String guifg=#A5C261 ctermfg=107 +highlight Title guifg=#FFFFFF ctermfg=15 +highlight Type guifg=#DA4939 ctermfg=167 gui=NONE cterm=NONE +highlight Visual guibg=#5A647E ctermbg=60 + +highlight DiffAdd guifg=#E6E1DC ctermfg=7 guibg=#519F50 ctermbg=71 +highlight DiffDelete guifg=#E6E1DC ctermfg=7 guibg=#660000 ctermbg=52 +highlight Special guifg=#DA4939 ctermfg=167 + +highlight pythonBuiltin guifg=#6D9CBE ctermfg=73 gui=NONE cterm=NONE +highlight rubyBlockParameter guifg=#FFFFFF ctermfg=15 +highlight rubyClass guifg=#FFFFFF ctermfg=15 +highlight rubyConstant guifg=#DA4939 ctermfg=167 +highlight rubyInstanceVariable guifg=#D0D0FF ctermfg=189 +highlight rubyInterpolation guifg=#519F50 ctermfg=107 +highlight rubyLocalVariableOrMethod guifg=#D0D0FF ctermfg=189 +highlight rubyPredefinedConstant guifg=#DA4939 ctermfg=167 +highlight rubyPseudoVariable guifg=#FFC66D ctermfg=221 +highlight rubyStringDelimiter guifg=#A5C261 ctermfg=143 +highlight rubySymbol guifg=#339999 gui=NONE + +highlight xmlTag guifg=#E8BF6A ctermfg=179 +highlight xmlTagName guifg=#E8BF6A ctermfg=179 +highlight xmlEndTag guifg=#E8BF6A ctermfg=179 + +highlight mailSubject guifg=#A5C261 ctermfg=107 +highlight mailHeaderKey guifg=#FFC66D ctermfg=221 +highlight mailEmail guifg=#A5C261 ctermfg=107 gui=italic cterm=underline + +highlight SpellBad guifg=#D70000 ctermfg=160 ctermbg=NONE cterm=underline +highlight SpellRare guifg=#D75F87 ctermfg=168 guibg=NONE ctermbg=NONE gui=underline cterm=underline +highlight SpellCap guifg=#D0D0FF ctermfg=189 guibg=NONE ctermbg=NONE gui=underline cterm=underline +highlight MatchParen guifg=#FFFFFF ctermfg=15 guibg=#005f5f ctermbg=23 diff --git a/vim/colors/rdark.vim b/vim/colors/rdark.vim new file mode 100644 index 0000000..a3a4d83 --- /dev/null +++ b/vim/colors/rdark.vim @@ -0,0 +1,159 @@ +" Vim color file +" Maintaner: Radu Dineiu +" URL: http://ld.yi.org/vim/rdark/ +" Last Change: 2007 Jun 23 +" Version: 0.6 +" +" Features: +" - let rdark_current_line = 1 if you want to highlight the current line +" +" Changelog: +" 0.5 - fixed the Pmenu colors +" 0.6 - added SignColumn colors + +set background=dark + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "rdark" + +" Current Line +if exists('rdark_current_line') && rdark_current_line == 1 + set cursorline + hi CursorLine guibg=#191f21 +endif + +" Default Colors +hi Normal guifg=#babdb6 guibg=#1e2426 +hi NonText guifg=#2c3032 guibg=#2c3032 gui=none +hi Cursor guibg=#babdb6 +hi ICursor guibg=#babdb6 + +" Search +hi Search guifg=#2e3436 guibg=#fcaf3e +hi IncSearch guibg=#2e3436 guifg=#fcaf3e + +" Window Elements +hi StatusLine guifg=#2e3436 guibg=#babdb6 gui=none +hi StatusLineNC guifg=#2e3436 guibg=#888a85 gui=none +hi VertSplit guifg=#555753 guibg=#888a85 gui=none +hi Visual guibg=#000000 +hi MoreMsg guifg=#729fcf +hi Question guifg=#8ae234 gui=none +hi WildMenu guifg=#eeeeec guibg=#0e1416 +hi LineNr guifg=#3f4b4d guibg=#000000 +hi SignColumn guibg=#1e2426 + +" Pmenu +hi Pmenu guibg=#2e3436 guifg=#eeeeec +hi PmenuSel guibg=#ffffff guifg=#1e2426 +hi PmenuSbar guibg=#555753 +hi PmenuThumb guifg=#ffffff + +" Diff +hi DiffDelete guifg=#2e3436 guibg=#0e1416 +hi DiffAdd guibg=#1f2b2d +hi DiffChange guibg=#2e3436 +hi DiffText guibg=#000000 gui=none + +" Folds +hi Folded guifg=#d3d7cf guibg=#204a87 +hi FoldColumn guifg=#3465a4 guibg=#000000 + +" Specials +hi Title guifg=#fcaf3e +hi Todo guifg=#fcaf3e guibg=bg +hi SpecialKey guifg=#ef2929 + +" Tabs +hi TabLine guibg=#0a1012 guifg=#888a85 +hi TabLineFill guifg=#0a1012 +hi TabLineSel guibg=#555753 guifg=#eeeeec gui=none + +" Matches +hi MatchParen guifg=#2e3436 guibg=#fcaf3e + +" Tree +hi Directory guifg=#ffffff + +" Syntax +hi Comment guifg=#656763 +hi Constant guifg=#8ae234 +hi Number guifg=#8ae234 +hi Statement guifg=#729fcf gui=none +hi Identifier guifg=#ffffff +hi PreProc guifg=#fcaf3e +hi Function guifg=#fcaf3e +hi Type guifg=#e3e7df gui=none +hi Keyword guifg=#eeeeec +hi Special guifg=#888a85 +hi Error guifg=#eeeeec guibg=#cc0000 + +" PHP +hi phpRegionDelimiter guifg=#ad7fa8 +hi phpPropertySelector guifg=#888a85 +hi phpPropertySelectorInString guifg=#888a85 +hi phpOperator guifg=#888a85 +hi phpArrayPair guifg=#888a85 +hi phpAssignByRef guifg=#888a85 +hi phpRelation guifg=#888a85 +hi phpMemberSelector guifg=#888a85 +hi phpUnknownSelector guifg=#888a85 +hi phpVarSelector guifg=#babdb6 +hi phpSemicolon guifg=#888a85 gui=none +hi phpFunctions guifg=#d3d7cf +hi phpParent guifg=#888a85 + +" JavaScript +hi javaScriptBraces guifg=#888a85 +hi javaScriptOperator guifg=#888a85 + +" HTML +hi htmlTag guifg=#888a85 +hi htmlEndTag guifg=#888a85 +hi htmlTagName guifg=#babdb6 +hi htmlSpecialTagName guifg=#babdb6 +hi htmlArg guifg=#d3d7cf +hi htmlTitle guifg=#8ae234 gui=none +hi link htmlH1 htmlTitle +hi link htmlH2 htmlH1 +hi link htmlH3 htmlH1 +hi link htmlH4 htmlH1 +hi link htmlH5 htmlH1 +hi link htmlH6 htmlH1 + +" XML +hi link xmlTag htmlTag +hi link xmlEndTag htmlEndTag +hi link xmlAttrib htmlArg + +" CSS +hi cssSelectorOp guifg=#eeeeec +hi link cssSelectorOp2 cssSelectorOp +hi cssUIProp guifg=#d3d7cf +hi link cssPagingProp cssUIProp +hi link cssGeneratedContentProp cssUIProp +hi link cssRenderProp cssUIProp +hi link cssBoxProp cssUIProp +hi link cssTextProp cssUIProp +hi link cssColorProp cssUIProp +hi link cssFontProp cssUIProp +hi cssPseudoClassId guifg=#eeeeec +hi cssBraces guifg=#888a85 +hi cssIdentifier guifg=#fcaf3e +hi cssTagName guifg=#fcaf3e +hi link cssInclude Function +hi link cssCommonAttr Constant +hi link cssUIAttr Constant +hi link cssTableAttr Constant +hi link cssPagingAttr Constant +hi link cssGeneratedContentAttr Constant +hi link cssAuralAttr Constant +hi link cssRenderAttr Constant +hi link cssBoxAttr Constant +hi link cssTextAttr Constant +hi link cssColorAttr Constant +hi link cssFontAttr Constant diff --git a/vim/colors/redblack.vim b/vim/colors/redblack.vim new file mode 100644 index 0000000..793af52 --- /dev/null +++ b/vim/colors/redblack.vim @@ -0,0 +1,62 @@ +set background=dark +hi clear + +hi Normal ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Boolean ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Character ctermbg=black guibg=black ctermfg=red guifg=red +hi Comment ctermbg=black guibg=black ctermfg=darkgrey guifg=#606060 cterm=bold +hi Condtional ctermbg=black guibg=black ctermfg=red guifg=red +hi Constant ctermbg=black guibg=black ctermfg=red guifg=red +hi Cursor ctermbg=black guibg=white ctermfg=grey guifg=grey +hi Debug ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Define ctermbg=black guibg=black ctermfg=white guifg=white +hi Delimiter ctermbg=black guibg=black ctermfg=grey guifg=grey +hi DiffAdd ctermbg=NONE guibg=NONE ctermfg=NONE guifg=NONE cterm=NONE gui=NONE +hi DiffChange ctermbg=white guibg=white ctermfg=darkgrey guifg=#606060 +hi DiffDelete ctermbg=black guibg=black ctermfg=darkgrey guifg=#606060 cterm=bold +hi DiffText ctermbg=red guibg=red ctermfg=white guifg=white +hi Directory ctermbg=black guibg=black ctermfg=white guifg=white +hi Error ctermbg=red guibg=red ctermfg=white guifg=white +hi ErrorMsg ctermbg=red guibg=red ctermfg=white guifg=white +hi Exception ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Float ctermbg=black guibg=black ctermfg=red guifg=red cterm=NONE gui=NONE +hi FoldColumn ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Folded ctermbg=black guibg=black ctermfg=red guifg=red +hi Function ctermbg=black guibg=black ctermfg=white guifg=white +hi Identifier ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Include ctermbg=black guibg=black ctermfg=white guifg=white +hi IncSearch ctermbg=green guibg=green ctermfg=darkgrey guifg=#606060 +hi Keyword ctermbg=black guibg=black ctermfg=red guifg=red +hi Label ctermbg=black guibg=black ctermfg=white guifg=white +hi LineNr ctermbg=black guibg=black ctermfg=darkgrey guifg=#606060 cterm=bold +hi Macro ctermbg=black guibg=black ctermfg=grey guifg=grey +hi ModeMsg ctermbg=black guibg=black ctermfg=grey guifg=grey +hi MoreMsg ctermbg=black guibg=black ctermfg=grey guifg=grey +hi NonText ctermbg=black guibg=black ctermfg=darkgrey guifg=#606060 cterm=bold +hi Number ctermbg=black guibg=black ctermfg=red guifg=red cterm=NONE gui=NONE +hi Operator ctermbg=black guibg=black ctermfg=white guifg=white +hi PreCondit ctermbg=black guibg=black ctermfg=white guifg=white +hi PreProc ctermbg=black guibg=black ctermfg=white guifg=white +hi Question ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Repeat ctermbg=black guibg=black ctermfg=white guifg=white +hi Search ctermbg=black guibg=black ctermfg=green guifg=green +hi SpecialChar ctermbg=black guibg=black ctermfg=white guifg=white +hi SpecialComment ctermbg=black guibg=black ctermfg=white guifg=white +hi Special ctermbg=black guibg=black ctermfg=white guifg=white +hi SpecialKey ctermbg=white guibg=white ctermfg=black guifg=black +hi Statement ctermbg=black guibg=black ctermfg=white guifg=white +hi StatusLine ctermbg=white guibg=white ctermfg=red guifg=red +hi StatusLineNC ctermbg=black guibg=black ctermfg=grey guifg=grey +hi StorageClass ctermbg=black guibg=black ctermfg=white guifg=white +hi String ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Structure ctermbg=black guibg=black ctermfg=white guifg=white +hi Tag ctermbg=black guibg=black ctermfg=red guifg=red +hi Title ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Todo ctermbg=black guibg=black ctermfg=white guifg=white +hi Typedef ctermbg=black guibg=black ctermfg=white guifg=white +hi Type ctermbg=black guibg=black ctermfg=white guifg=white +hi VertSplit ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Visual ctermbg=black guibg=black ctermfg=grey guifg=grey +hi VisualNOS ctermbg=black guibg=black ctermfg=grey guifg=grey +hi WarningMsg ctermbg=black guibg=black ctermfg=red guifg=red +hi WildMenu ctermbg=white guibg=white ctermfg=darkgrey guifg=#606060 diff --git a/vim/colors/relaxedgreen.vim b/vim/colors/relaxedgreen.vim new file mode 100644 index 0000000..9d2bf14 --- /dev/null +++ b/vim/colors/relaxedgreen.vim @@ -0,0 +1,112 @@ +" ---------------------------------------------------------------------------------------------------------------------------------- +" Filename: relaxedgreen.vim +" Last Modified: 13 Feb 2007 09:57:24 PM by Dave V +" Maintainer: Dave Vehrs (dvehrs at gmail.com) +" Copyright: 2002,2003,2004,2005,2006,2007 Dave Vehrs +" This script 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 2 of +" the License, or (at your option) any later version. +" Description: Vim colorscheme file. +" Install: Place this file in the users colors directory (~/.vim/colors) or +" in the shared colors directory (/usr/shared/vim/vim/colors/), +" then load it with :colorscheme relaxedgreen +" ---------------------------------------------------------------------------------------------------------------------------------- +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "relaxedgreen" +highlight Cursor term=reverse ctermfg=green ctermbg=blue guifg=#000000 guibg=#559955 +highlight CursorIM term=reverse ctermfg=black ctermbg=darkgreen guifg=#000000 guibg=#336633 +highlight CursorColumn term=none ctermbg=darkred guibg=#663333 +highlight CursorLine term=none ctermbg=darkblue guibg=#333366 +highlight Comment term=italic ctermfg=darkcyan ctermbg=black guifg=#00a594 +highlight Constant term=underline ctermfg=blue guifg=#0099dd +highlight Debug term=bold ctermfg=red ctermbg=black guifg=#dc0000 guibg=#000000 +highlight DiffAdd term=reverse ctermfg=black ctermbg=cyan guifg=#000000 guibg=#007200 +highlight DiffChange term=underline cterm=reverse ctermfg=darkgreen ctermbg=black guifg=#000000 guibg=#006700 +highlight DiffDelete term=standout ctermfg=black ctermbg=cyan guifg=#000000 guibg=#007200 +highlight DiffText term=bold ctermfg=green ctermbg=black guifg=#00ac00 guibg=#000000 +highlight Directory term=underline ctermfg=green ctermbg=black guifg=#336633 guibg=#000000 +highlight Error term=reverse,bold ctermfg=black ctermbg=red guifg=#000000 guibg=#dc0000 +highlight ErrorMsg term=reverse,bold ctermfg=white ctermbg=red guifg=#ffffff guibg=#dc0000 +highlight Folded ctermfg=darkgreen ctermbg=black guifg=#20de20 guibg=#000000 +highlight FoldColumn ctermfg=darkgreen ctermbg=black guifg=#20de20 guibg=#000000 +highlight Function term=standout ctermfg=darkgreen guifg=#22bb22 +highlight Identifier term=underline ctermfg=darkcyan gui=underline guifg=#008800 +highlight Ignore ctermfg=lightgreen guifg=#33bb33 +highlight IncSearch term=reverse ctermfg=black ctermbg=darkgreen guifg=#000000 guibg=#336633 +highlight LineNr term=bold ctermfg=green guifg=#00ff00 +highlight MatchParen term=bold ctermbg=green guifg=#009900 +highlight ModeMsg term=bold cterm=bold gui=bold +highlight MoreMsg term=bold cterm=bold gui=bold +highlight NonText ctermfg=brown guifg=#b26818 +highlight Normal ctermfg=gray ctermbg=black guifg=#aaaaaa guibg=#000000 +highlight Pmenu term=reverse ctermfg=black ctermbg=green guifg=#000000 guibg=#337733 +highlight PmenuSel term=bold ctermfg=black ctermbg=gray guifg=#000000 guibg=#999999 +highlight PmenuSbar term=reverse ctermfg=black ctermbg=green guifg=#000000 guibg=#337733 +highlight PmenuThumb term=reverse ctermfg=gray ctermbg=black guifg=#999999 guibg=#000000 +highlight PreProc term=standout ctermfg=darkgreen guifg=#22bb22 +highlight Question term=standout ctermfg=red guifg=#ff0000 +highlight Search term=reverse ctermfg=black ctermbg=darkgreen guifg=#000000 guibg=#228822 +highlight SignColumn ctermfg=darkgreen guifg=#20de20 guibg=#000000 +highlight Special term=bold ctermfg=green guifg=#00ff00 +highlight SpecialKey term=bold ctermfg=green guifg=#00ff00 +highlight SpellBad term=reverse cterm=underline ctermfg=red ctermbg=black gui=undercurl guisp=#ff0000 +highlight SpellCap term=reverse cterm=underline ctermfg=yellow ctermbg=black gui=undercurl guisp=#00ffff +highlight SpellLocal term=reverse cterm=underline ctermfg=blue ctermbg=black gui=undercurl guisp=#0000ff +highlight SpellRare term=reverse cterm=underline ctermfg=darkgreen ctermbg=black gui=undercurl guisp=#00ff00 +highlight Statement term=standout ctermfg=darkred guifg=#ac0000 +highlight StatusLine term=reverse ctermfg=darkgreen ctermbg=black gui=none guibg=#228822 guifg=#000000 +highlight StatusLineNC term=reverse ctermfg=darkgreen ctermbg=blue gui=none guibg=#336633 guifg=#000000 +highlight TabLine term=reverse cterm=reverse ctermfg=black ctermbg=green guibg=#222222 guifg=#228822 +highlight TabLineFill term=reverse cterm=reverse ctermfg=green ctermbg=black guibg=#222222 guifg=#226622 +highlight TabLineSel ctermfg=black ctermbg=green guibg=#228822 guifg=#222222 +highlight Title term=reverse ctermfg=black ctermbg=green guifg=#000000 guibg=#00ff00 +highlight Todo term=reverse cterm=reverse ctermfg=darkgreen ctermbg=black guibg=#336633 guifg=#000000 +highlight Type term=standout ctermfg=green guifg=#559955 +highlight Visual term=reverse cterm=reverse ctermfg=darkgreen guifg=#000000 guibg=#336633 +highlight VisualNOS term=reverse,bold cterm=reverse ctermbg=darkgreen guifg=#000000 guibg=#228822 +highlight VertSplit term=reverse ctermfg=darkgreen guifg=#336633 +highlight User1 term=standout cterm=bold ctermbg=darkgreen ctermfg=red gui=bold guibg=#228822 guifg=#FF0000 +highlight WarningMsg term=reverse ctermfg=black ctermbg=yellow guifg=#000000 guibg=#007a7a +highlight WildMenu term=reverse ctermfg=blue ctermbg=darkgreen guifg=#000099 guibg=#00ac00 + +" ---------------------------------------------------------------------------------------------------------------------------------- +" Common groups that link to other highlight definitions. + +highlight link Character Constant +highlight link Number Constant +highlight link Boolean Constant +highlight link String Constant + +highlight link Operator LineNr + +highlight link Float Number + +highlight link Define PreProc +highlight link Include PreProc +highlight link Macro PreProc +highlight link PreCondit PreProc + +highlight link Repeat Question + +highlight link Conditional Repeat + +highlight link Delimiter Special +highlight link SpecialChar Special +highlight link SpecialComment Special +highlight link Tag Special + +highlight link Exception Statement +highlight link Keyword Statement +highlight link Label Statement + +highlight link StorageClass Type +highlight link Structure Type +highlight link Typedef Type + +" ---------------------------------------------------------------------------------------------------------------------------------- +" vim:tw=132:ts=4:sw=4 diff --git a/vim/colors/reloaded.vim b/vim/colors/reloaded.vim new file mode 100644 index 0000000..7cf09e1 --- /dev/null +++ b/vim/colors/reloaded.vim @@ -0,0 +1,444 @@ +" Vim colour file: The colorscheme reloaded. +" Maintainer: Pan Shizhu +" Last Change: 16 July 2004 +" URL: http://vim.sourceforge.net/scripts/script.php?script_id=760 +" Version: 0.6 +" +" Please prepend [VIM] in the title when writing e-mail to me, or it will +" be silently discarded. +" +" Description: +" +" See :h reloaded.txt for details +" +" Release Notes: +" +" v0.6 For default users it may be slow, Added :se lz to disable refresh +" Changed some groups of the sample parameter +" Use bracketed variable instead of the exe statement +" Changed the order of most division calculation to improve accuracy +" v0.5 Initial upload at 15 July 2004. +" + + +" minimal value of all the given numbers, maximum 20 parameters +fu! s:min(num1,num2,...) + let l:min = a:num1 0 + let l:var = a:{l:idx} + if l:var < l:min + let l:min = l:var + en + let l:idx = l:idx - 1 + endw + retu l:min +endf + +" same as above for maximal value +fu! s:max(num1,num2,...) + let l:max = a:num1>a:num2 ? a:num1 : a:num2 + + let l:idx = a:0 + wh l:idx > 0 + let l:var = a:{l:idx} + if l:var > l:max + let l:max = l:var + en + let l:idx = l:idx - 1 + endw + retu l:max +endf + +" guard the var to be in the range between unity and base. +" if base is omitted, treat like degrees. +fu! s:guard(var,unity,...) + if a:0 + if a:var < a:1 + retu a:1 + elsei a:var > a:unity + retu a:unity + en + retu a:var + en + if a:var < 0 + retu a:unity + (a:var % a:unity) + en + retu a:var % a:unity +endf + +" sub-function + " 8-bit integer to 2 digit hexadecimal + fu! s:to_hex(num) + retu '0123456789abcdef' [a:num/16%16] . '0123456789abcdef' [a:num%16] + endf + +" rgb to rgb color string +fu! s:rgb2colors(red,green,blue) + retu "#".s:to_hex(a:red+0).s:to_hex(a:green+0).s:to_hex(a:blue+0) +endf + +" sub-functions + fu! s:hue2rgb(v1, v2, hue) + " trim to the first period + let l:hue = s:guard(a:hue, 360) + + if l:hue < 60 + retu a:v1 + l:hue * (a:v2 - a:v1) / 60 + en + if l:hue < 180 + retu a:v2 + en + if l:hue < 240 + retu a:v1 + (240 - l:hue) * (a:v2 - a:v1) / 60 + en + retu a:v1 + endf + +" hsl to rgb color string +fu! s:hsb2colors(hue,sat,bri) + " Hue: Any integer degree (modular 360) + " Saturation: 0 to 1023/1023 + " Luminance: 0 to 1023/1023 + " RGB results = 0 to 255 + + if a:sat == 0 + let l:lum = a:bri / 4 + retu s:rgb2colors(l:lum, l:lum, l:lum) + en + + if a:bri < 512 + let l:v2 = a:bri * ( 1023 + a:sat ) + el + let l:v2 = ( a:bri + a:sat ) * 1023 - ( a:sat * a:bri ) + en + + let l:v1 = 2 * 1023 * a:bri - l:v2 + + let l:red = s:hue2rgb(l:v1, l:v2, a:hue + 120) / 4092 + let l:green = s:hue2rgb(l:v1, l:v2, a:hue) / 4092 + let l:blue = s:hue2rgb(l:v1, l:v2, a:hue - 120) / 4092 + + retu s:rgb2colors(l:red, l:green, l:blue) + +endf + +" rgb color number to s:rgb +fu! s:color2rgb(color) + let s:red = a:color / 0x10000 + let s:green = (a:color / 0x100) % 0x100 + let s:blue = a:color % 0x100 +endf + +" rgb to s:hsl +fu! s:rgb2hsb(red,green,blue) + + let l:red = a:red * 1023 / 255 + let l:green = a:green * 1023 / 255 + let l:blue = a:blue * 1023 / 255 + + let l:min = s:min(l:red, l:green, l:blue) + let l:max = s:max(l:red, l:green, l:blue) + let l:delta = l:max - l:min + + let s:bri = (l:max + l:min) / 2 + + if l:delta == 0 + let s:hue = 180 " When sat = 0, hue default to 180 + let s:sat = 0 + el + if s:bri < 512 + let s:sat = l:delta * 1023 / (l:max + l:min) + el + let s:sat = l:delta * 1023 / (2*1023 - l:max - l:min) + en + + let l:del_r = ( (l:max-l:red) + (l:delta*3) ) * 60 / l:delta + let l:del_g = ( (l:max-l:green) + (l:delta*3) ) * 60 / l:delta + let l:del_b = ( (l:max-l:blue) + (l:delta*3) ) * 60 / l:delta + + if l:red == l:max + let s:hue = l:del_b - l:del_g + elsei l:green == l:max + let s:hue = 120 + l:del_r - l:del_b + elsei l:blue == l:max + let s:hue = 240 + l:del_g - l:del_r + en + + let s:hue = s:guard(s:hue, 360) + en +endf + +" sub-functions + if !exists("s:loaded") | let s:hue_range = 0 | let s:hue_phase = 0 | en + fu! s:cast_hue(hue) + retu a:hue * s:hue_range / 360 - s:hue_range / 2 + s:hue_phase + endf + + if !exists("s:loaded") | let s:sat_base = 0 | let s:sat_modify = 0 | en + fu! s:cast_sat(sat) + let l:sat = a:sat * (1024 - s:sat_base) / 1024 + s:sat_base + retu l:sat * s:sat_modify / 100 + endf + + if !exists("s:loaded") | let s:bri_base = 0 | let s:bri_modify = 0 | en + fu! s:cast_bri(bri) + let l:bri = a:bri * (1024 - s:bri_base) / 1024 + s:bri_base + retu l:bri * s:bri_modify / 100 + endf + +" input hsl, do modification in HSL color space, output rgb color string +fu! s:make_hsb(hue,sat,bri) + + let l:hue = s:guard(s:cast_hue(a:hue), 360) + let l:sat = s:guard(s:cast_sat(a:sat), 1023, s:sat_base) + let l:bri = s:guard(s:cast_bri(a:bri), 1023, s:bri_base) + + if s:verbose | ec "\"\tH=".l:hue."\tS=".l:sat."\tL=".l:bri | en + retu s:hsb2colors(l:hue, l:sat, l:bri) + +endf + +" input rgb color number, transfer to HSL, then do make_hsb +fu! s:make_color(color) + cal s:color2rgb(a:color) + cal s:rgb2hsb(s:red, s:green, s:blue) + retu s:make_hsb(s:hue, s:sat, s:bri) +endf + +" input color string, transfer in HSL, output rgb color string +fu! s:parse_color(p) + if a:p[6] == "#" + let l:p = '0x'.strpart(a:p, 7, 6) + 0 + retu strpart(a:p, 0, 6).s:make_color(l:p) + elsei a:p[6] == "@" + let l:hue = s:guard(strpart(a:p, 7, 3) + 0, 360) + let l:sat = s:guard(strpart(a:p, 10, 4) + 0, 1023, 0) + let l:bri = s:guard(strpart(a:p, 14, 4) + 0, 1023, 0) + retu strpart(a:p, 0, 6).s:make_hsb(l:hue, l:sat, l:bri) + el + retu a:p + en +endf + +if !exists("s:loaded") | let s:verbose = 0 | en +fu! s:psc_hi(group, p1, p2, ...) + if a:0 == 0 + let l:p3 = "gui=NONE" + el + let l:p3 = a:1 + en + let l:p1 = s:parse_color(a:p1) + let l:p2 = s:parse_color(a:p2) + if s:verbose | ec "hi ".a:group." ".l:p1." ".l:p2." ".l:p3 | en + exe "hi ".a:group." ".l:p1." ".l:p2." ".l:p3 +endf + +fu! s:multi_hi(setting, ...) + let l:idx = a:0 + wh l:idx > 0 + let l:hlgroup = a:{l:idx} + if s:verbose | ec "hi ".l:hlgroup." ".a:setting | en + exe "hi ".l:hlgroup." ".a:setting + let l:idx = l:idx - 1 + endw +endf + +" Transfer global variable into script variable +fu! s:init_option(var, value) + if !exists("g:psc_".a:var) + exe "let s:".a:var." = ".a:value + el + let s:{a:var} = g:psc_{a:var} + en +endf + +if !exists("loaded") | let s:file = expand("") | en + +cal s:init_option("reload_prefix", "'".fnamemodify(s:file,":p:h")."/'") + +fu! s:psc_reload(...) + + " Only do color for GUI + if !has("gui_running") | retu | en + + if a:0 > 10 + echoe "Too many parameters, ".'a:0 == '.a:0 + retu + en + + com! -nargs=+ InitOpt cal s:init_option() + + if a:0 >= 6 + " Hue = phase +- (range/2) + " Sat = sat * modify% then promoted from base to 1024 + " Bri = bri * modify% then promoted from base to 1024 + + let s:hue_range = a:1 + let s:sat_modify = a:2 + let s:bri_modify = a:3 + + let s:hue_phase = a:4 + let s:sat_base = a:5 + let s:bri_base = a:6 + el + InitOpt hue_range 360 + InitOpt sat_modify 100 + InitOpt bri_modify 100 + + InitOpt hue_phase 180 + InitOpt sat_base 0 + InitOpt bri_base 0 + en + + if a:0 >= 7 + let s:lightbg = a:7 + el + InitOpt style 'cool' + if s:style == 'warm' + InitOpt lightbg 1 + el + InitOpt lightbg 0 + en + en + + if a:0 >= 8 + let s:plainfont = a:8 + el + InitOpt fontface 'mixed' + if s:fontface == 'mixed' + InitOpt plainfont 0 + el + InitOpt plainfont 1 + en + en + + if a:0 >= 9 + let s:verbose = a:9 + el + InitOpt verbose 0 + en + + if a:0 == 10 + let s:reload_filename = a:10 + el + InitOpt reload_filename 'ps_color.vim' + en + + delc InitOpt + + let s:reload_filename = s:reload_prefix.s:reload_filename + + if !filereadable(s:reload_filename) + echoe "Color data file ".s:reload_filename." not found." + retu + en + + se lz + + if !s:lightbg | se bg=dark | el | se bg=light | en + + hi clear + + if exists("syntax_on") | sy reset | en + + " This is mandatory, personally I think it is a bug rather than a feature. + let g:colors_name = expand(":t:r") + + + " GUI: + " + " Matrix Reloaded style for gui + " + let s:tempfile = '__Temp_Colors__' + + exe "sil! 1new ".s:tempfile + sil! %d + exe "sil! 0r ".s:reload_filename + if s:verbose + ec '" Reloaded color scheme from '.s:reload_filename + ec '" with param ' s:hue_range s:sat_modify s:bri_modify + \s:hue_phase s:sat_base s:bri_base s:lightbg s:plainfont + ec '" ' + en + + if !s:lightbg + sil! 1,/^\s*" DARK COLOR DEFINE START$/d + sil! /^\s*" DARK COLOR DEFINE END$/,$d + el + sil! 1,/^\s*" LIGHT COLOR DEFINE START$/d + sil! /^\s*" LIGHT COLOR DEFINE END$/,$d + en + + sil! 0 + let s:nnb = 1 + com! -nargs=+ PscHi cal s:psc_hi() + wh 1 + let s:nnb = nextnonblank(s:nnb) + if !s:nnb | brea | en + + let s:line = getline(s:nnb) + + let s:nnb = s:nnb + 1 + + " Skip invalid lines + if s:line !~ '^\s*hi\%[ghlight]\s*.*' | con | en + + exe substitute(s:line, '\', 'PscHi', '') + endw + sil! q! + delc PscHi + + " Enable the bold style + com! -nargs=+ MultiHi cal s:multi_hi() + if !s:plainfont + MultiHi gui=bold Question StatusLine DiffText Statement Type MoreMsg ModeMsg NonText Title VisualNOS DiffDelete + endif + delc MultiHi + + " Color Term: + " Are you crazy? + + + " Term: + " Don't be silly... + + + " Links: + " Something sensible + + exe "sil! 1new ".s:tempfile + sil! %d + exe "sil! 0r ".s:reload_filename + + sil! 1,/^\s*" COLOR LINKS DEFINE START$/d + sil! /^\s*" COLOR LINKS DEFINE END$/,$d + + sil! 0 + let s:nnb = 1 + wh 1 + let s:nnb = nextnonblank(s:nnb) + if !s:nnb + brea + en + let s:line = getline(s:nnb) + + let s:nnb = s:nnb + 1 + " Skip invalid lines + if s:line !~ '^\s*hi\%[ghlight]\s*.*' | con | en + + if s:verbose | ec s:line | en + + sil! exe s:line + endw + sil! q! + +endf + +" To flag the script variables are initialized +let s:loaded = 1 + +com! -nargs=* Reload cal psc_reload() + +" vim:et:nosta:sw=2:ts=8: diff --git a/vim/colors/revolutions.vim b/vim/colors/revolutions.vim new file mode 100644 index 0000000..15450c9 --- /dev/null +++ b/vim/colors/revolutions.vim @@ -0,0 +1,75 @@ +" MATRIX-REVOLUTIONS colorscheme +" Author: Christian MICHON +" Version: 1.0 +" Last Change: 23 Jun 2004 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = 'revolutions' + +hi Boolean guifg=#e6fff3 guibg=#43705a gui=none +hi Character guifg=#e6fff3 guibg=#43705a gui=none +hi Comment guifg=#43705a guibg=#000000 gui=underline +hi Conditional guifg=#e6fff3 guibg=#000000 gui=bold +hi Constant guifg=#e6fff3 guibg=#43705a gui=none +hi Cursor guifg=#43705a guibg=#e6fff3 gui=none +hi Debug guifg=#61a181 guibg=#000000 gui=none +hi Define guifg=#e6fff3 guibg=#000000 gui=none +hi Delimiter guifg=#61a181 guibg=#000000 gui=none +hi DiffAdd guifg=#e6fff3 guibg=#43705a gui=bold +hi DiffChange guifg=#e6fff3 guibg=#43705a gui=none +hi DiffDelete guifg=#e6fff3 guibg=#43705a gui=none +hi DiffText guifg=#000000 guibg=#e6fff3 gui=bold +hi Directory guifg=#e6fff3 guibg=#000000 gui=none +hi Error guifg=#e6fff3 guibg=#61a181 gui=bold +hi ErrorMsg guifg=#e6fff3 guibg=#61a181 gui=bold +hi Exception guifg=#e6fff3 guibg=#000000 gui=bold +hi Float guifg=#e6fff3 guibg=#43705a gui=none +hi FoldColumn guifg=#9bcfb5 guibg=#43705a gui=bold +hi Folded guifg=#9bcfb5 guibg=#43705a gui=bold +hi Function guifg=#e6fff3 guibg=#000000 gui=none +hi Identifier guifg=#e6fff3 guibg=#000000 gui=none +hi Ignore guifg=#000000 guibg=#000000 gui=none +hi Include guifg=#e6fff3 guibg=#000000 gui=none +hi IncSearch guifg=#1d3026 guibg=#61a181 gui=bold +hi Keyword guifg=#e6fff3 guibg=#000000 gui=bold +hi Label guifg=#e6fff3 guibg=#000000 gui=bold +hi lCursor guifg=#43705a guibg=#e6fff3 gui=none +hi LineNr guifg=#9bcfb5 guibg=#000000 gui=bold +hi Macro guifg=#e6fff3 guibg=#000000 gui=none +hi ModeMsg guifg=#9bcfb5 guibg=#000000 gui=bold +hi MoreMsg guifg=#9bcfb5 guibg=#000000 gui=bold +hi NonText guifg=#9bcfb5 guibg=#1d3026 gui=bold +hi Normal guifg=#9bcfb5 guibg=#000000 gui=none +hi Number guifg=#e6fff3 guibg=#000000 gui=none +hi Operator guifg=#e6fff3 guibg=#000000 gui=bold +hi PreCondit guifg=#e6fff3 guibg=#000000 gui=none +hi PreProc guifg=#61a181 guibg=#000000 gui=none +hi Question guifg=#9bcfb5 guibg=#000000 gui=bold +hi Repeat guifg=#e6fff3 guibg=#000000 gui=bold +hi Search guifg=#1d3026 guibg=#61a181 gui=bold +hi Special guifg=#61a181 guibg=#000000 gui=none +hi SpecialChar guifg=#61a181 guibg=#000000 gui=none +hi SpecialComment guifg=#61a181 guibg=#000000 gui=none +hi SpecialKey guifg=#9bcfb5 guibg=#000000 gui=none +hi Statement guifg=#e6fff3 guibg=#000000 gui=bold +hi StatusLine guifg=#e6fff3 guibg=#61a181 gui=bold +hi StatusLineNC guifg=#1d3026 guibg=#61a181 gui=bold +hi StorageClass guifg=#f070a0 guibg=#000000 gui=bold +hi String guifg=#e6fff3 guibg=#000000 gui=none +hi Structure guifg=#f070a0 guibg=#000000 gui=bold +hi Tag guifg=#61a181 guibg=#000000 gui=none +hi Title guifg=#e6fff3 guibg=#1d3026 gui=bold +hi Todo guifg=#1d3026 guibg=#9bcfb5 gui=none +hi Type guifg=#e6fff3 guibg=#000000 gui=bold +hi Typedef guifg=#f070a0 guibg=#000000 gui=bold +hi Underlined guifg=#e6fff3 guibg=#000000 gui=underline +hi VertSplit guifg=#61a181 guibg=#61a181 gui=none +hi Visual guifg=#e6fff3 guibg=#61a181 gui=none +hi VisualNOS guifg=#9bcfb5 guibg=#000000 gui=underline +hi WarningMsg guifg=#1d3026 guibg=#61a181 gui=bold +hi WildMenu guifg=#43705a guibg=#e6fff3 gui=none diff --git a/vim/colors/robinhood.vim b/vim/colors/robinhood.vim new file mode 100644 index 0000000..ab1d14d --- /dev/null +++ b/vim/colors/robinhood.vim @@ -0,0 +1,103 @@ +" Vim color file +" Maintainer: Datila Carvalho +" Last Change: May, 19, 2005 +" Version: 0.2 + +" This is a VIM's version of the emacs color theme +" _Robin Hood_ created by Alex Schroede. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "robinhood" + + +""" Colors + +" GUI colors +hi Cursor guifg=fg guibg=gray +hi CursorIM guifg=NONE guibg=gray +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg gui=bold guifg=white guibg=Red +"hi VertSplit +"hi Folded +"hi FoldColumn +"hi IncSearch +hi LineNr gui=bold guifg=yellowgreen guibg=#203010 +"hi ModeMsg +"hi MoreMsg +"hi NonText +hi Normal guibg=#304020 guifg=wheat +"hi Question +hi Search gui=bold guifg=black guibg=gray +"hi SpecialKey +hi StatusLine guifg=darkolivegreen guibg=wheat +hi StatusLineNC guifg=olivedrab guibg=wheat +"hi Title +hi Visual guifg=darkslategrey guibg=fg +hi VisualNOS gui=bold guifg=Black guibg=fg +hi WarningMsg guifg=White guibg=Tomato +"hi WildMenu + +hi User2 guifg=yellowgreen guibg=#091900 gui=bold + +" If using Motif/Athena +hi Menu guibg=#304020 guifg=wheat +hi Scrollbar guibg=bg + +" Colors for syntax highlighting +hi Comment guifg=lightblue + +hi Constant gui=bold guifg=lightcyan + hi String guifg=lightsalmon + hi Character guifg=lightsalmon + hi Number gui=bold guifg=lightcyan + hi Boolean gui=bold guifg=lightcyan + hi Float gui=bold guifg=lightcyan + +hi Identifier gui=bold guifg=palegreen + hi Function guifg=yellowgreen + +hi Statement gui=bold guifg=salmon + hi Conditional gui=bold guifg=salmon + hi Repeat gui=bold guifg=salmon + hi Label guifg=salmon + hi Operator guifg=salmon + "hi Keyword + "hi Exception + +hi PreProc guifg=palegreen + hi Include gui=bold guifg=palegreen + hi Define guifg=palegreen + hi Macro guifg=aquamarine + hi PreCondit guifg=palegreen + +hi Type gui=bold guifg=yellowgreen + hi StorageClass gui=bold guifg=aquamarine + hi Structure gui=bold guifg=aquamarine + hi Typedef gui=bold guifg=aquamarine + +"hi Special + ""Underline Character + "hi SpecialChar gui=underline + "hi Tag gui=bold,underline + ""Statement + "hi Delimiter gui=bold + ""Bold comment (in Java at least) + "hi SpecialComment gui=bold + "hi Debug gui=bold + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=White guibg=Red + +"hi Todo diff --git a/vim/colors/sand.vim b/vim/colors/sand.vim new file mode 100644 index 0000000..cc673df --- /dev/null +++ b/vim/colors/sand.vim @@ -0,0 +1,30 @@ +" Vim color file +" Maintainer: Tim Alexeevsky +" Last Change: 2002-03-14 +" Version: 0.5 +" URL: http://sunsite.cs.msu.su/~tim/vim/sand.vim +" +" Thanx to Hans Fugal for his colorscheme_template.vim + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="sand" + +highlight Normal guibg=cornsilk guifg=NONE +highlight PreProc guibg=NONE guifg=Maroon4 +highlight Comment guibg=NONE guifg=SteelBlue4 +highlight Constant guibg=NONE guifg=NavajoWhite4 +highlight Special guibg=NONE guifg=SlateBlue4 +highlight Identifier guibg=NONE guifg=SeaGreen +highlight Statement guibg=NONE guifg=bisque4 +highlight Type guibg=NONE guifg=DarkOliveGreen +highlight Todo guibg=LightYellow3 guifg=Blue4 +highlight NonText guibg=NONE guifg=DarkGreen +highlight LineNr guibg=NONE guifg=Brown +highlight StatusLineNC guifg=#8090a0 +highlight StatusLine guifg=#005070 + +"vim: tw=0 sw=3 ts=3 sts=3 et diff --git a/vim/colors/satori.vim b/vim/colors/satori.vim new file mode 100644 index 0000000..5c7b250 --- /dev/null +++ b/vim/colors/satori.vim @@ -0,0 +1,47 @@ +" Vim color file +" Maintainer: Ruda Moura +" Last Change: Sun Feb 24 18:50:47 BRT 2008 + +highlight clear Normal +set background& + +highlight clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "satori" + +" Vim colors +highlight Normal ctermfg=NONE cterm=NONE +highlight Comment ctermfg=Cyan cterm=NONE +highlight Constant ctermfg=Red cterm=NONE +highlight Number ctermfg=Red cterm=NONE +highlight Identifier ctermfg=NONE cterm=NONE +highlight Statement ctermfg=NONE cterm=Bold +highlight PreProc ctermfg=Blue cterm=NONE +highlight Type ctermfg=Magenta cterm=NONE +highlight Special ctermfg=Magenta cterm=NONE + +" Vim monochrome +highlight Normal term=NONE +highlight Comment term=NONE +highlight Constant term=Underline +highlight Number term=Underline +highlight Identifier term=NONE +highlight Statement term=Bold +highlight PreProc term=NONE +highlight Type term=Bold +highlight Special term=NONE + +" GVim colors +highlight Normal guifg=NONE gui=NONE +highlight Comment guifg=DarkCyan gui=NONE +highlight Constant guifg=Red gui=NONE +highlight Number guifg=Red gui=Bold +highlight Identifier guifg=NONE gui=NONE +highlight Statement guifg=NONE gui=Bold +highlight PreProc guifg=Blue gui=NONE +highlight Type guifg=Magenta gui=NONE +highlight Special guifg=Red gui=Bold diff --git a/vim/colors/scite.vim b/vim/colors/scite.vim new file mode 100644 index 0000000..609ad98 --- /dev/null +++ b/vim/colors/scite.vim @@ -0,0 +1,48 @@ +" Vim color file +" Maintainer: Gergely Kontra +" Last Change: 2002. 04. 09. + +" I'm a bit red-blind, so if you have suggestions, don't hesitate :) +" ^^^^^^^^^ Sorry, I cannot speak English well, just want to say, +" that in some rare cases I cannot distinguish between some colors +" (I've just realized it, when I see some special tests) + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "scite" + +" hardcoded colors : + +" GUI +"highlight Normal guifg=#7F6F5F guibg=#eeeeee +highlight Normal guifg=#7F6F5F guibg=#ffffff +highlight Search guibg=#bbbbbb gui=bold +highlight Visual guifg=#DADADA +highlight Folded guifg=#ffffff guibg=#666666 +highlight Cursor guifg=#666666 guibg=#000000 gui=bold +highlight Special guifg=#7F007F guibg=#eeeeff gui=bold +highlight Comment guifg=#007F00 guibg=#eeeeee +highlight StatusLine guifg=#000000 guibg=#aacccc +highlight StatusLineNC guifg=#557777 guibg=#ffffff +highlight Statement guifg=#007F7F gui=bold +highlight Type guifg=#0000ff gui=NONE +highlight Function guifg=#007F7F gui=bold +highlight LineNr guifg=#000000 guibg=#bbbbbb +highlight FoldColumn guifg=#000000 guibg=#dddddd +highlight Define guifg=#00007F guibg=#ddddff gui=bold +highlight Number guifg=#000000 guibg=#eeffff gui=bold +highlight Subtitle guifg=#000000 guibg=#66bbbb gui=bold,underline +highlight String guifg=#7F007F guibg=#ffdddd +highlight Delimiter guifg=#000000 guibg=#dde0dd gui=bold +highlight PreProc guifg=#0000ff guibg=#ffffff gui=bold +highlight Constant guifg=#000000 guibg=#aaaaaa gui=underline,bold + +"{{{ + +"}}} + + diff --git a/vim/colors/sea.vim b/vim/colors/sea.vim new file mode 100644 index 0000000..0c79c47 --- /dev/null +++ b/vim/colors/sea.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:01. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "sea" + +hi Normal guifg=#f0f0f8 guibg=#343478 + +" Search +hi IncSearch gui=UNDERLINE,BOLD guifg=#ffffff guibg=#c030ff +hi Search gui=BOLD guifg=#f0e0ff guibg=#b020ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#f000a0 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#f000a0 +hi ModeMsg gui=BOLD guifg=#00e0ff guibg=NONE +hi MoreMsg gui=BOLD guifg=#00ffff guibg=#6060ff +hi Question gui=BOLD guifg=#00f0d0 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#d0d0e0 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#d0d0e0 +hi VertSplit gui=NONE guifg=#606080 guibg=#d0d0e0 +hi WildMenu gui=NONE guifg=#000000 guibg=#ff90ff + +" Diff +hi DiffText gui=UNDERLINE guifg=#ffff00 guibg=#000000 +hi DiffChange gui=NONE guifg=#ffffff guibg=#000000 +hi DiffDelete gui=NONE guifg=#60ff60 guibg=#000000 +hi DiffAdd gui=NONE guifg=#60ff60 guibg=#000000 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#ffffff guibg=#0080a0 +hi FoldColumn gui=NONE guifg=#9090ff guibg=#3c3c88 + +" Other +hi Directory gui=NONE guifg=#00ffff guibg=NONE +hi LineNr gui=NONE guifg=#7070e8 guibg=NONE +hi NonText gui=BOLD guifg=#8080ff guibg=#2c2c78 +hi SpecialKey gui=BOLD guifg=#60c0ff guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=NONE +hi Visual gui=NONE guifg=#ffffff guibg=#6060ff +" hi VisualNOS gui=NONE guifg=#ffffff guibg=#6060ff + +" Syntax group +hi Comment gui=NONE guifg=#b0b0c8 guibg=NONE +hi Constant gui=NONE guifg=#60ffff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#f000a0 +hi Identifier gui=NONE guifg=#c0c0ff guibg=NONE +hi Ignore gui=NONE guifg=#303080 guibg=NONE +hi PreProc gui=NONE guifg=#ffb0ff guibg=NONE +hi Special gui=NONE guifg=#ffd858 guibg=NONE +hi Statement gui=NONE guifg=#f0f060 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ff70e0 guibg=NONE +hi Type gui=NONE guifg=#40ff80 guibg=NONE +hi Underlined gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=NONE diff --git a/vim/colors/sean.vim b/vim/colors/sean.vim new file mode 100644 index 0000000..1aa2b1e --- /dev/null +++ b/vim/colors/sean.vim @@ -0,0 +1,83 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer:Sean Richards +" Last Change:Fri Aug 30 8:50 2002 NZST + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "sean" +hi Normal guifg=white guibg=black +hi SpecialKey guifg=Blue +hi NonText gui=bold guifg=Blue +hi Directory guifg=Blue +hi ErrorMsg guifg=White guibg=Red +hi Search guifg=white guibg=Red +hi MoreMsg gui=bold guifg=SeaGreen +hi ModeMsg gui=bold guifg=White guibg=Blue +hi LineNr ctermfg=Darkyellow guifg=Yellow +hi Question gui=bold guifg=Green +hi StatusLineNC cterm=none ctermfg=grey ctermbg=darkblue gui=NONE guifg=white guibg=darkblue +hi StatusLine cterm=none ctermfg=white ctermbg=darkblue gui=bold guifg=white guibg=darkblue +hi VertSplit gui=bold guifg=White guibg=darkblue +hi Title gui=bold guifg=Magenta +hi Visual cterm=none ctermfg=white ctermbg=darkgreen gui=NONE guifg=white guibg=darkgreen +hi WarningMsg guifg=Red +hi FoldColumn ctermfg=Black ctermbg=Grey guibg=DarkGrey guifg=Black +hi Folded ctermfg=Black ctermbg=Grey guifg=Black +hi Cursor guifg=bg guibg=Green +hi Comment cterm=none ctermfg=darkgreen gui=italic guifg=green +hi Constant ctermfg=darkcyan guifg=darkcyan +hi Special ctermfg=darkyellow guifg=Orange +hi Identifier ctermfg=cyan guifg=cyan +hi Statement ctermfg=darkyellow gui=bold guifg=darkyellow +hi Number ctermfg=Cyan guifg=Cyan +hi PreProc ctermfg=darkmagenta guifg=darkmagenta +hi String ctermfg=darkred guifg=Red +hi Type ctermfg=darkblue guifg=blue +hi Error ctermfg=red guifg=Red guibg=Black +hi Todo ctermfg=blue ctermbg=yellow guifg=Blue guibg=Yellow +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special + + +"Toggle semicolon matching at the end of lines, author unknown! +nmap sc :call ToggleSemicolonHighlighting() +"{{{ +function! ToggleSemicolonHighlighting() + if exists("b:semicolon") + unlet b:semicolon + hi semicolon guifg=NONE gui=NONE ctermfg=NONE + else + syn match semicolon #;$# + hi semicolon guifg=red gui=bold ctermfg=1 + let b:semicolon = 1 + endif +endfunction +"}}} diff --git a/vim/colors/seashell.vim b/vim/colors/seashell.vim new file mode 100644 index 0000000..130785d --- /dev/null +++ b/vim/colors/seashell.vim @@ -0,0 +1,32 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2003 Apr 17 + +" This is very reminiscent of a seashell. Good contrast, yet not too hard on +" the eyes. This is something of a cross between zellner and peachpuff, if +" such a thing is possible... +" +" Only values that differ from defaults are specified. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "seashell" + +hi Normal guibg=seashell ctermbg=Gray ctermfg=Black +hi NonText guibg=LavenderBlush guifg=Gray30 +hi LineNr guibg=LavenderBlush guifg=Gray30 +hi DiffDelete guibg=LightRed guifg=Black ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=LightGreen ctermbg=DarkGreen ctermfg=White +hi DiffChange guibg=Gray90 ctermbg=DarkCyan ctermfg=White +hi DiffText gui=NONE guibg=LightCyan2 ctermbg=DarkCyan ctermfg=Yellow +hi Comment guifg=MediumBlue +hi Constant guifg=DeepPink +hi PreProc guifg=DarkMagenta +hi StatusLine guibg=White guifg=DarkSeaGreen cterm=None ctermfg=White ctermbg=DarkGreen +hi StatusLineNC gui=None guibg=Gray +hi VertSplit gui=None guibg=Gray +hi Identifier guifg=#006f6f +hi Statement ctermfg=DarkRed diff --git a/vim/colors/sf.vim b/vim/colors/sf.vim new file mode 100644 index 0000000..7d9dcdb --- /dev/null +++ b/vim/colors/sf.vim @@ -0,0 +1,76 @@ +" GUI-only vim color file, based on colors from vim.sf.net +" Author: Christian MICHON +" Email: christian_michon@yahoo.fr +" Version: 1.1 +" Last Change: 28 Jul 2004 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "sf" + +hi Boolean guifg=#007f00 guibg=#f0f0dd gui=none +hi Character guifg=#007f00 guibg=#f0f0dd gui=none +hi Comment guifg=#b0b0b0 guibg=#f0f0d0 gui=none +hi Conditional guifg=#0000ee guibg=#f0f0dd gui=bold +hi Constant guifg=#007f00 guibg=#f0f0dd gui=none +hi Cursor guifg=#f0f0dd guibg=#cc0000 gui=none +hi Debug guifg=#0000ee guibg=#f0f0dd gui=none +hi Define guifg=#cc0000 guibg=#f0f0dd gui=none +hi Delimiter guifg=#0000ee guibg=#f0f0dd gui=none +hi DiffAdd guifg=#551a8b guibg=#007f00 gui=bold +hi DiffChange guifg=#f0f0dd guibg=#007ff0 gui=none +hi DiffDelete guifg=#551a8b guibg=#007f00 gui=none +hi DiffText guifg=#f0f0dd guibg=#551a8b gui=bold +hi Directory guifg=#cc0000 guibg=#f0f0dd gui=underline +hi Error guifg=#ffffff guibg=#cc0000 gui=bold +hi ErrorMsg guifg=#ffffff guibg=#cc0000 gui=bold +hi Exception guifg=#0000ee guibg=#f0f0dd gui=bold +hi Float guifg=#007f00 guibg=#f0f0dd gui=none +hi FoldColumn guifg=#f0f0dd guibg=#007f00 gui=bold +hi Folded guifg=#f0f0dd guibg=#007f00 gui=bold +hi Function guifg=#cc0000 guibg=#f0f0dd gui=none +hi Identifier guifg=#cc0000 guibg=#f0f0dd gui=none +hi Ignore guifg=#f0f0dd guibg=#f0f0dd gui=none +hi Include guifg=#cc0000 guibg=#f0f0dd gui=none +hi IncSearch guifg=#ffffff guibg=#38d878 gui=bold +hi Keyword guifg=#0000ee guibg=#f0f0dd gui=bold +hi Label guifg=#0000ee guibg=#f0f0dd gui=bold +hi lCursor guifg=#000066 guibg=#f0f0dd gui=none +hi LineNr guifg=#b0b0b0 guibg=#007f00 gui=bold +hi Macro guifg=#cc0000 guibg=#f0f0dd gui=none +hi ModeMsg guifg=#000066 guibg=#f0f0dd gui=bold +hi MoreMsg guifg=#551a8b guibg=#f0f0dd gui=bold +hi NonText guifg=#b0b0b0 guibg=#f0f0dd gui=bold +hi Normal guifg=#000066 guibg=#f0f0dd gui=none +hi Number guifg=#007f00 guibg=#f0f0dd gui=none +hi Operator guifg=#0000ee guibg=#f0f0dd gui=bold +hi PreCondit guifg=#cc0000 guibg=#f0f0dd gui=none +hi PreProc guifg=#cc0000 guibg=#f0f0dd gui=none +hi Question guifg=#551a8b guibg=#f0f0dd gui=bold +hi Repeat guifg=#0000ee guibg=#f0f0dd gui=bold +hi Search guifg=#ffffff guibg=#38d878 gui=bold +hi Special guifg=#999973 guibg=#f0f0dd gui=none +hi SpecialChar guifg=#0000ee guibg=#f0f0dd gui=none +hi SpecialComment guifg=#0000ee guibg=#f0f0dd gui=none +hi SpecialKey guifg=#cc0000 guibg=#f0f0dd gui=none +hi Statement guifg=#0000ee guibg=#f0f0dd gui=bold +hi StatusLine guifg=#f0f0dd guibg=#cc0000 gui=bold +hi StatusLineNC guifg=#f0f0dd guibg=#000066 gui=bold +hi StorageClass guifg=#551a8b guibg=#f0f0dd gui=bold +hi String guifg=#007f00 guibg=#f0f0dd gui=none +hi Structure guifg=#551a8b guibg=#f0f0dd gui=bold +hi Tag guifg=#0000ee guibg=#f0f0dd gui=none +hi Title guifg=#007f00 guibg=#f0f0dd gui=bold +hi Todo guifg=#f0f0dd guibg=#0000ee gui=none +hi Type guifg=#551a8b guibg=#f0f0dd gui=bold +hi Typedef guifg=#551a8b guibg=#f0f0dd gui=bold +hi Underlined guifg=#0000ee guibg=#f0f0dd gui=underline +hi VertSplit guifg=#f0f0dd guibg=#000066 gui=underline +hi Visual guifg=#ffffff guibg=#00009c gui=underline +hi VisualNOS guifg=#ffffff guibg=#b0b0b0 gui=underline +hi WarningMsg guifg=#ffffff guibg=#cc0000 gui=underline +hi WildMenu guifg=#f0f0dd guibg=#0000ee gui=underline diff --git a/vim/colors/sienna.vim b/vim/colors/sienna.vim new file mode 100644 index 0000000..1317fc6 --- /dev/null +++ b/vim/colors/sienna.vim @@ -0,0 +1,150 @@ +" Vim colour scheme +" Maintainer: Georg Dahn +" Last Change: 26 April 2006 +" Version: 1.6 +" +" This color scheme has both light and dark styles with harmonic colors +" easy to distinguish. Terminals are not supported, therefore you should +" only try it if you use the GUI version of Vim. +" +" You can choose the style by adding one of the following lines to your +" vimrc or gvimrc file before sourcing the color scheme: +" +" let g:sienna_style = 'dark' +" let g:sienna_style = 'light' +" +" If none of above lines is given, the light style is choosen. +" +" You can switch between these styles by using the :Colo command, like +" :Colo dark or :Colo light (many thanks to Pan Shizhu). + +if exists("g:sienna_style") + let s:sienna_style = g:sienna_style +else + let s:sienna_style = 'light' +endif + +execute "command! -nargs=1 Colo let g:sienna_style = \"\" | colo sienna" + +if s:sienna_style == 'dark' + set background=dark +elseif s:sienna_style == 'light' + set background=light +else + finish +endif + +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = 'sienna' + +if s:sienna_style == 'dark' + hi Normal gui=none guifg=Grey85 guibg=Grey15 + + hi Cursor guifg=Black guibg=Grey85 + hi LineNr gui=none guifg=Grey65 + hi NonText gui=bold guifg=Grey65 guibg=Grey20 + hi SpecialKey gui=none guifg=SkyBlue2 + hi Title gui=bold guifg=Grey85 + hi Visual gui=bold guifg=Black guibg=LightSalmon1 + + hi FoldColumn gui=none guifg=Black guibg=Wheat3 + hi Folded gui=none guifg=White guibg=Wheat4 + hi StatusLine gui=bold guifg=Black guibg=Grey85 + hi StatusLineNC gui=none guifg=White guibg=DimGray + hi VertSplit gui=none guifg=White guibg=DimGray + hi Wildmenu gui=bold guifg=White guibg=Black + + hi Pmenu guibg=Grey55 guifg=Black gui=none + hi PmenuSbar guibg=Grey40 guifg=fg gui=none + hi PmenuSel guibg=Yellow2 guifg=Black gui=none + hi PmenuThumb guibg=Grey80 guifg=bg gui=none + + hi IncSearch gui=none guifg=Grey15 guibg=Grey85 + hi Search gui=none guifg=Black guibg=Yellow2 + + hi MoreMsg gui=bold guifg=PaleGreen2 + hi Question gui=bold guifg=PaleGreen2 + hi WarningMsg gui=bold guifg=Red + + hi Comment gui=italic guifg=SkyBlue3 + hi Error gui=none guifg=White guibg=Red2 + hi Identifier gui=none guifg=LightSalmon2 + hi Special gui=none guifg=SkyBlue2 + hi PreProc gui=none guifg=SkyBlue3 + hi Todo gui=bold guifg=Black guibg=Yellow2 + hi Type gui=bold guifg=SkyBlue2 + hi Underlined gui=underline guifg=DodgerBlue + + hi Boolean gui=bold guifg=PaleGreen2 + hi Constant gui=none guifg=PaleGreen2 + hi Number gui=bold guifg=PaleGreen2 + hi String gui=none guifg=PaleGreen2 + + hi Label gui=bold,underline guifg=LightSalmon2 + hi Statement gui=bold guifg=LightSalmon2 + + hi htmlBold gui=bold + hi htmlItalic gui=italic + hi htmlUnderline gui=underline + hi htmlBoldItalic gui=bold,italic + hi htmlBoldUnderline gui=bold,underline + hi htmlBoldUnderlineItalic gui=bold,underline,italic + hi htmlUnderlineItalic gui=underline,italic +elseif s:sienna_style == 'light' + hi Normal gui=none guifg=Black guibg=White + + hi Cursor guifg=White guibg=Black + hi LineNr gui=none guifg=DarkGray + hi NonText gui=bold guifg=DarkGray guibg=Grey95 + hi SpecialKey gui=none guifg=RoyalBlue4 + hi Title gui=bold guifg=Black + hi Visual gui=bold guifg=Black guibg=Sienna1 + + hi FoldColumn gui=none guifg=Black guibg=Wheat2 + hi Folded gui=none guifg=Black guibg=Wheat1 + hi StatusLine gui=bold guifg=White guibg=Black + hi StatusLineNC gui=none guifg=White guibg=DimGray + hi VertSplit gui=none guifg=White guibg=DimGray + hi Wildmenu gui=bold guifg=Black guibg=White + + hi Pmenu guibg=Grey65 guifg=Black gui=none + hi PmenuSbar guibg=Grey50 guifg=fg gui=none + hi PmenuSel guibg=Yellow guifg=Black gui=none + hi PmenuThumb guibg=Grey75 guifg=fg gui=none + + hi IncSearch gui=none guifg=White guibg=Black + hi Search gui=none guifg=Black guibg=Yellow + + hi MoreMsg gui=bold guifg=ForestGreen + hi Question gui=bold guifg=ForestGreen + hi WarningMsg gui=bold guifg=Red + + hi Comment gui=italic guifg=RoyalBlue3 + hi Error gui=none guifg=White guibg=Red + hi Identifier gui=none guifg=Sienna4 + hi Special gui=none guifg=RoyalBlue4 + hi PreProc gui=none guifg=RoyalBlue3 + hi Todo gui=bold guifg=Black guibg=Yellow + hi Type gui=bold guifg=RoyalBlue4 + hi Underlined gui=underline guifg=Blue + + hi Boolean gui=bold guifg=ForestGreen + hi Constant gui=none guifg=ForestGreen + hi Number gui=bold guifg=ForestGreen + hi String gui=none guifg=ForestGreen + + hi Label gui=bold,underline guifg=Sienna4 + hi Statement gui=bold guifg=Sienna4 + + hi htmlBold gui=bold + hi htmlItalic gui=italic + hi htmlUnderline gui=underline + hi htmlBoldItalic gui=bold,italic + hi htmlBoldUnderline gui=bold,underline + hi htmlBoldUnderlineItalic gui=bold,underline,italic + hi htmlUnderlineItalic gui=underline,italic +endif diff --git a/vim/colors/simpleandfriendly.vim b/vim/colors/simpleandfriendly.vim new file mode 100644 index 0000000..ce6cc60 --- /dev/null +++ b/vim/colors/simpleandfriendly.vim @@ -0,0 +1,56 @@ +" Vim color file +" Maintainer: Thomas Schmall +" Last Change: 2004 Nov 20 +" URL: http://www.vim.org/scripts/script.php?script_id=792 +" Version: 1.3 + +" This color scheme uses a light grey background. + +" Last Changes: +" *line number colors changed + + +" First remove all existing highlighting. +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "simpleandfriendly" + +"Set nice colors #DC6210 +"Cursor is Cyan when ":lmap" mappings are active +hi lCursor guibg=Cyan guifg=NONE +hi LineNr guifg=white guibg=#acbbff + +"Text below the last line is darker grey +hi NonText guibg=grey80 +"Normal text is black background is grey +hi Normal guifg=black guibg=grey89 ctermfg=Black ctermbg=LightGrey +hi Comment guifg=Orange guibg=grey94 ctermfg=DarkCyan term=bold +"Constants are not underlined but have a slightly lighter background +hi Constant guifg=#8080a0 guibg=grey92 gui=NONE term=underline +hi String guifg=#80a0ff guibg=grey93 gui=NONE term=underline +hi Number guifg=#80a5ff guibg=grey91 gui=NONE ctermfg=Gray term=none +"Words like _if_ or _else_ (Grey27) +hi Statement guifg=#4A2B99 gui=NONE ctermfg=Blue + +hi Title guifg=red ctermfg=red gui=NONE term=BOLD +"color for _NONE_ for instance: +hi PreProc term=underline ctermfg=LightBlue guifg=#DC6210 +"color for _guifg_ for instance: (SlateBlue works here nice too) +hi Type guifg=#008080 ctermfg=LightGreen gui=None term=underline +hi Function guifg=#61577A term=bold +"in lingo the defined functions. (alt: SlateBlue) +hi Identifier guifg=Seagreen +"hi Identifier term=underline cterm=bold ctermfg=Cyan guifg=#40ffff + +"hi Repeat term=underline ctermfg=White guifg=white +"hi Ignore guifg=bg ctermfg=black +hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow +"Special Characters +hi Special guibg=grey90 guifg=Slateblue gui=UNDERLINE + +hi operator guifg=gray25 ctermfg=Black term=bold cterm=bold gui=bold diff --git a/vim/colors/softblue.vim b/vim/colors/softblue.vim new file mode 100644 index 0000000..d87ccdf --- /dev/null +++ b/vim/colors/softblue.vim @@ -0,0 +1,45 @@ +" Vim color file +" Maintainer: Zhang Jing +" Last Change: %[% 2005Äê12ÔÂ07ÈÕ ÐÇÆÚÈý 10ʱ41·Ö49Ãë %]% + +set background=dark +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="softblue" + +hi Normal guibg=#183058 guifg=#b0b0e0 + +hi Cursor guibg=#b3b2df guifg=grey30 gui=bold +hi VertSplit guibg=#466292 guifg=grey50 gui=none +hi Folded guibg=#0d2349 guifg=lightblue +hi FoldColumn guibg=#0d2349 guifg=lightblue +hi IncSearch guifg=slategrey guibg=khaki +hi LineNr guifg=grey30 +hi ModeMsg guifg=SkyBlue +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=#0d2349 +hi Question guifg=#487cc4 +hi Search guibg=#787878 guifg=wheat +hi SpecialKey guifg=yellowgreen +hi StatusLine guibg=#466292 guifg=black gui=none +hi StatusLineNC guibg=#466292 guifg=grey22 gui=none +hi Title guifg=#38d9ff +hi Visual guifg=lightblue guibg=#001146 gui=none +hi WarningMsg guifg=salmon +hi ErrorMsg guifg=white guibg=#b2377a + +hi Comment guifg=#6279a0 +hi Constant guifg=#9b60be +hi Identifier guifg=#00ac55 +hi Statement guifg=SkyBlue2 +hi PreProc guifg=#20a0d0 +hi Type guifg=#8070ff +hi Special guifg=#b6a040"wheat4"#7c9cf5"a2b9e0 +hi Ignore guifg=grey40 +hi Error guifg=white guibg=#b2377a +hi Todo guifg=#54b900 guibg=#622098 gui=bold +"vim:ts=4:tw=4 diff --git a/vim/colors/soso.vim b/vim/colors/soso.vim new file mode 100644 index 0000000..c1e1a02 --- /dev/null +++ b/vim/colors/soso.vim @@ -0,0 +1,67 @@ +"--------------------------------------------------------------------- +" $Id: soso.vim,v 1.3 2007/10/31 06:24:34 soso Exp $ +" +" Maintainer: Soeren Sonntag +" Last Change: $Date: 2007/10/31 06:24:34 $ +" +" Description: Vim color file +"--------------------------------------------------------------------- + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="soso" + +hi Normal guifg=black guibg=#e4e4e4 ctermfg=black ctermbg=white +hi DiffAdd guibg=#c0ffe0 ctermbg=3 +hi DiffDelete guifg=#ff8097 guibg=#ffe0f7 ctermfg=4 ctermbg=5 +hi DiffChange guibg=#cfefff ctermbg=9 +hi DiffText guibg=#bfdfff gui=bold ctermbg=6 cterm=bold +hi NonText guifg=grey50 guibg=grey86 gui=bold ctermfg=darkblue +hi SpecialKey guifg=grey50 guibg=grey86 gui=bold ctermfg=darkblue +hi NonText guifg=grey50 guibg=grey86 ctermfg=blue +hi LineNr guifg=grey50 guibg=grey86 ctermfg=darkblue +hi Search guibg=#fff999 +hi StatusLine guifg=bg guibg=black gui=bold ctermfg=bg ctermbg=black cterm=bold +hi StatusLineNC guifg=bg guibg=grey40 gui=NONE ctermfg=bg ctermbg=black cterm=NONE +hi Visual guifg=fg guibg=#ccccdd gui=NONE +hi VisualNOS guifg=bg guibg=#ccccdd gui=NONE + +" syntax highlighting groups +hi Comment guifg=#000099 guibg=bg ctermfg=darkblue +hi String guifg=#b30000 guibg=bg ctermfg=darkred +hi Constant guifg=#c033ff guibg=bg ctermfg=darkmagenta +hi Statement guifg=black guibg=bg ctermfg=black cterm=bold +hi PreProc guifg=#335588 guibg=bg gui=bold ctermfg=blue +hi Type guifg=#338855 guibg=bg gui=bold ctermfg=darkgreen +hi StorageClass guifg=#990000 guibg=bg ctermfg=red +hi Special guifg=#6688ff guibg=bg ctermfg=darkcyan +hi Function guifg=#117777 guibg=bg ctermfg=red + +" showpairs plugin +" for cursor on paren +hi ShowPairsHL guibg=#c4ffc4 ctermbg=lightgreen +" for cursor between parens +hi ShowPairsHLp guibg=#c4f0c4 ctermbg=lightgreen +" unmatched paren +hi ShowPairsHLe guibg=#ff5555 ctermbg=red + +" settings for Vim7 +if version >= 700 + hi MatchParen guibg=#c4ffc4 ctermbg=lightgreen + " Spell + hi SpellBad guifg=#cc0000 gui=undercurl guisp=#cc0000 ctermfg=red cterm=underline + hi SpellRare guifg=magenta gui=undercurl ctermfg=magenta cterm=underline + hi SpellCap gui=undercurl guisp=#22cc22 cterm=underline + " Completion menu + hi Pmenu guibg=#ffffcc ctermbg=yellow + hi PmenuSel guibg=#ddddaa ctermbg=lightcyan cterm=bold + hi PmenuSbar guibg=#999966 ctermbg=lightcyan + " Tab line + hi TabLine guibg=grey70 cterm=underline + hi TabLineSel gui=bold cterm=bold + hi TabLineFill guifg=black guibg=grey80 cterm=underline +endif diff --git a/vim/colors/spring.vim b/vim/colors/spring.vim new file mode 100644 index 0000000..06d79d0 --- /dev/null +++ b/vim/colors/spring.vim @@ -0,0 +1,71 @@ + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" File Name: spring.vim +" Abstract: A color sheme file (only for GVIM), which make the VIM +" bright with colors. It looks like the flowers are in +" blossom in Spring. +" Author: CHE Wenlong +" Version: 1.0 +" Last Change: September 16, 2008 + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +if !has("gui_running") + runtime! colors/default.vim + finish +endif + +set background=light + +hi clear + +" Version control +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let colors_name = "spring" + +" Common +hi Normal guifg=#000000 guibg=#cce8cf gui=NONE +hi Visual guibg=#ccffff gui=NONE +hi Cursor guifg=#f5deb3 guibg=#2f4f4f gui=NONE +hi Cursorline guibg=#ccffff +hi lCursor guifg=#000000 guibg=#ffffff gui=NONE +hi LineNr guifg=#1060a0 guibg=#e0e0e0 gui=NONE +hi Title guifg=#202020 guibg=NONE gui=bold +hi Underlined guifg=#202020 guibg=NONE gui=underline + +" Split +hi StatusLine guifg=#f5deb3 guibg=#2f4f4f gui=bold +hi StatusLineNC guifg=#f5deb3 guibg=#2f4f4f gui=NONE +hi VertSplit guifg=#2f4f4f guibg=#2f4f4f gui=NONE + +" Folder +hi Folded guifg=#006699 guibg=#e0e0e0 gui=NONE + +" Syntax +hi Type guifg=#009933 guibg=NONE gui=bold +hi Define guifg=#1060a0 guibg=NONE gui=bold +hi Comment guifg=#1e90ff guibg=NONE gui=NONE +hi Constant guifg=#a07040 guibg=NONE gui=NONE +hi String guifg=#a07040 guibg=NONE gui=NONE +hi Number guifg=#cd0000 guibg=NONE gui=NONE +hi Statement guifg=#fc548f guibg=NONE gui=bold + +" Others +hi PreProc guifg=#1060a0 guibg=NONE gui=NONE +hi Error guifg=#ff0000 guibg=#ffffff gui=bold,underline +hi Todo guifg=#a0b0c0 guibg=NONE gui=bold,underline +hi Special guifg=#8B038D guibg=NONE gui=NONE +hi SpecialKey guifg=#d8a080 guibg=#e8e8e8 gui=NONE + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" vim:tabstop=4 + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/vim/colors/synic.vim b/vim/colors/synic.vim new file mode 100644 index 0000000..d0dca92 --- /dev/null +++ b/vim/colors/synic.vim @@ -0,0 +1,81 @@ +" ------------------------------------------------------------------ +" Filename: synic.vim +" Last Modified: May, 14 2007 (10:47) +" Maintainer: Adam Olsen (arolsen@gmail.com) +" Copyright: 2007 Adam Olsen +" This script 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 2 of +" the License, or (at your option) any later version. +" Description: Vim colorscheme file. +" Install: Put this file in the users colors directory (~/.vim/colors) +" then load it with :colorscheme synic +" ------------------------------------------------------------------ +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +"" +"" SPECIAL NOTE: +"" I believe this colorscheme is based off of Hans +"" Fugal's colorscheme "desert". +"" http://hans.fugal.net/vim/colors/desert.html +"" I might be wrong on this... if it looks like it was based off +"" of your colorscheme, let me know so I can give you credits. +"" +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "synic" + +hi Normal guifg=ivory guibg=Black + +hi TabLineFill guifg=#272d2f guibg=#272d2f gui=None +hi TabLine guifg=MistyRose3 guibg=#272d2f gui=None +hi TabLineSel guifg=LightBlue3 guibg=#272d2f gui=None +hi ErrorMsg gui=NONE guifg=Red guibg=Linen +hi IncSearch gui=NONE guibg=LightGreen guifg=Black +hi ModeMsg gui=NONE guifg=fg guibg=bg +hi StatusLine gui=NONE guifg=LightBlue3 guibg=#272d2f +hi StatusLineNC gui=NONE guifg=MistyRose3 guibg=#272d2f +hi VertSplit gui=NONE guifg=LightBlue4 guibg=Black +hi Visual gui=reverse guifg=LightBlue4 guibg=Black +hi VisualNOS gui=underline guifg=fg guibg=bg +hi DiffText gui=NONE guifg=Yellow guibg=LightSkyBlue4 +hi Cursor guibg=Lavender guifg=Black +hi lCursor guibg=Lavender guifg=Black +hi Directory guifg=LightGreen guibg=bg +hi LineNr guifg=LightBlue3 guibg=bg +hi MoreMsg gui=NONE guifg=SeaGreen guibg=bg +hi NonText gui=NONE guifg=Cyan4 guibg=Black +hi Question gui=NONE guifg=LimeGreen guibg=bg +hi Search gui=NONE guifg=SkyBlue4 guibg=Bisque +hi SpecialKey guifg=Cyan guibg=bg +hi Title gui=NONE guifg=Yellow2 guibg=bg +hi WarningMsg guifg=Tomato3 guibg=Black +hi WildMenu gui=NONE guifg=Black guibg=SkyBlue4 +hi Folded guifg=#f4aba2 guibg=bg +hi FoldColumn guifg=DarkBlue guibg=Grey +hi DiffAdd gui=NONE guifg=Blue guibg=LightCyan +hi DiffChange gui=NONE guifg=white guibg=LightCyan4 +hi DiffDelete gui=None guifg=LightBlue guibg=LightCyan + +hi Constant gui=NONE guifg=MistyRose3 guibg=bg +hi String gui=NONE guifg=LightBlue3 guibg=bg +hi Special gui=NONE guifg=GoldenRod guibg=bg +hi Statement gui=NONE guifg=khaki guibg=bg +hi Operator gui=NONE guifg=#8673e8 guibg=bg +hi Ignore gui=NONE guifg=bg guibg=bg +hi ToDo gui=NONE guifg=DodgerBlue guibg=bg +hi Error gui=NONE guifg=Red guibg=Linen +hi Comment gui=NONE guifg=SlateGrey guibg=bg +hi Comment gui=NONE guifg=#62c600 guibg=bg +hi Identifier gui=bold guifg=LightBlue4 guibg=bg +hi PreProc gui=NONE guifg=#ffa0a0 guibg=bg +hi Type gui=NONE guifg=NavajoWhite guibg=bg +hi Underlined gui=underline guifg=fg guibg=bg + +" vim: sw=2 diff --git a/vim/colors/tabula.vim b/vim/colors/tabula.vim new file mode 100644 index 0000000..d3056f5 --- /dev/null +++ b/vim/colors/tabula.vim @@ -0,0 +1,620 @@ +" ============================================================================ +" Filename: tabula.vim +" Last Modified: 2007-02-01 +" Version: 1.3 +" Maintainer: Bernd Pol (bernd.pol AT online DOT de) +" Copyright: 2006 Bernd Pol +" This script 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 2 of +" the License, or (at your option) any later version. +" Description: Vim colorscheme based on marklar.vim by SM Smithfield, +" slightly modified for harmonic, yet easily distinguishable +" display on GUI and a 256 color xterm as well. +" Install: Put this file in the users colors directory (~/.vim/colors) +" then load it with :colorscheme tabula +" ============================================================================= +" TODO +" - automize options setting +" - keep options in some setup file, e.g.: +" tabula.rc, sub e.g. " ... " marks +" - options set up per directory (autoload option) +" such that text files be displayed other than e.g. c sources +" ============================================================================= + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "tabula" +"let g:Tabula_setOptions = 0 + +"============================================================================== +" Option Settings {{{1 +"============================================================================== +" +" Use these in your .vimrc file before the ':colorscheme tabula' line +" +" Alternatively set the options variable from the command line, e.g. +" :let Tabula_LNumUnderline=1 +" and then call +" :colorscheme tabula +" again. + +"------------------------------------------------------------------------------ +" Display Statements In Bold: {{{2 +" Tabula_BoldStatement = 0 statements display not bold +" Tabula_BoldStatement = 1 statements display bold +" Defaults to non-bold display. +"------------------------------------------------------------------------------ +" +let s:BoldStatement = 0 +if exists("g:Tabula_BoldStatement") + let s:BoldStatement = g:Tabula_BoldStatement +endif + +"------------------------------------------------------------------------------ +" Set GUI Cursor Color: {{{2 +" Tabula_CurColor = 'blue' +" Tabula_CurColor = 'red' +" Tabula_CurColor = 'yellow' +" Tabula_CurColor = 'white' +" Defaults to 'blue'. +"------------------------------------------------------------------------------ +" +let s:CurColor = "blue" +if exists("g:Tabula_CurColor") + let s:CurColor = g:Tabula_CurColor +endif + +"------------------------------------------------------------------------------ +" Set Color For Preprocessor Statements: {{{2 +" Tabula_ColorPre = 'blue' purple-blue +" Tabula_ColorPre = 'red' orange-red +" Tabula_ColorPre = 'yellow' lightgreen-yellow +" Defaults to 'blue'. +"------------------------------------------------------------------------------ +" +let s:ColorPre = "blue" +if exists("g:Tabula_ColorPre") + if g:Tabula_ColorPre == "red" || g:Tabula_ColorPre == "yellow" + let s:ColorPre = g:Tabula_ColorPre + endif +endif + +"------------------------------------------------------------------------------ +" Use Dark Error Background: {{{2 +" Sometimes desirable for less distracting error highlighting. +" Tabula_DarkError = 0 light red error background +" Tabula_DarkError = 1 dark red error background +" Defaults to light error background. +"------------------------------------------------------------------------------ +" +let s:DarkError = 0 +if exists("g:Tabula_DarkError") + let s:DarkError = g:Tabula_DarkError +endif + +"------------------------------------------------------------------------------ +" Use Multiple Colors For Constant Values: {{{2 +" Tabula_FlatConstants = 0 use different color for each type +" Tabula_FlatConstants = 1 use common color for all +" Defaults to using common colors. +"------------------------------------------------------------------------------ +" +let s:FlatConstants = 1 +if exists("g:Tabula_FlatConstants") + let s:FlatConstants = g:Tabula_FlatConstants +endif + +"------------------------------------------------------------------------------ +" How To Display Ignore And NonText Characters: {{{2 +" Tabula_InvisibleIgnore = 0 slightly visible +" (good for Vim documentation editing) +" Tabula_InvisibleIgnore = 1 invisible on standard background +" Defaults to invisible display. +"------------------------------------------------------------------------------ +" +let s:InvisibleIgnore = 1 +if exists("g:Tabula_InvisibleIgnore") + let s:InvisibleIgnore = g:Tabula_InvisibleIgnore +endif + +"------------------------------------------------------------------------------ +" Show Line Numbers Underlined: {{{2 +" Sometimes useful to spot a line more easily. +" Tabula_LNumUnderline = 0 not underlined +" Tabula_LNumUnderline = 1 line numbers are underlined +" Defaults to not underlined. +"------------------------------------------------------------------------------ +" +let s:LNumUnderline = 0 +if exists("g:Tabula_LNumUnderline") + let s:LNumUnderline = g:Tabula_LNumUnderline +endif + +"------------------------------------------------------------------------------ +" Let Search Occurrences Stand Out More Prominently: {{{2 +" Tabula_SearchStandOut = 0 normal dark background display +" Tabula_SearchStandOut = 1 prominent underlined display +" Tabula_SearchStandOut = 2 even more prominent display +" Defaults to normal display. +"------------------------------------------------------------------------------ +" +let s:SearchStandOut=0 +if exists("g:Tabula_SearchStandOut") + let s:SearchStandOut = g:Tabula_SearchStandOut +endif + +"------------------------------------------------------------------------------ +" How To Display TODOs And Similar: {{{2 +" Tabula_TodoUnderline = 0 display on a blue background +" Tabula_TodoUnderline = 1 display them underlined white +" Defaults to underlined display. +"------------------------------------------------------------------------------ +" +let s:TodoUnderline=1 +if exists("g:Tabula_TodoUnderline") + let s:TodoUnderline = g:Tabula_TodoUnderline +endif + +"============================================================================== +" Color Definitions {{{1 +"============================================================================== + +if version >= 700 + hi SpellBad guisp=#FF0000 + hi SpellCap guisp=#afaf00 + hi SpellRare guisp=#bf4040 + hi SpellLocal guisp=#00afaf ctermbg=0 + hi Pmenu guifg=#00ffff guibg=#000000 ctermfg=51 ctermbg=0 + hi PmenuSel guifg=#ffff00 guibg=#000000 gui=bold ctermfg=226 cterm=bold + hi PmenuSbar guibg=#204d40 ctermbg=6 + hi PmenuThumb guifg=#38ff56 ctermfg=3 + hi CursorColumn guibg=#096354 ctermbg=29 + hi CursorLine guibg=#096354 ctermbg=29 + hi Tabline guifg=bg guibg=fg gui=NONE ctermfg=NONE ctermbg=NONE cterm=reverse,bold + hi TablineSel guifg=#20012e guibg=#00a675 gui=bold + hi TablineFill guifg=#689C7C + hi MatchParen guifg=#38ff56 guibg=#0000ff gui=bold ctermfg=14 ctermbg=21 cterm=bold +endif +"------------------------------------------------------------------------------ + +hi Comment guifg=#00C5E7 ctermfg=45 + +"------------------------------------------------------------------------------ +" Constant Colors: +"------------------------------------------------------------------------------ +" +if s:FlatConstants + hi Constant guifg=#7DDCDB ctermfg=123 +else + hi Boolean guifg=#7EDBD8 ctermfg=123 + hi Character guifg=#AFD000 ctermfg=148 + hi Float guifg=#AF87DF ctermfg=141 + hi Number guifg=#00A7F7 ctermfg=39 + hi String guifg=#00DF00 ctermfg=46 +endif + +"------------------------------------------------------------------------------ +" Cursor Colors: +"------------------------------------------------------------------------------ +" +if s:CurColor == "yellow" + hi Cursor guifg=#000000 guibg=#EFEF00 +elseif s:CurColor == "red" + " Note: Input cursor will be invisible on Error Group + hi Cursor guifg=#00007F guibg=#F70000 +elseif s:CurColor == "blue" + hi Cursor guifg=#00007F guibg=#00EFEF +elseif s:CurColor == "white" + hi Cursor guifg=#000000 guibg=#FFFFFF +endif +"------------------------------------------------------------------------------ + +hi DiffAdd guifg=NONE guibg=#136769 ctermfg=4 ctermbg=7 cterm=none +hi DiffDelete guifg=NONE guibg=#50694A ctermfg=1 ctermbg=7 cterm=none +hi DiffChange guifg=fg guibg=#00463c gui=None ctermfg=4 ctermbg=2 cterm=none +hi DiffText guifg=#7CFC94 guibg=#00463c gui=bold ctermfg=4 ctermbg=3 cterm=none +hi Directory guifg=#25B9F8 guibg=NONE ctermfg=2 + +"------------------------------------------------------------------------------ +" Error Colors: +"------------------------------------------------------------------------------ +" +if s:DarkError +" hi Error guifg=#FF0000 guibg=#303800 gui=NONE ctermfg=9 ctermbg=236 cterm=NONE + hi Error guifg=NONE guibg=#303800 gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE +else + if s:CurColor == "red" + " Note: We need another background in this case to keep the cursor visible. + hi Error guifg=#FF0000 guibg=#FFFF00 gui=bold ctermfg=11 ctermbg=9 cterm=NONE + else + hi Error guifg=#FFFF00 guibg=#FF0000 gui=NONE ctermfg=11 ctermbg=9 cterm=NONE + endif +endif +"------------------------------------------------------------------------------ + +hi ErrorMsg guifg=#FFFFFF guibg=#FF0000 ctermfg=7 ctermbg=1 +hi FoldColumn guifg=#00BBBB guibg=#4E4E4E ctermfg=14 ctermbg=240 +hi Folded guifg=#44DDDD guibg=#4E4E4E ctermfg=14 ctermbg=240 +hi Identifier guifg=#FDAE5A ctermfg=215 cterm=none + +"------------------------------------------------------------------------------ +" Ignore Variants: +"------------------------------------------------------------------------------ +" +if s:InvisibleIgnore + " completely invisible + hi Ignore guifg=bg guibg=NONE ctermfg=23 + hi NonText guifg=bg guibg=NONE ctermfg=23 +else + " nearly invisible + hi Ignore guifg=#005FAF guibg=NONE ctermfg=26 + hi NonText guifg=#005FAF guibg=NONE ctermfg=26 +endif +"------------------------------------------------------------------------------ + +"------------------------------------------------------------------------------ +" Line Number Variants: +" Lines can sometimes be more precisely identified if the line numbers are +" underlined. +"------------------------------------------------------------------------------ +" +if s:LNumUnderline + hi LineNr guifg=#00FF00 guibg=#005080 gui=underline ctermfg=84 ctermbg=24 cterm=underline +else + hi LineNr guifg=#00FF00 guibg=#005080 ctermfg=84 ctermbg=24 +endif +"------------------------------------------------------------------------------ + +hi ModeMsg guifg=#FFFFFF guibg=#0000FF gui=NONE ctermfg=7 ctermbg=4 cterm=NONE +hi MoreMsg guifg=#FFFFFF guibg=#00A261 gui=NONE ctermfg=7 ctermbg=28 cterm=NONE + +"if &background == "dark" + hi Normal guifg=#71D289 guibg=#065349 ctermfg=85 ctermbg=23 +"else +" hi Normal guibg=#71D289 guifg=#065349 ctermfg=85 ctermbg=23 +"endif + +"------------------------------------------------------------------------------ +" Preprocessor Variants: +"------------------------------------------------------------------------------ +" +if s:ColorPre == "red" + hi PreProc guifg=#FF5F5F guibg=bg ctermfg=203 +elseif s:ColorPre == "yellow" + hi PreProc guifg=#AFFF00 guibg=bg ctermfg=154 +elseif s:ColorPre == "blue" + hi PreProc guifg=#8E8CDD guibg=bg ctermfg=105 +endif +"------------------------------------------------------------------------------ + +hi Question guifg=#E5E500 guibg=NONE gui=none ctermfg=11 ctermbg=NONE cterm=none + +"------------------------------------------------------------------------------ +" Search Stand Out Variants: +"------------------------------------------------------------------------------ +" +if s:SearchStandOut == 0 + hi IncSearch guifg=#D0D0D0 guibg=#206828 gui=NONE ctermfg=NONE ctermbg=22 cterm=NONE + hi Search guifg=NONE guibg=#212a81 ctermfg=NONE ctermbg=18 +elseif s:SearchStandOut == 1 + hi IncSearch guifg=#D0D0D0 guibg=#206828 gui=underline ctermfg=252 ctermbg=22 cterm=underline + hi Search guifg=#FDAD5D guibg=#202880 gui=underline ctermfg=215 ctermbg=18 cterm=underline +elseif s:SearchStandOut == 2 + hi IncSearch guibg=#D0D0D0 guifg=#206828 gui=underline ctermbg=252 ctermfg=22 cterm=underline + hi Search guibg=#FDAD5D guifg=#202880 gui=underline ctermbg=215 ctermfg=18 cterm=underline +endif +"------------------------------------------------------------------------------ + +hi SignColumn guifg=#00BBBB guibg=#204d40 +hi Special guifg=#00F2F3 guibg=NONE gui=none ctermfg=51 +hi SpecialKey guifg=#00F4F4 guibg=#266955 + +"------------------------------------------------------------------------------ +" Statement Variants: +"------------------------------------------------------------------------------ +" +if s:BoldStatement + hi Statement guifg=#DEDE00 gui=bold ctermfg=11 cterm=bold +else + hi Statement guifg=#E4E300 gui=none ctermfg=11 +endif +"------------------------------------------------------------------------------ + +hi StatusLine guifg=#000000 guibg=#7DCEAD gui=none ctermbg=00 cterm=reverse +hi StatusLineNC guifg=#245748 guibg=#689C7C gui=none ctermfg=72 ctermbg=23 cterm=reverse +hi Title guifg=#7CFC94 guibg=NONE gui=bold ctermfg=2 cterm=bold + +"------------------------------------------------------------------------------ +" Todo Variants: +"------------------------------------------------------------------------------ +" +if s:TodoUnderline + " Underlined + hi Todo guifg=#AFD7D7 guibg=NONE gui=underline ctermfg=159 ctermbg=NONE cterm=underline +else + " Blue background + hi Todo guifg=#00FFFF guibg=#0000FF ctermfg=51 ctermbg=4 +endif +"------------------------------------------------------------------------------ + +hi Type guifg=#F06BDB guibg=bg gui=none ctermfg=213 +hi Underlined gui=underline cterm=underline +hi VertSplit guifg=#245748 guibg=#689C7C gui=none ctermfg=72 ctermbg=23 cterm=reverse +hi Visual guibg=#0B7260 gui=none +hi WarningMsg guifg=#000087 guibg=#FFFF00 ctermfg=18 ctermbg=11 +hi WildMenu guifg=#20012e guibg=#00a675 gui=bold ctermfg=none ctermbg=none cterm=bold +" +hi pythonPreCondit ctermfg=2 cterm=none +hi tkWidget guifg=#D5B11C guibg=bg gui=bold ctermfg=7 cterm=bold +hi tclBookends guifg=#7CFC94 guibg=NONE gui=bold ctermfg=2 cterm=bold + +" ------------------------------------------------------------------------------------------------ +" Custom HTML Groups: +" (see ':help html.vim' for more info) +"------------------------------------------------------------------------------ + +let html_my_rendering=1 + +hi htmlBold guifg=#87FFD7 gui=bold ctermfg=122 cterm=bold +hi htmlBoldItalic guifg=#87D7EF gui=bold ctermfg=117 cterm=bold +hi htmlBoldUnderline guifg=#87FFD7 gui=bold,underline ctermfg=122 cterm=bold,underline +hi htmlBoldUnderlineItalic guifg=#87D7EF gui=bold,underline ctermfg=117 cterm=bold,underline +hi htmlH1 guifg=#00FF00 guibg=NONE gui=bold,underline ctermfg=2 cterm=bold,underline +hi htmlH2 guifg=#00FF00 guibg=NONE gui=bold ctermfg=2 cterm=bold +hi htmlH3 guifg=#00FF00 guibg=NONE gui=NONE ctermfg=2 +hi htmlH4 guifg=#00C700 guibg=NONE gui=underline ctermfg=34 cterm=underline +hi htmlH5 guifg=#00C700 guibg=NONE gui=NONE ctermfg=34 +hi htmlH6 guifg=#00A700 guibg=NONE gui=underline ctermfg=28 cterm=underline +hi htmlItalic guifg=#87D7D7 gui=NONE ctermfg=116 +hi htmlLink guifg=#8787D7 gui=underline ctermfg=105 cterm=underline +hi htmlUnderline gui=underline cterm=underline +hi htmlUnderlineItalic guifg=#87D7D7 gui=underline ctermfg=116 cterm=underline + +"------------------------------------------------------------------------------ +" Links To Other Highlight Groups: + +"============================================================================== +" Options Processor {{{1 +"============================================================================== +" +"------------------------------------------------------------------------------ +" Main Dialog: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula() + call inputsave() + let thisOption = 1 + while thisOption >= 1 && thisOption <= 9 + redraw + let thisOption = inputlist([ + \ "Select a 'Tabula_' option:", + \ "1. BoldStatement Display statements in bold", + \ "2. ColorPre Set Color for preprocessor statements", + \ "3. CurColor Set GUI cursor color", + \ "4. DarkError Use dark error background", + \ "5. FlatConstants Use multiple colors for constant values", + \ "6. InvisibleIgnore Display of Ignore and NonText characters", + \ "7. LNumUnderline Show line numbers underlined", + \ "8. SearchStandOut Display of search occurrences", + \ "9. TodoUnderline Display of TODOs and similar" + \ ]) + + redraw + if thisOption >= 1 && thisOption <= 9 + call Tabula_{thisOption}() + "let g:Tabula_setOptions = 1 + endif + endwhile + call inputrestore() +endfunction + +"------------------------------------------------------------------------------ +" Bold Statements: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_1() + let curOption = "" + if s:BoldStatement == 0 + let curOption = "not " + endif + let optionValue = inputlist([ + \ "How to display statements (currently ".curOption."bold)?", + \ "1. bold", + \ "2. not bold" + \ ]) + if optionValue == 1 + let g:Tabula_BoldStatement = 1 + elseif optionValue == 2 + let g:Tabula_BoldStatement = 0 + endif +endfunction + +"------------------------------------------------------------------------------ +" Color For Preprocessor Statements: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_2() + let optionValue = inputlist([ + \ "How to display preprocessor statements (currently ".s:ColorPre.")?", + \ "1. blue", + \ "2. red", + \ "3. yellow" + \ ]) + if optionValue == 1 + let g:Tabula_ColorPre = "blue" + elseif optionValue == 2 + let g:Tabula_ColorPre = "red" + elseif optionValue == 3 + let g:Tabula_ColorPre = "yellow" + endif +endfunction + +"------------------------------------------------------------------------------ +" GUI Cursor Color: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_3() + let optionValue = inputlist([ + \ "Use which cursor color (currently ".s:CurColor.")?", + \ "1. blue", + \ "2. red", + \ "3. yellow", + \ "4. white" + \ ]) + if optionValue == 1 + let g:Tabula_CurColor = "blue" + elseif optionValue == 2 + let g:Tabula_CurColor = "red" + elseif optionValue == 3 + let g:Tabula_CurColor = "yellow" + elseif optionValue == 4 + let g:Tabula_CurColor = "white" + endif +endfunction + +"------------------------------------------------------------------------------ +" Use Dark Error Background: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_4() + let curOption = "light " + if s:DarkError + let curOption = "dark " + endif + let optionValue = inputlist([ + \ "How to display errors in the text (currently ".curOption."background)?", + \ "1. light background", + \ "2. dark background" + \ ]) + if optionValue == 1 + let g:Tabula_DarkError = 0 + elseif optionValue == 2 + let g:Tabula_DarkError = 1 + endif +endfunction + +"------------------------------------------------------------------------------ +" Multiple Constant Colors: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_5() + let curOption = "one color" + if s:FlatConstants == 0 + let curOption = "multiple colors" + endif + let optionValue = inputlist([ + \ "How to display constant values (currently ".curOption.")?", + \ "1. use one common color for all", + \ "2. use different color for each type" + \ ]) + if optionValue == 1 + let g:Tabula_FlatConstants = 1 + elseif optionValue == 2 + let g:Tabula_FlatConstants = 0 + endif +endfunction + +"------------------------------------------------------------------------------ +" Ignore And NonText Characters: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_6() + let curOption = "invisible" + if s:InvisibleIgnore == 0 + let curOption = "slightly visible" + endif + let optionValue = inputlist([ + \ "Show Ignore and NonText characters (currently ".curOption.")?", + \ "1. invisible", + \ "2. slightly visible" + \ ]) + if optionValue == 1 + let g:Tabula_InvisibleIgnore = 1 + elseif optionValue == 2 + let g:Tabula_InvisibleIgnore = 0 + endif +endfunction + +"------------------------------------------------------------------------------ +" Underlined Line Numbers: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_7() + let curOption = "" + if s:LNumUnderline == 0 + let curOption = "not " + endif + let optionValue = inputlist([ + \ "How to display line numbers(currently ".curOption."underlined)?", + \ "1. underlined", + \ "2. not underlined" + \ ]) + if optionValue == 1 + let g:Tabula_LNumUnderline = 1 + elseif optionValue == 2 + let g:Tabula_LNumUnderline = 0 + endif +endfunction + +"------------------------------------------------------------------------------ +" Let Search Occurrences Stand Out More Prominently: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_8() + if s:SearchStandOut == 0 + let curOption = "normal" + elseif s:SearchStandOut == 1 + let curOption = "prominent" + elseif s:SearchStandOut == 2 + let curOption = "very prominent" + endif + let optionValue = inputlist([ + \ "How to display search occurrences (currently ".curOption.")?", + \ "1. normal", + \ "2. prominent", + \ "3. very prominent" + \ ]) + if optionValue == 1 + let g:Tabula_SearchStandOut = 0 + elseif optionValue == 2 + let g:Tabula_SearchStandOut = 1 + elseif optionValue == 3 + let g:Tabula_SearchStandOut = 2 + endif +endfunction + +"------------------------------------------------------------------------------ +" TODOs Display: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_9() + let curOption = "" + if s:TodoUnderline == 0 + let curOption = "not " + endif + let optionValue = inputlist([ + \ "How to display TODOs and similar (currently ".curOption."underlined)?", + \ "1. underlined", + \ "2. not underlined" + \ ]) + if optionValue == 1 + let g:Tabula_TodoUnderline = 1 + elseif optionValue == 2 + let g:Tabula_TodoUnderline = 0 + endif +endfunction + +"==========================================================================}}}1 +" +" FIXME: This can't work! +" +"if g:Tabula_setOptions +" :exe "color tabula" +" let g:Tabula_setOptions = 0 +"endif + +" vim:tw=0:fdm=marker:fdl=0:fdc=3:fen diff --git a/vim/colors/tango.vim b/vim/colors/tango.vim new file mode 100644 index 0000000..cdb6c9c --- /dev/null +++ b/vim/colors/tango.vim @@ -0,0 +1,78 @@ +" +" Tango Vim Color Scheme +" ======================= +" +" For best results, set up your terminal with a Tango palette. +" Instructions for GNOME Terminal: +" http://uwstopia.nl/blog/2006/07/tango-terminal +" +" author: Michele Campeotto +" +set background=dark + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "tango" + +" Default Colors +hi Normal guifg=#eeeeec guibg=#000000 +hi NonText guifg=#555753 guibg=#000000 gui=none +hi NonText ctermfg=darkgray +hi Cursor guibg=#d3d7cf +hi lCursor guibg=#d3d7cf + +" Search +hi Search guifg=#eeeeec guibg=#c4a000 +hi Search cterm=none ctermfg=grey ctermbg=blue +hi IncSearch guibg=#eeeeec guifg=#729fcf +hi IncSearch cterm=none ctermfg=yellow ctermbg=green + +" Window Elements +hi StatusLine guifg=#eeeeec guibg=#4e9a06 gui=bold +hi StatusLine ctermfg=white ctermbg=green cterm=bold +hi StatusLineNC guifg=#d3d7df guibg=#4e9a06 +hi StatusLineNC ctermfg=lightgray ctermbg=darkgreen +hi VertSplit guifg=#eeeeec guibg=#eeeeec +hi Folded guifg=#eeeeec guibg=#75507b +hi Folded ctermfg=white ctermbg=magenta +hi Visual guifg=#d3d7cf guibg=#4e9a06 +hi Visual ctermbg=white ctermfg=lightgreen cterm=reverse + +" Specials +hi Todo guifg=#8ae234 guibg=#4e9a06 gui=bold +hi Todo ctermfg=white ctermbg=green +hi Title guifg=#eeeeec gui=bold +hi Title ctermfg=white cterm=bold + +" Syntax +hi Constant guifg=#c4a000 +hi Constant ctermfg=darkyellow +hi Number guifg=#729fcf +hi Number ctermfg=darkblue +hi Statement guifg=#4e9a06 gui=bold +hi Statement ctermfg=green +hi Identifier guifg=#8ae234 +hi Identifier ctermfg=darkgreen +hi PreProc guifg=#cc0000 +hi PreProc ctermfg=darkred +hi Comment guifg=#06989a gui=italic +hi Comment ctermfg=cyan cterm=none +hi Type guifg=#d3d7cf gui=bold +hi Type ctermfg=gray cterm=bold +hi Special guifg=#75507b +hi Special ctermfg=magenta cterm=none +hi Error guifg=#eeeeec guibg=#ef2929 +hi Error ctermfg=white ctermbg=red + +" Diff +hi DiffAdd guifg=fg guibg=#3465a4 gui=none +hi DiffAdd ctermfg=gray ctermbg=blue cterm=none +hi DiffChange guifg=fg guibg=#555753 gui=none +hi DiffChange ctermfg=gray ctermbg=darkgray cterm=none +hi DiffDelete guibg=bg +hi DiffDelete ctermfg=gray ctermbg=none cterm=none +hi DiffText guifg=fg guibg=#c4a000 gui=none +hi DiffText ctermfg=gray ctermbg=yellow cterm=none diff --git a/vim/colors/tango2.vim b/vim/colors/tango2.vim new file mode 100644 index 0000000..330fe89 --- /dev/null +++ b/vim/colors/tango2.vim @@ -0,0 +1,62 @@ +" ============================================================================= +" Name: Tango2 +" Purpose: Another colour scheme using the Tango colour palette +" Maintainer: Pranesh Srinivasan +" Last Modified: Saturday 04 October 2008 02:06:26 AM IST +" ============================================================================= + +" Inspired from some Gnome renditions of the Tango colour scheme. + +" ============================================================================= +" Preamble +" ============================================================================= + +set background=dark + +hi clear + +if exists("syntax-on") +syntax reset +endif + +let colors_name = "tango2" + +" ============================================================================= +" Vim >= 7.0 specific colours +" ============================================================================= + +if version >= 700 +" No support for cursor line yet +" hi CursorLine term=underline cterm=underline guibg=#111133 +" hi CursorColoumn +" hi MatchParen +" hi Pmenu +" hi PmenuSel +endif + +" ============================================================================= +" General colours +" ============================================================================= + +hi Normal guibg=#2E3436 guifg=#eeeeec +hi Cursor gui=none guibg=White guifg=Black + +hi Folded guibg=#4D585B guibg=#d2d2d2 +" No fold column support yet +" hi FoldColumn guifg=Orange guibg=DarkBlue +" ============================================================================= +" Syntax highlighting +" ============================================================================= + +hi Comment gui=italic guifg=#6d7e8a ctermfg=Grey +hi Todo term=bold guifg=#EBC450 +hi Constant guifg=#8ae234 +hi Type guifg=#8AE234 +hi Function gui=bold guifg=#9BCF8D +hi Statement guifg=#729FCF +hi Identifier guifg=#AD7FA8 +hi PreProc guifg=#e9ba6e +hi Special term=underline guifg=#5EAFE5 + +hi Search guibg=#81ABBD +" hi QtClass guifg=Orange ctermfg=LightBlue diff --git a/vim/colors/taqua.vim b/vim/colors/taqua.vim new file mode 100644 index 0000000..947ebc9 --- /dev/null +++ b/vim/colors/taqua.vim @@ -0,0 +1,85 @@ +" Vim color file +" Maintainer: TaQ +" Last Change: 18 March 2003 +" URL: http://taq.cjb.net + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name="taqua" + +hi Normal gui=NONE guifg=#303030 guibg=#FFFFFF +hi NonText gui=BOLD guifg=#303030 guibg=#FFFFFF + +" Search +hi IncSearch gui=BOLD guifg=#008000 guibg=#CCFF00 +hi Search gui=BOLD guifg=#008000 guibg=#CCFF00 + +" Messages +hi ErrorMsg gui=BOLD guifg=#FFFFFF guibg=#FF0000 +hi WarningMsg gui=BOLD guifg=#008000 guibg=#CCFF00 + +" Split area +hi StatusLine gui=BOLD guifg=#FFFFFF guibg=#0E8ED3 +hi StatusLineNC gui=BOLD guifg=#FFFFFF guibg=#0A6799 + +" Diff +hi DiffText gui=BOLD guifg=#FF0000 guibg=#FFEAE0 +hi DiffChange gui=BOLD guifg=#303030 guibg=#FFFFFF +hi DiffDelete gui=NONE guifg=#FFFFFF guibg=#FF0000 +hi DiffAdd gui=NONE guifg=#008000 guibg=#00FF00 + +" Cursor +hi Cursor gui=BOLD guifg=#FFFFFF guibg=#000000 +hi lCursor gui=BOLD guifg=#f8f8f8 guibg=#162CF7 +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#162CF7 + +" Fold +hi Folded gui=BOLD guifg=#0E8ED3 guibg=#DBF2FF +hi FoldColumn gui=NONE guifg=#0E8ED3 guibg=#DBF2FF + +" Other +hi LineNr gui=BOLD guifg=#00A0FF guibg=#DBF2FF +hi Directory gui=BOLD guifg=#0A6799 guibg=#FFFFFF +hi NonText gui=BOLD guifg=#009999 guibg=#FFFFFF +hi SpecialKey gui=BOLD guifg=#2020FF guibg=#FFFFFF +hi Title gui=BOLD guifg=#0000A0 guibg=#FFFFFF +hi Visual gui=NONE guifg=#404060 guibg=#dddde8 + +" Syntax group +" purple was #8000FF +hi Comment gui=NONE guifg=#0E8ED3 guibg=#DBF2FF +hi Constant gui=NONE guifg=#303030 guibg=#F5F5F5 +hi Error gui=BOLD guifg=#FF0000 guibg=#FFFFFF +hi Identifier gui=NONE guifg=#1F89E0 guibg=#FFFFFF +hi Ignore gui=NONE guifg=#f8f8f8 guibg=#FFFFFF +hi PreProc gui=BOLD guifg=#0BBF20 guibg=#FFFFFF +hi Special gui=NONE guifg=#0E8ED3 guibg=#DBF2FF +hi Statement gui=BOLD guifg=#2E9BF4 guibg=#FFFFFF +hi Todo gui=NONE guifg=#FF0070 guibg=#FFE0F4 +hi Type gui=BOLD guifg=#0971F9 guibg=#FFFFFF +hi Underlined gui=UNDERLINE guifg=#0000ff guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC + +" Scrollbar +hi Scrollbar gui=BOLD guifg=#00C0FF guibg=#FFFFFF +hi VertSplit gui=BOLD guifg=#FFFFFF guibg=#0E8ED3 +hi Visual gui=BOLD guifg=#FFFFFF guibg=#1679F9 + + diff --git a/vim/colors/tcsoft.vim b/vim/colors/tcsoft.vim new file mode 100644 index 0000000..072831e --- /dev/null +++ b/vim/colors/tcsoft.vim @@ -0,0 +1,62 @@ +" Vim Farben-Datei +" Ersteller: Ingo Fabbri +" Letzte Änderung: 2003 May 13 + +" Mein persönliches Farbschema. Es schont die Augen, da es keine grellen Farben verwendet. +" Am Besten geignet für PHP + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "TCSoft" + +" Farb-Einstellungen für das GUI +hi Normal guifg=#000000 guibg=#FFFFFF "Schwarze Schrift auf weißem Hintergrund + +hi Ignore guifg=bg + +hi Comment guifg=#000099 gui=italic "dunkelblau +hi Constant guifg=#666666 gui=NONE "grau +hi Special guifg=#FF0000 gui=NONE "rot +hi Identifier guifg=#993300 gui=NONE "rostfarbig +hi Statement guifg=#FF9900 gui=NONE "orange +hi PreProc guifg=#009900 gui=NONE "dunkelgrün +hi Type guifg=#FF9900 gui=bold "orange +hi Cursor guifg=#000000 gui=reverse "schwarz +hi LineNr guifg=#000000 gui=NONE "schwarz +hi StatusLine guifg=#000000 gui=reverse,bold "schwarz + +hi link Function PreProc +hi link String Constant +hi link Character Constant + +hi! link MoreMsg Comment +hi! link ErrorMsg Visual +hi! link WarningMsg ErrorMsg +hi! link Question Comment + +hi link Number Special +hi link Boolean Constant +hi link Float Number + +hi link Operator Identifier +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc + +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement + +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Comment +hi link Debug Special diff --git a/vim/colors/thegoodluck.vim b/vim/colors/thegoodluck.vim new file mode 100644 index 0000000..2315f02 --- /dev/null +++ b/vim/colors/thegoodluck.vim @@ -0,0 +1,58 @@ +" vim: sw=4 +" Vim color file +" Maintainer: Leonid Shvechikov (aka tGL) +" Vesion: 0.7 +" Last Change: 2008/07/30 + +" tGL - the Good Luck +" My personal light colorscheme for gvim. +" I prefere to decrease screen brightness at my worktime to the value, +" when the white color not tire my eyes. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "thegoodluck" + +" Vim >= 7.0 specific colors +if version >= 700 + hi CursorLine guibg=#e8f2ff + hi CursorColumn guibg=#e8f2ff + hi MatchParen guibg=#ffff00 gui=bold + hi Pmenu guifg=Black guibg=#ddeeff + hi PmenuSel guifg=White guibg=#4088d0 +endif + +" General colors +hi Cursor guifg=White guibg=Black +hi lCursor guifg=White guibg=Black +hi Normal guifg=Black guibg=White +hi NonText guifg=gray40 guibg=gray95 +hi LineNR guifg=gray70 guibg=gray95 +hi SpecialKey guifg=#ff00ff +hi Title guifg=Black gui=bold +hi Visual guibg=#bbddff + +" Syntax highlighting +hi Comment guifg=#0066cc +hi Constant guifg=#aa0000 +hi Number guifg=#aa0000 +hi String guifg=#008000 +hi Identifier guifg=#0033cc +hi Operator guifg=#0066cc gui=bold +hi Function guifg=#aa0000 +hi PreProc guifg=#aa0000 +hi Special guifg=#cc6600 +hi Statement guifg=#008040 gui=bold +hi Type guifg=#0066cc gui=bold +hi Directory guifg=#0066cc gui=bold + +hi DiffAdd guibg=#ccffcc +hi DiffChange guibg=#ffffcc +hi DiffDelete guifg=#6699cc guibg=#bbeeff gui=bold +hi DiffText guibg=#ffcccc gui=bold + +hi FoldColumn guifg=DarkBlue guibg=gray95 +hi Folded guifg=gray30 guibg=gray95 diff --git a/vim/colors/tibet.vim b/vim/colors/tibet.vim new file mode 100644 index 0000000..48807bf --- /dev/null +++ b/vim/colors/tibet.vim @@ -0,0 +1,101 @@ +" Vim color file +" Maintainer: Miguel Figueiredo + +" /usr/X11R6/lib/X11 +set background=dark + +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="tibet" + +hi Normal guifg=ivory guibg=darkred + +" highlight groups +"hi Cursor guibg=khaki guifg=slategrey +hi Cursor guibg=blue4 guifg=white +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +"hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none +hi VertSplit guibg=darkgreen guifg=white gui=none +hi Folded guibg=darkred guifg=gold +hi FoldColumn guibg=grey30 guifg=tan +hi IncSearch guifg=slategrey guibg=khaki +hi LineNr guifg=yellow guibg=darkred +hi ModeMsg guifg=goldenrod +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=darkred +hi Question guifg=springgreen +hi Search guibg=peru guifg=wheat +hi SpecialKey guifg=yellowgreen +hi StatusLine guibg=#c2bfa5 guifg=black gui=none +hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none +hi Title guifg=indianred +"hi Visual gui=none guifg=khaki guibg=olivedrab +hi Visual gui=none guifg=white guibg=#003300 +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=goldenrod +hi Constant guifg=#ffa0a0 +"hi String guifg=blue +hi Identifier guifg=palegreen +hi Statement guifg=khaki +hi PreProc guifg=#ffa0a0 +"hi Type guifg=darkkhaki +hi Type guifg=khaki +hi Special guifg=navajowhite +"hi Underlined +hi Ignore guifg=grey40 +"hi Error +hi Todo guifg=yellow guibg=#003300 + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + + +" diff --git a/vim/colors/tolerable.vim b/vim/colors/tolerable.vim new file mode 100644 index 0000000..7b97b9a --- /dev/null +++ b/vim/colors/tolerable.vim @@ -0,0 +1,43 @@ +" Vim color file +" Maintainer: Ian Langworth +" Last Change: 2004 Dec 24 +" Email: + +" Color settings inspired by BBEdit for Mac OS, plus I liked +" the low-contrast comments from the 'oceandeep' colorscheme + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="tolerable" + +hi Cursor guifg=white guibg=darkgreen + +hi Normal gui=none guifg=black guibg=white +hi NonText gui=none guifg=orange guibg=white + +hi Statement gui=none guifg=blue +hi Special gui=none guifg=red +hi Constant gui=none guifg=darkred +hi Comment gui=none guifg=#555555 +hi Preproc gui=none guifg=darkcyan +hi Type gui=none guifg=darkmagenta +hi Identifier gui=none guifg=darkgreen +hi Title gui=none guifg=black + +hi StatusLine gui=none guibg=#333333 guifg=white +hi StatusLineNC gui=none guibg=#333333 guifg=white +hi VertSplit gui=none guibg=#333333 guifg=white + +hi Visual gui=none guibg=green guifg=black +hi Search gui=none guibg=yellow +hi Directory gui=none guifg=darkblue +hi WarningMsg gui=none guifg=red +hi Error gui=none guifg=white guibg=red +hi Todo gui=none guifg=black guibg=yellow + +hi MoreMsg gui=none +hi ModeMsg gui=none + diff --git a/vim/colors/tomatosoup.vim b/vim/colors/tomatosoup.vim new file mode 100644 index 0000000..bd1714e --- /dev/null +++ b/vim/colors/tomatosoup.vim @@ -0,0 +1,80 @@ +" Vim color file +" Maintainer: Michael Brailsford +" Date: $Date: 2002/04/11 03:29:51 $ +" Version: $Revision: 1.4 $ + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +" your pick: +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="tomatosoup" + +hi Normal guifg=black guibg=tomato1 ctermfg=14 + +"Toggle semicolon matching at the end of lines +nmap ; :call ToggleSemicolonHighlighting() +"{{{ +function! ToggleSemicolonHighlighting() + if exists("b:semicolon") + unlet b:semicolon + hi semicolon guifg=NONE gui=NONE ctermfg=NONE + else + syn match semicolon #;$# + hi semicolon guifg=red gui=bold ctermfg=1 + let b:semicolon = 1 + endif +endfunction +"}}} + +hi Cursor guifg=bg guibg=fg ctermfg=0 ctermbg=11 +"hi CursorIM +hi Directory gui=bold +hi DiffAdd guifg=yellow guibg=darkgreen ctermbg=0 +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=red ctermfg=1 +"hi VertSplit +hi Folded guibg=darkred ctermbg=4 guifg=gold ctermfg=11 gui=bold +hi FoldColumn guibg=darkred ctermbg=14 guifg=gold ctermfg=11 gui=bold +"hi IncSearch +hi LineNr guifg=yellow ctermfg=11 +hi ModeMsg guifg=yellow gui=bold +"hi MoreMsg +"hi NonText +"hi Question +hi Search guibg=yellow guifg=bg +"hi SpecialKey +hi StatusLine guifg=brown +hi StatusLineNC guifg=darkred +"hi Title +hi Visual guifg=fg guibg=bg +"hi VisualNOS +"hi WarningMsg +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=pink ctermfg=10 +hi Constant guifg=lightmagenta gui=bold ctermfg=13 +hi String guifg=grey85 ctermfg=5 +hi Character guifg=violet ctermfg=5 +hi Number guifg=red ctermfg=5 +"hi Identifier +hi Statement guifg=khaki1 gui=bold ctermfg=15 cterm=underline +hi PreProc guifg=white gui=italic ctermfg=9 +hi Type guifg=yellow gui=bold ctermfg=3 +hi Special guifg=red gui=bold +"hi Underlined +"hi Ignore +"hi Error +hi Todo guifg=yellow guibg=blue gui=bold diff --git a/vim/colors/toothpik.vim b/vim/colors/toothpik.vim new file mode 100644 index 0000000..22e07a1 --- /dev/null +++ b/vim/colors/toothpik.vim @@ -0,0 +1,45 @@ +set background=light +highlight clear +if exists( "syntax_on" ) + syntax reset +endif +let g:colors_name="toothpik" + +highlight Comment term=bold guifg=Yellow +highlight Constant term=underline guifg=Blue guibg=grey +highlight Cursor gui=reverse guifg=red guibg=white +highlight lCursor guifg=black guibg=green +highlight DiffAdd term=bold guibg=LightBlue +highlight DiffChange term=bold guibg=LightMagenta +highlight DiffDelete term=bold gui=bold guifg=Blue guibg=LightCyan +highlight DiffText term=reverse gui=bold guibg=Red +highlight Directory term=bold guifg=Blue +highlight Error term=reverse guifg=White guibg=Red +highlight ErrorMsg term=standout guifg=White guibg=Red +highlight Folded term=standout guifg=DarkBlue guibg=LightGrey +highlight FoldColumn term=standout guifg=DarkBlue guibg=Grey +highlight Identifier term=underline guifg=DarkCyan +highlight Ignore guifg=bg +highlight IncSearch term=reverse gui=reverse +highlight LineNr term=underline guifg=Brown +highlight MoreMsg term=bold gui=bold guifg=SeaGreen +highlight ModeMsg term=bold gui=bold +highlight NonText term=bold gui=bold guifg=Blue guibg=grey +highlight Normal guibg=grey font='Fixedsys' +highlight Question term=standout gui=bold guifg=SeaGreen +highlight PreProc term=underline guifg=Purple +highlight Search term=reverse guibg=Yellow +highlight Special term=bold guifg=darkred guibg=grey +highlight SpecialKey term=bold guifg=Blue +highlight Statement term=bold gui=bold guifg=Brown +highlight StatusLine term=bold,reverse gui=bold,reverse +highlight StatusLineNC term=reverse gui=reverse +highlight Title term=bold gui=bold guifg=Magenta +highlight Todo term=standout guifg=Blue guibg=Yellow +highlight Type term=underline gui=bold guifg=DarkGreen +highlight Underlined term=underline gui=underline guifg=SlateBlue +highlight VertSplit term=reverse gui=reverse +highlight Visual term=reverse gui=reverse guifg=Yellow guibg=Black +highlight VisualNOS term=bold,underline gui=bold,underline +highlight WarningMsg term=standout guifg=Red +highlight WildMenu term=standout guifg=Black guibg=Yellow diff --git a/vim/colors/torte.vim b/vim/colors/torte.vim new file mode 100644 index 0000000..06c08aa --- /dev/null +++ b/vim/colors/torte.vim @@ -0,0 +1,51 @@ +" Vim color file +" Maintainer: Thorsten Maerz +" Last Change: 2001 Jul 23 +" grey on black +" optimized for TFT panels +" $Revision: 1.1 $ + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "torte" + +" hardcoded colors : +" GUI Comment : #80a0ff = Light blue + +" GUI +highlight Normal guifg=Grey80 guibg=Black +highlight Search guifg=Black guibg=Red gui=bold +highlight Visual guifg=Grey25 gui=bold +highlight Cursor guifg=Black guibg=Green gui=bold +highlight Special guifg=Orange +highlight Comment guifg=#80a0ff +highlight StatusLine guifg=blue guibg=white +highlight Statement guifg=Yellow gui=NONE +highlight Type gui=NONE + +" Console +highlight Normal ctermfg=LightGrey ctermbg=Black +highlight Search ctermfg=Black ctermbg=Red cterm=NONE +highlight Visual cterm=reverse +highlight Cursor ctermfg=Black ctermbg=Green cterm=bold +highlight Special ctermfg=Brown +highlight Comment ctermfg=Blue +highlight StatusLine ctermfg=blue ctermbg=white +highlight Statement ctermfg=Yellow cterm=NONE +highlight Type cterm=NONE + +" only for vim 5 +if has("unix") + if v:version<600 + highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE + highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold + highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=Grey25 gui=bold + highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue gui=NONE + highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue gui=NONE + endif +endif + diff --git a/vim/colors/transparent.vim b/vim/colors/transparent.vim new file mode 100644 index 0000000..274cd8e --- /dev/null +++ b/vim/colors/transparent.vim @@ -0,0 +1,97 @@ +" Vim color file +" Maintainer: Sir Raorn +" Last Change: Nov 10, 2002 +" URL: http://hell.binec.ru/ + +" This color scheme uses "transparent" background (dark dark blue in gvim) +" Looks really nice when vim (console) started in transparent aterm +" But gvim is good either +set background=dark + +" First remove all existing highlighting. +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="transparent" + +" default groups +hi Normal ctermfg=Gray ctermbg=NONE guifg=Gray guibg=#00002A + +hi Cursor guifg=Black guibg=Green +"hi CursorIM NONE guifg=Black guibg=Purple +hi Directory ctermfg=White guifg=White +hi DiffAdd ctermfg=White ctermbg=DarkCyan guifg=White guibg=DarkCyan +hi DiffChange ctermfg=Black ctermbg=Gray guifg=Black guibg=DarkGray +hi DiffDelete ctermfg=White ctermbg=DarkRed guifg=White guibg=DarkRed +hi DiffText cterm=bold ctermfg=White ctermbg=Gray gui=bold guifg=White guibg=DarkGray +hi ErrorMsg ctermfg=White ctermbg=DarkRed guifg=White guibg=DarkRed +hi VertSplit cterm=reverse gui=reverse +hi Folded cterm=bold ctermfg=Cyan ctermbg=NONE gui=bold guifg=Cyan guibg=DarkCyan +hi FoldColumn ctermfg=Green ctermbg=NONE guifg=Green guibg=#00002A +hi IncSearch ctermfg=White ctermbg=Black guifg=White guibg=Black +hi LineNr ctermfg=Yellow guifg=DarkCyan +hi ModeMsg cterm=bold ctermfg=White gui=bold guifg=White +hi MoreMsg cterm=bold ctermfg=White gui=bold guifg=White +hi NonText ctermfg=NONE guifg=NONE +hi Question ctermfg=Green guifg=Green +hi Search cterm=reverse ctermfg=fg ctermbg=NONE gui=reverse guifg=fg guibg=bg +hi SpecialKey ctermfg=LightRed guifg=Red +hi StatusLine cterm=bold,reverse ctermfg=White ctermbg=Black gui=bold,reverse guifg=White guibg=Black +hi StatusLineNC cterm=reverse ctermfg=Gray ctermbg=Black gui=reverse guifg=DarkGray guibg=Black +hi Title ctermfg=LightGreen gui=bold guifg=Green +hi Visual cterm=inverse ctermfg=White ctermbg=DarkGray gui=inverse guifg=DarkGray guibg=Black +hi VisualNOS cterm=bold,underline gui=bold,underline +hi WarningMsg ctermfg=White ctermbg=DarkRed guifg=White guibg=DarkRed +hi WildMenu cterm=bold ctermfg=Black ctermbg=Yellow gui=bold guifg=Black guibg=Yellow +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment ctermfg=DarkCyan guifg=DarkCyan + +hi Constant ctermfg=LightGreen guifg=LightGreen +hi String ctermfg=Yellow guifg=Yellow +hi Character ctermfg=Yellow guifg=Yellow +"hi Number +"hi Boolean +"hi Float + +hi Identifier ctermfg=LightCyan guifg=LightCyan +hi Function ctermfg=White guifg=White + +hi Statement ctermfg=Yellow guifg=Yellow +"hi Conditional +"hi Repeat +hi Label ctermfg=White guifg=White +hi Operator ctermfg=Green guifg=Green +"hi Keyword +hi Exception ctermfg=Black ctermbg=DarkRed guifg=Black guibg=DarkRed + +hi PreProc ctermfg=DarkGreen guifg=DarkGreen +"hi Include +"hi Define +"hi Macro +"hi PreCondit + +hi Type ctermfg=Green guifg=Green +"hi StorageClass +"hi Structure +hi Typedef ctermfg=Red guifg=Red + +hi Special ctermfg=Red guifg=Red +"hi SpecialChar +hi Tag ctermfg=LightGreen guifg=LightGreen +hi Delimiter ctermfg=Green guifg=Green +"hi SpecialComment +hi Debug ctermfg=White ctermbg=Black guifg=White guibg=Black + +hi Underlined cterm=underline gui=underline + +hi Ignore ctermfg=DarkBlue guifg=DarkBlue + +hi Error ctermfg=White ctermbg=DarkRed guifg=White guibg=DarkRed + +hi Todo ctermfg=Black ctermbg=Gray guifg=Black guibg=Gray + diff --git a/vim/colors/turbo.vim b/vim/colors/turbo.vim new file mode 100644 index 0000000..c6fda54 --- /dev/null +++ b/vim/colors/turbo.vim @@ -0,0 +1,68 @@ +" Vim color file +" Maintainer: Bryant Casteel +" Web Site: http://bethings.provoplatinum.com +" Last Change: 2004 Jan. 22 + +" turbo -- Intended to look like the color scheme +" from Borland's Turbo C++ and Turbo Pascal. + +set bg=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "turbo" + + +hi Normal guifg=yellow guibg=#000040 ctermfg=yellow ctermbg=black +hi ErrorMsg guifg=#ffffff guibg=#287eff ctermfg=white ctermbg=lightblue +hi Visual guifg=#8080ff guibg=fg gui=reverse ctermfg=lightblue ctermbg=fg cterm=reverse +hi VisualNOS guifg=#8080ff guibg=fg gui=reverse,underline ctermfg=lightblue ctermbg=fg cterm=reverse,underline +hi Todo guifg=#d14a14 guibg=#1248d1 ctermfg=red ctermbg=darkblue +hi Search guifg=#90fff0 guibg=#2050d0 ctermfg=white ctermbg=darkblue cterm=underline +hi IncSearch guifg=#b0ffff guibg=#2050d0 ctermfg=darkblue ctermbg=gray + + +hi SpecialKey guifg=cyan ctermfg=darkcyan +hi Directory guifg=cyan ctermfg=cyan +hi Title guifg=magenta gui=none ctermfg=magenta cterm=bold +hi WarningMsg guifg=red ctermfg=red +hi WildMenu guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none +hi ModeMsg guifg=#22cce2 ctermfg=lightblue +hi MoreMsg guifg=darkgreen ctermfg=darkgreen +hi Question guifg=green gui=none ctermfg=green cterm=none +hi NonText guifg=#0030ff ctermfg=darkblue + +" Split window status bar +hi StatusLine guifg=blue guibg=yellow gui=none ctermfg=blue ctermbg=gray cterm=none +hi StatusLineNC guifg=black guibg=green gui=none ctermfg=black ctermbg=gray cterm=none +hi VertSplit guifg=black guibg=orange gui=none ctermfg=black ctermbg=gray cterm=none + +" Folded code +hi Folded guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold +hi FoldColumn guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold +hi LineNr guifg=#90f020 ctermfg=green cterm=none + + +hi DiffAdd guibg=darkblue ctermbg=darkblue cterm=none +hi DiffChange guibg=darkmagenta ctermbg=magenta cterm=none +hi DiffDelete guifg=Blue guibg=DarkCyan gui=bold ctermfg=blue ctermbg=cyan +hi DiffText guibg=Red gui=bold ctermbg=red cterm=bold + +" Cursor +hi Cursor guifg=#000020 guibg=#ffaf38 ctermfg=bg ctermbg=brown +hi lCursor guifg=#ffffff guibg=#000000 ctermfg=bg ctermbg=darkgreen + +" Syntax highlighting: +hi Comment guifg=darkcyan ctermfg=darkcyan +hi Constant guifg=darkred ctermfg=darkred cterm=none +hi Special guifg=magenta gui=none ctermfg=magenta cterm=none +hi Identifier guifg=green ctermfg=green cterm=none +hi Statement guifg=white gui=bold ctermfg=white cterm=bold +hi PreProc guifg=darkgreen gui=none ctermfg=darkgreen cterm=none +hi type guifg=grey gui=bold ctermfg=grey cterm=bold +hi Underlined gui=underline cterm=underline +hi Ignore guifg=bg ctermfg=bg + + diff --git a/vim/colors/two2tango.vim b/vim/colors/two2tango.vim new file mode 100644 index 0000000..fc6827e --- /dev/null +++ b/vim/colors/two2tango.vim @@ -0,0 +1,101 @@ +" Vim color file +" Name: two2tango +" Maintainer: Erik Falor +" Version: 1.1 +" +" Big props to Panos Laganakos +" for the original darktango.vim colorscheme upon which +" this scheme is based. + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name="two2tango" + +"Tango palette +"http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines +" {{{ +let s:Butter = ['#fce94f', '#edd400', '#c4a000'] +let s:Chameleon = ['#8ae234', '#73d216', '#4e9a06'] +let s:Orange = ['#fcaf3e', '#f57900', '#ce5c00'] +let s:SkyBlue = ['#729fcf', '#3465a4', '#204a87'] +let s:Plum = ['#ad7fa8', '#75507b', '#5c3566'] +let s:Chocolate = ['#e9b96e', '#c17d11', '#8f5902'] +let s:ScarletRed = ['#ef2929', '#cc0000', '#a40000'] +let s:Aluminium = ['#eeeeec', '#d3d7cf', '#babdb6', + \'#888a85', '#555753', '#2e3436'] +"This color isn't part of the Tango Palette; I use it because there +"isn't a Tango color that provides enough contrast +let s:Background = '#212628' +" }}} + +hi Normal guibg=#2e3436 guifg=#d3d7cf +execute "hi Normal guibg=" . s:Aluminium[5] . " guifg=" . s:Aluminium[1] + +" {{{ syntax +execute "hi Comment gui=italic guifg=" . s:Aluminium[4] +execute "hi Conditional gui=bold guifg=" . s:Butter[2] +execute "hi Constant guifg=" . s:Chocolate[1] +execute "hi Error guifg=" . s:Aluminium[0] . " guibg=" . s:ScarletRed[2] +execute "hi Identifier guifg=" . s:Orange[2] +execute "hi Ignore guifg=" . s:Aluminium[5] . " guibg=" . s:Aluminium[5] +execute "hi Operator guifg=" . s:Butter[1] +execute "hi PreProc guifg=" . s:Chocolate[0] +execute "hi Repeat gui=bold guifg=" . s:Butter[2] +execute "hi Special guifg=" . s:SkyBlue[1] +execute "hi Statement guifg=" . s:Aluminium[3] +execute "hi String guifg=" . s:SkyBlue[0] +execute "hi Title guifg=" . s:Aluminium[0] +execute "hi Todo gui=bold guisp=NONE guibg=" . s:Orange[2] + \. " guifg=" . s:Aluminium[0] +execute "hi Type guifg=" . s:Orange[2] +execute "hi Underlined gui=underline guifg=" . s:SkyBlue[0] +" }}} + +" {{{ groups +execute "hi Cursor guibg=" . s:ScarletRed[0] . " guifg=" . s:Aluminium[5] +execute "hi CursorLine guibg=" . s:Background +execute "hi CursorColumn guibg=" . s:Background +"hi CursorIM TODO +execute "hi Directory guifg=" . s:SkyBlue[0] +execute "hi ErrorMsg guifg=" . s:Aluminium[0] . " guibg=" . s:ScarletRed[2] +execute "hi FoldColumn guibg=" . s:Aluminium[5] . " guifg=" . s:Aluminium[4] +execute "hi Folded guibg=" . s:Aluminium[4] . " guifg=" . s:Aluminium[2] +execute "hi IncSearch gui=none guibg=" . s:Butter[0] . " guifg=" . s:Butter[2] +execute "hi LineNr guibg=" . s:Aluminium[5] . " guifg=" . s:Aluminium[4] +execute "hi MatchParen guibg=" . s:Aluminium[2] . " guifg=" . s:Aluminium[5] +"hi Menu TODO +execute "hi ModeMsg guifg=" . s:Orange[2] +execute "hi MoreMsg guifg=" . s:Orange[2] +execute "hi NonText guibg=" . s:Aluminium[5] . " guifg=" . s:Aluminium[4] +execute "hi Pmenu guibg=" . s:Aluminium[2] . " guifg=" . s:Aluminium[4] +execute "hi PmenuSel guibg=" . s:Aluminium[0] . " guifg=" . s:Aluminium[5] +execute "hi Question guifg=" . s:Plum[0] +"hi Scrollbar TODO +execute "hi Search guibg=" . s:Butter[0] . " guifg=" . s:Butter[2] +execute "hi SpecialKey guifg=" . s:Orange[2] +execute "hi StatusLine gui=none guibg=" . s:Orange[2] . " guifg=" . s:Aluminium[0] +execute "hi StatusLineNC gui=none guibg=" . s:Aluminium[3] . " guifg=" . s:Aluminium[5] +"hi TabLine TODO - non-active tab page label +"hi TabLineFill TODO - fill color where there are no tabs +"hi TabLineSel TODO - active tab page label +execute "hi Tooltip gui=none guibg=" . s:SkyBlue[0] . " guifg=" . s:Aluminium[0] +execute "hi VertSplit gui=none guibg=" . s:Aluminium[3] . " guifg=" . s:Aluminium[5] +execute "hi Visual guibg=" . s:Orange[0] . " guifg=" . s:Orange[2] +"hi VisualNOS TODO - Visual mode selection when vim is "Not Owning the Selection". +execute "hi WarningMsg guifg=" . s:Orange[0] +execute "hi WildMenu guifg=" . s:Butter[2] . " guibg=" . s:Butter[0] +" }}} + +" {{{ terminal +" TODO +" }}} + +" vim: sw=4 foldmethod=marker diff --git a/vim/colors/umber-green.vim b/vim/colors/umber-green.vim new file mode 100644 index 0000000..931c303 --- /dev/null +++ b/vim/colors/umber-green.vim @@ -0,0 +1,89 @@ +" Vim color file +" Maintainer: horrorvacui-at-gmx.net +" Last Change: today... oh yes, it's 16.9.03 +" URL: + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +" your pick: +set background=dark " or light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="umber-green" + +"hi Normal + +" OR + +" highlight clear Normal +" set background& +" highlight clear +" if &background == "light" +" highlight Error ... +" ... +" else +" highlight Error ... +" ... +" endif + +" A good way to see what your colorscheme does is to follow this procedure: +" :w +" :so % +" +" Then to see what the current setting is use the highlight command. +" For example, +" :hi Cursor +" gives +" Cursor xxx guifg=bg guibg=fg + +" Uncomment and complete the commands you want to change from the default. + +hi Cursor guibg=#ffffff +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +"hi VertSplit +"hi Folded +"hi FoldColumn +"hi IncSearch +hi LineNr guifg=#e2844d guibg=#000000 +"hi ModeMsg +"hi MoreMsg +"hi NonText +"hi Question +"hi Search +"hi SpecialKey +hi StatusLine guifg=#ffffff +hi StatusLineNC guifg=#ffffff +"hi Title +"hi Visual +"hi VisualNOS +"hi WarningMsg +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Normal guifg=#eeaa11 guibg=#333333 +hi Comment guifg=#ff5555 +hi Constant guifg=#eeaa11 +hi Identifier guifg=#0000ff +hi Statement guifg=#77ee44 +hi PreProc guifg=#ff0000 +hi Type guifg=#eecc88 +hi Special guifg=#ddffcc +"hi Underlined +"hi Ignore +"hi Error +"hi Todo + diff --git a/vim/colors/vc.vim b/vim/colors/vc.vim new file mode 100644 index 0000000..49689d4 --- /dev/null +++ b/vim/colors/vc.vim @@ -0,0 +1,24 @@ +" Vim color file +" Maintainer: Vladimir Vrzic +" Last Change: 28. june 2003. +" URL: http://galeb.etf.bg.ac.yu/~random/pub/vim/ + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="vc" + +hi Comment gui=NONE guifg=SeaGreen guibg=NONE +hi Constant gui=NONE guifg=#004488 guibg=NONE +"hi Identifier gui=NONE guifg=Blue guibg=NONE +hi Statement gui=NONE guifg=Blue guibg=NONE +hi PreProc gui=NONE guifg=Blue guibg=NONE +hi Type gui=NONE guifg=Blue guibg=NONE +hi Special gui=NONE guifg=SteelBlue guibg=NONE +"hi Underlined +"hi Ignore +"hi Error +"hi Todo + diff --git a/vim/colors/vcbc.vim b/vim/colors/vcbc.vim new file mode 100644 index 0000000..07777c3 --- /dev/null +++ b/vim/colors/vcbc.vim @@ -0,0 +1,31 @@ +" Vim color file +" Maintainer: Rajas Sambhare +" Last Change: Nov 18, 2004 +" Version: 1.0 +" Based on the colors for Visual C++ 6.0 and Beyond Compare for diffs. +" Inspired by vc.vim by Vladimir Vrzic + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="vcbc" + +hi Normal cterm=NONE ctermfg=Black ctermbg=White gui=NONE guifg=NONE guibg=NONE +hi NonText cterm=NONE ctermfg=Black ctermbg=Grey gui=NONE guifg=NONE guibg=LightGrey +hi LineNr cterm=NONE ctermfg=Black ctermbg=LightGrey gui=NONE guifg=NONE guibg=LightGrey +hi Comment cterm=NONE ctermfg=DarkGreen ctermbg=White gui=italic guifg=DarkGreen guibg=NONE +hi Constant cterm=NONE ctermfg=Red ctermbg=White gui=NONE guifg=Red guibg=NONE +hi Identifier cterm=NONE ctermfg=LightBlue ctermbg=White gui=NONE guifg=LightBlue guibg=NONE +hi Statement cterm=bold ctermfg=Blue ctermbg=White gui=bold guifg=Blue guibg=NONE +hi PreProc cterm=NONE ctermfg=DarkRed ctermbg=White gui=NONE guifg=DarkRed guibg=NONE +hi Type cterm=NONE ctermfg=Blue ctermbg=White gui=NONE guifg=Blue guibg=NONE +hi Underlined cterm=NONE ctermfg=Black ctermbg=White gui=underline guifg=NONE guibg=NONE +hi Error cterm=NONE ctermfg=Yellow ctermbg=Red gui=NONE guifg=Yellow guibg=Red +hi Todo cterm=NONE ctermfg=Black ctermbg=Yellow gui=NONE guifg=NONE guibg=LightYellow +"Diff colors +hi DiffAdd cterm=NONE ctermfg=Red ctermbg=LightGrey gui=NONE guifg=Red guibg=#fff0f0 +hi DiffChange cterm=NONE ctermfg=Red ctermbg=LightGrey gui=NONE guifg=Red guibg=#fff0f0 +hi DiffText cterm=NONE ctermfg=White ctermbg=DarkRed gui=bold,italic guifg=Red guibg=#fff0f0 +hi DiffDelete cterm=NONE ctermfg=White ctermbg=LightGrey gui=NONE guifg=DarkGrey guibg=#f0f0f0 diff --git a/vim/colors/vibrantink.vim b/vim/colors/vibrantink.vim new file mode 100644 index 0000000..0bc09ec --- /dev/null +++ b/vim/colors/vibrantink.vim @@ -0,0 +1,68 @@ +" Vim color scheme +" +" Name: vibrantink.vim +" Maintainer: Jo Vermeulen +" Last Change: 30 Jul 2007 +" License: public domain +" Version: 1.2 +" +" This scheme should work in the GUI and in xterm's 256 color mode. It won't +" work in 8/16 color terminals. +" +" I based it on John Lam's initial VibrantInk port to Vim [1]. Thanks to a +" great tutorial [2], I was able to convert it to xterm 256 color mode. And +" of course, credits go to Justin Palmer for creating the original VibrantInk +" TextMate color scheme [3]. +" +" [1] http://www.iunknown.com/articles/2006/09/04/vim-can-save-your-hands-too +" [2] http://frexx.de/xterm-256-notes/ +" [3] http://encytemedia.com/blog/articles/2006/01/03/textmate-vibrant-ink-theme-and-prototype-bundle + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "vibrantink" + +if has("gui_running") + highlight Normal guifg=White guibg=Black + highlight Cursor guifg=Black guibg=Yellow + highlight Keyword guifg=#FF6600 + highlight Define guifg=#FF6600 + highlight Comment guifg=#9933CC + highlight Type guifg=White gui=NONE + highlight rubySymbol guifg=#339999 gui=NONE + highlight Identifier guifg=White gui=NONE + highlight rubyStringDelimiter guifg=#66FF00 + highlight rubyInterpolation guifg=White + highlight rubyPseudoVariable guifg=#339999 + highlight Constant guifg=#FFEE98 + highlight Function guifg=#FFCC00 gui=NONE + highlight Include guifg=#FFCC00 gui=NONE + highlight Statement guifg=#FF6600 gui=NONE + highlight String guifg=#66FF00 + highlight Search guibg=White + highlight CursorLine guibg=#323300 +else + set t_Co=256 + highlight Normal ctermfg=White ctermbg=Black + highlight Cursor ctermfg=Black ctermbg=Yellow + highlight Keyword ctermfg=202 + highlight Define ctermfg=202 + highlight Comment ctermfg=98 + highlight Type ctermfg=White + highlight rubySymbol ctermfg=66 + highlight Identifier ctermfg=White + highlight rubyStringDelimiter ctermfg=82 + highlight rubyInterpolation ctermfg=White + highlight rubyPseudoVariable ctermfg=66 + highlight Constant ctermfg=228 + highlight Function ctermfg=220 + highlight Include ctermfg=220 + highlight Statement ctermfg=202 + highlight String ctermfg=82 + highlight Search ctermbg=White + highlight CursorLine cterm=NONE ctermbg=235 +endif diff --git a/vim/colors/vividchalk.vim b/vim/colors/vividchalk.vim new file mode 100644 index 0000000..44488b4 --- /dev/null +++ b/vim/colors/vividchalk.vim @@ -0,0 +1,172 @@ +" Vim color scheme +" Name: vividchalk.vim +" Author: Tim Pope +" GetLatestVimScripts: 1891 1 :AutoInstall: vividchalk.vim +" $Id: vividchalk.vim,v 1.8 2007-07-11 18:50:16 tpope Exp $ + +" Based on the Vibrank Ink theme for TextMate +" Distributable under the same terms as Vim itself (see :help license) + +if has("gui_running") + set background=dark +endif +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "vividchalk" + +" First two functions adapted from inkpot.vim + +" map a urxvt cube number to an xterm-256 cube number +fun! s:M(a) + return strpart("0245", a:a, 1) + 0 +endfun + +" map a urxvt colour to an xterm-256 colour +fun! s:X(a) + if &t_Co == 88 + return a:a + else + if a:a == 8 + return 237 + elseif a:a < 16 + return a:a + elseif a:a > 79 + return 232 + (3 * (a:a - 80)) + else + let l:b = a:a - 16 + let l:x = l:b % 4 + let l:y = (l:b / 4) % 4 + let l:z = (l:b / 16) + return 16 + s:M(l:x) + (6 * s:M(l:y)) + (36 * s:M(l:z)) + endif + endif +endfun + +function! E2T(a) + return s:X(a:a) +endfunction + +function! s:choose(mediocre,good) + if &t_Co != 88 && &t_Co != 256 + return a:mediocre + else + return s:X(a:good) + endif +endfunction + +function! s:hifg(group,guifg,first,second,...) + if a:0 && &t_Co == 256 + let ctermfg = a:1 + else + let ctermfg = s:choose(a:first,a:second) + endif + exe "highlight ".a:group." guifg=".a:guifg." ctermfg=".ctermfg +endfunction + +function! s:hibg(group,guibg,first,second) + let ctermbg = s:choose(a:first,a:second) + exe "highlight ".a:group." guibg=".a:guibg." ctermbg=".ctermbg +endfunction + +hi link railsMethod PreProc +hi link rubyDefine Keyword +hi link rubySymbol Constant +hi link rubyAccess rubyMethod +hi link rubyAttribute rubyMethod +hi link rubyEval rubyMethod +hi link rubyException rubyMethod +hi link rubyInclude rubyMethod +hi link rubyStringDelimiter rubyString +hi link rubyRegexp Regexp +hi link rubyRegexpDelimiter rubyRegexp +"hi link rubyConstant Variable +"hi link rubyGlobalVariable Variable +"hi link rubyClassVariable Variable +"hi link rubyInstanceVariable Variable +hi link javascriptRegexpString Regexp +hi link javascriptNumber Number +hi link javascriptNull Constant + +call s:hifg("Normal","#EEEEEE","White",87) +if &background == "light" || has("gui_running") + hi Normal guibg=Black ctermbg=Black +else + hi Normal guibg=Black ctermbg=NONE +endif +highlight StatusLine guifg=Black guibg=#aabbee gui=bold ctermfg=Black ctermbg=White cterm=bold +highlight StatusLineNC guifg=#444444 guibg=#aaaaaa gui=none ctermfg=Black ctermbg=Grey cterm=none +"if &t_Co == 256 + "highlight StatusLine ctermbg=117 +"else + "highlight StatusLine ctermbg=43 +"endif +highlight WildMenu guifg=Black guibg=#ffff00 gui=bold ctermfg=Black ctermbg=Yellow cterm=bold +highlight Cursor guifg=Black guibg=White ctermfg=Black ctermbg=White +highlight CursorLine guibg=#333333 guifg=NONE +highlight CursorColumn guibg=#333333 guifg=NONE +highlight NonText guifg=#404040 ctermfg=8 +highlight SpecialKey guifg=#404040 ctermfg=8 +highlight Directory none +high link Directory Identifier +highlight ErrorMsg guibg=Red ctermbg=DarkRed guifg=NONE ctermfg=NONE +highlight Search guifg=NONE ctermfg=NONE gui=none cterm=none +call s:hibg("Search" ,"#555555","Black",81) +highlight IncSearch guifg=White guibg=Black ctermfg=White ctermbg=Black +highlight MoreMsg guifg=#00AA00 ctermfg=Green +highlight LineNr guifg=#DDEEFF ctermfg=White +call s:hibg("LineNr" ,"#222222","DarkBlue",80) +highlight Question none +high link Question MoreMsg +highlight Title guifg=Magenta ctermfg=Magenta +highlight VisualNOS gui=none cterm=none +call s:hibg("Visual" ,"#555577","LightBlue",83) +call s:hibg("VisualNOS" ,"#444444","DarkBlue",81) +highlight WarningMsg guifg=Red ctermfg=Red +highlight Folded guibg=#1100aa ctermbg=DarkBlue +call s:hibg("Folded" ,"#110077","DarkBlue",17) +call s:hifg("Folded" ,"#aaddee","LightCyan",63) +highlight FoldColumn none +high link FoldColumn Folded +highlight Pmenu guifg=White ctermfg=White gui=bold cterm=bold +highlight PmenuSel guifg=White ctermfg=White gui=bold cterm=bold +call s:hibg("Pmenu" ,"#000099","Blue",18) +call s:hibg("PmenuSel" ,"#5555ff","DarkCyan",39) +highlight PmenuSbar guibg=Grey ctermbg=Grey +highlight PmenuThumb guibg=White ctermbg=White +highlight TabLine gui=underline cterm=underline +call s:hifg("TabLine" ,"#bbbbbb","LightGrey",85) +call s:hibg("TabLine" ,"#333333","DarkGrey",80) +highlight TabLineSel guifg=White guibg=Black ctermfg=White ctermbg=Black +highlight TabLineFill gui=underline cterm=underline +call s:hifg("TabLineFill","#bbbbbb","LightGrey",85) +call s:hibg("TabLineFill","#808080","Grey",83) + +hi Type gui=none +hi Statement gui=none +if !has("gui_mac") + " Mac GUI degrades italics to ugly underlining. + hi Comment gui=italic + hi railsUserClass gui=italic + hi railsUserMethod gui=italic +endif +hi Identifier cterm=none +" Commented numbers at the end are *old* 256 color values +"highlight PreProc guifg=#EDF8F9 +call s:hifg("Comment" ,"#9933CC","DarkMagenta",34) " 92 +" 26 instead? +call s:hifg("Constant" ,"#339999","DarkCyan",21) " 30 +call s:hifg("rubyNumber" ,"#CCFF33","Yellow",60) " 190 +call s:hifg("String" ,"#66FF00","LightGreen",44,82) " 82 +call s:hifg("Identifier" ,"#FFCC00","Yellow",72) " 220 +call s:hifg("Statement" ,"#FF6600","Brown",68) " 202 +call s:hifg("PreProc" ,"#AAFFFF","LightCyan",47) " 213 +call s:hifg("railsUserMethod","#AACCFF","LightCyan",27) +call s:hifg("Type" ,"#AAAA77","Grey",57) " 101 +call s:hifg("railsUserClass" ,"#AAAAAA","Grey",7) " 101 +call s:hifg("Special" ,"#33AA00","DarkGreen",24) " 7 +call s:hifg("Regexp" ,"#44B4CC","DarkCyan",21) " 74 +call s:hifg("rubyMethod" ,"#DDE93D","Yellow",77) " 191 +"highlight railsMethod guifg=#EE1122 ctermfg=1 diff --git a/vim/colors/white.vim b/vim/colors/white.vim new file mode 100644 index 0000000..25d055b --- /dev/null +++ b/vim/colors/white.vim @@ -0,0 +1,62 @@ +" Vim color file +" created by mksa on 30.10.2003 10:58:20 +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + + + +set background=light +" First remove all existing highlighting. +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="white" + +" color terminal definitions +hi Normal ctermfg=black ctermbg=white guifg=black guibg=white +hi SpecialKey ctermfg=darkgreen guifg=darkgreen +hi NonText ctermfg=black ctermbg=white guifg=black guibg=white +hi Directory ctermfg=darkcyan guifg=darkcyan +hi ErrorMsg ctermfg=lightred ctermbg=yellow guifg=lightred guibg=yellow +hi IncSearch ctermfg=white ctermbg=black guifg=white guibg=black +hi Search ctermfg=white ctermbg=black guifg=white guibg=black +hi MoreMsg ctermfg=darkgreen guifg=darkgreen +hi ModeMsg ctermfg=red guifg=red +hi LineNr ctermfg=yellow ctermbg=darkgrey guifg=yellow guibg=darkgrey +hi Question ctermfg=darkgreen guifg=darkgreen +"hi StatusLine cterm=reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=lightred ctermbg=yellow guifg=red +hi Visual cterm=reverse +hi VisualNOS cterm=reverse +hi WarningMsg ctermfg=darkblue guifg=darkblue +hi WildMenu ctermfg=black ctermbg=darkcyan guifg=black guibg=darkcyan +hi Folded ctermfg=yellow ctermbg=darkgrey guifg=yellow guibg=darkgrey +hi FoldColumn ctermfg=yellow ctermbg=darkgrey guifg=yellow guibg=darkgrey +hi DiffAdd ctermfg=white ctermbg=red guifg=white guifg=red +hi DiffChange ctermfg=yellow ctermbg=magenta guifg=yellow guifg=magenta +hi DiffDelete ctermfg=red ctermbg=brown guifg=red guibg=brown +hi DiffText ctermbg=blue guibg=blue + +hi Comment ctermfg=white ctermbg=darkgrey guifg=white guibg=darkgrey +hi Constant ctermfg=darkblue guifg=darkblue +hi Special ctermfg=darkred guifg=darkred +hi Identifier ctermfg=darkmagenta guifg=darkmagenta +hi Statement ctermfg=blue guifg=blue +hi Operator ctermfg=blue guifg=blue +hi PreProc ctermfg=darkmagenta guifg=darkmagenta +hi Type ctermfg=blue guifg=blue +hi Underlined ctermbg=Yellow ctermfg=blue guifg=blue +hi Ignore ctermfg=grey guifg=grey +hi Error ctermfg=white ctermbg=red guifg=white guibg=red +hi Todo ctermfg=white ctermbg=darkgreen guifg=white guibg=darkgreen +hi String ctermfg=darkgreen guifg=darkgreen +hi Number ctermfg=magenta guifg=magenta + + +"vim: sw=4 diff --git a/vim/colors/whitedust.vim b/vim/colors/whitedust.vim new file mode 100644 index 0000000..a12dc7d --- /dev/null +++ b/vim/colors/whitedust.vim @@ -0,0 +1,62 @@ +set background=light +hi clear + +hi Boolean guifg=#235C5C gui=bold +hi Character guifg=#235C5C gui=bold +hi Comment guifg=#808080 +hi Condtional guifg=#700000 +hi Constant guifg=#235C5C gui=bold +hi Cursor guifg=#FFFFFF guibg=#515151 +hi Debug guifg=#235C5C gui=bold +hi Define guifg=#003050 gui=bold +hi Delimiter guifg=#707070 +hi DiffAdd guibg=#9EC3B9 +hi DiffChange guibg=#CCCCCC +hi DiffDelete guifg=#CCCCCC guibg=#B9B9B9 gui=none +hi DiffText guifg=#000000 guibg=#E0E0E0 gui=bold +hi Directory guifg=#000000 gui=bold +hi Error guifg=#FFFFFF guibg=#FF0000 +hi ErrorMsg guifg=#FFFFFF guibg=#FF3F30 +hi Exception guifg=#700000 gui=underline +hi Float guifg=#636C4C +hi FoldColumn guifg=#235C5C guibg=#B9B9B9 +hi Folded guifg=#235C5C guibg=#CCCCCC +hi Function guifg=#000070 +hi Identifier guifg=#000000 +hi Include guifg=#003050 gui=bold +hi IncSearch guifg=#FFFFFF guibg=#3EA399 +hi Keyword guifg=#000000 gui=bold +hi Label guifg=#700000 gui=underline +hi LineNr guifg=#808080 guibg=#B9B9B9 +hi Macro guifg=#003050 gui=bold +hi ModeMsg guifg=#235C5C gui=bold +hi MoreMsg guifg=#000000 gui=bold +hi NonText guifg=#E0E0E0 +hi Normal guifg=#333333 guibg=#C0C0C0 +hi Number guifg=#535F5C +hi Operator guifg=#000000 +hi PreCondit guifg=#205070 gui=bold +hi PreProc guifg=#003050 gui=bold +hi Question guifg=#000000 gui=bold +hi Repeat guifg=#700000 gui=underline +hi Search guifg=#FFFFFF guibg=#3EA399 +hi SpecialChar guifg=#235C5C gui=bold +hi SpecialComment guifg=#235C5C gui=bold +hi Special guifg=#808080 +hi SpecialKey guifg=#818181 +hi Statement guifg=#700000 +hi StatusLine guifg=#CCCCCC guibg=#0E7369 +hi StatusLineNC guifg=#CCCCCC guibg=#333333 +hi StorageClass guifg=#000000 gui=bold +hi String guifg=#336C6C +hi Structure guifg=#000000 gui=bold,underline +hi Tag guifg=#235C5C gui=bold +hi Title guifg=#000000 guibg=#CCCCCC gui=bold +hi Todo guifg=#000000 guibg=#FFFFFF gui=bold +hi Typedef guifg=#000000 gui=bold,underline +hi Type guifg=#000000 gui=bold +hi VertSplit guifg=#CCCCCC guibg=#333333 +hi Visual guifg=#CCCCCC guibg=#0E7369 gui=reverse +hi VisualNOS guifg=#CCCCCC guibg=#0E7369 gui=bold,underline +hi WarningMsg guifg=#000000 guibg=#CCCCCC gui=bold +hi WildMenu guifg=#FFFFFF guibg=#235C5C diff --git a/vim/colors/wintersday.vim b/vim/colors/wintersday.vim new file mode 100644 index 0000000..9a77f7e --- /dev/null +++ b/vim/colors/wintersday.vim @@ -0,0 +1,60 @@ +" Vim color file +" Mark Thomas +" Sun Feb 16, 2003 + +" This color scheme uses a dark background. + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "wintersday" + +hi Normal guifg=#CCCCCC guibg=#000000 + +hi Cursor gui=NONE guifg=#B9D3EE guibg=#8B8878 +"hi CursorIM +hi Directory gui=NONE guifg=#FFFFFF guibg=#000000 +hi DiffAdd gui=NONE guifg=#A0D0FF guibg=#0020A0 +hi DiffChange gui=NONE guifg=#E03870 guibg=#601830 +hi DiffDelete gui=NONE guifg=#A0D0FF guibg=#0020A0 +hi DiffText gui=NONE guifg=#FF9933 guibg=#A02860 +hi ErrorMsg gui=BOLD guifg=#FF6347 guibg=NONE +hi VertSplit gui=BOLD guifg=#FFFFFF guibg=#8B4513 +hi Folded gui=NONE guifg=#40F0F0 guibg=#005080 +hi FoldColumn gui=NONE guifg=#40C0FF guibg=#00305C +hi IncSearch gui=UNDERLINE guifg=#FFD700 guibg=#778899 +hi LineNr gui=NONE guifg=#696969 +hi ModeMsg gui=BOLD guifg=#990000 guibg=NONE +hi MoreMsg gui=BOLD guifg=#CC6666 guibg=NONE +hi NonText gui=BOLD guifg=#CC00FF guibg=NONE +hi Question gui=BOLD guifg=#CC00FF guibg=NONE +hi Search gui=NONE guifg=#FFD700 guibg=#778899 +hi SpecialKey gui=BOLD guifg=#CCCCCC guibg=NONE +hi StatusLine gui=BOLD guifg=#FFFFFF guibg=#8B4513 +hi StatusLineNC gui=BOLD guifg=#8B4513 guibg=#FFFFFF +hi Title gui=BOLD guifg=#CCCCCC guibg=NONE +hi Visual gui=NONE guifg=#B9D3EE guibg=#8B8878 +"hi VisualNOS +hi WarningMsg gui=BOLD guifg=#FFA0FF guibg=NONE +hi WildMenu gui=NONE guifg=#000000 guibg=#a0a0ff +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment gui=NONE guifg=#6699CC guibg=NONE +hi Constant gui=NONE guifg=#99CCFF guibg=NONE +hi Identifier gui=NONE guifg=#FFD700 guibg=NONE +hi Statement gui=NONE guifg=#CC6666 guibg=NONE +hi PreProc gui=NONE guifg=#40F0A0 guibg=NONE +hi Type gui=NONE guifg=#B0C4DE guibg=NONE +hi Special gui=NONE guifg=#00FFCC guibg=NONE +hi Underlined gui=NONE guifg=#FFFFFF guibg=NONE +hi Ignore gui=NONE guifg=#000000 guibg=NONE +hi Error gui=NONE guifg=#FFFFFF guibg=#FF0088 +hi Todo gui=BOLD guifg=#FFA0A0 guibg=NONE +hi Number gui=NONE guifg=#FFCCCC guibg=NONE diff --git a/vim/colors/wombat.vim b/vim/colors/wombat.vim new file mode 100644 index 0000000..9ad1e56 --- /dev/null +++ b/vim/colors/wombat.vim @@ -0,0 +1,51 @@ +" Maintainer: Lars H. Nielsen (dengmao@gmail.com) +" Last Change: January 22 2007 + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "wombat" + + +" Vim >= 7.0 specific colors +if version >= 700 + hi CursorLine guibg=#2d2d2d + hi CursorColumn guibg=#2d2d2d + hi MatchParen guifg=#f6f3e8 guibg=#857b6f gui=bold + hi Pmenu guifg=#f6f3e8 guibg=#444444 + hi PmenuSel guifg=#000000 guibg=#cae682 +endif + +" General colors +hi Cursor guifg=NONE guibg=#656565 gui=none +hi Normal guifg=#f6f3e8 guibg=#242424 gui=none +hi NonText guifg=#808080 guibg=#303030 gui=none +hi LineNr guifg=#857b6f guibg=#000000 gui=none +hi StatusLine guifg=#f6f3e8 guibg=#444444 gui=italic +hi StatusLineNC guifg=#857b6f guibg=#444444 gui=none +hi VertSplit guifg=#444444 guibg=#444444 gui=none +hi Folded guibg=#384048 guifg=#a0a8b0 gui=none +hi Title guifg=#f6f3e8 guibg=NONE gui=bold +hi Visual guifg=#f6f3e8 guibg=#444444 gui=none +hi SpecialKey guifg=#808080 guibg=#343434 gui=none + +" Syntax highlighting +hi Comment guifg=#99968b gui=italic +hi Todo guifg=#8f8f8f gui=italic +hi Constant guifg=#e5786d gui=none +hi String guifg=#95e454 gui=italic +hi Identifier guifg=#cae682 gui=none +hi Function guifg=#cae682 gui=none +hi Type guifg=#cae682 gui=none +hi Statement guifg=#8ac6f2 gui=none +hi Keyword guifg=#8ac6f2 gui=none +hi PreProc guifg=#e5786d gui=none +hi Number guifg=#e5786d gui=none +hi Special guifg=#e7f6da gui=none + + diff --git a/vim/colors/wuye.vim b/vim/colors/wuye.vim new file mode 100644 index 0000000..12c85f7 --- /dev/null +++ b/vim/colors/wuye.vim @@ -0,0 +1,83 @@ +" Vim color file +" Name: WuYe +" Maintainer: Yeii +" Last Change: 2007-12-11 +" Version: 0.1.1 + +" Init +set background=dark +if has("gui_running") + set cursorline +endif +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "wuye" + +""""""""\ Highlighting groups for various occasions \"""""""" +hi SpecialKey gui=NONE guifg=#000000 guibg=#00008B cterm=NONE ctermfg=black ctermbg=darkblue +hi NonText gui=NONE guifg=#191970 guibg=bg cterm=NONE ctermfg=darkblue ctermbg=black +hi Directory gui=NONE guifg=#20B2AA guibg=bg cterm=NONE ctermfg=darkcyan ctermbg=black +hi ErrorMsg gui=NONE guifg=#FFFF00 guibg=#B22222 cterm=NONE ctermfg=yellow ctermbg=red +hi IncSearch gui=BOLD guifg=#FF0000 guibg=bg cterm=BOLD ctermfg=red ctermbg=black +hi Search gui=reverse guifg=NONE guibg=#FF0000 cterm=BOLD ctermfg=red ctermbg=white +hi MoreMsg gui=BOLD guifg=#00FF7F guibg=bg cterm=BOLD ctermfg=darkcyan ctermbg=black +hi ModeMsg gui=NONE guifg=#7CFC00 guibg=#00688B cterm=NONE ctermfg=yellow ctermbg=darkcyan +hi LineNr gui=underline guifg=#607B8B guibg=#121212 cterm=underline ctermfg=darkgrey ctermbg=black +hi Question gui=BOLD guifg=#00FF00 guibg=bg cterm=BOLD ctermfg=green ctermbg=black +hi StatusLine gui=NONE guifg=#FFFFFF guibg=#203080 cterm=NONE ctermfg=white ctermbg=darkblue +hi StatusLineNC gui=NONE guifg=#CDB79E guibg=#102436 cterm=NONE ctermfg=white ctermbg=darkgray +hi VertSplit gui=NONE guifg=#CDB79E guibg=#102436 cterm=NONE ctermfg=white ctermbg=darkgray +hi Title gui=BOLD guifg=#1E90FF guibg=bg cterm=BOLD ctermfg=lightblue ctermbg=black +hi Visual gui=reverse guibg=#FFFF00 guifg=#191970 cterm=reverse ctermbg=yellow ctermfg=blue +hi WarningMsg gui=BOLD guifg=#FFFF00 guibg=bg cterm=NONE ctermfg=lightyellow ctermbg=black +hi WildMenu gui=BOLD guifg=#000000 guibg=#7FFF00 cterm=BOLD ctermfg=black ctermbg=darkgreen +hi Folded gui=BOLD guifg=#E0FFFF guibg=#104E8B cterm=BOLD ctermfg=white ctermbg=darkblue +hi FoldColumn gui=NONE guifg=#E0FFFF guibg=#104E8B cterm=NONE ctermfg=white ctermbg=darkblue +hi DiffAdd gui=NONE guifg=fg guibg=#008B8B cterm=NONE ctermfg=white ctermbg=darkcyan +hi DiffChange gui=NONE guifg=fg guibg=#008B00 cterm=NONE ctermfg=white ctermbg=darkgreen +hi DiffDelete gui=NONE guifg=#8B3A62 guibg=bg cterm=NONE ctermfg=darkmagenta ctermbg=black +hi DiffText gui=BOLD guifg=#FF69B4 guibg=#00008B cterm=BOLD ctermfg=darkmagenta ctermbg=darkblue +hi Cursor gui=NONE guifg=#000000 guibg=#00FF00 cterm=NONE ctermfg=black ctermbg=green +hi CursorIM gui=NONE guifg=fg guibg=#FF0000 cterm=NONE ctermfg=black ctermbg=red +hi CursorLine gui=NONE guifg=NONE guibg=#001220 +hi CursorColumn gui=NONE guifg=NONE guibg=#001630 + +""""""\ Syntax highlighting groups \"""""" +hi Normal gui=NONE guifg=#E6E6FA guibg=black cterm=NONE ctermfg=white ctermbg=black +hi Comment gui=NONE guifg=#4A708B guibg=bg cterm=NONE ctermfg=grey ctermbg=black +hi Constant gui=NONE guifg=#87CEEB guibg=bg cterm=NONE ctermfg=darkcyan ctermbg=black + hi String gui=NONE guifg=#A4D3EE guibg=bg cterm=NONE ctermfg=darkcyan ctermbg=black + hi Character gui=NONE guifg=#87CEEB guibg=bg cterm=NONE ctermfg=darkcyan ctermbg=black + hi Number gui=NONE guifg=#6495ED guibg=bg cterm=NONE ctermfg=darkcyan ctermbg=black + hi Boolean gui=BOLD guifg=#A4D3EE guibg=bg cterm=NONE ctermfg=darkcyan ctermbg=black + hi Float gui=NONE guifg=#6495ED guibg=bg cterm=NONE ctermfg=darkcyan ctermbg=black +hi Identifier gui=NONE guifg=#00BFFF guibg=bg cterm=NONE ctermfg=lightcyan ctermbg=black + hi Function gui=BOLD guifg=#00CED1 guibg=bg cterm=NONE ctermfg=lightcyan ctermbg=black +hi Statement gui=NONE guifg=#54FF9F guibg=bg cterm=NONE ctermfg=lightgreen ctermbg=black + hi Conditional gui=NONE guifg=#54FF9F guibg=bg cterm=NONE ctermfg=lightgreen ctermbg=black + hi Repeat gui=NONE guifg=#00FF7F guibg=bg cterm=NONE ctermfg=lightgreen ctermbg=black + hi Label gui=NONE guifg=#54FF9F guibg=bg cterm=NONE ctermfg=lightgreen ctermbg=black + hi Operator gui=BOLD guifg=#00FA9A guibg=bg cterm=NONE ctermfg=lightgreen ctermbg=black + hi Keyword gui=NONE guifg=#7CFC00 guibg=bg cterm=NONE ctermfg=lightgreen ctermbg=black + hi Exception gui=NONE guifg=#90EE90 guibg=bg cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=#8470FF guibg=bg cterm=NONE ctermfg=magenta ctermbg=black + hi include gui=none guifg=#8A2BE2 guibg=bg cterm=NONE ctermfg=lightmagenta ctermbg=black + hi Define gui=NONE guifg=#8470FF guibg=bg cterm=NONE ctermfg=lightmagenta ctermbg=black + hi Macro gui=NONE guifg=#8470FF guibg=bg cterm=NONE ctermfg=lightmagenta ctermbg=black + hi PreCondit gui=BOLD guifg=#6A5ACD guibg=bg cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=#1874CD guibg=bg cterm=NONE ctermfg=blue ctermbg=black + hi StorageClass gui=NONE guifg=#4169E1 guibg=bg cterm=NONE ctermfg=blue ctermbg=black + hi Structure gui=NONE guifg=#4169E1 guibg=bg cterm=NONE ctermfg=blue ctermbg=black + hi Typedef gui=BOLD guifg=#1874CD guibg=bg cterm=NONE ctermfg=blue ctermbg=black +hi Special gui=NONE guifg=#E0B880 guibg=bg cterm=NONE ctermfg=yellow ctermbg=black + hi Specialchar gui=NONE guifg=#CD6839 guibg=bg cterm=NONE ctermfg=yellow ctermbg=black + hi Tag gui=NONE guifg=#CD853F guibg=bg cterm=NONE ctermfg=yellow ctermbg=black + hi Delimiter gui=NONE guifg=#EE9A49 guibg=bg cterm=NONE ctermfg=yellow ctermbg=black + hi Debug gui=NONE guifg=#DAA520 guibg=bg cterm=NONE ctermfg=yellow ctermbg=black +hi Underlined gui=underline guifg=#F0E68C guibg=bg cterm=underline ctermfg=white ctermbg=black +hi Ignore gui=NONE guifg=#BFBFBF guibg=bg cterm=NONE ctermfg=grey ctermbg=black +hi Error gui=NONE guifg=#F0E68C guibg=#FF00FF cterm=NONE ctermfg=lightyellow ctermbg=lightmagenta +hi Todo gui=NONE guifg=#00EEEE guibg=#551A8B cterm=BOLD ctermfg=lightcyan ctermbg=darkgray + diff --git a/vim/colors/xemacs.vim b/vim/colors/xemacs.vim new file mode 100644 index 0000000..65faf1f --- /dev/null +++ b/vim/colors/xemacs.vim @@ -0,0 +1,46 @@ + +" Vim color file +" Maintainer: tranquility@portugalmail.pt +" Last Change: 5 June 2002 + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="xemacs" + +hi Normal guibg=#cdcecd guifg=black +hi Cursor guibg=red guifg=grey gui=bold +hi VertSplit guibg=grey60 guifg=black gui=none +hi Folded guibg=royalblue3 guifg=white +hi FoldColumn guibg=royalblue4 guifg=white +hi ModeMsg guifg=#cdcecd guibg=black +hi MoreMsg guifg=#cdcecd guibg=black +hi NonText guifg=black guibg=#cdcecd gui=none +hi Question guifg=black +hi Search guibg=#aceeee +hi SpecialKey guifg=navyblue +hi Special guifg=navyblue +hi StatusLine guibg=#b7b7b7 guifg=black gui=none +hi StatusLineNC guibg=#a6b7b7 guifg=black gui=none +hi Title guifg=bisque3 +hi Subtitle guifg=black +hi Visual guibg=#a4a5a3 guifg=black gui=none +hi WarningMsg guibg=#cdcecd guifg=black gui=bold +hi Comment guifg=#00008b +hi Constant guifg=#008900 +hi Identifier guibg=#cdcecd guifg=black +hi Statement guifg=royalblue4 +hi PreProc guifg=#0000cd +hi Type guifg=#4a81b4 gui=NONE +hi Ignore guifg=grey29 +hi Todo guibg=gold guifg=black +hi WildMenu guibg=#b7b7b7 guibg=grey91 +hi Directory guibg=#cdcecd guifg=navyblue diff --git a/vim/colors/xian.vim b/vim/colors/xian.vim new file mode 100644 index 0000000..3cc02d8 --- /dev/null +++ b/vim/colors/xian.vim @@ -0,0 +1,50 @@ +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "xian" + +hi Comment guifg=#C0C0C0 guibg=#946464 gui=underline +hi Constant guifg=#00FF80 guibg=#946464 gui=none +hi Cursor guifg=#00FFFF guibg=#000000 gui=reverse +hi DiffAdd guifg=#00FFFF guibg=#754F4F gui=bold,underline +hi DiffChange guibg=#754F4F +hi DiffDelete guifg=#C0C0C0 guibg=#754F4F gui=bold +hi DiffText guifg=#000000 guibg=#FF0000 gui=bold,underline +hi Directory guifg=#FFFF00 guibg=#946464 gui=underline +hi Error guifg=#000000 guibg=#FF0000 gui=bold,underline +hi ErrorMsg guifg=#000000 guibg=#FF0000 gui=bold,underline +hi FoldColumn guifg=#ffff74 guibg=#754F4F gui=bold +hi Folded guifg=#ffff74 guibg=#754F4F gui=underline +hi Identifier guifg=#EEAA73 guibg=#946464 gui=none +hi Ignore guifg=#946464 guibg=#946464 gui=none +hi IncSearch guifg=#FFFFFF guibg=#946464 gui=reverse +hi lCursor guifg=#FFFFFF guibg=#946464 gui=none +hi LineNr guifg=#C0C0C0 guibg=#754F4F gui=bold +hi Match guifg=#0000FF guibg=#FFFF00 gui=bold,reverse +hi ModeMsg guifg=#FFFFFF guibg=#946464 gui=bold +hi MoreMsg guifg=#d174a8 guibg=#946464 gui=bold +hi NonText guifg=#C0C0C0 guibg=#946464 gui=none +hi Normal guifg=#FFFFFF guibg=#946464 gui=none +hi PreProc guifg=#FFFF00 guibg=#946464 gui=none +hi Question guifg=#d174a8 guibg=#946464 gui=bold +hi Search guifg=#FFFF00 guibg=#FF8500 gui=underline +hi Special guifg=#bfbfef guibg=#946464 gui=none +hi SpecialKey guifg=#FFFF00 guibg=#946464 gui=none +hi Statement guifg=#5ad5d5 guibg=#946464 gui=bold +hi StatusLine guifg=#000000 guibg=#FFFFFF gui=bold +hi StatusLineNC guifg=#C0C0C0 guibg=#754F4F gui=bold +hi Title guifg=#74FF74 guibg=#946464 gui=bold +hi Todo guifg=#FFFF00 guibg=#0000FF gui=none +hi Type guifg=#FF74A8 guibg=#946464 gui=bold +hi User1 guifg=#999933 guibg=#45637F gui=bold +hi User2 guifg=#E7E77F guibg=#45637F gui=bold +hi User3 guifg=#000000 guibg=#45637F gui=bold +hi User4 guifg=#33CC99 guibg=#45637F gui=bold +hi VertSplit guifg=#FFFF00 guibg=#000000 gui=bold +hi Visual guifg=#FFFF00 guibg=#6B959B gui=none +hi VisualNOS guifg=#FFFFFF guibg=#946464 gui=underline +hi WarningMsg guifg=#000000 guibg=#FF0000 gui=bold,underline +hi WildMenu guifg=#FFFFFF guibg=#0000FF gui=none diff --git a/vim/colors/xoria256.vim b/vim/colors/xoria256.vim new file mode 100644 index 0000000..4033569 --- /dev/null +++ b/vim/colors/xoria256.vim @@ -0,0 +1,173 @@ +" Vim color file +" Name: xoria256.vim +" Version: 0.3.2 +" License: Public Domain +" Maintainer: Dmitriy Y. Zotikov (xio) +" +" Heavily based on 'moria' color scheme. +" +" Sould work in a 256 color terminal (like latest versions of xterm, konsole, +" etc). Will not, however, work in 88 color terminals like urxvt. +" +" Color numbers (0-255) see: +" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html +" +" TODO: +" - Diff (currently *VERY* ugly) +" - Html + + + +if &t_Co != 256 && ! has("gui_running") + echomsg "" + echomsg "err: please use GUI or a 256-color terminal (so that t_Co=256 could be set)" + echomsg "" + finish +endif + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +" Which one is right? +"let colors_name = "xoria256" +let g:colors_name = "xoria256" + + + +hi Normal cterm=none ctermfg=252 ctermbg=234 gui=none guifg=#d0d0d0 guibg=#202020 + +hi Cursor cterm=none ctermfg=bg ctermbg=214 gui=none guifg=bg guibg=#ffaf00 +hi CursorColumn cterm=none ctermbg=238 gui=none guibg=#444444 +hi CursorLine cterm=none ctermbg=238 gui=none guibg=#444444 +hi lCursor cterm=none ctermfg=0 ctermbg=40 gui=none guifg=#000000 guibg=#00df00 +"hi CursorIM cterm= ctermfg= ctermbg= gui= guifg= guibg= +hi IncSearch cterm=none ctermfg=0 ctermbg=223 gui=none guifg=#000000 guibg=#ffdfaf +hi Search cterm=none ctermfg=0 ctermbg=149 gui=none guifg=#000000 guibg=#afdf5f +hi ErrorMsg cterm=none ctermfg=15 ctermbg=160 gui=bold guifg=#ffffff guibg=#df0000 +hi WarningMsg cterm=bold ctermfg=196 ctermbg=bg gui=bold guifg=#ff0000 guibg=bg +hi ModeMsg cterm=bold ctermfg=fg ctermbg=bg gui=bold guifg=fg guibg=bg +hi MoreMsg cterm=bold ctermfg=250 ctermbg=bg gui=bold guifg=#bcbcbc guibg=bg +hi Question cterm=bold ctermfg=113 ctermbg=bg gui=bold guifg=#87df7f guibg=bg + +hi StatusLine cterm=bold ctermfg=fg ctermbg=239 gui=bold guifg=fg guibg=#4e4e4e +hi StatusLineNC cterm=none ctermfg=fg ctermbg=237 gui=none guifg=fg guibg=#3a3a3a +hi User1 cterm=none ctermfg=15 ctermbg=20 gui=none guifg=#ffffff guibg=#0000df +hi User2 cterm=none ctermfg=46 ctermbg=20 gui=none guifg=#00ff00 guibg=#0000df +hi User3 cterm=none ctermfg=46 ctermbg=20 gui=none guifg=#00ff00 guibg=#0000df +hi User4 cterm=none ctermfg=50 ctermbg=20 gui=none guifg=#00ffdf guibg=#0000df +hi User5 cterm=none ctermfg=46 ctermbg=20 gui=none guifg=#00ff00 guibg=#0000df +hi VertSplit cterm=reverse ctermfg=fg ctermbg=237 gui=reverse guifg=fg guibg=#3a3a3a + +hi WildMenu cterm=bold ctermfg=0 ctermbg=184 gui=bold guifg=#000000 guibg=#dfdf00 +"hi Menu cterm= ctermfg= ctermbg= gui= guifg= guibg= +"hi Scrollbar cterm= ctermfg= ctermbg= gui= guifg= guibg= +"hi Tooltip cterm= ctermfg= ctermbg= gui= guifg= guibg= + +"hi MBENormal cterm= ctermfg= ctermbg= gui= guifg= guibg= +"hi MBEChanged cterm= ctermfg= ctermbg= gui= guifg= guibg= +"hi MBEVisibleNormal cterm= ctermfg= ctermbg= gui= guifg= guibg= +"hi MBEVisibleChanged cterm= ctermfg= ctermbg= gui= guifg= guibg= + +"hi DiffText cterm=bold ctermfg=fg ctermbg=20 gui=bold guifg=fg guibg=#0000df +"hi DiffDelete cterm=none ctermfg=fg ctermbg=88 gui=none guifg=fg guibg=#870000 +"hi DiffChange cterm=none ctermfg=fg ctermbg=18 gui=none guifg=fg guibg=#000087 +"hi DiffAdd cterm=none ctermfg=fg ctermbg=28 gui=none guifg=fg guibg=#008700 + +hi Folded cterm=none ctermfg=255 ctermbg=60 gui=none guifg=#eeeeee guibg=#5f5f87 +"hi Folded cterm=none ctermfg=251 ctermbg=240 gui=bold guifg=#c6c6c6 guibg=#585858 +"hi Folded cterm=none ctermfg=251 ctermbg=95 gui=none guifg=#c6c6c6 guibg=#585858 +hi FoldColumn cterm=none ctermfg=248 ctermbg=58 gui=none guifg=#a8a8a8 guibg=bg +hi SignColumn cterm=none ctermfg=248 ctermbg=bg gui=none guifg=#a8a8a8 guibg=bg + +hi Directory cterm=none ctermfg=39 ctermbg=bg gui=none guifg=#00afff guibg=bg +hi LineNr cterm=none ctermfg=248 gui=none guifg=#a8a8a8 +hi NonText cterm=bold ctermfg=248 ctermbg=bg gui=bold guifg=#a8a8a8 guibg=bg +hi SpecialKey cterm=none ctermfg=77 ctermbg=bg gui=none guifg=#5fdf5f guibg=bg +hi Title cterm=none ctermfg=0 ctermbg=184 gui=none guifg=#000000 guibg=#dfdf00 +hi Visual cterm=none ctermfg=24 ctermbg=153 gui=none guifg=#005f87 guibg=#afdfff +"hi Visual cterm=none ctermfg=18 ctermbg=153 gui=none guifg=#005f87 guibg=#afdfff +hi VisualNOS cterm=bold,underline ctermfg=247 ctermbg=bg gui=bold,underline guifg=#9e9e9e guibg=bg + +hi Comment cterm=none ctermfg=244 ctermbg=bg gui=none guifg=#808080 guibg=bg +""" COLD +hi Constant cterm=none ctermfg=187 ctermbg=bg gui=none guifg=#dfdfaf guibg=bg +""" COLD-DARK +"hi Constant cterm=none ctermfg=223 ctermbg=bg gui=none guifg=#ffdfaf guibg=bg +""" NEUTRAL +"hi Constant cterm=none ctermfg=229 ctermbg=bg gui=none guifg=#ffffaf guibg=bg +""" WARM +"hi Constant cterm=none ctermfg=222 ctermbg=bg gui=none guifg=#ffdf87 guibg=bg +"hi String cterm= ctermfg= ctermbg= gui= guifg= guibg= +hi Error cterm=none ctermfg=196 ctermbg=bg gui=none guifg=#ff0000 guibg=bg +""" COLD +"hi Identifier cterm=none ctermfg=115 ctermbg=bg gui=none guifg=#87dfaf guibg=bg +""" NEUTRAL +"hi Identifier cterm=none ctermfg=114 ctermbg=bg gui=none guifg=#87df87 guibg=bg +""" WARM +hi Identifier cterm=none ctermfg=150 ctermbg=bg gui=none guifg=#afdf87 guibg=bg +hi Ignore cterm=none ctermfg=238 ctermbg=bg gui=none guifg=#444444 guibg=bg +hi Number cterm=none ctermfg=180 ctermbg=bg gui=none guifg=#dfaf87 guibg=bg +"hi Number cterm=none ctermfg=222 ctermbg=bg gui=none guifg=#ffaf87 guibg=bg +"hi Number cterm=none ctermfg=215 ctermbg=bg gui=none guifg=#ffaf87 guibg=bg +"hi Number cterm=none ctermfg=209 ctermbg=0 gui=none guifg=#ff875f guibg=#000000 +"hi Number cterm=none ctermfg=210 ctermbg=0 gui=none guifg=#ff8787 guibg=#000000 +hi PreProc cterm=none ctermfg=182 ctermbg=bg gui=none guifg=#dfafdf guibg=bg +"hi PreProc cterm=none ctermfg=218 ctermbg=bg gui=none guifg=#ffafdf guibg=bg +""" LIGHT +"hi Special cterm=none ctermfg=174 ctermbg=bg gui=none guifg=#ffafaf guibg=bg +""" DARK +hi Special cterm=none ctermfg=174 ctermbg=bg gui=none guifg=#df8787 guibg=bg +"hi Special cterm=none ctermfg=114 ctermbg=bg gui=none guifg=#87df87 guibg=bg +"hi SpecialChar cterm= ctermfg= ctermbg= gui= guifg= guibg= +hi Statement cterm=none ctermfg=74 ctermbg=bg gui=none guifg=#5fafdf guibg=bg +"hi Statement cterm=none ctermfg=75 ctermbg=bg gui=none guifg=#5fafff guibg=bg +hi Todo cterm=none ctermfg=0 ctermbg=184 gui=none guifg=#000000 guibg=#dfdf00 +"hi Type cterm=none ctermfg=153 ctermbg=bg gui=none guifg=#afdfff guibg=bg +hi Type cterm=none ctermfg=146 ctermbg=bg gui=none guifg=#afafdf guibg=bg +hi Underlined cterm=underline ctermfg=39 ctermbg=bg gui=underline guifg=#00afff guibg=bg + +"hi htmlBold cterm= ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold +"hi htmlBoldItalic cterm= ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,italic +"hi htmlBoldUnderline cterm= ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,underline +"hi htmlBoldUnderlineItalic cterm= ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,underline,italic +"hi htmlItalic cterm= ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=italic +"hi htmlUnderline cterm= ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=underline +"hi htmlUnderlineItalici cterm= ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=underline,italic + + +" For taglist plugin +if exists('loaded_taglist') + hi TagListTagName cterm=none ctermfg=16 ctermbg=28 gui=none guifg=#000000 guibg=#008700 + hi TagListTagScope cterm=none ctermfg=16 ctermbg=28 gui=none guifg=#000000 guibg=#008700 + hi TagListTitle cterm=none ctermfg=199 ctermbg=16 gui=none guifg=#ff00af guibg=#000000 + hi TagListComment cterm=none ctermfg=16 ctermbg=28 gui=none guifg=#000000 guibg=#008700 + hi TagListFileName cterm=none ctermfg=15 ctermbg=90 gui=none guifg=#ffffff guibg=#870087 +endif + + +" For features in vim v.7.0 and higher +if v:version >= 700 + hi Pmenu cterm=none ctermfg=0 ctermbg=246 gui=none guifg=#000000 guibg=#949494 + hi PmenuSel cterm=none ctermfg=0 ctermbg=243 gui=none guifg=#000000 guibg=#767676 + hi PmenuSbar cterm=none ctermfg=fg ctermbg=243 gui=none guifg=fg guibg=#767676 + hi PmenuThumb cterm=none ctermfg=bg ctermbg=252 gui=none guifg=bg guibg=#d0d0d0 + + " if has("spell") + " hi SpellBad guisp=#ee2c2c gui=undercurl + " hi SpellCap guisp=#2c2cee gui=undercurl + " hi SpellLocal guisp=#2ceeee gui=undercurl + " hi SpellRare guisp=#ee2cee gui=undercurl + " endif + + hi MatchParen cterm=none ctermfg=188 ctermbg=68 gui=bold guifg=#dfdfdf guibg=#5f87df + "hi MatchParen cterm=none ctermfg=24 ctermbg=153 gui=none guifg=#005f87 guibg=#afdfff + "hi MatchParen cterm=none ctermfg=117 ctermbg=31 gui=bold guifg=#87dfff guibg=#0087af + "hi MatchParen cterm=none ctermfg=187 ctermbg=67 gui=none guifg=#005f87 guibg=#afdfff + + hi TabLineSel cterm=bold ctermfg=fg ctermbg=bg gui=bold guifg=fg guibg=bg + hi TabLine cterm=underline ctermfg=fg ctermbg=242 gui=underline guifg=fg guibg=#666666 + hi TabLineFill cterm=underline ctermfg=fg ctermbg=242 gui=underline guifg=fg guibg=#666666 +endif diff --git a/vim/colors/xterm16.vim b/vim/colors/xterm16.vim new file mode 100644 index 0000000..098e288 --- /dev/null +++ b/vim/colors/xterm16.vim @@ -0,0 +1,811 @@ +" xterm16-v2.43: Vim color scheme file +" Maintainer: Gautam Iyer +" Created: Thu 16 Oct 2003 06:17:47 PM CDT +" Modified: Tue 12 Sep 2006 11:19:35 AM PDT +" +" Adjustable color scheme for GUI/Terminal vim. + +let s:cpo_save = &cpo +set cpo&vim " line continuation is used + +hi clear + +if exists('syntax_on') + syntax reset +endif +let colors_name = 'xterm16' + +" {{{1 Local function definitions +" {{{2 tohex(n): Convert a number to a 2 digit hex +let s:hex = '0123456789abcdef' +function s:tohex( n) + return a:n > 255 ? 'ff' : s:hex[a:n / 16] . s:hex[a:n % 16] +endfunction + +" {{{2 extractRGB( string): Extract r,g,b components from string into s:c1,2,3 +function s:extractRGB( string) + if a:string =~ '^#[0-9a-f]\{6\}$' + " Colors in hex values + let s:c1 = '0x' . strpart(a:string, 1, 2) + let s:c2 = '0x' . strpart(a:string, 3, 2) + let s:c3 = '0x' . strpart(a:string, 5, 2) + + elseif a:string =~ '^\d\{3\}$' + " Colors in cterm values + let s:c1 = s:guilevel( a:string[0]) + let s:c2 = s:guilevel( a:string[1]) + let s:c3 = s:guilevel( a:string[2]) + + elseif a:string =~ '^[lmh][0-9]\{6\}' + " Colors in propotions of low / med / high + if exists('s:'.a:string[0]) + let l:level = s:{a:string[0]} + let s:c1 = l:level * strpart(a:string, 1, 2) / 50 + let s:c2 = l:level * strpart(a:string, 3, 2) / 50 + let s:c3 = l:level * strpart(a:string, 5, 2) / 50 + else + throw 'xterm16 Error: Use of propotional intensities before absolute intensities' + endif + else + throw 'xterm16 Error: Brightness / color "'. a:string . '" badly formed.' + endif +endfunction + +" {{{2 guilevel(n) : Get the gui intensity of a given cterm intensity +function s:guilevel( n) + return '0x'.s:ccube[2*a:n].s:ccube[2*a:n + 1] +endfunction + +" {{{2 ctermlevel(n) : Get the cterm intensity of a given gui intensity +function s:ctermlevel( n) + " Xterm color cube intensities: 00, 5f, 87, af, d7, ff + " Rxvt color cube: 00, 2a, 55, 7f, aa, d4 + + " cinterval should have the terminal intervals. + let l:terml = 0 + while l:terml < 5 + if a:n < '0x'.s:cinterval[2 * l:terml].s:cinterval[2 * l:terml + 1] + return l:terml + endif + + let l:terml = l:terml + 1 + endwhile + return 5 +endfunction + +" {{{2 guicolor( r, g, b): Return the gui color with intensities r,g,b +function s:guicolor( r, g, b) + return '#' . s:tohex(a:r) . s:tohex(a:g) . s:tohex(a:b) +endfunction + +" {{{2 ctermcolor( r, g, b): Return the xterm-256 color with intensities r, g, b +function s:ctermcolor( r, g, b) + if a:r == a:g && a:r == a:b + " Use the greyscale ramp. The greyscale ramp starts from color 232 + " with grey 8, and procedes in increments of 10 upto grey 238 (0xee) + if a:r <= 4 + return 16 + elseif a:r <= 243 + return (a:r - 4) / 10 + 232 + else + " Let's check if the last color in ccube is large enough. + " return (s:termtype == 'xterm' && a:r > 247) ? 231 : 255 + let l:l5 = s:guilevel(5) + return ( l:l5 > 0xee && a:r > (l:l5 + 0xee)/2 ) ? 231 : 255 + endif + else + " Use the rgb cube. + return s:ctermlevel(a:r) * 36 + s:ctermlevel(a:g) * 6 + s:ctermlevel(a:b) + 16 + endif +endfunction + +" {{{2 setcolor( name, r, g, b): Set the script variables gui_name and cterm_name +function s:setcolor( name, r, g, b) + if exists('g:xterm16_'.a:name) + " Use user-defined color settings (from global variable) + call s:extractRGB( g:xterm16_{a:name}) + + let s:gui_{a:name} = s:guicolor( s:c1, s:c2, s:c3) + let s:cterm_{a:name} = s:ctermcolor( s:c1, s:c2, s:c3) + else + " Set the GUI / cterm color from r,g,b + let s:gui_{a:name} = s:guicolor( a:r, a:g, a:b) + let s:cterm_{a:name} = ( &t_Co == 256 || has('gui_running') ) + \ ? s:ctermcolor( a:r, a:g, a:b) : a:name + endif + + " Add the color to palette + let g:xterm16_palette = g:xterm16_palette . "\n" . s:gui_{a:name} . ', cterm ' . s:cterm_{a:name} . ' : ' . a:name +endfunction + +" {{{2 getcolor( group, globalvar, colorname): if globvar exists, returns that +" color. if not returns the color in cname +function s:getcolor( globvar, cname) + " hopefully someone set ctype before getting here. ctype should either be + " "gui" or "cterm" + + if exists( a:globvar) + if exists( 's:'.s:ctype.'_'.{a:globvar}) + return s:{s:ctype}_{{a:globvar}} + else + call s:extractRGB( {a:globvar}) + return s:{s:ctype}color( s:c1, s:c2, s:c3) + endif + else + return s:{s:ctype}_{a:cname} + endif +endfunction + +" {{{2 use_guiattr( nattrs, n ): Should s:hi use the n'th attr for GUI hl. +function s:use_guiattr( nattrs, n ) + " If guisp is specified in vim6, then don't use any GUI attributes. + " Otherwise use GUI attributes if GUI is running and they are specified. + if !has('gui_running') || + \ a:nattrs < a:n || + \ ( v:version < 700 && a:nattrs >= 4 ) + " Don't use GUI attributes + return 0 + else + " Use GUI attributes + return 1 + endif +endfunction + +" {{{2 hi( group, attr, fg, bg): Set the gui/cterm highlighting groups +" +" group - groupname. +" attr - attributes. +" fg/bg color name. +" +" Optionally can call it as +" +" hi( group, attr, fg, bg, guiattr, guifg, guibg, guisp ) +" +" where all the gui options are optional. If provided, they override the term +" colors. +function s:hi( group, attr, fg, bg, ...) + if has('gui_running') || &t_Co == 256 + " For gui's and 256 color terminals + let l:fg = s:getcolor( 'g:xterm16fg_'.a:group, + \ s:use_guiattr( a:0, 2) ? a:2 : a:fg) + let l:bg = s:getcolor( 'g:xterm16bg_'.a:group, + \ s:use_guiattr( a:0, 3) ? a:3 : a:bg) + + if exists('g:xterm16attr_' . a:group) + let l:attr = g:xterm16attr_{a:group} + else + let l:attr = s:use_guiattr( a:0, 1) ? a:1 : a:attr + endif + + exec 'hi' a:group + \ s:ctype.'='.l:attr + \ s:ctype.'fg='.l:fg + \ s:ctype.'bg='.l:bg + + " Define guisp if specified for the gui (Vim7 upwards only). + if v:version >= 700 && has('gui_running') && a:0 >= 4 + let l:sp = s:getcolor( 'g:xterm16sp_'.a:group, a:4 ) + exec 'hi' a:group s:ctype.'sp='.l:sp + endif + else + " for consoles / 16 color junkies + exec 'hi' a:group 'cterm='.a:attr 'ctermfg='.a:fg 'ctermbg='.a:bg + endif +endfunction + +" {{{2 set_brightness( default): Set s:brightness based on default +function s:set_brightness( default) + let s:brightness = ( exists('g:xterm16_brightness') + \ && g:xterm16_brightness != 'default') ? + \ g:xterm16_brightness : a:default + if s:colormap == 'allblue' + if s:brightness == 'high' + let s:brightness = '#afafff' " 335 + elseif s:brightness == 'med' + let s:brightness = '#8787d7' " 224 + elseif s:brightness == 'low' + let s:brightness = '#5f5faf' " 113 + endif + elseif s:colormap == 'softlight' + if s:brightness == 'high' + let s:brightness = '#ff87af' " 523 + elseif s:brightness == 'med' + let s:brightness = '#d75f87' " 412 + elseif s:brightness == 'low' + let s:brightness = '#af5f87' " 312 + endif + else + if s:brightness == 'high' + let s:brightness = '#afd7ff' " 345 + elseif s:brightness == 'med' + let s:brightness = '#87afd7' " 234 + elseif s:brightness == 'low' + let s:brightness = '#5f87af' " 123 + endif + endif +endfunction + +" {{{1 Global functions and initialisations. +command! -nargs=* Brightness + \ if Brightness() + \ colo xterm16 + \ endif + +" {{{2 Brightness( brightness, colormap) +function! Brightness(...) + if a:0 == 0 + echo "Brightness: ".s:brightness.", Colormap: ".s:colormap + return 0 + elseif a:0 > 2 + echoerr 'Too many arguements.' + return 0 + endif + + let g:xterm16_brightness = a:1 + if a:0 == 2 + let g:xterm16_colormap = a:2 + endif + + return 1 +endfunction +" }}}1 + +try + " {{{1 Setup defaults + " {{{2 set ctype (to cterm / gui) to be the color type + let s:ctype = has('gui_running') ? 'gui' : 'cterm' + " {{{2 Obtain intensity levels of the 6 terminal colors in s:ccube + " The 2ith and 2i+1th charecters in ccube are the hex digits of the + " intensity of the ith (0-5) term level. xterm and rxvt set up the default + " color cube differently, so we have to consider them separately. + + " First check for a user specified color cube. + if exists('g:xterm16_ccube') + let s:ccube = g:xterm16_ccube + + " No user specified color cube given. Try and guess from xterm16_termtype + elseif ( exists('g:xterm16_termtype') && g:xterm16_termtype == 'rxvt') || + \ ( !exists('g:xterm16_termtype') + \ && &term =~ '^rxvt' + \ && $MRXVT_TABTITLE == "" ) + " color cube for "rxvt". Make sure we're not running mrxvt (by + " checking that the MRXVT_TABTITLE variable is empty). + let s:ccube = "002a557faad4" + else + " default to xterm if nothing else is specified. + let s:ccube ="005f87afd7ff" + endif + + " s:cinterval will be the intervals of intensities which get mapped to + " term color i. i.e. colors between 0 -- cinterval(0) have level 0. + " between cinterval(0) -- cinterval(1) have level 1, etc. max level is 5, + " so anything higher than cinterval(4) has level 5. + let s:cinterval = "" + let s:lower = "00" + let s:i = 1 + while s:i < 6 + let s:upper = s:ccube[2*s:i] . s:ccube[2*s:i + 1] + let s:cinterval = s:cinterval . s:tohex( (('0x'.s:lower) + ('0x'.s:upper))/2 ) + let s:lower = s:upper + let s:i = s:i + 1 + endwhile + + " {{{2 Get colormap defaults in "s:colormap" + " On a terminal (without 256 colors), use "standard" colormap. Otherwise + " use value from "g:xterm16_colormap" if exists, or "soft" as default. + if !has('gui_running') && &t_Co != 256 + let s:colormap = 'standard' + elseif exists('g:xterm16_colormap') + let s:colormap = g:xterm16_colormap + else + " "soft" used to be the default, but "allblue" is much better. + let s:colormap = 'allblue' + endif + + " {{{2 Redefine a few colors for CRT monitors and set brightness + if s:colormap == 'allblue' + call s:set_brightness( '#8787d7' ) " 224 + elseif s:colormap == 'softlight' + call s:set_brightness( '#d75f87' ) " 412 + elseif exists('g:xterm16_CRTColors') + " "standard" or "soft" colormaps + if s:colormap == 'standard' + let g:xterm16_darkblue = 'h000050' + let g:xterm16_blue = 'h002550' + let g:xterm16_grey = 'm474747' + + unlet! g:xterm16_skyblue g:xterm16_green g:xterm16_bluegreen + + " give the original xterm16 feel + call s:set_brightness( '#80cdff') + else + " "soft" colormap + let g:xterm16_skyblue = 'h003850' + let g:xterm16_green = 'm315000' + let g:xterm16_bluegreen = 'm005031' + + unlet! g:xterm16_darkblue g:xterm16_blue g:xterm16_grey + + " call s:set_brightness ( '245') + " call s:set_brightness('high') + call s:set_brightness('#87d7ff') " 245 + endif + else + " "standard" or "soft" colormaps with LCD colors + call s:set_brightness( '#5fafd7') " 134 + endif + + unlet! s:c1 s:c2 s:c3 + call s:extractRGB(s:brightness) + let s:l = s:c1 + let s:m = s:c2 + let s:h = s:c3 + + " {{{2 Set a bright green cursor on all colormaps except softlight + if !exists('g:xterm16bg_Cursor') + if s:colormap == 'softlight' + let g:xterm16fg_Cursor = '#ffffff' + else + let g:xterm16bg_Cursor = '#00ff00' + endif + endif + + " {{{2 Set the current pallete: + let g:xterm16_palette = 'Current palette (Brightness: '.s:brightness. ', Colormap: '.s:colormap.')' + + " {{{1 Define colors and highlighting groups based on "s:colormap" + let s:cterm_none = 'NONE' + let s:gui_none = 'NONE' + + " Set the background based on the colormap. 'softlight' is the only + " colormap with a light background + if s:colormap == 'softlight' + set bg=light + else + set bg=dark + endif + + if s:colormap == 'standard' + " {{{2 Original colormap. 8 standard colors, and 8 brighter ones. + call s:setcolor( 'black', 0 , 0 , 0 ) + call s:setcolor( 'darkred', s:m , 0 , 0 ) + call s:setcolor( 'darkgreen', 0 , s:m , 0 ) + call s:setcolor( 'darkyellow', s:m , s:m , 0 ) + call s:setcolor( 'darkblue', 0 , 0 , s:m ) + call s:setcolor( 'darkmagenta', s:m , 0 , s:m ) + call s:setcolor( 'darkcyan', 0 , s:m , s:m ) + call s:setcolor( 'grey', s:m*44/50, s:m*44/50, s:m*44/50) + + call s:setcolor( 'darkgrey', s:l , s:l , s:l ) + call s:setcolor( 'red', s:h , 0 , 0 ) + call s:setcolor( 'green', 0 , s:h , 0 ) + call s:setcolor( 'yellow', s:h , s:h , 0 ) + call s:setcolor( 'blue', 0 , 0 , s:h ) + call s:setcolor( 'magenta', s:h , 0 , s:h ) + call s:setcolor( 'cyan', 0 , s:h , s:h ) + call s:setcolor( 'white', s:h , s:h , s:h ) + + " {{{2 Highlighting groups for standard colors + call s:hi( 'Normal' , 'none' , 'grey' , 'black' ) + + call s:hi( 'Cursor' , 'none' , 'black' , 'green' ) + call s:hi( 'CursorColumn', 'none' , 'none' , 'darkgrey' ) + call s:hi( 'CursorLine' , 'none' , 'none' , 'darkgrey' ) + call s:hi( 'DiffAdd' , 'none' , 'darkblue' , 'darkgreen' ) + call s:hi( 'DiffChange' , 'none' , 'black' , 'darkyellow') + call s:hi( 'DiffDelete' , 'none' , 'darkblue' , 'none' ) + call s:hi( 'DiffText' , 'none' , 'darkred' , 'darkyellow') + call s:hi( 'Directory' , 'none' , 'cyan' , 'none' ) + call s:hi( 'ErrorMsg' , 'none' , 'white' , 'darkred' ) + call s:hi( 'FoldColumn' , 'none' , 'yellow' , 'darkblue' ) + call s:hi( 'Folded' , 'none' , 'yellow' , 'darkblue' ) + call s:hi( 'IncSearch' , 'none' , 'grey' , 'darkblue' ) + call s:hi( 'LineNr' , 'none' , 'yellow' , 'none' ) + call s:hi( 'MatchParen' , 'bold' , 'none' , 'none' ) + call s:hi( 'MoreMsg' , 'bold' , 'green' , 'none' ) + call s:hi( 'NonText' , 'none' , 'blue' , 'none' ) + call s:hi( 'Pmenu' , 'none' , 'black' , 'grey' ) + call s:hi( 'PmenuSel' , 'none' , 'none' , 'darkblue' ) + call s:hi( 'PmenuSbar' , 'none' , 'none' , 'darkgrey' ) + call s:hi( 'PmenuThumb' , 'none' , 'none' , 'white' ) + call s:hi( 'Question' , 'none' , 'green' , 'none' ) + call s:hi( 'Search' , 'none' , 'black' , 'darkcyan' ) + call s:hi( 'SignColumn' , 'none' , 'darkmagenta', 'darkgrey' ) + call s:hi( 'SpecialKey' , 'none' , 'blue' , 'none' ) + call s:hi( 'StatusLine' , 'none' , 'darkblue' , 'grey' ) + call s:hi( 'StatusLineNC', 'reverse', 'none' , 'none' ) + call s:hi( 'TabLineFill' , 'none' , 'black' , 'darkgrey' ) + call s:hi( 'TabLine' , 'none' , 'black' , 'darkgrey' ) + call s:hi( 'TabLineSel' , 'bold' , 'none' , 'none' ) + call s:hi( 'Title' , 'none' , 'magenta' , 'none' ) + call s:hi( 'Visual' , 'none' , 'none' , 'darkblue' ) + call s:hi( 'VisualNOS' , 'none' , 'none' , 'darkgrey' ) + call s:hi( 'WarningMsg' , 'bold' , 'red' , 'none' ) + call s:hi( 'WildMenu' , 'none' , 'darkmagenta', 'darkyellow') + + call s:hi( 'Comment' , 'none' , 'darkred' , 'none' ) + call s:hi( 'Constant' , 'none' , 'darkyellow' , 'none' ) + call s:hi( 'Error' , 'none' , 'white' , 'red' ) + call s:hi( 'Identifier' , 'none' , 'darkcyan' , 'none' ) + call s:hi( 'Ignore' , 'none' , 'darkgrey' , 'none' ) + call s:hi( 'PreProc' , 'none' , 'blue' , 'none' ) + call s:hi( 'Special' , 'none' , 'darkgreen' , 'none' ) + call s:hi( 'Statement' , 'none' , 'cyan' , 'none' ) + call s:hi( 'Todo' , 'none' , 'black' , 'yellow' ) + call s:hi( 'Type' , 'none' , 'green' , 'none' ) + call s:hi( 'Underlined' , 'none' , 'darkmagenta', 'none' ) + + " {{{2 Spelling highlighting groups. + call s:hi( 'SpellBad' , 'bold,underline', 'none', 'none' , + \ 'undercurl' , 'none', 'none' , + \ 'darkred' ) + call s:hi( 'SpellCap' , 'bold' , 'none', 'none' , + \ 'undercurl' , 'none', 'none' , + \ 'blue' ) + call s:hi( 'SpellLocal', 'underline' , 'none', 'none' , + \ 'undercurl' , 'none', 'none' , + \ 'cyan' ) + call s:hi( 'SpellRare' ,'underline' , 'none', 'none' , + \ 'undercurl' , 'none', 'none' , + \ 'darkyellow' ) + + " {{{2 Define html highlighting groups for standard colors. + if !exists("g:xterm16_NoHtmlColors") + call s:hi( 'htmlBold', 'none', 'white', 'none', 'bold', 'none') + call s:hi( 'htmlItalic', 'none', 'yellow', 'none', 'italic', 'none') + call s:hi( 'htmlUnderline', 'none', 'darkmagenta', 'none', 'underline', 'none') + call s:hi( 'htmlBoldItalic', 'bold', 'yellow', 'none', 'bold,italic', 'none') + call s:hi( 'htmlBoldUnderline', 'bold', 'magenta', 'none', 'bold,underline', 'none') + call s:hi( 'htmlUnderlineItalic', 'none', 'magenta', 'none', 'underline,italic', 'none') + call s:hi( 'htmlBoldUnderlineItalic', 'bold', 'white', 'none', 'bold,underline,italic', 'none') + + hi! link htmlLink PreProc + endif + " {{{2 Remap darkblue on linux consoles + if !exists("g:xterm16_NoRemap") && &term =~# (exists("g:xterm16_TermRegexp") ? xterm16_TermRegexp : "linux") + hi! link PreProc Underlined + endif + " }}}2 + elseif s:colormap == 'soft' || s:colormap == 'softlight' + " {{{2 "soft" / "softlight" colormap. + " Mix and use similar intensity colors. Only drawback is a slightly + " gaudy appearance (which is why I switched to the "allblue" + " colormap). + " + " The "softlight" colormap is a colormap with a whiteish background + " for web hosting or when there's a strong glare ... + + " Background colors common to softlight / soft colormaps + call s:setcolor( 'black' , 0 , 0 , 0 ) + + " call s:setcolor( 'grey' , s:l/2 , s:l/2 , s:l/2 ) + " call s:setcolor( 'lightgrey' , 2*s:l/3 , 2*s:l/3 , 2*s:l/3 ) + + " Foreground colors common to softlight / soft colormaps + call s:setcolor( 'lightbrown' , s:h , s:h/2 , 0 ) + call s:setcolor( 'magenta' , s:h*3/4 , 0 , s:h ) + call s:setcolor( 'red' , s:h , 0 , 0 ) + call s:setcolor( 'yellow' , s:m , s:m , 0 ) + + if s:colormap == "soft" + " Background colors for colormap with a dark background + call s:setcolor( 'darkblue' , 0 , 0 , s:l ) + call s:setcolor( 'darkcyan' , 0 , s:l , s:l ) + call s:setcolor( 'darkred' , s:l , 0 , 0 ) + call s:setcolor( 'darkyellow', s:l , s:l , 0 ) + call s:setcolor( 'darkgrey' , s:l/3 , s:l/3 , s:l/3 ) + call s:setcolor( 'grey' , s:l/2 , s:l/2 , s:l/2 ) + call s:setcolor( 'lightgrey' , s:l , s:l , s:l ) + + " Foreground colors for colormap with a dark background + call s:setcolor( 'bluegreen' , 0 , s:m , s:m*38/50 ) + call s:setcolor( 'cyan' , 0 , s:m , s:m ) + call s:setcolor( 'green' , s:m*38/50 , s:m , 0 ) + call s:setcolor( 'purple' , s:h*27/50 , s:h*27/50 , s:h ) + call s:setcolor( 'skyblue' , 0 , s:h*27/50 , s:h ) + call s:setcolor( 'white' , s:m*44/50 , s:m*44/50 , s:m*44/50 ) + else + " Background colors for colormap with a light background + call s:setcolor( 'darkblue' , s:l*27/50 , s:l*27/50 , s:l ) + call s:setcolor( 'darkcyan' , s:l*27/50 , s:l*38/50 , s:l ) + call s:setcolor( 'darkred' , s:l , s:l*27/50 , s:l*27/50 ) + call s:setcolor( 'darkyellow', s:l , s:l , s:l*27/50 ) + call s:setcolor( 'darkgrey' , s:l*40/50 , s:l*40/50 , s:l*40/50 ) + call s:setcolor( 'grey' , s:l*35/50 , s:l*35/50 , s:l*35/50 ) + call s:setcolor( 'lightgrey' , s:l*30/50 , s:l*30/50 , s:l*30/50 ) + + call s:setcolor( 'white' , s:l*45/50 , s:l*45/50 , s:l*45/50 ) + + " Foreground colors for colormap with a light background + call s:setcolor( 'bluegreen' , 0 , s:h , 0 ) + call s:setcolor( 'cyan' , 0 , s:h*38/50 , s:h ) + call s:setcolor( 'green' , 0 , s:m , 0 ) + call s:setcolor( 'purple' , s:h*38/50 , 0 , s:h ) + call s:setcolor( 'skyblue' , 0 , 0 , s:h ) + endif + + " {{{2 Highlighting groups for "soft" / "softlight" colors. + if s:colormap == 'soft' + " Highlighting groups for dark background + call s:hi( 'Normal' , 'none', 'white' , 'black' ) + + call s:hi( 'Cursor' , 'none', 'black' , 'green' ) + call s:hi( 'DiffText' , 'none', 'darkred' , 'darkyellow') + call s:hi( 'Error' , 'none', 'white' , 'darkred' ) + call s:hi( 'ErrorMsg' , 'none', 'white' , 'darkred' ) + call s:hi( 'FoldColumn' , 'none', 'purple' , 'darkgrey' ) + call s:hi( 'Folded' , 'none', 'purple' , 'darkgrey' ) + call s:hi( 'IncSearch' , 'none', 'yellow' , 'darkblue' ) + call s:hi( 'StatusLine' , 'none', 'darkblue' , 'lightgrey' ) + call s:hi( 'VisualNOS' , 'none', 'black' , 'darkgrey' ) + else + " Highlighting groups for light background + call s:hi( 'Normal' , 'none', 'black' , 'white' ) + + call s:hi( 'Cursor' , 'none', 'white' , 'bluegreen' ) + call s:hi( 'DiffText' , 'none', 'red' , 'darkyellow') + call s:hi( 'Error' , 'none', 'black' , 'darkred' ) + call s:hi( 'ErrorMsg' , 'none', 'white' , 'red' ) + call s:hi( 'FoldColumn' , 'none', 'lightgrey', 'darkgrey' ) + call s:hi( 'Folded' , 'none', 'black' , 'darkgrey' ) + call s:hi( 'IncSearch' , 'none', 'black' , 'darkblue' ) + call s:hi( 'StatusLine' , 'none', 'skyblue' , 'lightgrey' ) + call s:hi( 'VisualNOS' , 'none', 'white' , 'darkgrey' ) + endif + + " Highlighting groups for light / dark background. + call s:hi( 'CursorColumn', 'none', 'none' , 'grey' ) + call s:hi( 'CursorLine' , 'none', 'none' , 'grey' ) + call s:hi( 'DiffAdd' , 'none', 'lightbrown', 'darkblue' ) + call s:hi( 'DiffChange' , 'none', 'black' , 'darkyellow') + call s:hi( 'DiffDelete' , 'none', 'purple' , 'darkblue' ) + call s:hi( 'Directory' , 'none', 'cyan' , 'none' ) + call s:hi( 'LineNr' , 'none', 'yellow' , 'none' ) + call s:hi( 'MatchParen' , 'bold', 'none' , 'none' ) + call s:hi( 'MoreMsg' , 'none', 'green' , 'none' ) + call s:hi( 'NonText' , 'none', 'yellow' , 'none' ) + call s:hi( 'Pmenu' , 'none', 'none' , 'grey' ) + call s:hi( 'PmenuSbar' , 'none', 'none' , 'darkgrey' ) + call s:hi( 'PmenuSel' , 'none', 'none' , 'darkblue' ) + call s:hi( 'PmenuThumb' , 'none', 'none' , 'lightgrey' ) + call s:hi( 'Question' , 'none', 'green' , 'none' ) + call s:hi( 'Search' , 'none', 'black' , 'darkcyan' ) + call s:hi( 'SignColumn' , 'none', 'yellow' , 'darkgrey' ) + call s:hi( 'SpecialKey' , 'none', 'yellow' , 'none' ) + call s:hi( 'StatusLineNC', 'none', 'black' , 'grey' ) + call s:hi( 'TabLineFill' , 'none', 'none' , 'grey' ) + call s:hi( 'TabLine' , 'none', 'none' , 'grey' ) + call s:hi( 'TabLineSel' , 'bold', 'none' , 'none' ) + call s:hi( 'Title' , 'none', 'yellow' , 'none' ) + call s:hi( 'VertSplit' , 'none', 'darkgrey' , 'darkgrey' ) + call s:hi( 'Visual' , 'none', 'none' , 'darkblue' ) + call s:hi( 'WarningMsg' , 'none', 'red' , 'none' ) + call s:hi( 'WildMenu' , 'none', 'yellow' , 'none' ) + + call s:hi( 'Comment' , 'none', 'red' , 'none' ) + call s:hi( 'Constant' , 'none', 'lightbrown', 'none' ) + call s:hi( 'Identifier' , 'none', 'cyan' , 'none' ) + call s:hi( 'Ignore' , 'none', 'darkgrey' , 'none' ) + call s:hi( 'PreProc' , 'none', 'purple' , 'none' ) + call s:hi( 'Special' , 'none', 'green' , 'none' ) + call s:hi( 'Statement' , 'none', 'skyblue' , 'none' ) + call s:hi( 'Todo' , 'none', 'black' , 'darkyellow') + call s:hi( 'Type' , 'none', 'bluegreen' , 'none' ) + call s:hi( 'Underlined' , 'none', 'magenta' , 'none' ) + + " {{{2 Spelling highlighting groups. + call s:hi( 'SpellBad' , 'bold,underline', 'none', 'darkgrey', + \ 'undercurl' , 'none', 'none' , + \ 'red' ) + call s:hi( 'SpellCap' , 'bold' , 'none', 'darkgrey', + \ 'undercurl' , 'none', 'none' , + \ 'skyblue' ) + call s:hi( 'SpellLocal', 'underline' , 'none', 'darkgrey', + \ 'undercurl' , 'none', 'none' , + \ 'cyan' ) + call s:hi( 'SpellRare' ,'underline' , 'none', 'none' , + \ 'undercurl' , 'none', 'none' , + \ 'yellow' ) + + " {{{2 Define html highlighting groups for soft colors. + if !exists("g:xterm16_NoHtmlColors") + call s:hi( 'htmlBold', 'none', 'yellow', 'none', + \ 'bold', 'none') + call s:hi( 'htmlItalic', 'none', 'yellow', 'none', + \ 'italic', 'none') + call s:hi( 'htmlUnderline', 'none', 'magenta', 'none', + \ 'underline', 'none') + call s:hi( 'htmlBoldItalic', 'bold', 'yellow', 'none', + \ 'bold,italic', 'none') + call s:hi( 'htmlBoldUnderline', 'bold', 'magenta', 'none', + \ 'bold,underline', 'none') + call s:hi( 'htmlUnderlineItalic', 'bold', 'magenta', 'none', + \ 'underline,italic', 'none') + call s:hi( 'htmlBoldUnderlineItalic', 'bold', 'white', 'none', + \ 'bold,underline,italic', 'none') + endif + " }}}2 + elseif s:colormap == 'allblue' + " {{{2 "allblue" colormap. All shades of blue. + " Background colors + call s:setcolor( 'black' , 0 , 0 , 0 ) + call s:setcolor( 'darkred' , s:l , 0 , 0 ) + call s:setcolor( 'darkcyan' , 0 , s:l , s:l ) + call s:setcolor( 'darkblue' , 0 , 0 , s:l ) + call s:setcolor( 'darkyellow' , s:l , s:l , 0 ) + + " cterm's can do grey's with better accuracy, so use many shades of + " grey for backgrounds instead of the gaudy yellow's etc. + call s:setcolor( 'grey1' , s:l/8 , s:l/8 , s:l/8 ) + call s:setcolor( 'grey2' , 2*s:l/8 , 2*s:l/8 , 2*s:l/8 ) + call s:setcolor( 'grey3' , 3*s:l/8 , 3*s:l/8 , 3*s:l/8 ) + call s:setcolor( 'grey4' , 4*s:l/8 , 4*s:l/8 , 4*s:l/8 ) + call s:setcolor( 'grey5' , 5*s:l/8 , 5*s:l/8 , 5*s:l/8 ) + " call s:setcolor( 'grey6' , 6*s:l/8 , 6*s:l/8 , 6*s:l/8 ) + " call s:setcolor( 'grey7' , 7*s:l/8 , 7*s:l/8 , 7*s:l/8 ) + call s:setcolor( 'grey' , s:l , s:l , s:l ) + + " Foreground colors: + " + " s:m -- lowest intensity level for fg colors + " s:h -- highest intensity level. + " s:M -- medium intensity (average of the above two) + + let s:M = (s:m + s:h) / 2 + + call s:setcolor( 'red' , s:h , 0 , 0 ) + call s:setcolor( 'lightbrown' , s:M , s:m , 0 ) + call s:setcolor( 'yellow' , s:M , s:M , s:m ) + call s:setcolor( 'dirtygreen' , s:m , s:m , 0 ) + call s:setcolor( 'green' , s:m , s:M , s:m ) + call s:setcolor( 'bluegreen' , 0 , s:M , s:m ) + call s:setcolor( 'yellowgreen', s:m , s:M , 0 ) + call s:setcolor( 'skyblue' , 0 , s:m , s:M ) + call s:setcolor( 'lightblue' , 0 , s:m , s:h ) + call s:setcolor( 'cyan' , 0 , s:M , s:M ) + call s:setcolor( 'lightcyan' , s:m , s:M , s:M ) + call s:setcolor( 'darkpurple' , s:m , 0 , s:h ) + call s:setcolor( 'purple' , s:m , s:m , s:M ) + + " Unused colors that are pretty reasonable + " call s:setcolor( 'lightred' , s:M , s:m , s:m ) + " call s:setcolor( 'bluewhite' , s:M , s:M , s:h ) + " call s:setcolor( 'lightpurple', s:m , s:m , s:h ) + + " Greys can be done with better accurcy on cterms! + call s:setcolor( 'white' , 48*s:M/50 , 48*s:M/50 , 48*s:M/50 ) + call s:setcolor( 'white1' , 40*s:M/50 , 40*s:M/50 , 40*s:M/ 50 ) + + unlet s:M + + " {{{2 Highlighting groups for "allblue" colors. + call s:hi( 'Normal' , 'none' , 'white' , 'black' ) + + call s:hi( 'Cursor' , 'none' , 'black' , 'green' ) + call s:hi( 'CursorColumn' , 'none' , 'none' , 'grey4' ) + call s:hi( 'CursorLine' , 'none' , 'none' , 'grey4' ) + call s:hi( 'DiffAdd' , 'none' , 'lightbrown' , 'grey2' ) + call s:hi( 'DiffChange' , 'none' , 'yellow' , 'grey2' ) + call s:hi( 'DiffDelete' , 'none' , 'dirtygreen' , 'grey2' ) + call s:hi( 'DiffText' , 'none' , 'yellowgreen' , 'grey2' ) + call s:hi( 'Directory' , 'none' , 'lightblue' , 'none' ) + call s:hi( 'ErrorMsg' , 'none' , 'white' , 'darkred' ) + call s:hi( 'FoldColumn' , 'none' , 'grey4' , 'none' ) + call s:hi( 'Folded' , 'none' , 'white1' , 'grey2' ) + call s:hi( 'IncSearch' , 'none' , 'white' , 'darkblue' ) + call s:hi( 'LineNr' , 'none' , 'yellow' , 'none' ) + call s:hi( 'MatchParen' , 'bold' , 'none' , 'none' ) + call s:hi( 'ModeMsg' , 'bold' , 'none' , 'none' ) + call s:hi( 'MoreMsg' , 'none' , 'green' , 'none' ) + call s:hi( 'NonText' , 'none' , 'lightbrown' , 'none' ) + call s:hi( 'Pmenu' , 'none' , 'none' , 'grey3' ) + call s:hi( 'PmenuSel' , 'none' , 'none' , 'darkblue' ) + call s:hi( 'PmenuSbar' , 'none' , 'none' , 'grey2' ) + call s:hi( 'PmenuThumb' , 'none' , 'none' , 'grey4' ) + call s:hi( 'Question' , 'none' , 'green' , 'none' ) + call s:hi( 'Search' , 'none' , 'black' , 'darkcyan' ) + call s:hi( 'SignColumn' , 'none' , 'yellow' , 'grey1' ) + call s:hi( 'SpecialKey' , 'none' , 'yellow' , 'none' ) + call s:hi( 'StatusLineNC' , 'none' , 'grey' , 'grey3' ) + call s:hi( 'StatusLine' , 'none' , 'white' , 'grey5' ) + call s:hi( 'TabLine' , 'none' , 'none' , 'grey3' ) + call s:hi( 'TabLineFill' , 'none' , 'none' , 'grey3' ) + call s:hi( 'TabLineSel' , 'bold' , 'none' , 'none' ) + call s:hi( 'Title' , 'none' , 'yellow' , 'none' ) + call s:hi( 'VertSplit' , 'none' , 'grey3' , 'grey3' ) + call s:hi( 'Visual' , 'none' , 'none' , 'darkblue' ) + call s:hi( 'VisualNOS' , 'none' , 'none' , 'grey2' ) + call s:hi( 'WarningMsg' , 'none' , 'red' , 'none' ) + call s:hi( 'WildMenu' , 'none' , 'yellow' , 'none' ) + + call s:hi( 'Comment' , 'none' , 'purple' , 'none' ) + call s:hi( 'Constant' , 'none' , 'lightcyan' , 'none' ) + call s:hi( 'Error' , 'none' , 'red' , 'none' ) + call s:hi( 'Identifier' , 'none' , 'cyan' , 'none' ) + call s:hi( 'Ignore' , 'none' , 'grey3' , 'none' ) + call s:hi( 'PreProc' , 'none' , 'darkpurple' , 'none' ) + call s:hi( 'Special' , 'none' , 'bluegreen' , 'none' ) + call s:hi( 'Statement' , 'none' , 'skyblue' , 'none' ) + call s:hi( 'Todo' , 'none' , 'lightbrown' , 'none' ) + call s:hi( 'Type' , 'none' , 'green' , 'none' ) + call s:hi( 'Underlined' , 'none' , 'darkpurple' , 'none' ) + + " {{{2 Spelling highlighting groups. + " + " The undercurl looks great in gui, so let's use that. For cterm use + " some crappy grey background + bold / etc. Not something that stands + " out too much because there are invariably numerous spelling mistakes + " highlighted in most code. + " + call s:hi( 'SpellBad' , 'bold,underline' , 'none', 'grey2', + \ 'undercurl' , 'none', 'none' , 'red' ) + call s:hi( 'SpellCap' , 'bold' , 'none', 'grey2', + \ 'undercurl' , 'none', 'none' , 'skyblue' ) + call s:hi( 'SpellLocal' , 'underline' , 'none', 'grey2', + \ 'undercurl' , 'none', 'none' , 'lightcyan' ) + call s:hi( 'SpellRare' , 'underline' , 'none', 'none' , + \ 'undercurl' , 'none', 'none' , 'yellow' ) + + " {{{2 Highlighting groups for email. + " + " mailURL links to Constant, which is light cyan. This does not stand + " out well in quoted emails (which is cyan), or regular text. Better + " to use light brown (like the soft colormap). + hi link mailURL Todo + + " {{{2 Define html highlighting groups for "allblue" colors + if !exists("g:xterm16_NoHtmlColors") + call s:hi( 'htmlBold', 'none', 'yellow', 'none', 'bold', 'none') + call s:hi( 'htmlItalic', 'none', 'yellow', 'none', 'italic', 'none') + call s:hi( 'htmlUnderline', 'none', 'darkpurple', 'none', 'underline', 'none') + call s:hi( 'htmlBoldItalic', 'bold', 'yellow', 'none', 'bold,italic', 'none') + call s:hi( 'htmlBoldUnderline', 'bold', 'darkpurple', 'none', 'bold,underline', 'none') + call s:hi( 'htmlUnderlineItalic', 'bold', 'darkpurple', 'none', 'underline,italic', 'none') + call s:hi( 'htmlBoldUnderlineItalic', 'bold', 'white', 'none', 'bold,underline,italic', 'none') + endif + " }}}2 + else + throw 'xterm16 Error: Unrecognised colormap "' . s:colormap . '"' + endif + " }}}1 +catch /^xterm16 Error:/ + " {{{1 Handle internal exceptions. + unlet colors_name + + echohl ErrorMsg + echomsg v:exception + echohl None + " }}}1 +finally + " {{{1 Unlet script variables and functions + " Restore compatibility options + let &cpo = s:cpo_save + unlet! s:c1 s:c2 s:c3 + unlet! s:i s:lower s:upper s:ccube s:cinterval + unlet! s:cpo_save s:hex s:l s:m s:h s:cterm_none s:gui_none + + " Delete colors of "standard" colormap + unlet! s:gui_black s:gui_darkred s:gui_darkgreen s:gui_darkyellow s:gui_darkblue s:gui_darkmagenta s:gui_darkcyan s:gui_grey s:gui_darkgrey s:gui_red s:gui_green s:gui_yellow s:gui_blue s:gui_magenta s:gui_cyan s:gui_white + unlet! s:cterm_black s:cterm_darkred s:cterm_darkgreen s:cterm_darkyellow s:cterm_darkblue s:cterm_darkmagenta s:cterm_darkcyan s:cterm_grey s:cterm_darkgrey s:cterm_red s:cterm_green s:cterm_yellow s:cterm_blue s:cterm_magenta s:cterm_cyan s:cterm_white + + " Delete extra colors of "soft" colormap + unlet! s:gui_lightbrown s:gui_bluegreen s:gui_skyblue s:gui_purple + unlet! s:cterm_lightbrown s:cterm_bluegreen s:cterm_skyblue s:cterm_purple + + " Delete extra colors from "allblue" colormap + unlet! s:gui_darkcyan s:gui_darkblue s:gui_grey1 s:gui_grey2 s:gui_grey3 s:gui_grey4 s:gui_grey5 s:gui_white1 s:gui_dirtygreen s:gui_yellowgreen s:gui_lightblue s:gui_lightcyan s:gui_darkpurple + unlet! s:cterm_darkcyan s:cterm_darkblue s:cterm_grey1 s:cterm_grey2 s:cterm_grey3 s:cterm_grey4 s:cterm_grey5 s:cterm_white1 s:cterm_dirtygreen s:cterm_yellowgreen s:cterm_lightblue s:cterm_lightcyan s:cterm_darkpurple + + delfunction s:tohex + delfunction s:extractRGB + delfunction s:guilevel + delfunction s:ctermlevel + delfunction s:guicolor + delfunction s:ctermcolor + delfunction s:setcolor + delfunction s:getcolor + delfunction s:use_guiattr + delfunction s:hi + delfunction s:set_brightness + " }}}1 +endtry diff --git a/vim/colors/zenburn.vim b/vim/colors/zenburn.vim new file mode 100644 index 0000000..edbd6d7 --- /dev/null +++ b/vim/colors/zenburn.vim @@ -0,0 +1,351 @@ +" Vim color file +" Maintainer: Jani Nurminen +" Last Change: $Id: zenburn.vim,v 2.13 2009/10/24 10:16:01 slinky Exp $ +" URL: http://slinky.imukuppi.org/zenburnpage/ +" License: GPL +" +" Nothing too fancy, just some alien fruit salad to keep you in the zone. +" This syntax file was designed to be used with dark environments and +" low light situations. Of course, if it works during a daybright office, go +" ahead :) +" +" Owes heavily to other Vim color files! With special mentions +" to "BlackDust", "Camo" and "Desert". +" +" To install, copy to ~/.vim/colors directory. +" +" Alternatively, you can use Vimball installation: +" vim zenburn.vba +" :so % +" :q +" +" For details, see :help vimball +" +" After installation, use it with :colorscheme zenburn. +" See also :help syntax +" +" Credits: +" - Jani Nurminen - original Zenburn +" - Steve Hall & Cream posse - higher-contrast Visual selection +" - Kurt Maier - 256 color console coloring, low and high contrast toggle, +" bug fixing +" - Charlie - spotted too bright StatusLine in non-high contrast mode +" - Pablo Castellazzi - CursorLine fix for 256 color mode +" - Tim Smith - force dark background +" - John Gabriele - spotted bad Ignore-group handling +" - Zac Thompson - spotted invisible NonText in low contrast mode +" - Christophe-Marie Duquesne - suggested making a Vimball +" +" CONFIGURABLE PARAMETERS: +" +" You can use the default (don't set any parameters), or you can +" set some parameters to tweak the Zenburn colours. +" +" To use them, put them into your .vimrc file before loading the color scheme, +" example: +" let g:zenburn_high_Contrast=1 +" colors zenburn +" +" * You can now set a darker background for bright environments. To activate, use: +" contrast Zenburn, use: +" +" let g:zenburn_high_Contrast = 1 +" +" * For example, Vim help files uses the Ignore-group for the pipes in tags +" like "|somelink.txt|". By default, the pipes are not visible, as they +" map to Ignore group. If you wish to enable coloring of the Ignore group, +" set the following parameter to 1. Warning, it might make some syntax files +" look strange. +" +" let g:zenburn_color_also_Ignore = 1 +" +" * To get more contrast to the Visual selection, use +" +" let g:zenburn_alternate_Visual = 1 +" +" * To use alternate colouring for Error message, use +" +" let g:zenburn_alternate_Error = 1 +" +" * The new default for Include is a duller orange. To use the original +" colouring for Include, use +" +" let g:zenburn_alternate_Include = 1 +" +" * Work-around to a Vim bug, it seems to misinterpret ctermfg and 234 and 237 +" as light values, and sets background to light for some people. If you have +" this problem, use: +" +" let g:zenburn_force_dark_Background = 1 +" +" NOTE: +" +" * To turn the parameter(s) back to defaults, use UNLET: +" +" unlet g:zenburn_alternate_Include +" +" Setting to 0 won't work! +" +" That's it, enjoy! +" +" TODO +" - Visual alternate color is broken? Try GVim >= 7.0.66 if you have trouble +" - IME colouring (CursorIM) + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="zenburn" + +hi Boolean guifg=#dca3a3 +hi Character guifg=#dca3a3 gui=bold +hi Comment guifg=#7f9f7f gui=italic +hi Conditional guifg=#f0dfaf gui=bold +hi Constant guifg=#dca3a3 gui=bold +hi Cursor guifg=#000d18 guibg=#8faf9f gui=bold +hi Debug guifg=#bca3a3 gui=bold +hi Define guifg=#ffcfaf gui=bold +hi Delimiter guifg=#8f8f8f +hi DiffAdd guifg=#709080 guibg=#313c36 gui=bold +hi DiffChange guibg=#333333 +hi DiffDelete guifg=#333333 guibg=#464646 +hi DiffText guifg=#ecbcbc guibg=#41363c gui=bold +hi Directory guifg=#dcdccc gui=bold +hi ErrorMsg guifg=#80d4aa guibg=#2f2f2f gui=bold +hi Exception guifg=#c3bf9f gui=bold +hi Float guifg=#c0bed1 +hi FoldColumn guifg=#93b3a3 guibg=#3f4040 +hi Folded guifg=#93b3a3 guibg=#3f4040 +hi Function guifg=#efef8f +hi Identifier guifg=#efdcbc +hi IncSearch guibg=#f8f893 guifg=#385f38 +hi Keyword guifg=#f0dfaf gui=bold +hi Label guifg=#dfcfaf gui=underline +hi LineNr guifg=#9fafaf guibg=#262626 +hi Macro guifg=#ffcfaf gui=bold +hi ModeMsg guifg=#ffcfaf gui=none +hi MoreMsg guifg=#ffffff gui=bold +hi Number guifg=#8cd0d3 +hi Operator guifg=#f0efd0 +hi PreCondit guifg=#dfaf8f gui=bold +hi PreProc guifg=#ffcfaf gui=bold +hi Question guifg=#ffffff gui=bold +hi Repeat guifg=#ffd7a7 gui=bold +hi Search guifg=#ffffe0 guibg=#284f28 +hi SpecialChar guifg=#dca3a3 gui=bold +hi SpecialComment guifg=#82a282 gui=bold +hi Special guifg=#cfbfaf +hi SpecialKey guifg=#9ece9e +hi Statement guifg=#e3ceab gui=none +hi StatusLine guifg=#313633 guibg=#ccdc90 +hi StatusLineNC guifg=#2e3330 guibg=#88b090 +hi StorageClass guifg=#c3bf9f gui=bold +hi String guifg=#cc9393 +hi Structure guifg=#efefaf gui=bold +hi Tag guifg=#e89393 gui=bold +hi Title guifg=#efefef gui=bold +hi Todo guifg=#dfdfdf guibg=bg gui=bold +hi Typedef guifg=#dfe4cf gui=bold +hi Type guifg=#dfdfbf gui=bold +hi Underlined guifg=#dcdccc gui=underline +hi VertSplit guifg=#2e3330 guibg=#688060 +hi VisualNOS guifg=#333333 guibg=#f18c96 gui=bold,underline +hi WarningMsg guifg=#ffffff guibg=#333333 gui=bold +hi WildMenu guibg=#2c302d guifg=#cbecd0 gui=underline + +hi SpellBad guisp=#bc6c4c guifg=#dc8c6c +hi SpellCap guisp=#6c6c9c guifg=#8c8cbc +hi SpellRare guisp=#bc6c9c guifg=#bc8cbc +hi SpellLocal guisp=#7cac7c guifg=#9ccc9c + +" Entering Kurt zone +if &t_Co > 255 + hi Boolean ctermfg=181 + hi Character ctermfg=181 cterm=bold + hi Comment ctermfg=108 + hi Conditional ctermfg=223 cterm=bold + hi Constant ctermfg=181 cterm=bold + hi Cursor ctermfg=233 ctermbg=109 cterm=bold + hi Debug ctermfg=181 cterm=bold + hi Define ctermfg=223 cterm=bold + hi Delimiter ctermfg=245 + hi DiffAdd ctermfg=66 ctermbg=237 cterm=bold + hi DiffChange ctermbg=236 + hi DiffDelete ctermfg=236 ctermbg=238 + hi DiffText ctermfg=217 ctermbg=237 cterm=bold + hi Directory ctermfg=188 cterm=bold + hi ErrorMsg ctermfg=115 ctermbg=236 cterm=bold + hi Exception ctermfg=249 cterm=bold + hi Float ctermfg=251 + hi FoldColumn ctermfg=109 ctermbg=238 + hi Folded ctermfg=109 ctermbg=238 + hi Function ctermfg=228 + hi Identifier ctermfg=223 + hi IncSearch ctermbg=228 ctermfg=238 + hi Keyword ctermfg=223 cterm=bold + hi Label ctermfg=187 cterm=underline + hi LineNr ctermfg=248 ctermbg=235 + hi Macro ctermfg=223 cterm=bold + hi ModeMsg ctermfg=223 cterm=none + hi MoreMsg ctermfg=15 cterm=bold + hi Number ctermfg=116 + hi Operator ctermfg=230 + hi PreCondit ctermfg=180 cterm=bold + hi PreProc ctermfg=223 cterm=bold + hi Question ctermfg=15 cterm=bold + hi Repeat ctermfg=223 cterm=bold + hi Search ctermfg=230 ctermbg=236 + hi SpecialChar ctermfg=181 cterm=bold + hi SpecialComment ctermfg=108 cterm=bold + hi Special ctermfg=181 + hi SpecialKey ctermfg=151 + hi Statement ctermfg=187 ctermbg=234 cterm=none + hi StatusLine ctermfg=236 ctermbg=186 + hi StatusLineNC ctermfg=235 ctermbg=108 + hi StorageClass ctermfg=249 cterm=bold + hi String ctermfg=174 + hi Structure ctermfg=229 cterm=bold + hi Tag ctermfg=181 cterm=bold + hi Title ctermfg=7 ctermbg=234 cterm=bold + hi Todo ctermfg=108 ctermbg=234 cterm=bold + hi Typedef ctermfg=253 cterm=bold + hi Type ctermfg=187 cterm=bold + hi Underlined ctermfg=188 ctermbg=234 cterm=bold + hi VertSplit ctermfg=236 ctermbg=65 + hi VisualNOS ctermfg=236 ctermbg=210 cterm=bold + hi WarningMsg ctermfg=15 ctermbg=236 cterm=bold + hi WildMenu ctermbg=236 ctermfg=194 cterm=bold + hi CursorLine ctermbg=236 cterm=none + + " spellchecking, always "bright" background + hi SpellLocal ctermfg=14 ctermbg=237 + hi SpellBad ctermfg=9 ctermbg=237 + hi SpellCap ctermfg=12 ctermbg=237 + hi SpellRare ctermfg=13 ctermbg=237 + + " pmenu + hi PMenu ctermfg=248 ctermbg=0 + hi PMenuSel ctermfg=223 ctermbg=235 + + if exists("g:zenburn_high_Contrast") + hi Normal ctermfg=188 ctermbg=234 + hi NonText ctermfg=238 + + if exists("g:zenburn_color_also_Ignore") + hi Ignore ctermfg=238 + endif + else + hi Normal ctermfg=188 ctermbg=237 + hi Cursor ctermbg=109 + hi diffadd ctermbg=237 + hi diffdelete ctermbg=238 + hi difftext ctermbg=237 + hi errormsg ctermbg=237 + hi foldcolumn ctermbg=238 + hi folded ctermbg=238 + hi incsearch ctermbg=228 + hi linenr ctermbg=238 + hi search ctermbg=238 + hi statement ctermbg=237 + hi statusline ctermbg=144 + hi statuslinenc ctermbg=108 + hi title ctermbg=237 + hi todo ctermbg=237 + hi underlined ctermbg=237 + hi vertsplit ctermbg=65 + hi visualnos ctermbg=210 + hi warningmsg ctermbg=236 + hi wildmenu ctermbg=236 + hi NonText ctermfg=240 + + if exists("g:zenburn_color_also_Ignore") + hi Ignore ctermfg=240 + endif + endif + + if exists("g:zenburn_alternate_Error") + " use more jumpy Error + hi Error ctermfg=210 ctermbg=52 gui=bold + else + " default is something more zenburn-compatible + hi Error ctermfg=228 ctermbg=95 gui=bold + endif +endif + +if exists("g:zenburn_force_dark_Background") + " Force dark background, because of a bug in VIM: VIM sets background + " automatically during "hi Normal ctermfg=X"; it misinterprets the high + " value (234 or 237 above) as a light color, and wrongly sets background to + " light. See ":help highlight" for details. + set background=dark +endif + +if exists("g:zenburn_high_Contrast") + " use new darker background + hi Normal guifg=#dcdccc guibg=#1f1f1f + hi CursorLine guibg=#121212 gui=bold + hi Pmenu guibg=#242424 guifg=#ccccbc + hi PMenuSel guibg=#353a37 guifg=#ccdc90 gui=bold + hi PmenuSbar guibg=#2e3330 guifg=#000000 + hi PMenuThumb guibg=#a0afa0 guifg=#040404 + hi MatchParen guifg=#f0f0c0 guibg=#383838 gui=bold + hi SignColumn guifg=#9fafaf guibg=#181818 gui=bold + hi TabLineFill guifg=#cfcfaf guibg=#181818 gui=bold + hi TabLineSel guifg=#efefef guibg=#1c1c1b gui=bold + hi TabLine guifg=#b6bf98 guibg=#181818 gui=bold + hi CursorColumn guifg=#dcdccc guibg=#2b2b2b + hi NonText guifg=#404040 gui=bold +else + " Original, lighter background + hi Normal guifg=#dcdccc guibg=#3f3f3f + hi CursorLine guibg=#434443 + hi Pmenu guibg=#2c2e2e guifg=#9f9f9f + hi PMenuSel guibg=#242424 guifg=#d0d0a0 gui=bold + hi PmenuSbar guibg=#2e3330 guifg=#000000 + hi PMenuThumb guibg=#a0afa0 guifg=#040404 + hi MatchParen guifg=#b2b2a0 guibg=#2e2e2e gui=bold + hi SignColumn guifg=#9fafaf guibg=#343434 gui=bold + hi TabLineFill guifg=#cfcfaf guibg=#353535 gui=bold + hi TabLineSel guifg=#efefef guibg=#3a3a39 gui=bold + hi TabLine guifg=#b6bf98 guibg=#353535 gui=bold + hi CursorColumn guifg=#dcdccc guibg=#4f4f4f + hi NonText guifg=#5b605e gui=bold +endif + + +if exists("g:zenburn_alternate_Visual") + " Visual with more contrast, thanks to Steve Hall & Cream posse + " gui=none fixes weird highlight problem in at least GVim 7.0.66, thanks to Kurt Maier + hi Visual guifg=#000000 guibg=#71d3b4 gui=none + hi VisualNOS guifg=#000000 guibg=#71d3b4 gui=none +else + " use default visual + hi Visual guifg=#233323 guibg=#71d3b4 gui=none + hi VisualNOS guifg=#233323 guibg=#71d3b4 gui=none +endif + +if exists("g:zenburn_alternate_Error") + " use more jumpy Error + hi Error guifg=#e37170 guibg=#664040 gui=bold +else + " default is something more zenburn-compatible + hi Error guifg=#e37170 guibg=#3d3535 gui=none +endif + +if exists("g:zenburn_alternate_Include") + " original setting + hi Include guifg=#ffcfaf gui=bold +else + " new, less contrasted one + hi Include guifg=#dfaf8f gui=bold +endif + +if exists("g:zenburn_color_also_Ignore") + " color the Ignore groups + " note: if you get strange coloring for your files, turn this off (unlet) + hi Ignore guifg=#545a4f +endif + +" TODO check for more obscure syntax groups that they're ok diff --git a/vim/compiler/eruby.vim b/vim/compiler/eruby.vim new file mode 100644 index 0000000..d4d1ac1 --- /dev/null +++ b/vim/compiler/eruby.vim @@ -0,0 +1,40 @@ +" Vim compiler file +" Language: eRuby +" Maintainer: Doug Kearns +" URL: http://vim-ruby.rubyforge.org +" Anon CVS: See above site +" Release Coordinator: Doug Kearns + +if exists("current_compiler") + finish +endif +let current_compiler = "eruby" + +if exists(":CompilerSet") != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +let s:cpo_save = &cpo +set cpo-=C + +if exists("eruby_compiler") && eruby_compiler == "eruby" + CompilerSet makeprg=eruby +else + CompilerSet makeprg=erb +endif + +CompilerSet errorformat= + \eruby:\ %f:%l:%m, + \%+E%f:%l:\ parse\ error, + \%W%f:%l:\ warning:\ %m, + \%E%f:%l:in\ %*[^:]:\ %m, + \%E%f:%l:\ %m, + \%-C%\tfrom\ %f:%l:in\ %.%#, + \%-Z%\tfrom\ %f:%l, + \%-Z%p^, + \%-G%.%# + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8: diff --git a/vim/compiler/ruby.vim b/vim/compiler/ruby.vim new file mode 100644 index 0000000..9dde168 --- /dev/null +++ b/vim/compiler/ruby.vim @@ -0,0 +1,67 @@ +" Vim compiler file +" Language: Ruby +" Function: Syntax check and/or error reporting +" Maintainer: Tim Hammerquist +" URL: http://vim-ruby.rubyforge.org +" Anon CVS: See above site +" Release Coordinator: Doug Kearns +" ---------------------------------------------------------------------------- +" +" Changelog: +" 0.2: script saves and restores 'cpoptions' value to prevent problems with +" line continuations +" 0.1: initial release +" +" Contributors: +" Hugh Sasse +" Doug Kearns +" +" Todo: +" match error type %m +" +" Comments: +" I know this file isn't perfect. If you have any questions, suggestions, +" patches, etc., please don't hesitate to let me know. +" +" This is my first experience with 'errorformat' and compiler plugins and +" I welcome any input from more experienced (or clearer-thinking) +" individuals. +" ---------------------------------------------------------------------------- + +if exists("current_compiler") + finish +endif +let current_compiler = "ruby" + +if exists(":CompilerSet") != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +let s:cpo_save = &cpo +set cpo-=C + +" default settings runs script normally +" add '-c' switch to run syntax check only: +" +" CompilerSet makeprg=ruby\ -wc\ $* +" +" or add '-c' at :make command line: +" +" :make -c % +" +CompilerSet makeprg=ruby\ -w\ $* + +CompilerSet errorformat= + \%+E%f:%l:\ parse\ error, + \%W%f:%l:\ warning:\ %m, + \%E%f:%l:in\ %*[^:]:\ %m, + \%E%f:%l:\ %m, + \%-C%\tfrom\ %f:%l:in\ %.%#, + \%-Z%\tfrom\ %f:%l, + \%-Z%p^, + \%-G%.%# + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8: diff --git a/vim/compiler/rubyunit.vim b/vim/compiler/rubyunit.vim new file mode 100644 index 0000000..845a8d7 --- /dev/null +++ b/vim/compiler/rubyunit.vim @@ -0,0 +1,34 @@ +" Vim compiler file +" Language: Test::Unit - Ruby Unit Testing Framework +" Maintainer: Doug Kearns +" URL: http://vim-ruby.rubyforge.org +" Anon CVS: See above site +" Release Coordinator: Doug Kearns + +if exists("current_compiler") + finish +endif +let current_compiler = "rubyunit" + +if exists(":CompilerSet") != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +let s:cpo_save = &cpo +set cpo-=C + +CompilerSet makeprg=testrb + +CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:, + \%C%m\ [%f:%l]:, + \%E\ %\\+%\\d%\\+)\ Error:, + \%C%m:, + \%C\ \ \ \ %f:%l:%.%#, + \%C%m, + \%Z\ %#, + \%-G%.%# + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8: diff --git a/vim/doc/AnsiEsc.txt b/vim/doc/AnsiEsc.txt new file mode 100644 index 0000000..4fe361e --- /dev/null +++ b/vim/doc/AnsiEsc.txt @@ -0,0 +1,134 @@ +*AnsiEsc.txt* Ansi Escape Sequence Visualization Dec 13, 2010 + +Author: Charles E. Campbell, Jr. + (remove NOSPAM from Campbell's email first) +Copyright: (c) 2004-2010 by Charles E. Campbell, Jr. *AnsiEsc-copyright* + The VIM LICENSE applies to AnsiEsc.vim and AnsiEsc.txt + (see |copyright|) except use "AnsiEsc" instead of "Vim". + No warranty, express or implied. Use At-Your-Own-Risk. + +============================================================================== +1. Contents *AnsiEsc* *AnsiEsc-contents* + 1. Contents ...................................|AnsiEsc-contents| + 2. AnsiEsc Manual ...................................|AnsiEsc| + 3. AnsiEsc History ...................................|AnsiEsc-history| + +============================================================================== +2. Manual *AnsiEsc-manual* + + CONCEAL -- the best mode. + For this, your vim must have +conceal. A typical way to get the + conceal feature: + + * cd ..wherever../vim72/ + * wget http://vince.negri.googlepages.com/conceal-ownsyntax.diff + * patch -p0 < conceal-ownsyntax.diff + * make distclean + * configure --with-features=huge + * make + * make install + + Normal: -- ansi escape sequences themselves are Ignore'd~ + Ansi escape sequences have the expected effect on subsequent + text, but the ansi escape sequences themselves still take up + screen columns. The sequences are displayed using "Ignore" + highlighting; depending on your colorscheme, this should either + make the sequences blend into your background or be visually + suppressed. If the sequences aren't suppressed, you need to + improve your colorscheme! + + USAGE~ + :AnsiEsc -- toggles Ansi escape sequence highlighting + :AnsiEsc! -- rebuilds highlighting for new/removed three + or more element Ansi escape sequences. + + RESULT~ + Ansi escape sequences become concealed or ignored (depending + on whether your vim supports Negri's conceal mode), and their + effect on subsequent text is emulated with Vim's syntax + highlighting. + + Syntax highlighting for one and two element codes are + hard-coded into AnsiEsc.vim. There are too many possibilities + for three or more element codes; these are supported by + examining the file for such sequences and only building syntax + highlighting rules for such sequences as are actually present + in the document. + + EXAMPLE~ + + You'll want to use :AnsiEsc to see the following properly! + (using Vince Negri's conceal option or vim 7.3) + + Color Escape Sequences + -   1   2   3   4   5   7  +black black black black black black black +red red red red red red red +green green green green green green green +yellow yellow yellow yellow yellow yellow yellow +blue blue blue blue blue blue blue +magenta magenta magenta magenta magenta magenta magenta +cyan cyan cyan cyan cyan cyan cyan +white white white white white white white + +Black B B B B B B B B +Red R R R R R R R R +Green G G G G G G G G +Yellow Y Y Y Y Y Y Y Y +Blue B B B B B B B B +Magenta M M M M M M M M +Cyan C C C C C C C C +White W W W W W W W W + + Here's the vim logo: + + / \ + / \ + / \ + / \ + +----+ +----+ \ + ++ ++ +- | \ + /| | / / \ +X | | / /O \ + \| | / /+-+ +-\//-+ + | |/ / | | | v | + | / / | | | + +| + | / | |/| |\/|| + +----\ +-+ +-+ ++ + \ / + \ / + + +============================================================================== +3. AnsiEsc History *AnsiEsc-history* {{{1 + v12 Jul 23, 2010 * changed conc to |'cole'| to correspond to vim 7.3's + change + Aug 10, 2010 * (Rainer M Schmid) changed conceallevel setting to + depend on whether the version is before vim 7.3; + for 7.3, also sets concealcursor + * Restores conc/cole/cocu settings when AnsiEsc is + toggled off. + Dec 13, 2010 * Included some additional sequences involving 0 + v11 Apr 20, 2010 * AnsiEsc now supports enabling/disabling via a menu + * [K and [00m now supported (as + grep --color=always issues them) + v10 May 06, 2009 * Three or more codes in an ANSI escape sequence are + supported by building custom syntax and highlighting + commands. + May 20, 2009 * cecutil bugfix + v9 May 12, 2008 * Now in plugin + autoload format. Provides :AnsiEsc + command to toggle Ansi-escape sequence processing. + Jan 01, 2009 * Applies Ignore highlighting to extended Ansi escape + sequences support 256-colors. + Mar 18, 2009 * Includes "rapid blink" ansi escape sequences. Vim + doesn't have a blinking attribute, so such text uses + "standout" for vim and "undercurl" for gvim. + v8 Aug 16, 2006 * Uses undercurl, and so is only available for vim 7.0 + v7 Dec 14, 2004 * Works better with vim2ansi output and Vince Negri's + conceal patch for vim 6.x. + v2 Nov 24, 2004 * This version didn't use Vince Negri's conceal patch + (used Ignore highlighting) + +============================================================================== +Modelines: {{{1 +vim:tw=78:ts=8:ft=help:fdm=marker: diff --git a/vim/doc/CSApprox.txt b/vim/doc/CSApprox.txt new file mode 100644 index 0000000..c151593 --- /dev/null +++ b/vim/doc/CSApprox.txt @@ -0,0 +1,619 @@ +*CSApprox.txt* Bringing GVim colorschemes to the terminal! + + *csapprox* *csapprox.vim* + + _____ ____ ___ ~ + / ___// __// _ | ___ ___ ____ ___ __ __ ~ + / /__ _\ \ / __ | / _ \ / _ \ / __// _ \ \ \ / ~ + \___//___//_/ |_|/ .__// .__//_/ \___//_\_\ ~ + /_/ /_/ ~ + For Vim version 7.0 or newer + Last changed 01 Apr 2009 + + By Matt Wozniski + mjw@drexel.edu + + Reference Manual~ + + *csapprox-toc* + +1. Introduction |csapprox-intro| +2. Requirements |csapprox-requirements| +3. Configuration |csapprox-configure| +4. Rationale/Design |csapprox-design| +5. Known Bugs and Limitations |csapprox-limitations| +6. Appendix - Terminals and Palettes |csapprox-terminal-list| +7. Changelog |csapprox-changelog| +8. Contact Info |csapprox-author| + +The functionality mentioned here is a plugin, see |add-plugin|. +You can avoid loading this plugin by setting the "CSApprox_loaded" global +variable in your |vimrc| file: > + :let g:CSApprox_loaded = 1 + +============================================================================== +1. Introduction *csapprox-intro* + +It's hard to find colorschemes for terminal Vim. Most colorschemes are +written to only support GVim, and don't work at all in terminal Vim. + +This plugin makes GVim-only colorschemes Just Work in terminal Vim, as long +as the terminal supports 88 or 256 colors - and most do these days. This +usually requires no user interaction (but see below for what to do if things +don't Just Work). After getting this plugin happily installed, any time you +use :colorscheme it will do its magic and make the colorscheme Just Work. + +Whenever you change colorschemes using the :colorscheme command this script +will be executed. It will take the colors that the scheme specified for use +in the GUI and use an approximation algorithm to try to gracefully degrade +them to the closest color available in your terminal. If you are running in +a GUI or if your terminal doesn't support 88 or 256 colors, no changes are +made. Also, no changes will be made if the colorscheme seems to have been +high color already. + +If for some reason this transparent method isn't suitable to you (for instance +if your environment can't be configured to meet the |csapprox-requirements|, +or you need to work in Vim 6), another option is also available: using the +|:CSApproxSnapshot| command to create a new GUI/88-/256-color terminal +colorscheme. To use this command, a user would generally start GVim, choose a +colorscheme that sets up the desired colors, and then use |:CSApproxSnapshot| +to create a new colorscheme based on those colors that works in high color +terminals. This method is more flexible than the transparent mode and works +in more places, but also requires more user intervention, and makes it harder +to deal with colorschemes being updated and such. + *:CSApproxSnapshot* +The full syntax for the command is: > + :CSApproxSnapshot[!] /path/to/new/colorscheme +< For example: > + :CSApproxSnapshot ~/.vim/colors/foobar.vim +< +NOTE: The generated colorscheme will only work in 88- and 256-color terminals, + and in GVim. It will not work at all in a terminal with 16 or fewer + colors. There's just no reliable way to approximate down from + 16,777,216 colors to 16 colors, especially without there being any + standard for what those 16 colors look like other than 'orange-ish', + 'red-ish', etc. + +NOTE: Although :CSApproxSnapshot can be used in both GVim and terminal Vim, + the resulting colors might be slightly off when run from terminal Vim. + I can find no way around this; Vim internally sets different colors when + running in a terminal than running in the GUI, and there's no way for + terminal Vim to figure out what color would have been used in GVim. + + *:CSApprox* +A command is also provided to run the approximation manually. This might be +useful if some colors were set outside of a colorscheme file, for instance. +By default, it will not change any colors unless no highlight group is set to +a color above 15, which is CSApprox's normal behavior. This probably isn't +useful in most use cases, though. On the other hand, if a ! is provided, +CSApprox will skip that test and update the cterm value for every highlight +group from the corresponding gui color. Syntax: +> + :CSApprox[!] +< + +============================================================================== +2. Requirements *csapprox-requirements* + +For CSApprox to work, there are 2 major requirements that must be met. + +a) GUI support *csapprox-gui-support* *csapprox-+gui* + +If CSApprox is being used to adjust a scheme's colors transparently, then the +terminal "vim" binary that is being run must be built with GUI support (see +|csapprox-limitations| for an explanation). If |:CSApproxSnapshot| is being +used to create a terminal colorscheme for high color terminals, then the +"vim" binary being used to create the scheme must be built with +gui, but the +scheme can be used in terminal "vim" binaries that weren't built with +gui. +NOTE that creating snapshots with GVim will work better than making them with +Vim, and (obviously) all "gvim" binaries are built with +gui. + +Unfortunately, several Linux distributions only include GUI support in their +"gvim" binary, and not in their "vim" binary. You can check if GUI support is +available with the following command: + :echo has('gui') + +If that prints 0, the first thing to try would be searching for a larger vim +package provided by your distribution, like "vim-enhanced" on RedHat/CentOS +or "vim-gtk" or "vim-gnome" on Debian/Ubuntu. + +If you are unable to obtain a "vim" binary that includes GUI support, but +have a "gvim" binary available, you can probably launch Vim with GUI support +anyway by calling gvim with the |-v| flag in the shell: > + gvim -v + +If the above works, you can remove the need to call "gvim -v" instead of "vim" +all the time by creating a symbolic link from your "gvim" binary to "vim" +somewhere in your $PATH, for example: + sudo ln -s $(which gvim) $(which vim) + +If launching as "gvim -v" doesn"t work, and no package with GUI support is +available, you will need to compile Vim yourself and ensure that GUI support +is included to use CSApprox in its transparent mode, or create a snapshotted +scheme from GVim to use its snapshot mode. If this is inconvenient for you, +make sure that the Vim maintainer for your distribution knows it; they made a +conscious decision to build "vim" without +gui and "gvim" without terminal +support. + +b) Properly configured terminal *csapprox-terminal* + +As said above, many modern terminals support 88 or 256 colors, but most of +these default to setting $TERM to something generic (usually "xterm"). Since +Vim uses the value of the "colors" attribute for the current $TERM in terminfo +to figure out the number of colors used internally as 't_Co', this plugin will +either need for 't_Co' to be set to 88 or 256 in |vimrc|, or for $TERM to be +set to something that implies high color support. Possible choices include +"xterm-256color" for 256 color support and "rxvt-unicode" for 88 color +support. + *csapprox-palettes* +Also, there are three different 256 color cube palettes available and CSApprox +has no way to tell which you're using unless $TERM is set to something that is +specific to the terminal, like "konsole-256color" or "Eterm". Because of this, the +most sane behavior is assuming the user is using the most popular palette, +which is used by all but Konsole and Eterm, whenever $TERM is set to something +generic like "xterm" or "screen". You can override this default, however - +see |csapprox-configure|. + *csapprox-terminal-example* +To turn on high color support without fixing $TERM, you can change t_Co in +your .vimrc, and set either CSApprox_konsole or CSApprox_eterm if appropriate. +One way would be to put something like this into your |vimrc|: +> + if (&term == 'xterm' || &term =~? '^screen') && hostname() == 'my-machine' + " On my machine, I use Konsole with 256 color support + set t_Co=256 + let g:CSApprox_konsole = 1 + endif + +Gnome Terminal, as of the time that I am writing this, doesn't support having +the terminal emulator set $TERM to something adequately descriptive. In cases +like this, something like the following would be appropriate: +> + if &term =~ '^\(xterm\|screen\)$' && $COLORTERM == 'gnome-terminal' + set t_Co=256 + endif + +============================================================================== +3. Configuration *csapprox-configure* + +There are several global variables that can be set to configure the behavior +of CSApprox. They are listed roughly based on the likelihood that the end +user might want to know about them. + +g:CSApprox_loaded *g:CSApprox_loaded* + If set in your |vimrc|, CSApprox is not loaded. Has no effect on + snapshotted schemes. + +g:CSApprox_verbose_level *g:CSApprox_verbose_level* + When CSApprox is run, the 'verbose' option will be temporarily raised to + the value held in this variable unless it is already greater. The default + value is 1, which allows CSApprox to default to warning whenever something + is wrong, even if it is recoverable, but allows the user to quiet us if he + wants by changing this variable to 0. The most important messages will be + shown at verbosity level 1; some less important ones will be shown at + higher verbosity levels. Has no effect on snapshotted schemes. + +g:CSApprox_eterm *g:CSApprox_eterm* + If set to a non-zero number, CSApprox will use the Eterm palette when + 'term' is set to "xterm" or begins with "screen". Otherwise, the xterm + palette would be used. This also affects snapshotted schemes. + +g:CSApprox_konsole *g:CSApprox_konsole* + If set to a non-zero number, CSApprox will use the Konsole palette when + 'term' is set to "xterm" or begins with "screen". Otherwise, the xterm + palette would be used. This also affects snapshotted schemes. + +g:CSApprox_attr_map *g:CSApprox_attr_map* + Since some attributes (like 'guisp') can't be used in a terminal, and + others (like 'italic') are often very ugly in terminals, a generic way to + map between a requested attribute and another attribute is included. This + variable should be set to a Dictionary, where the keys are strings + representing the attributes the author wanted set, and the values are the + strings that the user wants set instead. If a value is '', it means the + attribute should just be ignored. The default is to replace 'italic' with + 'underline', and to use 'fg' instead of 'sp': > + let g:CSApprox_attr_map = { 'italic' : 'underline', 'sp' : 'fg' } +< + Your author prefers disabling bold and italic entirely, so uses this: > + let g:CSApprox_attr_map = { 'bold' : '', 'italic' : '', 'sp' : 'fg' } +< + + Note: This transformation is considered at the time a snapshotted scheme + is created, rather than when it is used. + + Note: You can only map an attribute representing a color to another + attribute representing a color; likewise with boolean attributes. + After all, sp -> bold and italic -> fg would be nonsensical. + + *g:CSApprox_hook_pre* *g:CSApprox_hook_{scheme}_pre* + *g:CSApprox_hook_post* *g:CSApprox_hook_{scheme}_post* +g:CSApprox_hook_pre +g:CSApprox_hook_post +g:CSApprox_hook_{scheme}_pre +g:CSApprox_hook_{scheme}_post *csapprox-hooks* + These variables provide a method for adjusting tweaking the approximation + algorithm, either for all schemes, or on a per scheme basis. For + snapshotted schemes, these will only take effect when the snapshotted + scheme is created, rather than when it is used. Each of these variables + may be set to either a String containing a command to be :execute'd, or a + List of such Strings. The _pre hooks are executed before any + approximations have been done. In order to affect the approximation at + this stage, you would need to change the gui colors for a group; the cterm + colors will then be approximated from those gui colors. Example: +> + let g:CSApprox_hook_pre = 'hi Comment guibg=#ffddff' +< + The advantage to tweaking the colors at this stage is that CSApprox will + handle approximating the given gui colors to the proper cterm colors, + regardless of the number of colors the terminal supports. The + disadvantage is that certain things aren't possible, including clearing + the background or foreground color for a group, selecting a precise cterm + color to be used, and overriding the mappings made by g:CSApprox_attr_map. + Another notable disadvantage is that overriding things at this level will + actually affect the gui colors, in case the :gui is used to start gvim + from the running vim instance. + + To overcome these disadvantages, the _post hooks are provided. These + hooks will be executed only after all approximations have been completed. + At this stage, in order to have changes appear the cterm* colors must be + modified. For example: + *csapprox-transparency* +> + let g:CSApprox_hook_post = ['hi Normal ctermbg=NONE ctermfg=NONE', + \ 'hi NonText ctermbg=NONE ctermfg=NONE' ] +< + Setting g:CSApprox_hook_post as shown above will clear the background of + the Normal and NonText groups, forcing the terminal's default background + color to be used instead, including any pseudotransparency done by that + terminal emulator. As noted, though, the _post functions do not allow + CSApprox to approximate the colors. This may be desired, but if this is + an inconvenience the function named by g:CSApprox_approximator_function + can still be called manually. For example: +> + let g:CSApprox_hook_post = 'exe "hi Comment ctermbg="' + \ . '. g:CSApprox_approximator_function(0xA0,0x50,0x35)' +< + The _{scheme}_ versions are exactly like their counterparts, except that + they will only be executed if the value of g:colors_name matches the + scheme name embedded in the variable name. They will be executed after + the corresponding hook without _{scheme}_, which provides a way to + override a less specific hook with a more specific one. For example, to + clear the Normal and NonText groups, but only for the colorscheme + "desert", one could do the following: +> + let g:CSApprox_hook_desert_post = ['hi Normal ctermbg=NONE ctermfg=NONE', + \ 'hi NonText ctermbg=NONE ctermfg=NONE' ] +< + One final example: If you want CSApprox to be active for nearly all + colorschemes, but want one or two particular schemes to be ignored, you + can take advantage of the CSApprox logic that skips over any color scheme + that is already high color by setting a color to a number above 255. Note + that most colors greater than 15 will work, but some will not - 256 should + always work. For instance, you can prevent CSApprox from modifying the + colors of the zellner colorscheme like this: +> + let g:CSApprox_hook_zellner_pre = 'hi _FakeGroup ctermbg=256' +< + NOTE: Any characters that would stop the string stored in g:colors_name + from being a valid variable name will be removed before the + _{scheme}_ hook is searched. Basically, this means that first all + characters that are neither alphanumeric nor underscore will be + removed, then any leading digits will be removed. So, for a + colorscheme named "123 foo_bar-baz456.vim", the hook searched for + will be, eg, g:CSApprox_hook_foo_barbaz456_post + +g:CSApprox_use_showrgb *g:CSApprox_use_showrgb* + By default, CSApprox will use a built in mapping of color names to values. + This optimization greatly helps speed, but means that colors addressed by + name might not match up perfectly between gvim (which uses the system's + real rgb database) and CSApprox (which uses the builtin database). To + force CSApprox to try the systemwide database first, and only fall back on + the builtin database if it isn't available, set this variable non-zero. + +g:CSApprox_approximator_function *g:CSApprox_approximator_function* + If the default approximation function doesn't work well enough, the user + (or another author wishing to extend this plugin) can write another + approximation function. This function should take three numbers, + representing r, g, and b in decimal, and return the index on the color + cube that best matches those colors. Assigning a |Funcref| to this + variable will override the default approximator with the one the Funcref + references. This option will take effect at the time a snapshotted scheme + is created, rather than when it's used. + +g:CSApprox_redirfallback *g:CSApprox_redirfallback* + Until Vim 7.2.052, there was a bug in the Vim function synIDattr() that + made it impossible to determine syntax information about the |guisp| + attribute. CSApprox includes a workaround for this problem, as well as a + test that ought to disable this workaround if synIDattr() works properly. + If this test should happen to give improper results somehow, the user can + force the behavior with this variable. When set to 1, the workaround will + always be used, and when set to 0, synIDattr() is blindly used. Needless + to say, if this automatic detection should ever fail, the author would + like to be notified! This option will take effect at the time a + snapshotted scheme is created, rather than when it's used. + +============================================================================== +4. Rationale/Design *csapprox-design* + +There is a wealth of colorschemes available for Vim. Unfortunately, since +traditional terminal emulators have only supported 2, 8 or 16 colors, +colorscheme authors have tended to avoid writing colorschemes for terminal +Vim, sticking instead to GVim. Even now that nearly every popular terminal +supports either 88 or 256 colors, few colorschemes are written to support +them. This may be because the terminal color codes are just numbers from 0 to +87 or 255 with no semantic meaning, or because the same number doesn't yield +the same color in all terminals, or simply because the colorscheme author +doesn't use the terminal and doesn't want to take the time to support +terminals. + +Whatever the reason, this leaves users of many modern terminal emulators in +the awkward position of having a terminal emulator that supports many colors, +but having very few colorschemes that were written to utilize those colors. + +This is where CSApprox comes in. It attempts to fill this void allowing GVim +colorschemes to be used in terminal Vim. CSApprox has two distinct modes of +operation. In the first mode, it attempts to make GVim colorschemes +transparently backwards compatible with terminal Vim in a high color terminal. +Basically, whenever a colorscheme is run it should set some colors for the +GUI, and this script will then run and attempt to figure out the closest color +available in the terminal's color palette to the color the scheme author asked +for. Unfortunately, this does not work well all the time, and it has some +limitations (see |csapprox-limitations|). Most of the time, however, this +gives a very close approximation to the GVim colors without requiring any +changes to the colorscheme, or any user interaction. It only requires that +the plugin be installed on the machine where Vim is being run, and that the +user's environment meets the needs specified at |csapprox-requirements|. In +the event that this doesn't work, a second option - using :CSApproxSnapshot +to create a new, 88-/256-color capable colorscheme - is available. + +Ideally, the aim is for CSApprox to be completely transparent to the user. +This is why the approach I take is entirely different from the GuiColorScheme +script, which will break on any but the simplest colorschemes. Unfortunately, +given the difficulty of determining exactly which terminal emulator the user +is running, and what features it supports, and which color palette it's using, +perfect transparency is difficult. So, to this end, I've attempted to default +to settings that make it unlikely that this script ever makes things worse +(this is why I chose not to override t_Co to 256 myself), and I've attempted +to make it easy to override my choice of defaults when necessary (through +g:CSApprox_approximator_function, g:CSApprox_konsole, g:CSApprox_eterm, +g:CSApprox_attr_map, etc). + +In the event that the transparent solution is undesirable, or that the user's +environment can't be configured to allow it (no GVim and no Vim with +gui, for +instance), |:CSApproxSnapshot| should provide a workable alternative - less +cool, and less flexible, but it will work in more environments, and the +snapshotted colorscheme will even work in Vim 6. + +If any of my design choices seem to be causing extra work with no real +advantages, though, I'd like to hear about it. Feel free to email me with any +improvements or complaints. + +============================================================================== +5. Known Bugs and Limitations *csapprox-limitations* + +GUI support is required for transparently adapting schemes. + + There is nothing I can do about this given my chosen design. CSApprox works + by being notified every time a colorscheme sets some GUI colors, then + approximating those colors to similar terminal colors. Unfortunately, when + Vim is not built with GUI support, it doesn't bother to store the GUI + colors, so querying for them fails. This leaves me completely unable to + tell what the colorscheme was trying to do. See |csapprox-+gui| for some + potential workarounds if your distribution doesn't provide a Vim with +gui. + +User intervention is sometimes required for information about the terminal. + + This is really an insurmountable problem. Unfortunately, most terminal + emulators default to setting $TERM to 'xterm', even when they're not really + compatible with an xterm. $TERM is really the only reliable way to + find anything at all out about the terminal you're running in, so there's no + way to know if the terminal supports 88 or 256 colors without either the + terminal telling me (using $TERM) or the user telling me (using 't_Co'). + Similarly, unless $TERM is set to something that implies a certain color + palette ought to be used, there's no way for me to know, so I'm forced to + default to the most common, xterm's palette, and allow the user to override + my choice with |g:CSApprox_konsole| or |g:CSApprox_eterm|. An example of + configuring Vim to work around a terminal where $TERM is set to something + generic without configuring the terminal properly is shown at + |csapprox-terminal-example|. + +Some colorschemes could fail to be converted if they try to be too smart. + + A colorscheme could decide to only set colors for the mode Vim is running + in. If a scheme only sets GUI colors when the GUI is running, instead of + using the usual approach of setting all colors and letting Vim choose which + to use, my approach falls apart. My method for figuring out what the scheme + author wants the scheme to look like absolutely depends upon him setting the + GUI colors in all modes. Fortunately, the few colorschemes that do this + seem to be, by and large, intended for 256 color terminals already, meaning + that skipping them is the proper behavior. Note that this will only affect + transparently adapted schemes and snapshots made from terminal Vim; + snapshots made from GVim are immune to this problem. + +Transparently adapting schemes is slow. + + For me, it takes Vim's startup time from 0.15 seconds to 0.35 seconds. This + is probably still acceptable, but it is definitely worth trying to cut down + on this time in future versions. Snapshotted schemes are faster to use, + since all of the hard evaluations are made when they're made instead of when + they're used. + + NOTE: As of CSApprox 3.50, the overhead is down to about 0.10 seconds on my + test machine. + +It isn't possible to approximate only a particular set of groups. + + Unfortunately, the :CSApprox command will always update all groups, even if + only a small set of groups has changed. A future improvement would be to + provide a function called, say, CSApprox(), that takes an optional list of + highlight groups (default: all) and only does approximation for those + groups. + +============================================================================== +6. Appendix - Terminals and Palettes *csapprox-terminal-list* + +What follows is a list of terminals known to have and known not to have high +color support. This list is certainly incomplete; feel free to contact me +with more to add to either list. + + *csapprox-terminals-good* +------------------------------- Good Terminals ------------------------------- + +The most recent versions of each of these terminals can be compiled with +either 88 or 256 color support. + + *csapprox-xterm* +xterm: + 256 color palette + Colors composed of: [ 0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF ] + Greys composed of: [ 0x08, 0x12, 0x1C, 0x26, 0x30, 0x3A, 0x44, 0x4E, + 0x58, 0x62, 0x6C, 0x76, 0x80, 0x8A, 0x94, 0x9E, + 0xA8, 0xB2, 0xBC, 0xC6, 0xD0, 0xDA, 0xE4, 0xEE ] + + *csapprox-urxvt* +rxvt-unicode (urxvt): + 88 colors by default (but a patch is available to use xterm's palette) + Colors composed of: [ 0x00, 0x8B, 0xCD, 0xFF ] + Greys composed of: [ 0x2E, 0x5C, 0x73, 0x8B, 0xA2, 0xB9, 0xD0, 0xE7 ] + + *csapprox-pterm* *csapprox-putty* +PuTTY (pterm; putty.exe): + 256 colors; same palette as xterm + + *csapprox-mrxvt* +Mrxvt (mrxvt): + 256 colors; same palette as xterm + + *csapprox-gnome-terminal* +GNOME Terminal (gnome-terminal): + 256 colors; same palette as xterm + + *csapprox-roxterm* +ROXTerm (roxterm): + 256 colors; same palette as xterm + + *csapprox-xfce4-terminal* +Terminal (xfce4-terminal): + 256 colors; same palette as xterm + + *csapprox-iterm.app* +iTerm (iTerm.app): + 256 colors; same palette as xterm + *csapprox-konsole* +Konsole (konsole): + 256 color palette + Colors composed of: [ 0x00, 0x33, 0x66, 0x99, 0xCC, 0xFF ] + Same greyscales as xterm + You should set the g:CSApprox_konsole variable unless $TERM begins with + 'konsole', case insensitive + + *csapprox-eterm* +eterm (Eterm): + 256 color palette + Colors composed of: [ 0x00, 0x2A, 0x55, 0x7F, 0xAA, 0xD4 ] + Same greyscales as xterm + You should set the g:CSApprox_eterm variable unless $TERM begins with + 'eterm', case insensitive + + *csapprox-screen* +GNU Screen (screen): + 256 color support. Internally, uses the xterm palette, but this is only + relevant when running screen inside a terminal with fewer than 256 colors, + in which case screen will attempt to map between its own 256 color cube + and the colors supported by the real terminal to the best of its ability, + in much the same way as CSApprox maps between GUI and terminal colors. + + *csapprox-terminals-bad* +-------------------------------- Bad Terminals ------------------------------- +This is a list of terminals known _not_ to have high color support. If any of +these terminals have high color support added at some point in the future, +please tell me and I'll update this information. + + *csapprox-terminal.app* +Terminal.app (as of OS X 10.5.2) + + *csapprox-aterm* +aterm (as of version 1.00.01) + + *csapprox-xiterm* +xiterm (as of version 0.5) + + *csapprox-wterm* +wterm (as of version 6.2.9) + + *csapprox-mlterm* +mlterm (as of version 2.9.4) + + *csapprox-kterm* +kterm (as of version 6.2.0) + +============================================================================== +7. Changelog *csapprox-changelog* + + 3.50 01 Apr 2009 Fix a major regression that prevented the Eterm and + Konsole colors from being correctly snapshotted + + Fix a related bug causing incorrect terminal colors + after calling :CSApproxSnapshot + + Fix a bug causing black to be used instead of dark grey + + Have snapshots calculate g:colors_name programmatically + + Introduce many tweaks for better speed + + Clarify some things at :help csapprox-terminal-example + + Default to using our own list of rgb.txt colors rather + than searching, for performance. Add a new variable, + g:CSApprox_use_showrgb, which forces us to try finding + the colors using the "showrgb" program instead, and fall + back on our own list if it isn't available + + Remove g:CSApprox_extra_rgb_txt_dirs - not needed in + light of the above change + + 3.05 31 Jan 2009 Fix a harmless "Undefined variable" error in + :CSApproxSnapshot + + Fix a behavioral bug when dumping out colors defined + external to the scheme. + + 3.00 21 Jan 2009 Update the docs for better info on :CSApproxSnapshot + + Allow snapshotted schemes to work on Vim 6, and work + properly in Konsole and Eterm (thanks David Majnemer!) + + Fix a bug causing a syntax error when using GVim while + CSApprox was loaded. (thanks again, David Majnemer!) + + 2.00 14 Dec 2008 Add a hooks system, allowing users to specify a command + to run, either before or after the approximation + algorithm is run, for all schemes or one specific one. + + Also rewrite :CSApproxSnapshot to be more maintainable + and less of a hack, and fix several bugs that it + contained. + + 1.50 19 Nov 2008 Add CSApproxSnapshot command, as an alternative solution + when the user has gvim or a vim with gui support, but + sometimes needs to use a vim without gui support. + + 1.10 28 Oct 2008 Enable running on systems with no rgb.txt (Penn Su) + Begin distributing a copy of rgb.txt with CSApprox + + 1.00 04 Oct 2008 First public release + + 0.90 14 Sep 2008 Initial beta release + +============================================================================== +8. Contact Info *csapprox-author* + +Your author, a Vim nerd with some free time, was sick of seeing terminals +always get the short end of the stick. He'd like to be notified of any +problems you find - after all, he took the time to write all this lovely +documentation, and this plugin, which took more time than you could possibly +imagine to get working transparently for every colorscheme he could get his +hands on. You can contact him with any problems or praises at mjw@drexel.edu + +============================================================================== +vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl: diff --git a/vim/doc/EasyGrep.txt b/vim/doc/EasyGrep.txt new file mode 100644 index 0000000..c3ff4d0 --- /dev/null +++ b/vim/doc/EasyGrep.txt @@ -0,0 +1,547 @@ +*EasyGrep.txt* +============================================================================== + EasyGrep *EasyGrep* +============================================================================== + +Author: Dan Price vim@danprice.fastmail.net *EasyGrep_Author* + +Goal: To be an easy to use, powerful find and |EasyGrep_Motivation| + replace tool for users of all skill levels. +Version: 0.96 |EasyGrep_History| + +License: Public domain, no restrictions whatsoever |EasyGrep_License| +Contribute: Please report any bugs or suggestions |EasyGrep_Bugs| + to the address above. |EasyGrep_Future| + + +============================================================================== + Table of Contents *EasyGrep_Contents* +============================================================================== + + + 1. Motivation.................|EasyGrep_Motivation| + 2. Operation..................|EasyGrep_Operation| + 2.1 Modes..................|EasyGrep_OperationModes| + 3. Keymaps....................|EasyGrep_Keymaps| + 3.1 Option Mappings........|EasyGrep_KeymapsOptions| + 3.2 Mapping Customization..|EasyGrep_KeymapsCustomization| + 4. Commands...................|EasyGrep_Commands| + 5. Options....................|EasyGrep_Options| + 5.1 Summary...............|EasyGrep_OptionsSummary| + 5.2 Explorer..............|EasyGrep_OptionsExplorer| + 5.3 Details...............|EasyGrep_OptionsDetail| + 6. Bugs.......................|EasyGrep_Bugs| + 7. Future.....................|EasyGrep_Future| + 8. History....................|EasyGrep_History| + 9. License....................|EasyGrep_License| + + +============================================================================== + Motivation *EasyGrep_Motivation* +============================================================================== + +EasyGrep's main goal is to make search and replace in files easy. Other Vim +plugins provide similar functionality, but few provide the same level of +functionality with as little configuration as EasyGrep does. In the common +case, all it takes to search for a string across multiple files is three +keypresses: vv. No clicks, no commands, no project/tags setup -- just +three keys. When you need a substitution, it also takes the same number of +keys to start a replace in files. After using EasyGrep, you'll wonder at how +you got around without it. + +While EasyGrep's default configuration will satisfy many users, it provides +more than a dozen options for those who need more control |EasyGrep_Options|. +When you need to change options, EasyGrep provides an options explorer that +indicates which files will be searched and allows visual customization of its +options |EasyGrep_OptionsExplorer|. When this isn't fast enough, EasyGrep +provides key mappings for each option to toggle its value +|EasyGrep_KeymapsOptions|. If you can't find an option you need, contact me +|EasyGrep_Author| and if it doesn't already exist, we'll make it happen. + +I hope that EasyGrep makes Vim more fun, productive, and easy for you to use. + + Happy Vimming! + + +============================================================================== + Operation *EasyGrep_Operation* +============================================================================== + +EasyGrep makes using Vim's grep capabilities easier. When using EasyGrep, +searching for a word is as easy as typing a three keypress mapping +|EasyGrep_Keymaps|. In addition to keymaps, search and replace can be invoked +through commands |EasyGrep_Commands|. + +To determine which files to search, EasyGrep provides three modes, described +in the next section. + + +Search Modes |EasyGrep_OperationModes| + +All + All files will be searched (default). + +Buffers + Files currently open in vim will be searched. Recursion has no meaning in + this mode, and will be turned off. + +TrackExt + Files that match the extension of the currently opened file will be + searched. Additionally, this extension can be mapped to a user defined + set of extensions that will also be searched |EasyGrepFileAssociations|. + + For example: in the default configuration, when test.cpp is open, files + that match any one of + + *.cpp *.hpp *.cxx *.hxx *.cc *.c *.h + + will be searched when a Grep is initiated. I find this mode to be the + most useful. + +User + Specify a custom set of file extensions to search. + + +These modes can be quickly changed through the |EasyGrep_OptionsExplorer| or +|EasyGrep_KeymapsOptions|. + + +============================================================================== + Keymaps *EasyGrep_Keymaps* +============================================================================== + +EasyGrep uses Vim's leader key, which is by default '\'. For information on +this key, type ":help mapleader". + +vv - Grep for the word under the cursor, match all occurences, + like 'g*'. See ":help gstar". +vV - Grep for the word under the cursor, match whole word, like + '*'. See ":help star". +va - Like vv, but add to existing list. +vA - Like vV, but add to existing list. + +vr - Perform a global search on the word under the cursor + and prompt for a pattern with which to replace it. +vR - Like vr, but match whole word. + +Each of these commands has an 'all occurences' and 'whole word' option, +designated by the case of the last character. If you would prefer that these +be reversed, see |EasyGrepInvertWholeWord|. + +In addition to grepping the word under the cursor, text may be visually +selected and these mappings may be used analogously to as they are used above. +Visual selections will automatically be escaped so as not to confuse the +selection with a regular expression. + + e.g. Selecting the text inside the quotes here "/" will match + against "\" but not against "word". + +To search with a regular expression, see the :Grep command |EasyGrep_Commands| + +Each of the above commands will search files according to settings +controlled by: + +vo - Open an options explorer to select the files to search in and + set grep options. + +For the options provided, see |EasyGrep_Options|. + + + *EasyGrep_KeymapsOptions* + +For each of the options presented in the options explorer, there is a mapping +that allows a direct change of this option. The pattern is vy* , +where star is the value listed in the options window for each of the options. + + e.g. To toggle recursive mode, type '\vyr' + +See |EasyGrepOptionPrefix| to change the prefix from '\vy' or to turn these +keymappings off. + + + *EasyGrep_KeymapsCustomization* + +Beyond EasyGrepOptionPrefix, other keymaps may be remapped to your liking. +See the "Keymaps" section of EasyGrep.vim for the names of these items. + +Mappings take the form: + + map (keycombination) (MappingName) +e.g. + map ,op EgMapGrepOptions + + +============================================================================== + Commands *EasyGrep_Commands* +============================================================================== + +:Grep [arg] + Search for the specified arg, like vv. When an ! is added, + search like vV + +:GrepAdd [arg] + Search for the specified arg, add to existing file list, as in + va. When an ! is added, search like vA + + The Above commands can additionally accept command switches: + -r Perform a recursive search + -R Perform a recursive search + -i Perform a case-insensitive search + -I Perform a case-sensitive search + +:Replace [target] [replacement] +:Replace /[target]/[replacement]/ + Perform a global search and replace. The function searches + the same set of files a grep for the desired target and opens a dialog to + confirm replacement. In the second, forward slash delineated form, back + and forward slashes must be explicitly escaped. + +:ReplaceUndo + Undoes the last :Replace operation. Does not stack successive + searches; only the last replace may be undone. This function may not + work well when edits are made between a call to Replace and a call to + ReplaceUndo. + + Note: currently implemented ReplaceUndo will fail to restore replacements + that make use of backreferences.|EasyGrep_Bugs| + +:GrepOptions + Open the options explorer to set options. + + +For each of the search and replace commands, searching with regular +expressions is supported. Note that regular expressions are handled as +indicated by the 'magic' option (see ":help 'magic'"). + + +============================================================================== + Options *EasyGrep_Options* +============================================================================== + +Options Summary *EasyGrep_OptionsSummary* + + Option Description +------------------------------------------------------------------------------ +|EasyGrepFileAssociations| Specifies the location of the EasyGrep + file associations +------------------------------------------------------------------------------ +|EasyGrepMode| Mode of operation +------------------------------------------------------------------------------ +|EasyGrepCommand| Whether to use vimgrep or grepprg +------------------------------------------------------------------------------ +|EasyGrepRecursive| Recursive searching +------------------------------------------------------------------------------ +|EasyGrepIgnoreCase| Case-sensitivity in searches +------------------------------------------------------------------------------ +|EasyGrepHidden| Include hidden files in searches +------------------------------------------------------------------------------ +|EasyGrepAllOptionsInExplorer| How many options to show in the explorer +------------------------------------------------------------------------------ +|EasyGrepWindow| Quickfix or location list +------------------------------------------------------------------------------ +|EasyGrepOpenWindowOnMatch| Open grep window on successful match +------------------------------------------------------------------------------ +|EasyGrepEveryMatch| Match multiple times per line +------------------------------------------------------------------------------ +|EasyGrepJumpToMatch| Jump to first match +------------------------------------------------------------------------------ +|EasyGrepSearchCurrentBufferDir| Whether to search current buffers dir + in addition to working dir +------------------------------------------------------------------------------ +|EasyGrepInvertWholeWord| Invert the meaning of whole word for vv + and vV keymaps +------------------------------------------------------------------------------ +|EasyGrepFileAssociationsInExplorer| Whether to show the file associations + list in the options explorer +------------------------------------------------------------------------------ +|EasyGrepReplaceWindowMode| Controls whether to use tabs or splits + when replacing in files +------------------------------------------------------------------------------ +|EasyGrepReplaceAllPerFile| Replace on per file or global basis +------------------------------------------------------------------------------ +|EasyGrepOptionPrefix| Specify the keymap for toggling options +------------------------------------------------------------------------------ +|EasyGrepExtraWarnings| Whether to show extra warnings +------------------------------------------------------------------------------ + + +Options Explorer *EasyGrep_OptionsExplorer* + + To invoke the options explorer, type '\vo' (default). The options + explorer presents all of EasyGrep's customizable options and provides + information on the file patterns that will be searched when invoking a + Grep. + + A useful exercise for beginners is to toggle between EasyGrep's options + and modes (|EasyGrep_OperationModes|) and type 'e' to see which files will + be searched for a given configuration. + + +Options Details *EasyGrep_OptionsDetail* + +*EasyGrepFileAssociations* +Specifies the location of a file that contains groups of files that should be +associated with one another. When set to an empty string "", no file read +will be attempted. + +This file has a simple syntax used to logically link different files types. +A simple configuration is shown below: + + C=*.c *.h + C++=*.cpp *.hpp *.cxx *.hxx *.cc + VHDL=*.hdl *.vhd *.vhdl *.vbe *.vst + Web=*.htm *.html *.js + +For example, in this configuration, whenever the active file has the .c +extension, files with the .h extension will also be search. A special feature +of this syntax is the ability to link groups together. For example, the C++ +group links to all files that are in the C group. + + +*EasyGrepMode* +Specifies the mode in which to start. +0 - All files +1 - Open Buffers +2 - Track the current extension + +Note: I find option 2 to be the most powerful, but option 0 is activated by +default because it is the most intuitive for users who haven't take the +time to understand how the script works. See |EasyGrep_OperationModes|. + +*EasyGrepCommand* +Specifies the grep command to use. + +0 - vimgrep +1 - grep (follows grepprg) + +*EasyGrepRecursive* +Specifies that recursive search be activated on start. + +*EasyGrepIgnoreCase* +Specifies the case sensitivity of searches. Note that this can be further +overrided for vimgrep searches with \c and \C. + +*EasyGrepHidden* +Specifies that hidden files search be activated on start. Note that hidden +implies the unix meaning of those files that are prepended with a '.', and not +the Windows meaning of those files with a hidden attribute. + +*EasyGrepAllOptionsInExplorer* +Specifies that all options be included in the explorer window. + +Note: settting this option is very useful when you want to try out and +learn all of the options available in this script. + +*EasyGrepWindow* +Specifies the window to use for matches. +0 - quickfix +1 - location list + +*EasyGrepOpenWindowOnMatch* +Specifies whether to open the with matches after a search. + +*EasyGrepEveryMatch* +Specifies that multiple matches on the same line be treated as different +matches, like the g option to vimgrep. + +*EasyGrepJumpToMatch* +Specifies that jump to first match be activated, like the j option to vimgrep. + +*EasyGrepSearchCurrentBufferDir* +Setting this option causes EasyGrep to search the current buffer's +directory in addition to the current working directory. + +*EasyGrepInvertWholeWord* +Specifies that the whole word search keys should be inverted from their +default meaning. For example, when this option is activated, vv +matches whole word, while vV matches everything that includes the +word. Note that this affects both keymappings and commands. + +*EasyGrepFileAssociationsInExplorer* +Specifies whether to show the file associations list in the options explorer +window. + +*EasyGrepOptionPrefix* +Specifies the prefix that is used when building keymaps for setting options +directly. To specify that no option keymaps be created, set this to the empty +string. + +Default: + let g:EasyGrepOptionPrefix='vy' +Custom: + let g:EasyGrepOptionPrefix=',oe' +None: + let g:EasyGrepOptionPrefix='' + + +*EasyGrepReplaceWindowMode* +Specifies the mode that the script will use when a buffer needs to be changed +while performing a global replace. +0 - Open a new tab for each window +1 - Perform a split of the current window with the next window +2 - autowriteall; create no new windows + +Note: Option 1 has the possibility of running out of vertical space to +split more windows. Actions are taken to make this a non-issue, but this +option can often be more clunky than other options. +Note: As a result of the limitation above, option 0 is the only mode that +won't require saving the files during a replace. + +*EasyGrepReplaceAllPerFile* +Specifies that selecting 'a' (for all) will apply the replacements on a per +file basis, as opposed to globally as is the default. + +*EasyGrepExtraWarnings* +Specifies that warnings be issued for conditions that may be valid but confuse +some users. + + +============================================================================== + Future *EasyGrep_Future* +============================================================================== + +------------------------------------------------------------------------------ +Show search progress? +------------------------------------------------------------------------------ +Allow entries in the file associations list to be regular expressions +------------------------------------------------------------------------------ +Idea: create capability to include paths other than the active directory (and +below) in a search. e.g. ../../include, $INCLUDE, etc. +------------------------------------------------------------------------------ +Idea: set file/directory exclusions +------------------------------------------------------------------------------ + + +============================================================================== + Bugs *EasyGrep_Bugs* +============================================================================== + +If you discover any bugs not listed here, please contact the |EasyGrep_Author| + +------------------------------------------------------------------------------ +ReplaceUndo can't correctly restore replacements that use numbered +sub-expressions +------------------------------------------------------------------------------ +ReplaceUndo can't currently replace the text accurately in all cases if case +insensitivity is turned on +------------------------------------------------------------------------------ +Increase the granularity of the match inside of a Replace call so that you can +individually decide per line +------------------------------------------------------------------------------ +Cursorline doesn't always follow to the line at which the replacement is going +to happen +------------------------------------------------------------------------------ +Successive warning messages can hide a previous message +------------------------------------------------------------------------------ +ReplaceUndo opens a window even if it is already open? +------------------------------------------------------------------------------ +Report that a swap file can't be opened +------------------------------------------------------------------------------ +Don't warn when the current file will actually be searched because recursion +is on and it is below the current directory +------------------------------------------------------------------------------ + + + +============================================================================== + History *EasyGrep_History* +============================================================================== + + 0.96 + Feature: Expanded upon the list of file associations + Feature: Expanded searches to the current buffer's directory + in addition to the current working directory + Feature: Added command line arguments to :Grep and :Replace for + recursive searches and case sensitivity + Feature: Added toggle for window replace mode + Feature: Added toggle for showing file associations list in options + explorer + Bugfix: Case insensitivity would fail in replacing some patterns + 0.95 + Feature: Added search and replace on visual selections + Feature: Improved Grepping for items that can be interpreted as regular + expressions. Selections are assumed to be literal, whereas explicit + commands are assumed to be regular expressions. + Feature: Removed option g:EasyGrepNoDirectMappings in favor of + g:EasyGrepOptionPrefix, which allows the option prefix to be changed. + Bugfix: The tracked extension would sometimes fail to be updated when + switching between buffers + Documentation: Split the documentation into its own file; greatly + expanded upon its contents + Change: Activating a mode that is already activated will no longer + deactivate it + Change: GrepOptions no longer accepts an argument; use user mode instead + Change: Clarified mapping names; custom mappings will need to + be reset. + 0.9 + Feature: Added forward slash delineated pattern to the Replace command + e.g. :Replace /target/replacement/ + that allows more complicated replacements; you can now work with + patterns that have spaces in them. + Bugfix: If cursorline is off at the start of a replace, now ensuring + that cursorline is turned off for all buffers, and not just the last one + Bugfix: fixed an issue with an extra tab being opened during a + replacement + 0.8 + Implemented case sensitivity that is independent of ignorecase, thanks + to Doro Wu for contributing to this functionality + Changed shortcut key for hidden files from 'i' to 'h' + 0.7 + Expanded search of EasyGrepFileAssociations list to every component of + 'runtimepath'. This solves a starting message for those who placed + EasyGrepFileAssociations in a location other than the first location in + 'runtimepath'. + 0.6 + Fixed paths with spaces in them + Folds will now be disabled where replacements are to be made + Fixed an error with checking for extra warnings + Better highlighting while replacing + Recursive mode can no longer be activated when Buffers mode is activated + 0.5 + Fixed an issue with tracking the file extension where sometimes the + desired extension wouldn't be registered. + Better reporting when no files match. + Now warning when searching from a working directory that doesn't match + the current file's directory. + Added g:EasyGrepExtraWarnings option. + 0.4 + Improved Replace and ReplaceUndo + Added two configurable modes for how the windows operate when doing a + global replace. + Fixed an issue with linked filetypes. + 0.3 + Added experimental :Replace and :ReplaceUndo commands; keymapped + vr for :Replace + Improved response when no matches + 0.2 + Added option to toggle showing fewer or more options; showing fewer + options by default. + Added option '?' to print the current configuration and save it to a + register. + Now creating direct mappings by default; see g:EasyGrepNoDirectMappings + to turn this off. + 0.1 + Initial version + + +============================================================================== + License *EasyGrep_License* +============================================================================== + + Public domain, no restrictions whatsoever + +When writing EasyGrep, I wanted it to be free in the broadest sense. Of +course, most (if not all) plugins for Vim are free, but I wanted mine to be +freer still: I've released EasyGrep in the public domain. It took a lot of +time and learning to get EasyGrep to work, and I want anyone to take advantage +of my contribution. If you see some (or many) snippets of EasyGrep's code +that you need, use it -- you don't need to ask me, think about any copyright, +worry about violating a license, or even note that the code came from me, just +use it. My only request is that if you are thinking of forking EasyGrep (or +enhancing, as some authors claim to do), please contact me to let me know what +you feel is lacking in EasyGrep, and I promise I'll be receptive to correcting +these issues. + + +============================================================================== +vim:tw=78:ts=4:ft=help:norl:fdm=marker diff --git a/vim/doc/IndentAnything.txt b/vim/doc/IndentAnything.txt new file mode 100644 index 0000000..6ae1dbc --- /dev/null +++ b/vim/doc/IndentAnything.txt @@ -0,0 +1,184 @@ +*IndentAnything* For Vim version 7.0 + + +The IndentAnything plugin is intended to make it easier to write new +indentation scripts and/or supplement existing ones. It makes the assumption +that all indentable languages have similar characteristics: + + - blocks of code over multiple lines + - continuation lines + - comments + +The rules of indentation are specified in a series of variables. + +================================================================================ + + *b:defaultIndentExpr* +b:defaultIndentExpr + + If defined, this value is executed to find the starting indent for a + line. The default is to use the indentation of the previous code + line. But IndentAnything can be used to suplement other, existing + indentation scripts. + + For example: +> + let b:defaultIndentExpr = &indentexpr + setlocal indentexpr=IndentAnything() +< + + *b:indentTrios* +b:indentTrios + + This is the core of indenting anything. The original version of this + script was meant to be a simple "get indentation inside parenthesis". + But a pair of paranthesis is just like any other pair of characters or + keywords that specify a block of code that should be indented. + + This is a list of indent "trios" (start, middle, end). The values + kept in this variable are the arguments that will be passed to + |searchpair()|. + + The following example specifies that there should be a level of + indentation inside parenthesis and braces. It also takes into account + the case statements inside a switch block. +> + let b:indentTrios = [ + \ [ '(', '', ')' ], + \ [ '{', '\(default:\|case.*:\)', '}' ] + \] +< + Note: There is logic that makes the distinction between matches at the + beginning of lines or not. These patterns should not include '^' + (beginning-of-line), or that logic will break. + + *b:lineContList* +b:lineContList + + This is a list of dictionaries specifying the lines that are continued + by the next line. For example, in shell scripts, a trailing '\' + indicates that the next line is a continuation. + + The dictionaries contain the following keys: + + pattern : The regular expression matching a line that is continued. + Used to determine if the current line is a continuation, and + should therefore be indented another level. + ignore : Pattern matching the CURRENT line if it should ignore a + previous continued line. + + The following example handles if, else, for, and while statements that are + NOT followed by a code block ('{') and lines ending in an operator + whose RHS is on the next line: +> + let b:lineContList = [ + \ { 'pattern' : '^\s*\(if\|for\|while\)\s*(.*)\s*\(\(//.*\)\|/\*.*\*/\s*\)\?\_$\(\_s*{\)\@!' }, + \ { 'pattern' : '^\s*else' . '\s*\(\(//.*\)\|/\*.*\*/\s*\)\?\_$\(\_s*{\)\@!' }, + \ { 'pattern' : '\(+\|=\|+=\|-=\)\s*\(\(//.*\)\|/\*.*\*/\s*\)\?$' } + \] +< + + *b:contTraversesLineComments* +b:contTraversesLineComments + + If a continued line and its continuation can have line-comments + between them, then the value of this variable should be non-zero. + For example, +> + if (x) + // comment here + statement +< + + + *b:commentRE* *b:lineCommentRE* + *b:blockCommentRE* +b:commentRE +b:lineCommentRE +b:blockCommentRE + + These are regular expressions that match the syntax names for comments + for the filetype being indented. Line comments (like '// ...') and + block comments (like '/* ... */') are supported. + + Example: +> + let b:commentRE = 'javaScript\(Line\)\?Comment' + let b:lineCommentRE = 'javaScriptLineComment' + let b:blockCommentRE = 'javaScriptComment' +< + + *b:stringRE* *b:singleQuoteStringRE* + *b:doubleQuoteStringRE* + +b:stringRE +b:singleQuoteStringRE +b:doubleQuoteStringRE + + These are regular expressions that match the syntax names for strings + for the filetype being indented. There are strings in single-quotes + (''), double-quotes (""), and an expression for strings of any kind. + + This is used mostly for avoiding matching of pairs and continuation + patterns inside strings. + + Example: +> + let b:stringRE = 'javaScriptString\(S\|D\)' + let b:singleQuoteStringRE = 'javaScriptStringS' + let b:doubleQuoteStringRE = 'javaScriptStringD' +< + + *b:blockCommentStartRE* + *b:blockCommentMiddleRE* + *b:blockCommentEndRE* + *b:blockCommentMiddleExtra* +b:blockCommentStartRE +b:blockCommentMiddleRE +b:blockCommentEndRE +b:blockCommentMiddleExtra + + This allows for special indentation for block comments. For example, + to properly indent C-style comments, use the following: +> + let b:blockCommentStartRE = '/\*' + let b:blockCommentMiddleRE = '\*' + let b:blockCommentEndRE = '\*/' + let b:blockCommentMiddleExtra = 1 +< + This will indent the following code like so: +> + statement; + /* + * comment + */ + statement; +< + The second statement indented one character less than the last line of + the comment. The value of |b:blockCommentMiddleExtra| will cause the + middle lines of the comment (those starting with '*') to be indented + by that many more characters. This value can also be negative. + + The example here duplicates the behavior of cindent. However, this + will work for any style block comment. For example, HTML comments + could be indented like this: +> + +
+< + This will be most effective if the 'comments' option is configured + properly for the filetype. The above works best with the following: +> + setl comments=sr: + let b:blockCommentStartRE = '' + let b:blockCommentMiddleExtra = 3 + +< + + + vim:noet:sw=8: + vim:tw=78:ts=8:ft=help:norl: diff --git a/vim/doc/NERD_commenter.txt b/vim/doc/NERD_commenter.txt new file mode 100644 index 0000000..d79d278 --- /dev/null +++ b/vim/doc/NERD_commenter.txt @@ -0,0 +1,991 @@ +*NERD_commenter.txt* Plugin for commenting code + + + NERD COMMENTER REFERENCE MANUAL~ + + + + + +============================================================================== +CONTENTS *NERDCommenterContents* + + 1.Intro...................................|NERDCommenter| + 2.Functionality provided..................|NERDComFunctionality| + 2.1 Functionality Summary.............|NERDComFunctionalitySummary| + 2.2 Functionality Details.............|NERDComFunctionalityDetails| + 2.2.1 Comment map.................|NERDComComment| + 2.2.2 Nested comment map..........|NERDComNestedComment| + 2.2.3 Toggle comment map..........|NERDComToggleComment| + 2.2.4 Minimal comment map.........|NERDComMinimalComment| + 2.2.5 Invert comment map..........|NERDComInvertComment| + 2.2.6 Sexy comment map............|NERDComSexyComment| + 2.2.7 Yank comment map............|NERDComYankComment| + 2.2.8 Comment to EOL map..........|NERDComEOLComment| + 2.2.9 Append com to line map......|NERDComAppendComment| + 2.2.10 Insert comment map.........|NERDComInsertComment| + 2.2.11 Use alternate delims map...|NERDComAltDelim| + 2.2.12 Comment aligned maps.......|NERDComAlignedComment| + 2.2.13 Uncomment line map.........|NERDComUncommentLine| + 2.3 Supported filetypes...............|NERDComFiletypes| + 2.4 Sexy Comments.....................|NERDComSexyComments| + 2.5 The NERDComment function..........|NERDComNERDComment| + 3.Options.................................|NERDComOptions| + 3.1 Options summary...................|NERDComOptionsSummary| + 3.2 Options details...................|NERDComOptionsDetails| + 3.3 Default delimiter Options.........|NERDComDefaultDelims| + 4. Customising key mappings...............|NERDComMappings| + 5. Issues with the script.................|NERDComIssues| + 5.1 Delimiter detection heuristics....|NERDComHeuristics| + 5.2 Nesting issues....................|NERDComNesting| + 6.About.. ............................|NERDComAbout| + 7.Changelog...............................|NERDComChangelog| + 8.Credits.................................|NERDComCredits| + 9.License.................................|NERDComLicense| + +============================================================================== +1. Intro *NERDCommenter* + +The NERD commenter provides many different commenting operations and styles +which are invoked via key mappings and a menu. These operations are available +for most filetypes. + +There are also options that allow to tweak the commenting engine to your +taste. + +============================================================================== +2. Functionality provided *NERDComFunctionality* + +------------------------------------------------------------------------------ +2.1 Functionality summary *NERDComFunctionalitySummary* + +The following key mappings are provided by default (there is also a menu +with items corresponding to all the mappings below): + +[count],cc |NERDComComment| +Comment out the current line or text selected in visual mode. + + +[count],cn |NERDComNestedComment| +Same as ,cc but forces nesting. + + +[count],c |NERDComToggleComment| +Toggles the comment state of the selected line(s). If the topmost selected +line is commented, all selected lines are uncommented and vice versa. + + +[count],cm |NERDComMinimalComment| +Comments the given lines using only one set of multipart delimiters. + + +[count],ci |NERDComInvertComment| +Toggles the comment state of the selected line(s) individually. + + +[count],cs |NERDComSexyComment| +Comments out the selected lines ``sexily'' + + +[count],cy |NERDComYankComment| +Same as ,cc except that the commented line(s) are yanked first. + + +,c$ |NERDComEOLComment| +Comments the current line from the cursor to the end of line. + + +,cA |NERDComAppendComment| +Adds comment delimiters to the end of line and goes into insert mode between +them. + + +|NERDComInsertComment| +Adds comment delimiters at the current cursor position and inserts between. +Disabled by default. + + +,ca |NERDComAltDelim| +Switches to the alternative set of delimiters. + + +[count],cl +[count],cb |NERDComAlignedComment| +Same as |NERDComComment| except that the delimiters are aligned down the +left side (,cl) or both sides (,cb). + + +[count],cu |NERDComUncommentLine| +Uncomments the selected line(s). + +------------------------------------------------------------------------------ +2.2 Functionality details *NERDComFunctionalityDetails* + +------------------------------------------------------------------------------ +2.2.1 Comment map *NERDComComment* + +Default mapping: [count],cc +Mapped to: NERDCommenterComment +Applicable modes: normal visual visual-line visual-block. + + +Comments out the current line. If multiple lines are selected in visual-line +mode, they are all commented out. If some text is selected in visual or +visual-block mode then the script will try to comment out the exact text that +is selected using multi-part delimiters if they are available. + +If a [count] is given in normal mode, the mapping works as though that many +lines were selected in visual-line mode. + +------------------------------------------------------------------------------ +2.2.2 Nested comment map *NERDComNestedComment* + +Default mapping: [count],cn +Mapped to: NERDCommenterNest +Applicable modes: normal visual visual-line visual-block. + +Performs nested commenting. Works the same as ,cc except that if a line is +already commented then it will be commented again. + +If |'NERDUsePlaceHolders'| is set then the previous comment delimiters will +be replaced by place-holder delimiters if needed. Otherwise the nested +comment will only be added if the current commenting delimiters have no right +delimiter (to avoid syntax errors) + +If a [count] is given in normal mode, the mapping works as though that many +lines were selected in visual-line mode. + +Related options: +|'NERDDefaultNesting'| + +------------------------------------------------------------------------------ +2.2.3 Toggle comment map *NERDComToggleComment* + +Default mapping: [count],c +Mapped to: NERDCommenterToggle +Applicable modes: normal visual-line. + +Toggles commenting of the lines selected. The behaviour of this mapping +depends on whether the first line selected is commented or not. If so, all +selected lines are uncommented and vice versa. + +With this mapping, a line is only considered to be commented if it starts with +a left delimiter. + +If a [count] is given in normal mode, the mapping works as though that many +lines were selected in visual-line mode. + +------------------------------------------------------------------------------ +2.2.4 Minimal comment map *NERDComMinimalComment* + +Default mapping: [count],cm +Mapped to: NERDCommenterMinimal +Applicable modes: normal visual-line. + +Comments the selected lines using one set of multipart delimiters if possible. + +For example: if you are programming in c and you select 5 lines and press ,cm +then a '/*' will be placed at the start of the top line and a '*/' will be +placed at the end of the last line. + +Sets of multipart comment delimiters that are between the top and bottom +selected lines are replaced with place holders (see |'NERDLPlace'|) if +|'NERDUsePlaceHolders'| is set for the current filetype. If it is not, then +the comment will be aborted if place holders are required to prevent illegal +syntax. + +If a [count] is given in normal mode, the mapping works as though that many +lines were selected in visual-line mode. + +------------------------------------------------------------------------------ +2.2.5 Invert comment map *NERDComInvertComment* + +Default mapping: ,ci +Mapped to: NERDCommenterInvert +Applicable modes: normal visual-line. + +Inverts the commented state of each selected line. If the a selected line is +commented then it is uncommented and vice versa. Each line is examined and +commented/uncommented individually. + +With this mapping, a line is only considered to be commented if it starts with +a left delimiter. + +If a [count] is given in normal mode, the mapping works as though that many +lines were selected in visual-line mode. + +------------------------------------------------------------------------------ +2.2.6 Sexy comment map *NERDComSexyComment* + +Default mapping: [count],cs +Mapped to: NERDCommenterSexy +Applicable modes: normal, visual-line. + +Comments the selected line(s) ``sexily''... see |NERDComSexyComments| for +a description of what sexy comments are. Can only be done on filetypes for +which there is at least one set of multipart comment delimiters specified. + +Sexy comments cannot be nested and lines inside a sexy comment cannot be +commented again. + +If a [count] is given in normal mode, the mapping works as though that many +lines were selected in visual-line mode. + +Related options: +|'NERDCompactSexyComs'| + +------------------------------------------------------------------------------ +2.2.7 Yank comment map *NERDComYankComment* + +Default mapping: [count],cy +Mapped to: NERDCommenterYank +Applicable modes: normal visual visual-line visual-block. + +Same as ,cc except that it yanks the line(s) that are commented first. + +------------------------------------------------------------------------------ +2.2.8 Comment to EOL map *NERDComEOLComment* + +Default mapping: ,c$ +Mapped to: NERDCommenterToEOL +Applicable modes: normal. + +Comments the current line from the current cursor position up to the end of +the line. + +------------------------------------------------------------------------------ +2.2.9 Append com to line map *NERDComAppendComment* + +Default mapping: ,cA +Mapped to: NERDCommenterAppend +Applicable modes: normal. + +Appends comment delimiters to the end of the current line and goes +to insert mode between the new delimiters. + +------------------------------------------------------------------------------ +2.2.10 Insert comment map *NERDComInsertComment* + +Default mapping: disabled by default. +Map it to: NERDCommenterInInsert +Applicable modes: insert. + +Adds comment delimiters at the current cursor position and inserts +between them. + +NOTE: prior to version 2.1.17 this was mapped to ctrl-c. To restore this +mapping add > + let NERDComInsertMap='' +< +to your vimrc. + +------------------------------------------------------------------------------ +2.2.11 Use alternate delims map *NERDComAltDelim* + +Default mapping: ,ca +Mapped to: NERDCommenterAltDelims +Applicable modes: normal. + +Changes to the alternative commenting style if one is available. For example, +if the user is editing a c++ file using // comments and they hit ,ca +then they will be switched over to /**/ comments. + +See also |NERDComDefaultDelims| + +------------------------------------------------------------------------------ +2.2.12 Comment aligned maps *NERDComAlignedComment* + +Default mappings: [count],cl [count],cb +Mapped to: NERDCommenterAlignLeft + NERDCommenterAlignBoth +Applicable modes: normal visual-line. + +Same as ,cc except that the comment delimiters are aligned on the left side or +both sides respectively. These comments are always nested if the line(s) are +already commented. + +If a [count] is given in normal mode, the mapping works as though that many +lines were selected in visual-line mode. + +------------------------------------------------------------------------------ +2.2.13 Uncomment line map *NERDComUncommentLine* + +Default mapping: [count],cu +Mapped to: NERDCommenterUncomment +Applicable modes: normal visual visual-line visual-block. + +Uncomments the current line. If multiple lines are selected in +visual mode then they are all uncommented. + +When uncommenting, if the line contains multiple sets of delimiters then the +``outtermost'' pair of delimiters will be removed. + +The script uses a set of heurisics to distinguish ``real'' delimiters from +``fake'' ones when uncommenting. See |NERDComIssues| for details. + +If a [count] is given in normal mode, the mapping works as though that many +lines were selected in visual-line mode. + +Related options: +|'NERDRemoveAltComs'| +|'NERDRemoveExtraSpaces'| + +------------------------------------------------------------------------------ +2.3 Supported filetypes *NERDComFiletypes* + +Filetypes that can be commented by this plugin: +abaqus abc acedb ada ahdl amiga aml ampl ant apache apachestyle asm68k asm asn +aspvbs atlas autohotkey autoit automake ave awk basic b bc bdf bib bindzone +bst btm caos catalog c cfg cg ch changelog cl clean clipper cmake conf config +context cpp crontab cs csc csp css cterm cupl csv cvs dcl debchangelog +debcontrol debsources def diff django docbk dns dosbatch dosini dot dracula +dsl dtd dtml dylan ecd eiffel elf elmfilt erlang eruby eterm expect exports +fetchmail fgl focexec form fortran foxpro fstab fvwm fx gdb gdmo geek +gentoo-package-keywords' gentoo-package-mask' gentoo-package-use' gnuplot +gtkrc haskell hb h help hercules hog html htmldjango htmlos ia64 icon idlang +idl indent inform inittab ishd iss ist jam java javascript jess jgraph +jproperties jproperties jsp kconfig kix kscript lace lex lftp lifelines lilo +lisp lite lotos lout lprolog lscript lss lua lynx m4 mail make maple masm +master matlab mel mf mib mma model moduala. modula2 modula3 monk mush muttrc +named nasm nastran natural ncf netdict netrw nqc nroff nsis objc ocaml occam +omlet omnimark openroad opl ora otl ox pascal passwd pcap pccts perl pfmain +php phtml pic pike pilrc pine plaintex plm plsql po postscr pov povini ppd +ppwiz procmail progress prolog psf ptcap python python qf radiance ratpoison r +rc readline rebol registry remind rexx robots rpl rtf ruby sa samba sas sass +sather scheme scilab screen scsh sdl sed selectbuf sgml sgmldecl sgmllnx sh +sicad simula sinda skill slang sl slrnrc sm smarty smil smith sml snnsnet +snnspat snnsres snobol4 spec specman spice sql sqlforms sqlj sqr squid st stp +strace svn systemverilog tads taglist tags tak tasm tcl terminfo tex text +plaintex texinfo texmf tf tidy tli trasys tsalt tsscl tssgm uc uil vb verilog +verilog_systemverilog vgrindefs vhdl vim viminfo virata vo_base vrml vsejcl +webmacro wget winbatch wml wvdial xdefaults xf86conf xhtml xkb xmath xml +xmodmap xpm2 xpm xslt yacc yaml z8a + +If a language is not in the list of hardcoded supported filetypes then the +&commentstring vim option is used. + +------------------------------------------------------------------------------ +2.4 Sexy Comments *NERDComSexyComments* +These are comments that use one set of multipart comment delimiters as well as +one other marker symbol. For example: > + /* + * This is a c style sexy comment + * So there! + */ + + /* This is a c style sexy comment + * So there! + * But this one is ``compact'' style */ +< +Here the multipart delimiters are /* and */ and the marker is *. + +------------------------------------------------------------------------------ +2.5 The NERDComment function *NERDComNERDComment* + +All of the NERD commenter mappings and menu items invoke a single function +which delegates the commenting work to other functions. This function is +public and has the prototype: > + function! NERDComment(isVisual, type) +< +The arguments to this function are simple: + - isVisual: if you wish to do any kind of visual comment then set this to + 1 and the function will use the '< and '> marks to find the comment + boundries. If set to 0 then the function will operate on the current + line. + - type: is used to specify what type of commenting operation is to be + performed, and it can be one of the following: "sexy", "invert", + "minimal", "toggle", "alignLeft", "alignBoth", "norm", "nested", + "toEOL", "append", "insert", "uncomment", "yank" + +For example, if you typed > + :call NERDComment(1, 'sexy') +< +then the script would do a sexy comment on the last visual selection. + + +============================================================================== +3. Options *NERDComOptions* + +------------------------------------------------------------------------------ +3.1 Options summary *NERDComOptionsSummary* + +|'loaded_nerd_comments'| Turns off the script. +|'NERDAllowAnyVisualDelims'| Allows multipart alternative delims to + be used when commenting in + visual/visual-block mode. +|'NERDBlockComIgnoreEmpty'| Forces right delims to be placed when + doing visual-block comments. +|'NERDCommentWholeLinesInVMode'| Changes behaviour of visual comments. +|'NERDCreateDefaultMappings'| Turn the default mappings on/off. +|'NERDDefaultNesting'| Tells the script to use nested comments + by default. +|'NERDMenuMode'| Specifies how the NERD commenter menu + will appear (if at all). +|'NERDLPlace'| Specifies what to use as the left + delimiter placeholder when nesting + comments. +|'NERDUsePlaceHolders'| Specifies which filetypes may use + placeholders when nesting comments. +|'NERDRemoveAltComs'| Tells the script whether to remove + alternative comment delimiters when + uncommenting. +|'NERDRemoveExtraSpaces'| Tells the script to always remove the + extra spaces when uncommenting + (regardless of whether NERDSpaceDelims + is set) +|'NERDRPlace'| Specifies what to use as the right + delimiter placeholder when nesting + comments. +|'NERDSpaceDelims'| Specifies whether to add extra spaces + around delimiters when commenting, and + whether to remove them when + uncommenting. +|'NERDCompactSexyComs'| Specifies whether to use the compact + style sexy comments. + +------------------------------------------------------------------------------ +3.3 Options details *NERDComOptionsDetails* + +To enable any of the below options you should put the given line in your +~/.vimrc + + *'loaded_nerd_comments'* +If this script is driving you insane you can turn it off by setting this +option > + let loaded_nerd_comments=1 +< +------------------------------------------------------------------------------ + *'NERDAllowAnyVisualDelims'* +Values: 0 or 1. +Default: 1. + +If set to 1 then, when doing a visual or visual-block comment (but not a +visual-line comment), the script will choose the right delimiters to use for +the comment. This means either using the current delimiters if they are +multipart or using the alternative delimiters if THEY are multipart. For +example if we are editing the following java code: > + float foo = 1221; + float bar = 324; + System.out.println(foo * bar); +< +If we are using // comments and select the "foo" and "bar" in visual-block +mode, as shown left below (where '|'s are used to represent the visual-block +boundary), and comment it then the script will use the alternative delims as +shown on the right: > + + float |foo| = 1221; float /*foo*/ = 1221; + float |bar| = 324; float /*bar*/ = 324; + System.out.println(foo * bar); System.out.println(foo * bar); +< +------------------------------------------------------------------------------ + *'NERDBlockComIgnoreEmpty'* +Values: 0 or 1. +Default: 1. + +This option affects visual-block mode commenting. If this option is turned +on, lines that begin outside the right boundary of the selection block will be +ignored. + +For example, if you are commenting this chunk of c code in visual-block mode +(where the '|'s are used to represent the visual-block boundary) > + #include + #include + #include + |int| main(){ + | | printf("SUCK THIS\n"); + | | while(1){ + | | fork(); + | | } + |} | +< +If NERDBlockComIgnoreEmpty=0 then this code will become: > + #include + #include + #include + /*int*/ main(){ + /* */ printf("SUCK THIS\n"); + /* */ while(1){ + /* */ fork(); + /* */ } + /*} */ +< +Otherwise, the code block would become: > + #include + #include + #include + /*int*/ main(){ + printf("SUCK THIS\n"); + while(1){ + fork(); + } + /*} */ +< +------------------------------------------------------------------------------ + *'NERDCommentWholeLinesInVMode'* +Values: 0, 1 or 2. +Default: 0. + +By default the script tries to comment out exactly what is selected in visual +mode (v). For example if you select and comment the following c code (using | +to represent the visual boundary): > + in|t foo = 3; + int bar =| 9; + int baz = foo + bar; +< +This will result in: > + in/*t foo = 3;*/ + /*int bar =*/ 9; + int baz = foo + bar; +< +But some people prefer it if the whole lines are commented like: > + /*int foo = 3;*/ + /*int bar = 9;*/ + int baz = foo + bar; +< +If you prefer the second option then stick this line in your vimrc: > + let NERDCommentWholeLinesInVMode=1 +< + +If the filetype you are editing only has no multipart delimiters (for example +a shell script) and you hadnt set this option then the above would become > + in#t foo = 3; + #int bar = 9; +< +(where # is the comment delimiter) as this is the closest the script can +come to commenting out exactly what was selected. If you prefer for whole +lines to be commented out when there is no multipart delimiters but the EXACT +text that was selected to be commented out if there IS multipart delimiters +then stick the following line in your vimrc: > + let NERDCommentWholeLinesInVMode=2 +< + +Note that this option does not affect the behaviour of commenting in +|visual-block| mode. + +------------------------------------------------------------------------------ + *'NERDCreateDefaultMappings'* +Values: 0 or 1. +Default: 1. + +If set to 0, none of the default mappings will be created. + +See also |NERDComMappings|. + +------------------------------------------------------------------------------ + *'NERDRemoveAltComs'* +Values: 0 or 1. +Default: 1. + +When uncommenting a line (for a filetype with an alternative commenting style) +this option tells the script whether to look for, and remove, comment +delimiters of the alternative style. + +For example, if you are editing a c++ file using // style comments and you go +,cu on this line: > + /* This is a c++ comment baby! */ +< +It will not be uncommented if the NERDRemoveAltComs is set to 0. + +------------------------------------------------------------------------------ + *'NERDRemoveExtraSpaces'* +Values: 0 or 1. +Default: 1. + +By default, the NERD commenter will remove spaces around comment delimiters if +either: +1. |'NERDSpaceDelims'| is set to 1. +2. NERDRemoveExtraSpaces is set to 1. + +This means that if we have the following lines in a c code file: > + /* int foo = 5; */ + /* int bar = 10; */ + int baz = foo + bar +< +If either of the above conditions hold then if these lines are uncommented +they will become: > + int foo = 5; + int bar = 10; + int baz = foo + bar +< +Otherwise they would become: > + int foo = 5; + int bar = 10; + int baz = foo + bar +< +If you want the spaces to be removed only if |'NERDSpaceDelims'| is set then +set NERDRemoveExtraSpaces to 0. + +------------------------------------------------------------------------------ + *'NERDLPlace'* + *'NERDRPlace'* +Values: arbitrary string. +Default: + NERDLPlace: "[>" + NERDRPlace: "<]" + +These options are used to control the strings used as place-holder delimiters. +Place holder delimiters are used when performing nested commenting when the +filetype supports commenting styles with both left and right delimiters. +To set these options use lines like: > + let NERDLPlace="FOO" + let NERDRPlace="BAR" +< +Following the above example, if we have line of c code: > + /* int horse */ +< +and we comment it with ,cn it will be changed to: > + /*FOO int horse BAR*/ +< +When we uncomment this line it will go back to what it was. + +------------------------------------------------------------------------------ + *'NERDMenuMode'* +Values: 0, 1, 2, 3. +Default: 3 + +This option can take 4 values: + "0": Turns the menu off. + "1": Turns the 'comment' menu on with no menu shortcut. + "2": Turns the 'comment 'menu on with -c as the shortcut. + "3": Turns the 'Plugin -> comment' menu on with -c as the shortcut. + +------------------------------------------------------------------------------ + *'NERDUsePlaceHolders'* +Values: 0 or 1. +Default 1. + +This option is used to specify whether place-holder delimiters should be used +when creating a nested comment. + +------------------------------------------------------------------------------ + *'NERDSpaceDelims'* +Values: 0 or 1. +Default 0. + +Some people prefer a space after the left delimiter and before the right +delimiter like this: > + /* int foo=2; */ +< +as opposed to this: > + /*int foo=2;*/ +< +If you want spaces to be added then set NERDSpaceDelims to 1 in your vimrc. + +See also |'NERDRemoveExtraSpaces'|. + +------------------------------------------------------------------------------ + *'NERDCompactSexyComs'* +Values: 0 or 1. +Default 0. + +Some people may want their sexy comments to be like this: > + /* Hi There! + * This is a sexy comment + * in c */ +< +As opposed to like this: > + /* + * Hi There! + * This is a sexy comment + * in c + */ +< +If this option is set to 1 then the top style will be used. + +------------------------------------------------------------------------------ + *'NERDDefaultNesting'* +Values: 0 or 1. +Default 1. + +When this option is set to 1, comments are nested automatically. That is, if +you hit ,cc on a line that is already commented it will be commented again + +------------------------------------------------------------------------------ +3.3 Default delimiter customisation *NERDComDefaultDelims* + +If you want the NERD commenter to use the alternative delimiters for a +specific filetype by default then put a line of this form into your vimrc: > + let NERD__alt_style=1 +< +Example: java uses // style comments by default, but you want it to default to +/* */ style comments instead. You would put this line in your vimrc: > + let NERD_java_alt_style=1 +< + +See |NERDComAltDelim| for switching commenting styles at runtime. + +============================================================================== +4. Key mapping customisation *NERDComMappings* + +To change a mapping just map another key combo to the internal mapping. +For example, to remap the |NERDComComment| mapping to ",omg" you would put +this line in your vimrc: > + map ,omg NERDCommenterComment +< +This will stop the corresponding default mappings from being created. + +See the help for the mapping in question to see which mapping to +map to. + +See also |'NERDCreateDefaultMappings'|. + +============================================================================== +5. Issues with the script *NERDComIssues* + + +------------------------------------------------------------------------------ +5.1 Delimiter detection heuristics *NERDComHeuristics* + +Heuristics are used to distinguish the real comment delimiters + +Because we have comment mappings that place delimiters in the middle of lines, +removing comment delimiters is a bit tricky. This is because if comment +delimiters appear in a line doesnt mean they really ARE delimiters. For +example, Java uses // comments but the line > + System.out.println("//"); +< +clearly contains no real comment delimiters. + +To distinguish between ``real'' comment delimiters and ``fake'' ones we use a +set of heuristics. For example, one such heuristic states that any comment +delimiter that has an odd number of non-escaped " characters both preceding +and following it on the line is not a comment because it is probably part of a +string. These heuristics, while usually pretty accurate, will not work for all +cases. + +------------------------------------------------------------------------------ +5.2 Nesting issues *NERDComNesting* + +If we have some line of code like this: > + /*int foo */ = /*5 + 9;*/ +< +This will not be uncommented legally. The NERD commenter will remove the +"outter most" delimiters so the line will become: > + int foo */ = /*5 + 9; +< +which almost certainly will not be what you want. Nested sets of comments will +uncomment fine though. Eg: > + /*int/* foo =*/ 5 + 9;*/ +< +will become: > + int/* foo =*/ 5 + 9; +< +(Note that in the above examples I have deliberately not used place holders +for simplicity) + +============================================================================== +6. About *NERDComAbout* + +The author of the NERD commenter is Martyzillatron --- the half robot, half +dinosaur bastard son of Megatron and Godzilla. He enjoys destroying +metropolises and eating tourist busses. + +Drop him a line at martin_grenfell at msn.com. He would love to hear from you. +its a lonely life being the worlds premier terror machine. How would you feel +if your face looked like a toaster and a t-rex put together? :( + +The latest stable versions can be found at + http://www.vim.org/scripts/script.php?script_id=1218 + +The latest dev versions are on github + http://github.com/scrooloose/nerdcommenter + +============================================================================== +8. Changelog *NERDComChangelog* + +2.2.2 + - remove the NERDShutup option and the message is suppresses, this makes + the plugin silently rely on &commentstring for unknown filetypes. + - add support for dhcpd, limits, ntp, resolv, rgb, sysctl, udevconf and + udevrules. Thanks to Thilo Six. + - match filetypes case insensitively + - add support for mp (metapost), thanks to Andrey Skvortsov. + - add support for htmlcheetah, thanks to Simon Hengel. + - add support for javacc, thanks to Matt Tolton. + - make <%# %> the default delims for eruby, thanks to tpope. + - add support for javascript.jquery, thanks to Ivan Devat. + - add support for cucumber and pdf. Fix sass and railslog delims, + thanks to tpope + +2.2.1 + - add support for newlisp and clojure, thanks to Matthew Lee Hinman. + - fix automake comments, thanks to Elias Pipping + - make haml comments default to -# with / as the alternative delimiter, + thanks to tpope + - add support for actionscript and processing thanks to Edwin Benavides + - add support for ps1 (powershell), thanks to Jason Mills + - add support for hostsaccess, thanks to Thomas Rowe + - add support for CVScommit + - add support for asciidoc, git and gitrebase. Thanks to Simon Ruderich. + - use # for gitcommit comments, thanks to Simon Ruderich. + - add support for mako and genshi, thanks to Keitheis. + - add support for conkyrc, thanks to David + - add support for SVNannotate, thanks to Miguel Jaque Barbero. + - add support for sieve, thanks to Stefan Walk + - add support for objj, thanks to Adam Thorsen. + +2.2.0 + - rewrote the mappings system to be more "standard". + - removed all the mapping options. Now, mappings to mappings are + used + - see :help NERDComMappings, and :help NERDCreateDefaultMappings for + more info + - remove "prepend comments" and "right aligned comments". + - add support for applescript, calbire, man, SVNcommit, potwiki, txt2tags and SVNinfo. + Thanks to nicothakis, timberke, sgronblo, mntnoe, Bernhard Grotz, John + O'Shea, François and Giacomo Mariani respectively. + - bugfix for haskell delimiters. Thanks to mntnoe. +2.1.18 + - add support for llvm. Thanks to nicothakis. + - add support for xquery. Thanks to Phillip Kovalev. +2.1.17 + - fixed haskell delimiters (hackily). Thanks to Elias Pipping. + - add support for mailcap. Thanks to Pascal Brueckner. + - add support for stata. Thanks to Jerónimo Carballo. + - applied a patch from ewfalor to fix an error in the help file with the + NERDMapleader doc + - disable the insert mode ctrl-c mapping by default, see :help + NERDComInsertComment if you wish to restore it + +============================================================================== +8. Credits *NERDComCredits* + +Thanks to the follow people for suggestions and patches: + +Nick Brettell +Matthew Hawkins +Mathieu Clabaut +Greg Searle +Nguyen +Litchi +Jorge Scandaliaris +Shufeng Zheng +Martin Stubenschrott +Markus Erlmann +Brent Rice +Richard Willis +Igor Prischepoff +Harry +David Bourgeois +Eike Von Seggern +Torsten Blix +Alexander Bosecke +Stefano Zacchiroli +Norick Chen +Joseph Barker +Gary Church +Tim Carey-Smith +Markus Klinik +Anders +Seth Mason +James Hales +Heptite +Cheng Fang +Yongwei Wu +David Miani +Jeremy Hinegardner +Marco +Ingo Karkat +Zhang Shuhan +tpope +Ben Schmidt +David Fishburn +Erik Falor +JaGoTerr +Elias Pipping +mntnoe +Mark S. + + +Thanks to the following people for sending me new filetypes to support: + +The hackers The filetypes~ +Sam R verilog +Jonathan Derque context, plaintext and mail +Vigil fetchmail +Michael Brunner kconfig +Antono Vasiljev netdict +Melissa Reid omlet +Ilia N Ternovich quickfix +John O'Shea RTF, SVNcommitlog and vcscommit, SVNCommit +Anders occam +Mark Woodward csv +fREW gentoo-package-mask, + gentoo-package-keywords, + gentoo-package-use, and vo_base +Alexey verilog_systemverilog, systemverilog +Lizendir fstab +Michael Böhler autoit, autohotkey and docbk +Aaron Small cmake +Ramiro htmldjango and django +Stefano Zacchiroli debcontrol, debchangelog, mkd +Alex Tarkovsky ebuild and eclass +Jorge Rodrigues gams +Rainer Müller Objective C +Jason Mills Groovy, ps1 +Normandie Azucena vera +Florian Apolloner ldif +David Fishburn lookupfile +Niels Aan de Brugh rst +Don Hatlestad ahk +Christophe Benz Desktop and xsd +Eyolf Østrem lilypond, bbx and lytex +Ingo Karkat dosbatch +Nicolas Weber markdown, objcpp +tinoucas gentoo-conf-d +Greg Weber D, haml +Bruce Sherrod velocity +timberke cobol, calibre +Aaron Schaefer factor +Mr X asterisk, mplayerconf +Kuchma Michael plsql +Brett Warneke spectre +Pipp lhaskell +Renald Buter scala +Vladimir Lomov asymptote +Marco mrxvtrc, aap +nicothakis SVNAnnotate, CVSAnnotate, SVKAnnotate, + SVNdiff, gitAnnotate, gitdiff, dtrace + llvm, applescript +Chen Xing Wikipedia +Jacobo Diaz dakota, patran +Li Jin gentoo-env-d, gentoo-init-d, + gentoo-make-conf, grub, modconf, sudoers +SpookeyPeanut rib +Greg Jandl pyrex/cython +Christophe Benz services, gitcommit +A Pontus vimperator +Stromnov slice, bzr +Martin Kustermann pamconf +Indriði Einarsson mason +Chris map +Krzysztof A. Adamski group +Pascal Brueckner mailcap +Jerónimo Carballo stata +Phillip Kovalev xquery +Bernhard Grotz potwiki +sgronblo man +François txt2tags +Giacomo Mariani SVNinfo +Matthew Lee Hinman newlisp, clojure +Elias Pipping automake +Edwin Benavides actionscript, processing +Thomas Rowe hostsaccess +Simon Ruderich asciidoc, git, gitcommit, gitrebase +Keitheis mako, genshi +David conkyrc +Miguel Jaque Barbero SVNannotate +Stefan Walk sieve +Adam Thorsen objj +Thilo Six dhcpd, limits, ntp, resolv, rgb, sysctl, + udevconf, udevrules +Andrey Skvortsov mp +Simon Hengel htmlcheetah +Matt Tolton javacc +Ivan Devat javascript.jquery +tpope cucumber,pdf +============================================================================== +9. License *NERDComLicense* + +The NERD commenter is released under the wtfpl. +See http://sam.zoy.org/wtfpl/COPYING. diff --git a/vim/doc/NERD_tree.txt b/vim/doc/NERD_tree.txt new file mode 100644 index 0000000..ca83fe7 --- /dev/null +++ b/vim/doc/NERD_tree.txt @@ -0,0 +1,1199 @@ +*NERD_tree.txt* A tree explorer plugin that owns your momma! + + + + omg its ... ~ + + ________ ________ _ ____________ ____ __________ ____________~ + /_ __/ / / / ____/ / | / / ____/ __ \/ __ \ /_ __/ __ \/ ____/ ____/~ + / / / /_/ / __/ / |/ / __/ / /_/ / / / / / / / /_/ / __/ / __/ ~ + / / / __ / /___ / /| / /___/ _, _/ /_/ / / / / _, _/ /___/ /___ ~ + /_/ /_/ /_/_____/ /_/ |_/_____/_/ |_/_____/ /_/ /_/ |_/_____/_____/ ~ + + + Reference Manual~ + + + + +============================================================================== +CONTENTS *NERDTree-contents* + + 1.Intro...................................|NERDTree| + 2.Functionality provided..................|NERDTreeFunctionality| + 2.1.Global commands...................|NERDTreeGlobalCommands| + 2.2.Bookmarks.........................|NERDTreeBookmarks| + 2.2.1.The bookmark table..........|NERDTreeBookmarkTable| + 2.2.2.Bookmark commands...........|NERDTreeBookmarkCommands| + 2.2.3.Invalid bookmarks...........|NERDTreeInvalidBookmarks| + 2.3.NERD tree mappings................|NERDTreeMappings| + 2.4.The NERD tree menu................|NERDTreeMenu| + 3.Options.................................|NERDTreeOptions| + 3.1.Option summary....................|NERDTreeOptionSummary| + 3.2.Option details....................|NERDTreeOptionDetails| + 4.The NERD tree API.......................|NERDTreeAPI| + 4.1.Key map API.......................|NERDTreeKeymapAPI| + 4.2.Menu API..........................|NERDTreeMenuAPI| + 5.About...................................|NERDTreeAbout| + 6.Changelog...............................|NERDTreeChangelog| + 7.Credits.................................|NERDTreeCredits| + 8.License.................................|NERDTreeLicense| + +============================================================================== +1. Intro *NERDTree* + +What is this "NERD tree"?? + +The NERD tree allows you to explore your filesystem and to open files and +directories. It presents the filesystem to you in the form of a tree which you +manipulate with the keyboard and/or mouse. It also allows you to perform +simple filesystem operations. + +The following features and functionality are provided by the NERD tree: + * Files and directories are displayed in a hierarchical tree structure + * Different highlighting is provided for the following types of nodes: + * files + * directories + * sym-links + * windows .lnk files + * read-only files + * executable files + * Many (customisable) mappings are provided to manipulate the tree: + * Mappings to open/close/explore directory nodes + * Mappings to open files in new/existing windows/tabs + * Mappings to change the current root of the tree + * Mappings to navigate around the tree + * ... + * Directories and files can be bookmarked. + * Most NERD tree navigation can also be done with the mouse + * Filtering of tree content (can be toggled at runtime) + * custom file filters to prevent e.g. vim backup files being displayed + * optional displaying of hidden files (. files) + * files can be "turned off" so that only directories are displayed + * The position and size of the NERD tree window can be customised + * The order in which the nodes in the tree are listed can be customised. + * A model of your filesystem is created/maintained as you explore it. This + has several advantages: + * All filesystem information is cached and is only re-read on demand + * If you revisit a part of the tree that you left earlier in your + session, the directory nodes will be opened/closed as you left them + * The script remembers the cursor position and window position in the NERD + tree so you can toggle it off (or just close the tree window) and then + reopen it (with NERDTreeToggle) the NERD tree window will appear exactly + as you left it + * You can have a separate NERD tree for each tab, share trees across tabs, + or a mix of both. + * By default the script overrides the default file browser (netw), so if + you :edit a directory a (slighly modified) NERD tree will appear in the + current window + * A programmable menu system is provided (simulates right clicking on a + node) + * one default menu plugin is provided to perform basic filesytem + operations (create/delete/move/copy files/directories) + * There's an API for adding your own keymappings + + +============================================================================== +2. Functionality provided *NERDTreeFunctionality* + +------------------------------------------------------------------------------ +2.1. Global Commands *NERDTreeGlobalCommands* + +:NERDTree [ | ] *:NERDTree* + Opens a fresh NERD tree. The root of the tree depends on the argument + given. There are 3 cases: If no argument is given, the current directory + will be used. If a directory is given, that will be used. If a bookmark + name is given, the corresponding directory will be used. For example: > + :NERDTree /home/marty/vim7/src + :NERDTree foo (foo is the name of a bookmark) +< +:NERDTreeFromBookmark *:NERDTreeFromBookmark* + Opens a fresh NERD tree with the root initialized to the dir for + . This only reason to use this command over :NERDTree is for + the completion (which is for bookmarks rather than directories). + +:NERDTreeToggle [ | ] *:NERDTreeToggle* + If a NERD tree already exists for this tab, it is reopened and rendered + again. If no NERD tree exists for this tab then this command acts the + same as the |:NERDTree| command. + +:NERDTreeMirror *:NERDTreeMirror* + Shares an existing NERD tree, from another tab, in the current tab. + Changes made to one tree are reflected in both as they are actually the + same buffer. + + If only one other NERD tree exists, that tree is automatically mirrored. If + more than one exists, the script will ask which tree to mirror. + +:NERDTreeClose *:NERDTreeClose* + Close the NERD tree in this tab. + +:NERDTreeFind *:NERDTreeFind* + Find the current file in the tree. If no tree exists for the current tab, + or the file is not under the current root, then initialize a new tree where + the root is the directory of the current file. + +------------------------------------------------------------------------------ +2.2. Bookmarks *NERDTreeBookmarks* + +Bookmarks in the NERD tree are a way to tag files or directories of interest. +For example, you could use bookmarks to tag all of your project directories. + +------------------------------------------------------------------------------ +2.2.1. The Bookmark Table *NERDTreeBookmarkTable* + +If the bookmark table is active (see |NERDTree-B| and +|'NERDTreeShowBookmarks'|), it will be rendered above the tree. You can double +click bookmarks or use the |NERDTree-o| mapping to activate them. See also, +|NERDTree-t| and |NERDTree-T| + +------------------------------------------------------------------------------ +2.2.2. Bookmark commands *NERDTreeBookmarkCommands* + +Note that the following commands are only available in the NERD tree buffer. + +:Bookmark + Bookmark the current node as . If there is already a + bookmark, it is overwritten. must not contain spaces. + +:BookmarkToRoot + Make the directory corresponding to the new root. If a treenode + corresponding to is already cached somewhere in the tree then + the current tree will be used, otherwise a fresh tree will be opened. + Note that if points to a file then its parent will be used + instead. + +:RevealBookmark + If the node is cached under the current root then it will be revealed + (i.e. directory nodes above it will be opened) and the cursor will be + placed on it. + +:OpenBookmark + must point to a file. The file is opened as though |NERDTree-o| + was applied. If the node is cached under the current root then it will be + revealed and the cursor will be placed on it. + +:ClearBookmarks [] + Remove all the given bookmarks. If no bookmarks are given then remove all + bookmarks on the current node. + +:ClearAllBookmarks + Remove all bookmarks. + +:ReadBookmarks + Re-read the bookmarks in the |'NERDTreeBookmarksFile'|. + +See also |:NERDTree| and |:NERDTreeFromBookmark|. + +------------------------------------------------------------------------------ +2.2.3. Invalid Bookmarks *NERDTreeInvalidBookmarks* + +If invalid bookmarks are detected, the script will issue an error message and +the invalid bookmarks will become unavailable for use. + +These bookmarks will still be stored in the bookmarks file (see +|'NERDTreeBookmarksFile'|), down the bottom. There will always be a blank line +after the valid bookmarks but before the invalid ones. + +Each line in the bookmarks file represents one bookmark. The proper format is: + + +After you have corrected any invalid bookmarks, either restart vim, or go +:ReadBookmarks from the NERD tree window. + +------------------------------------------------------------------------------ +2.3. NERD tree Mappings *NERDTreeMappings* + +Default Description~ help-tag~ +Key~ + +o.......Open files, directories and bookmarks....................|NERDTree-o| +go......Open selected file, but leave cursor in the NERDTree.....|NERDTree-go| +t.......Open selected node/bookmark in a new tab.................|NERDTree-t| +T.......Same as 't' but keep the focus on the current tab........|NERDTree-T| +i.......Open selected file in a split window.....................|NERDTree-i| +gi......Same as i, but leave the cursor on the NERDTree..........|NERDTree-gi| +s.......Open selected file in a new vsplit.......................|NERDTree-s| +gs......Same as s, but leave the cursor on the NERDTree..........|NERDTree-gs| +O.......Recursively open the selected directory..................|NERDTree-O| +x.......Close the current nodes parent...........................|NERDTree-x| +X.......Recursively close all children of the current node.......|NERDTree-X| +e.......Edit the current dif.....................................|NERDTree-e| + +...............same as |NERDTree-o|. +double-click.......same as the |NERDTree-o| map. +middle-click.......same as |NERDTree-i| for files, same as + |NERDTree-e| for dirs. + +D.......Delete the current bookmark .............................|NERDTree-D| + +P.......Jump to the root node....................................|NERDTree-P| +p.......Jump to current nodes parent.............................|NERDTree-p| +K.......Jump up inside directories at the current tree depth.....|NERDTree-K| +J.......Jump down inside directories at the current tree depth...|NERDTree-J| +...Jump down to the next sibling of the current directory...|NERDTree-C-J| +...Jump up to the previous sibling of the current directory.|NERDTree-C-K| + +C.......Change the tree root to the selected dir.................|NERDTree-C| +u.......Move the tree root up one directory......................|NERDTree-u| +U.......Same as 'u' except the old root node is left open........|NERDTree-U| +r.......Recursively refresh the current directory................|NERDTree-r| +R.......Recursively refresh the current root.....................|NERDTree-R| +m.......Display the NERD tree menu...............................|NERDTree-m| +cd......Change the CWD to the dir of the selected node...........|NERDTree-cd| + +I.......Toggle whether hidden files displayed....................|NERDTree-I| +f.......Toggle whether the file filters are used.................|NERDTree-f| +F.......Toggle whether files are displayed.......................|NERDTree-F| +B.......Toggle whether the bookmark table is displayed...........|NERDTree-B| + +q.......Close the NERDTree window................................|NERDTree-q| +A.......Zoom (maximize/minimize) the NERDTree window.............|NERDTree-A| +?.......Toggle the display of the quick help.....................|NERDTree-?| + +------------------------------------------------------------------------------ + *NERDTree-o* +Default key: o +Map option: NERDTreeMapActivateNode +Applies to: files and directories. + +If a file node is selected, it is opened in the previous window. + +If a directory is selected it is opened or closed depending on its current +state. + +If a bookmark that links to a directory is selected then that directory +becomes the new root. + +If a bookmark that links to a file is selected then that file is opened in the +previous window. + +------------------------------------------------------------------------------ + *NERDTree-go* +Default key: go +Map option: None +Applies to: files. + +If a file node is selected, it is opened in the previous window, but the +cursor does not move. + +The key combo for this mapping is always "g" + NERDTreeMapActivateNode (see +|NERDTree-o|). + +------------------------------------------------------------------------------ + *NERDTree-t* +Default key: t +Map option: NERDTreeMapOpenInTab +Applies to: files and directories. + +Opens the selected file in a new tab. If a directory is selected, a fresh +NERD Tree for that directory is opened in a new tab. + +If a bookmark which points to a directory is selected, open a NERD tree for +that directory in a new tab. If the bookmark points to a file, open that file +in a new tab. + +------------------------------------------------------------------------------ + *NERDTree-T* +Default key: T +Map option: NERDTreeMapOpenInTabSilent +Applies to: files and directories. + +The same as |NERDTree-t| except that the focus is kept in the current tab. + +------------------------------------------------------------------------------ + *NERDTree-i* +Default key: i +Map option: NERDTreeMapOpenSplit +Applies to: files. + +Opens the selected file in a new split window and puts the cursor in the new +window. + +------------------------------------------------------------------------------ + *NERDTree-gi* +Default key: gi +Map option: None +Applies to: files. + +The same as |NERDTree-i| except that the cursor is not moved. + +The key combo for this mapping is always "g" + NERDTreeMapOpenSplit (see +|NERDTree-i|). + +------------------------------------------------------------------------------ + *NERDTree-s* +Default key: s +Map option: NERDTreeMapOpenVSplit +Applies to: files. + +Opens the selected file in a new vertically split window and puts the cursor in +the new window. + +------------------------------------------------------------------------------ + *NERDTree-gs* +Default key: gs +Map option: None +Applies to: files. + +The same as |NERDTree-s| except that the cursor is not moved. + +The key combo for this mapping is always "g" + NERDTreeMapOpenVSplit (see +|NERDTree-s|). + +------------------------------------------------------------------------------ + *NERDTree-O* +Default key: O +Map option: NERDTreeMapOpenRecursively +Applies to: directories. + +Recursively opens the selelected directory. + +All files and directories are cached, but if a directory would not be +displayed due to file filters (see |'NERDTreeIgnore'| |NERDTree-f|) or the +hidden file filter (see |'NERDTreeShowHidden'|) then its contents are not +cached. This is handy, especially if you have .svn directories. + +------------------------------------------------------------------------------ + *NERDTree-x* +Default key: x +Map option: NERDTreeMapCloseDir +Applies to: files and directories. + +Closes the parent of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-X* +Default key: X +Map option: NERDTreeMapCloseChildren +Applies to: directories. + +Recursively closes all children of the selected directory. + +Tip: To quickly "reset" the tree, use |NERDTree-P| with this mapping. + +------------------------------------------------------------------------------ + *NERDTree-e* +Default key: e +Map option: NERDTreeMapOpenExpl +Applies to: files and directories. + +|:edit|s the selected directory, or the selected file's directory. This could +result in a NERD tree or a netrw being opened, depending on +|'NERDTreeHijackNetrw'|. + +------------------------------------------------------------------------------ + *NERDTree-D* +Default key: D +Map option: NERDTreeMapDeleteBookmark +Applies to: lines in the bookmarks table + +Deletes the currently selected bookmark. + +------------------------------------------------------------------------------ + *NERDTree-P* +Default key: P +Map option: NERDTreeMapJumpRoot +Applies to: no restrictions. + +Jump to the tree root. + +------------------------------------------------------------------------------ + *NERDTree-p* +Default key: p +Map option: NERDTreeMapJumpParent +Applies to: files and directories. + +Jump to the parent node of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-K* +Default key: K +Map option: NERDTreeMapJumpFirstChild +Applies to: files and directories. + +Jump to the first child of the current nodes parent. + +If the cursor is already on the first node then do the following: + * loop back thru the siblings of the current nodes parent until we find an + open dir with children + * go to the first child of that node + +------------------------------------------------------------------------------ + *NERDTree-J* +Default key: J +Map option: NERDTreeMapJumpLastChild +Applies to: files and directories. + +Jump to the last child of the current nodes parent. + +If the cursor is already on the last node then do the following: + * loop forward thru the siblings of the current nodes parent until we find + an open dir with children + * go to the last child of that node + +------------------------------------------------------------------------------ + *NERDTree-C-J* +Default key: +Map option: NERDTreeMapJumpNextSibling +Applies to: files and directories. + +Jump to the next sibling of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-C-K* +Default key: +Map option: NERDTreeMapJumpPrevSibling +Applies to: files and directories. + +Jump to the previous sibling of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-C* +Default key: C +Map option: NERDTreeMapChdir +Applies to: directories. + +Make the selected directory node the new tree root. If a file is selected, its +parent is used. + +------------------------------------------------------------------------------ + *NERDTree-u* +Default key: u +Map option: NERDTreeMapUpdir +Applies to: no restrictions. + +Move the tree root up a dir (like doing a "cd .."). + +------------------------------------------------------------------------------ + *NERDTree-U* +Default key: U +Map option: NERDTreeMapUpdirKeepOpen +Applies to: no restrictions. + +Like |NERDTree-u| except that the old tree root is kept open. + +------------------------------------------------------------------------------ + *NERDTree-r* +Default key: r +Map option: NERDTreeMapRefresh +Applies to: files and directories. + +If a dir is selected, recursively refresh that dir, i.e. scan the filesystem +for changes and represent them in the tree. + +If a file node is selected then the above is done on it's parent. + +------------------------------------------------------------------------------ + *NERDTree-R* +Default key: R +Map option: NERDTreeMapRefreshRoot +Applies to: no restrictions. + +Recursively refresh the tree root. + +------------------------------------------------------------------------------ + *NERDTree-m* +Default key: m +Map option: NERDTreeMapMenu +Applies to: files and directories. + +Display the NERD tree menu. See |NERDTreeMenu| for details. + +------------------------------------------------------------------------------ + *NERDTree-cd* +Default key: cd +Map option: NERDTreeMapChdir +Applies to: files and directories. + +Change vims current working directory to that of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-I* +Default key: I +Map option: NERDTreeMapToggleHidden +Applies to: no restrictions. + +Toggles whether hidden files (i.e. "dot files") are displayed. + +------------------------------------------------------------------------------ + *NERDTree-f* +Default key: f +Map option: NERDTreeMapToggleFilters +Applies to: no restrictions. + +Toggles whether file filters are used. See |'NERDTreeIgnore'| for details. + +------------------------------------------------------------------------------ + *NERDTree-F* +Default key: F +Map option: NERDTreeMapToggleFiles +Applies to: no restrictions. + +Toggles whether file nodes are displayed. + +------------------------------------------------------------------------------ + *NERDTree-B* +Default key: B +Map option: NERDTreeMapToggleBookmarks +Applies to: no restrictions. + +Toggles whether the bookmarks table is displayed. + +------------------------------------------------------------------------------ + *NERDTree-q* +Default key: q +Map option: NERDTreeMapQuit +Applies to: no restrictions. + +Closes the NERDtree window. + +------------------------------------------------------------------------------ + *NERDTree-A* +Default key: A +Map option: NERDTreeMapToggleZoom +Applies to: no restrictions. + +Maximize (zoom) and minimize the NERDtree window. + +------------------------------------------------------------------------------ + *NERDTree-?* +Default key: ? +Map option: NERDTreeMapHelp +Applies to: no restrictions. + +Toggles whether the quickhelp is displayed. + +------------------------------------------------------------------------------ +2.3. The NERD tree menu *NERDTreeMenu* + +The NERD tree has a menu that can be programmed via the an API (see +|NERDTreeMenuAPI|). The idea is to simulate the "right click" menus that most +file explorers have. + +The script comes with two default menu plugins: exec_menuitem.vim and +fs_menu.vim. fs_menu.vim adds some basic filesystem operations to the menu for +creating/deleting/moving/copying files and dirs. exec_menuitem.vim provides a +menu item to execute executable files. + +Related tags: |NERDTree-m| |NERDTreeApi| + +============================================================================== +3. Customisation *NERDTreeOptions* + + +------------------------------------------------------------------------------ +3.1. Customisation summary *NERDTreeOptionSummary* + +The script provides the following options that can customise the behaviour the +NERD tree. These options should be set in your vimrc. + +|'loaded_nerd_tree'| Turns off the script. + +|'NERDChristmasTree'| Tells the NERD tree to make itself colourful + and pretty. + +|'NERDTreeAutoCenter'| Controls whether the NERD tree window centers + when the cursor moves within a specified + distance to the top/bottom of the window. +|'NERDTreeAutoCenterThreshold'| Controls the sensitivity of autocentering. + +|'NERDTreeCaseSensitiveSort'| Tells the NERD tree whether to be case + sensitive or not when sorting nodes. + +|'NERDTreeChDirMode'| Tells the NERD tree if/when it should change + vim's current working directory. + +|'NERDTreeHighlightCursorline'| Tell the NERD tree whether to highlight the + current cursor line. + +|'NERDTreeHijackNetrw'| Tell the NERD tree whether to replace the netrw + autocommands for exploring local directories. + +|'NERDTreeIgnore'| Tells the NERD tree which files to ignore. + +|'NERDTreeBookmarksFile'| Where the bookmarks are stored. + +|'NERDTreeMouseMode'| Tells the NERD tree how to handle mouse + clicks. + +|'NERDTreeQuitOnOpen'| Closes the tree window after opening a file. + +|'NERDTreeShowBookmarks'| Tells the NERD tree whether to display the + bookmarks table on startup. + +|'NERDTreeShowFiles'| Tells the NERD tree whether to display files + in the tree on startup. + +|'NERDTreeShowHidden'| Tells the NERD tree whether to display hidden + files on startup. + +|'NERDTreeShowLineNumbers'| Tells the NERD tree whether to display line + numbers in the tree window. + +|'NERDTreeSortOrder'| Tell the NERD tree how to sort the nodes in + the tree. + +|'NERDTreeStatusline'| Set a statusline for NERD tree windows. + +|'NERDTreeWinPos'| Tells the script where to put the NERD tree + window. + +|'NERDTreeWinSize'| Sets the window size when the NERD tree is + opened. + +------------------------------------------------------------------------------ +3.2. Customisation details *NERDTreeOptionDetails* + +To enable any of the below options you should put the given line in your +~/.vimrc + + *'loaded_nerd_tree'* +If this plugin is making you feel homicidal, it may be a good idea to turn it +off with this line in your vimrc: > + let loaded_nerd_tree=1 +< +------------------------------------------------------------------------------ + *'NERDChristmasTree'* +Values: 0 or 1. +Default: 1. + +If this option is set to 1 then some extra syntax highlighting elements are +added to the nerd tree to make it more colourful. + +Set it to 0 for a more vanilla looking tree. + +------------------------------------------------------------------------------ + *'NERDTreeAutoCenter'* +Values: 0 or 1. +Default: 1 + +If set to 1, the NERD tree window will center around the cursor if it moves to +within |'NERDTreeAutoCenterThreshold'| lines of the top/bottom of the window. + +This is ONLY done in response to tree navigation mappings, +i.e. |NERDTree-J| |NERDTree-K| |NERDTree-C-J| |NERDTree-C-K| |NERDTree-p| +|NERDTree-P| + +The centering is done with a |zz| operation. + +------------------------------------------------------------------------------ + *'NERDTreeAutoCenterThreshold'* +Values: Any natural number. +Default: 3 + +This option controls the "sensitivity" of the NERD tree auto centering. See +|'NERDTreeAutoCenter'| for details. + +------------------------------------------------------------------------------ + *'NERDTreeCaseSensitiveSort'* +Values: 0 or 1. +Default: 0. + +By default the NERD tree does not sort nodes case sensitively, i.e. nodes +could appear like this: > + bar.c + Baz.c + blarg.c + boner.c + Foo.c +< +But, if you set this option to 1 then the case of the nodes will be taken into +account. The above nodes would then be sorted like this: > + Baz.c + Foo.c + bar.c + blarg.c + boner.c +< +------------------------------------------------------------------------------ + *'NERDTreeChDirMode'* + +Values: 0, 1 or 2. +Default: 0. + +Use this option to tell the script when (if at all) to change the current +working directory (CWD) for vim. + +If it is set to 0 then the CWD is never changed by the NERD tree. + +If set to 1 then the CWD is changed when the NERD tree is first loaded to the +directory it is initialized in. For example, if you start the NERD tree with > + :NERDTree /home/marty/foobar +< +then the CWD will be changed to /home/marty/foobar and will not be changed +again unless you init another NERD tree with a similar command. + +If the option is set to 2 then it behaves the same as if set to 1 except that +the CWD is changed whenever the tree root is changed. For example, if the CWD +is /home/marty/foobar and you make the node for /home/marty/foobar/baz the new +root then the CWD will become /home/marty/foobar/baz. + +------------------------------------------------------------------------------ + *'NERDTreeHighlightCursorline'* +Values: 0 or 1. +Default: 1. + +If set to 1, the current cursor line in the NERD tree buffer will be +highlighted. This is done using the |'cursorline'| option. + +------------------------------------------------------------------------------ + *'NERDTreeHijackNetrw'* +Values: 0 or 1. +Default: 1. + +If set to 1, doing a > + :edit +< +will open up a "secondary" NERD tree instead of a netrw in the target window. + +Secondary NERD trees behaves slighly different from a regular trees in the +following respects: + 1. 'o' will open the selected file in the same window as the tree, + replacing it. + 2. you can have as many secondary tree as you want in the same tab. + +------------------------------------------------------------------------------ + *'NERDTreeIgnore'* +Values: a list of regular expressions. +Default: ['\~$']. + +This option is used to specify which files the NERD tree should ignore. It +must be a list of regular expressions. When the NERD tree is rendered, any +files/dirs that match any of the regex's in 'NERDTreeIgnore' wont be +displayed. + +For example if you put the following line in your vimrc: > + let NERDTreeIgnore=['\.vim$', '\~$'] +< +then all files ending in .vim or ~ will be ignored. + +Note: to tell the NERD tree not to ignore any files you must use the following +line: > + let NERDTreeIgnore=[] +< + +The file filters can be turned on and off dynamically with the |NERDTree-f| +mapping. + +------------------------------------------------------------------------------ + *'NERDTreeBookmarksFile'* +Values: a path +Default: $HOME/.NERDTreeBookmarks + +This is where bookmarks are saved. See |NERDTreeBookmarkCommands|. + +------------------------------------------------------------------------------ + *'NERDTreeMouseMode'* +Values: 1, 2 or 3. +Default: 1. + +If set to 1 then a double click on a node is required to open it. +If set to 2 then a single click will open directory nodes, while a double +click will still be required for file nodes. +If set to 3 then a single click will open any node. + +Note: a double click anywhere on a line that a tree node is on will +activate it, but all single-click activations must be done on name of the node +itself. For example, if you have the following node: > + | | |-application.rb +< +then (to single click activate it) you must click somewhere in +'application.rb'. + +------------------------------------------------------------------------------ + *'NERDTreeQuitOnOpen'* + +Values: 0 or 1. +Default: 0 + +If set to 1, the NERD tree window will close after opening a file with the +|NERDTree-o|, |NERDTree-i|, |NERDTree-t| and |NERDTree-T| mappings. + +------------------------------------------------------------------------------ + *'NERDTreeShowBookmarks'* +Values: 0 or 1. +Default: 0. + +If this option is set to 1 then the bookmarks table will be displayed. + +This option can be toggled dynamically, per tree, with the |NERDTree-B| +mapping. + +------------------------------------------------------------------------------ + *'NERDTreeShowFiles'* +Values: 0 or 1. +Default: 1. + +If this option is set to 1 then files are displayed in the NERD tree. If it is +set to 0 then only directories are displayed. + +This option can be toggled dynamically, per tree, with the |NERDTree-F| +mapping and is useful for drastically shrinking the tree when you are +navigating to a different part of the tree. + +------------------------------------------------------------------------------ + *'NERDTreeShowHidden'* +Values: 0 or 1. +Default: 0. + +This option tells vim whether to display hidden files by default. This option +can be dynamically toggled, per tree, with the |NERDTree-I| mapping. Use one +of the follow lines to set this option: > + let NERDTreeShowHidden=0 + let NERDTreeShowHidden=1 +< + +------------------------------------------------------------------------------ + *'NERDTreeShowLineNumbers'* +Values: 0 or 1. +Default: 0. + +This option tells vim whether to display line numbers for the NERD tree +window. Use one of the follow lines to set this option: > + let NERDTreeShowLineNumbers=0 + let NERDTreeShowLineNumbers=1 +< + +------------------------------------------------------------------------------ + *'NERDTreeSortOrder'* +Values: a list of regular expressions. +Default: ['\/$', '*', '\.swp$', '\.bak$', '\~$'] + +This option is set to a list of regular expressions which are used to +specify the order of nodes under their parent. + +For example, if the option is set to: > + ['\.vim$', '\.c$', '\.h$', '*', 'foobar'] +< +then all .vim files will be placed at the top, followed by all .c files then +all .h files. All files containing the string 'foobar' will be placed at the +end. The star is a special flag: it tells the script that every node that +doesnt match any of the other regexps should be placed here. + +If no star is present in 'NERDTreeSortOrder' then one is automatically +appended to the array. + +The regex '\/$' should be used to match directory nodes. + +After this sorting is done, the files in each group are sorted alphabetically. + +Other examples: > + (1) ['*', '\/$'] + (2) [] + (3) ['\/$', '\.rb$', '\.php$', '*', '\.swp$', '\.bak$', '\~$'] +< +1. Directories will appear last, everything else will appear above. +2. Everything will simply appear in alphabetical order. +3. Dirs will appear first, then ruby and php. Swap files, bak files and vim + backup files will appear last with everything else preceding them. + +------------------------------------------------------------------------------ + *'NERDTreeStatusline'* +Values: Any valid statusline setting. +Default: %{b:NERDTreeRoot.path.strForOS(0)} + +Tells the script what to use as the |'statusline'| setting for NERD tree +windows. + +Note that the statusline is set using |:let-&| not |:set| so escaping spaces +isn't necessary. + +Setting this option to -1 will will deactivate it so that your global +statusline setting is used instead. + +------------------------------------------------------------------------------ + *'NERDTreeWinPos'* +Values: "left" or "right" +Default: "left". + +This option is used to determine where NERD tree window is placed on the +screen. + +This option makes it possible to use two different explorer plugins +simultaneously. For example, you could have the taglist plugin on the left of +the window and the NERD tree on the right. + +------------------------------------------------------------------------------ + *'NERDTreeWinSize'* +Values: a positive integer. +Default: 31. + +This option is used to change the size of the NERD tree when it is loaded. + +============================================================================== +4. The NERD tree API *NERDTreeAPI* + +The NERD tree script allows you to add custom key mappings and menu items via +a set of API calls. Any scripts that use this API should be placed in +~/.vim/nerdtree_plugin/ (*nix) or ~/vimfiles/nerdtree_plugin (windows). + +The script exposes some prototype objects that can be used to manipulate the +tree and/or get information from it: > + g:NERDTreePath + g:NERDTreeDirNode + g:NERDTreeFileNode + g:NERDTreeBookmark +< +See the code/comments in NERD_tree.vim to find how to use these objects. The +following code conventions are used: + * class members start with a capital letter + * instance members start with a lower case letter + * private members start with an underscore + +See this blog post for more details: + http://got-ravings.blogspot.com/2008/09/vim-pr0n-prototype-based-objects.html + +------------------------------------------------------------------------------ +4.1. Key map API *NERDTreeKeymapAPI* + +NERDTreeAddKeyMap({options}) *NERDTreeAddKeyMap()* + Adds a new keymapping for all NERD tree buffers. + {options} must be a dictionary, and must contain the following keys: + "key" - the trigger key for the new mapping + "callback" - the function the new mapping will be bound to + "quickhelpText" - the text that will appear in the quickhelp (see + |NERDTree-?|) + + Example: > + call NERDTreeAddKeyMap({ + \ 'key': 'b', + \ 'callback': 'NERDTreeEchoCurrentNode', + \ 'quickhelpText': 'echo full path of current node' }) + + function! NERDTreeEchoCurrentNode() + let n = g:NERDTreeFileNode.GetSelected() + if n != {} + echomsg 'Current node: ' . n.path.str() + endif + endfunction +< + This code should sit in a file like ~/.vim/nerdtree_plugin/mymapping.vim. + It adds a (rather useless) mapping on 'b' which echos the full path to the + current node. + +------------------------------------------------------------------------------ +4.2. Menu API *NERDTreeMenuAPI* + +NERDTreeAddSubmenu({options}) *NERDTreeAddSubmenu()* + Creates and returns a new submenu. + + {options} must be a dictionary and must contain the following keys: + "text" - the text of the submenu that the user will see + "shortcut" - a shortcut key for the submenu (need not be unique) + + The following keys are optional: + "isActiveCallback" - a function that will be called to determine whether + this submenu item will be displayed or not. The callback function must return + 0 or 1. + "parent" - the parent submenu of the new submenu (returned from a previous + invocation of NERDTreeAddSubmenu()). If this key is left out then the new + submenu will sit under the top level menu. + + See below for an example. + +NERDTreeAddMenuItem({options}) *NERDTreeAddMenuItem()* + Adds a new menu item to the NERD tree menu (see |NERDTreeMenu|). + + {options} must be a dictionary and must contain the + following keys: + "text" - the text of the menu item which the user will see + "shortcut" - a shortcut key for the menu item (need not be unique) + "callback" - the function that will be called when the user activates the + menu item. + + The following keys are optional: + "isActiveCallback" - a function that will be called to determine whether + this menu item will be displayed or not. The callback function must return + 0 or 1. + "parent" - if the menu item belongs under a submenu then this key must be + specified. This value for this key will be the object that + was returned when the submenu was created with |NERDTreeAddSubmenu()|. + + See below for an example. + +NERDTreeAddMenuSeparator([{options}]) *NERDTreeAddMenuSeparator()* + Adds a menu separator (a row of dashes). + + {options} is an optional dictionary that may contain the following keys: + "isActiveCallback" - see description in |NERDTreeAddMenuItem()|. + +Below is an example of the menu API in action. > + call NERDTreeAddMenuSeparator() + + call NERDTreeAddMenuItem({ + \ 'text': 'a (t)op level menu item', + \ 'shortcut': 't', + \ 'callback': 'SomeFunction' }) + + let submenu = NERDTreeAddSubmenu({ + \ 'text': 'a (s)ub menu', + \ 'shortcut': 's' }) + + call NERDTreeAddMenuItem({ + \ 'text': '(n)ested item 1', + \ 'shortcut': 'n', + \ 'callback': 'SomeFunction', + \ 'parent': submenu }) + + call NERDTreeAddMenuItem({ + \ 'text': '(n)ested item 2', + \ 'shortcut': 'n', + \ 'callback': 'SomeFunction', + \ 'parent': submenu }) +< +This will create the following menu: > + -------------------- + a (t)op level menu item + a (s)ub menu +< +Where selecting "a (s)ub menu" will lead to a second menu: > + (n)ested item 1 + (n)ested item 2 +< +When any of the 3 concrete menu items are selected the function "SomeFunction" +will be called. + +------------------------------------------------------------------------------ +NERDTreeRender() *NERDTreeRender()* + Re-renders the NERD tree buffer. Useful if you change the state of the + tree and you want to it to be reflected in the UI. + +============================================================================== +5. About *NERDTreeAbout* + +The author of the NERD tree is a terrible terrible monster called Martyzilla +who gobbles up small children with milk and sugar for breakfast. + +He can be reached at martin.grenfell at gmail dot com. He would love to hear +from you, so feel free to send him suggestions and/or comments about this +plugin. Don't be shy --- the worst he can do is slaughter you and stuff you in +the fridge for later ;) + +The latest stable versions can be found at + http://www.vim.org/scripts/script.php?script_id=1658 + +The latest dev versions are on github + http://github.com/scrooloose/nerdtree + + +============================================================================== +6. Changelog *NERDTreeChangelog* + +4.0.0 + - add a new programmable menu system (see :help NERDTreeMenu). + - add new APIs to add menus/menu-items to the menu system as well as + custom key mappings to the NERD tree buffer (see :help NERDTreeAPI). + - removed the old API functions + - added a mapping to maximize/restore the size of nerd tree window, thanks + to Guillaume Duranceau for the patch. See :help NERDTree-A for details. + + - fix a bug where secondary nerd trees (netrw hijacked trees) and + NERDTreeQuitOnOpen didnt play nicely, thanks to Curtis Harvey. + - fix a bug where the script ignored directories whose name ended in a dot, + thanks to Aggelos Orfanakos for the patch. + - fix a bug when using the x mapping on the tree root, thanks to Bryan + Venteicher for the patch. + - fix a bug where the cursor position/window size of the nerd tree buffer + wasnt being stored on closing the window, thanks to Richard Hart. + - fix a bug where NERDTreeMirror would mirror the wrong tree + +3.1.1 + - fix a bug where a non-listed no-name buffer was getting created every + time the tree windows was created, thanks to Derek Wyatt and owen1 + - make behave the same as the 'o' mapping + - some helptag fixes in the doc, thanks strull + - fix a bug when using :set nohidden and opening a file where the previous + buf was modified. Thanks iElectric + - other minor fixes + +3.1.0 + New features: + - add mappings to open files in a vsplit, see :help NERDTree-s and :help + NERDTree-gs + - make the statusline for the nerd tree window default to something + hopefully more useful. See :help 'NERDTreeStatusline' + Bugfixes: + - make the hijack netrw functionality work when vim is started with "vim + " (thanks to Alf Mikula for the patch). + - fix a bug where the CWD wasnt being changed for some operations even when + NERDTreeChDirMode==2 (thanks to Lucas S. Buchala) + - add -bar to all the nerd tree :commands so they can chain with other + :commands (thanks to tpope) + - fix bugs when ignorecase was set (thanks to nach) + - fix a bug with the relative path code (thanks to nach) + - fix a bug where doing a :cd would cause :NERDTreeToggle to fail (thanks nach) + + +3.0.1 + Bugfixes: + - fix bugs with :NERDTreeToggle and :NERDTreeMirror when 'hidden + was not set + - fix a bug where :NERDTree would fail if was relative and + didnt start with a ./ or ../ Thanks to James Kanze. + - make the q mapping work with secondary (:e style) trees, + thanks to jamessan + - fix a bunch of small bugs with secondary trees + + More insane refactoring. + +3.0.0 + - hijack netrw so that doing an :edit will put a NERD tree in + the window rather than a netrw browser. See :help 'NERDTreeHijackNetrw' + - allow sharing of trees across tabs, see :help :NERDTreeMirror + - remove "top" and "bottom" as valid settings for NERDTreeWinPos + - change the '' mapping to 'i' + - change the 'H' mapping to 'I' + - lots of refactoring + +============================================================================== +7. Credits *NERDTreeCredits* + +Thanks to the following people for testing, bug reports, ideas etc. Without +you I probably would have got bored of the hacking the NERD tree and +just downloaded pr0n instead. + + Tim Carey-Smith (halorgium) + Vigil + Nick Brettell + Thomas Scott Urban + Terrance Cohen + Yegappan Lakshmanan + Jason Mills + Michael Geddes (frogonwheels) + Yu Jun + Michael Madsen + AOYAMA Shotaro + Zhang Weiwu + Niels Aan de Brugh + Olivier Yiptong + Zhang Shuhan + Cory Echols + Piotr Czachur + Yuan Jiang + Matan Nassau + Maxim Kim + Charlton Wang + Matt Wozniski (godlygeek) + knekk + Sean Chou + Ryan Penn + Simon Peter Nicholls + Michael Foobar + Tomasz Chomiuk + Denis Pokataev + Tim Pope (tpope) + James Kanze + James Vega (jamessan) + Frederic Chanal (nach) + Alf Mikula + Lucas S. Buchala + Curtis Harvey + Guillaume Duranceau + Richard Hart (hates) + +============================================================================== +8. License *NERDTreeLicense* + +The NERD tree is released under the wtfpl. +See http://sam.zoy.org/wtfpl/COPYING. diff --git a/vim/doc/bufexplorer.txt b/vim/doc/bufexplorer.txt new file mode 100644 index 0000000..b87f329 --- /dev/null +++ b/vim/doc/bufexplorer.txt @@ -0,0 +1,502 @@ +*bufexplorer.txt* Buffer Explorer Last Change: 16 Feb 2010 + +Buffer Explorer *buffer-explorer* *bufexplorer* + Version 7.2.7 + +Plugin for easily exploring (or browsing) Vim |:buffers|. + +|bufexplorer-installation| Installation +|bufexplorer-usage| Usage +|bufexplorer-windowlayout| Window Layout +|bufexplorer-customization| Customization +|bufexplorer-changelog| Change Log +|bufexplorer-todo| Todo +|bufexplorer-credits| Credits + +For Vim version 7.0 and above. +This plugin is only available if 'compatible' is not set. + +{Vi does not have any of this} + +============================================================================== +INSTALLATION *bufexplorer-installation* + +To install: + - Download the bufexplorer.zip. + - Extract the zip archive into your runtime directory. + The archive contains plugin/bufexplorer.vim, and doc/bufexplorer.txt. + - Start Vim or goto an existing instance of Vim. + - Execute the following command: +> + :helptag /doc +< + This will generate all the help tags for any file located in the doc + directory. + +============================================================================== +USAGE *bufexplorer-usage* + +To start exploring in the current window, use: > + \be or :BufExplorer +To start exploring in a newly split horizontal window, use: > + \bs or :BufExplorerHorizontalSplit +To start exploring in a newly split vertical window, use: > + \bv or :BufExplorerVerticalSplit + +If you would like to use something other than '\', you may simply change the +leader (see |mapleader|). + +Note: If the current buffer is modified when bufexplorer started, the current + window is always split and the new bufexplorer is displayed in that new + window. + +Commands to use once exploring: + + Toggle help information. + Opens the buffer that is under the cursor into the current + window. + Opens the buffer that is under the cursor into the current + window. + Opens the buffer that is under the cursor in another tab. + d |:delete|the buffer under the cursor from the list. The + buffer's 'buflisted' is cleared. This allows for the buffer to + be displayed again using the 'show unlisted' command. + R Toggles relative path/absolute path. + T Toggles to show only buffers for this tab or not. + D |:wipeout|the buffer under the cursor from the list. When a + buffers is wiped, it will not be shown when unlisted buffer are + displayed. + f Toggles whether you are taken to the active window when + selecting a buffer or not. + o Opens the buffer that is under the cursor into the current + window. + p Toggles the showing of a split filename/pathname. + q Quit exploring. + r Reverses the order the buffers are listed in. + s Selects the order the buffers are listed in. Either by buffer + number, file name, file extension, most recently used (MRU), or + full path. + t Opens the buffer that is under the cursor in another tab. + u Toggles the showing of "unlisted" buffers. + +Once invoked, Buffer Explorer displays a sorted list (MRU is the default +sort method) of all the buffers that are currently opened. You are then +able to move the cursor to the line containing the buffer's name you are +wanting to act upon. Once you have selected the buffer you would like, +you can then either open it, close it(delete), resort the list, reverse +the sort, quit exploring and so on... + +=============================================================================== +WINDOW LAYOUT *bufexplorer-windowlayout* + +------------------------------------------------------------------------------- +" Press for Help +" Sorted by mru | Locate buffer | Absolute Split path +"= + 01 %a bufexplorer.txt C:\Vim\vimfiles\doc line 87 + 02 # bufexplorer.vim c:\Vim\vimfiles\plugin line 1 +------------------------------------------------------------------------------- + | | | | | + | | | | +-- Current Line #. + | | | +-- Relative/Full Path + | | +-- Buffer Name. + | +-- Buffer Attributes. See|:buffers|for more information. + +-- Buffer Number. See|:buffers|for more information. + +=============================================================================== +CUSTOMIZATION *bufexplorer-customization* + + *g:bufExplorerDefaultHelp* +To control whether the default help is displayed or not, use: > + let g:bufExplorerDefaultHelp=0 " Do not show default help. + let g:bufExplorerDefaultHelp=1 " Show default help. +The default is to show the default help. + + *g:bufExplorerDetailedHelp* +To control whether detailed help is display by, use: > + let g:bufExplorerDetailedHelp=0 " Do not show detailed help. + let g:bufExplorerDetailedHelp=1 " Show detailed help. +The default is NOT to show detailed help. + + *g:bufExplorerFindActive* +To control whether you are taken to the active window when selecting a buffer, +use: > + let g:bufExplorerFindActive=0 " Do not go to active window. + let g:bufExplorerFindActive=1 " Go to active window. +The default is to be taken to the active window. + + *g:bufExplorerReverseSort* +To control whether to sort the buffer in reverse order or not, use: > + let g:bufExplorerReverseSort=0 " Do not sort in reverse order. + let g:bufExplorerReverseSort=1 " Sort in reverse order. +The default is NOT to sort in reverse order. + + *g:bufExplorerShowDirectories* +Directories usually show up in the list from using a command like ":e .". +To control whether to show directories in the buffer list or not, use: > + let g:bufExplorerShowDirectories=1 " Show directories. + let g:bufExplorerShowDirectories=0 " Don't show directories. +The default is to show directories. + + *g:bufExplorerShowRelativePath* +To control whether to show absolute paths or relative to the current +directory, use: > + let g:bufExplorerShowRelativePath=0 " Show absolute paths. + let g:bufExplorerShowRelativePath=1 " Show relative paths. +The default is to show absolute paths. + + *g:bufExplorerShowUnlisted* +To control whether to show unlisted buffer or not, use: > + let g:bufExplorerShowUnlisted=0 " Do not show unlisted buffers. + let g:bufExplorerShowUnlisted=1 " Show unlisted buffers. +The default is to NOT show unlisted buffers. + + *g:bufExplorerSortBy* +To control what field the buffers are sorted by, use: > + let g:bufExplorerSortBy='extension' " Sort by file extension. + let g:bufExplorerSortBy='fullpath' " Sort by full file path name. + let g:bufExplorerSortBy='mru' " Sort by most recently used. + let g:bufExplorerSortBy='name' " Sort by the buffer's name. + let g:bufExplorerSortBy='number' " Sort by the buffer's number. +The default is to sort by mru. + + *g:bufExplorerSplitBelow* +To control where the new split window will be placed above or below the +current window, use: > + let g:bufExplorerSplitBelow=1 " Split new window below current. + let g:bufExplorerSplitBelow=0 " Split new window above current. +The default is to use what ever is set by the global &splitbelow +variable. + + *g:bufExplorerSplitOutPathName* +To control whether to split out the path and file name or not, use: > + let g:bufExplorerSplitOutPathName=1 " Split the path and file name. + let g:bufExplorerSplitOutPathName=0 " Don't split the path and file + " name. +The default is to split the path and file name. + + *g:bufExplorerSplitRight* +To control where the new vsplit window will be placed to the left or right of +current window, use: > + let g:bufExplorerSplitRight=0 " Split left. + let g:bufExplorerSplitRight=1 " Split right. +The default is to use the global &splitright. + + *g:bufExplorerShowTabBuffer* +To control weither or not to show buffers on for the specific tab or not, use: > + let g:bufExplorerShowTabBuffer=0 " No. + let g:bufExplorerShowTabBuffer=1 " Yes. +The default is not to show. + +=============================================================================== +CHANGE LOG *bufexplorer-changelog* + +7.2.7 - Fix: + * My 1st attempt to fix the "cache" issue where buffers information + has changed but the cache/display does not reflect those changes. + More work still needs to be done. +7.2.6 - Fix: + * Thanks to Michael Henry for pointing out that I totally forgot to + update the inline help to reflect the previous change to the 'd' + and 'D' keys. Opps! +7.2.5 - Fix: + * Philip Morant suggested switching the command (bwipe) associated + with the 'd' key with the command (bdelete) associated with the 'D' + key. This made sense since the 'd' key is more likely to be used + compared to the 'D' key. +7.2.4 - Fix: + * I did not implement the patch provided by Godefroid Chapelle + correctly. I missed one line which happened to be the most + important one :) +7.2.3 - Enhancements: + * Thanks to David Fishburn for helping me out with a much needed + code overhaul as well as some awesome performance enhancements. + He also reworked the handling of tabs. + * Thanks to Vladimir Dobriakov for making the suggestions on + enhancing the documentation to include a better explaination of + what is contained in the main bufexplorer window. + * Thanks to Yuriy Ershov for added code that when the bufexplorer + window is opened, the cursor is now positioned at the line with the + active buffer (useful in non-MRU sort modes). + * Yuriy also added the abiltiy to cycle through the sort fields in + reverse order. + Fixes: + * Thanks to Michael Henry for supplying a patch that allows + bufexplorer to be opened even when there is one buffer or less. + * Thanks to Godefroid Chapelle for supplying a patch that fixed + MRU sort order after loading a session. +7.2.2 - Fixes: + * Thanks to David L. Dight for spotting and fixing an issue when + using ctrl^. bufexplorer would incorrectly handle the previous + buffer so that when ctrl^ was pressed the incorrect file was opened. +7.2.1 - Fixes: + * Thanks to Dimitar for spotting and fixing a feature that was + inadvertently left out of the previous version. The feature was + when bufexplorer was used together with WinManager, you could use + the tab key to open a buffer in a split window. +7.2.0 - Enhancements: + * For all those missing the \bs and \bv commands, these have now + returned. Thanks to Phil O'Connell for asking for the return of + these missing features and helping test out this version. + Fixes: + * Fixed problem with the bufExplorerFindActive code not working + correctly. + * Fixed an incompatibility between bufexplorer and netrw that caused + buffers to be incorrectly removed from the MRU list. +7.1.7 - Fixes: + * TaCahiroy fixed several issues related to opening a buffer in a + tab. +7.1.6 - Fixes: + * Removed ff=unix from modeline in bufexplorer.txt. Found by Bill + McCarthy. +7.1.5 - Fixes: + * Could not open unnamed buffers. Fixed by TaCahiroy. +7.1.4 - Fixes: + * Sometimes when a file's path has 'white space' in it, extra buffers + would be created containing each piece of the path. i.e: + opening c:\document and settings\test.txt would create a buffer + named "and" and a buffer named "Documents". This was reported and + fixed by TaCa Yoss. +7.1.3 - Fixes: + * Added code to allow only one instance of the plugin to run at a + time. Thanks Dennis Hostetler. +7.1.2 - Fixes: + * Fixed a jumplist issue spotted by JiangJun. I overlooked the + 'jumplist' and with a couple calls to 'keepjumps', everything is + fine again. + * Went back to just having a plugin file, no autoload file. By having + the autoload, WinManager was no longer working and without really + digging into the cause, it was easier to go back to using just a + plugin file. +7.1.1 - Fixes: + * A problem spotted by Thomas Arendsen Hein. + When running Vim (7.1.94), error E493 was being thrown. + Enhancements: + * Added 'D' for 'delete' buffer as the 'd' command was a 'wipe' + buffer. +7.1.0 - Another 'major' update, some by Dave Larson, some by me. + * Making use of 'autoload' now to make the plugin load quicker. + * Removed '\bs' and '\bv'. These are now controlled by the user. The + user can issue a ':sp' or ':vs' to create a horizontal or vertical + split window and then issue a '\be' + * Added handling of tabs. +7.0.17 - Fixed issue with 'drop' command. + Various enhancements and improvements. +7.0.16 - Fixed issue reported by Liu Jiaping on non Windows systems, which was + ... + Open file1, open file2, modify file1, open bufexplorer, you get the + following error: + + --------8<-------- + Error detected while processing function + 14_StartBufExplorer..14_SplitOpen: + line 4: + E37: No write since last change (add ! to override) + + But the worse thing is, when I want to save the current buffer and + type ':w', I get another error message: + E382: Cannot write, 'buftype' option is set + --------8<-------- + +7.0.15 - Thanks to Mark Smithfield for suggesting bufexplorer needed to handle + the ':args' command. +7.0.14 - Thanks to Randall Hansen for removing the requirement of terminal + versions to be recompiled with 'gui' support so the 'drop' command + would work. The 'drop' command is really not needed in terminal + versions. +7.0.13 - Fixed integration with WinManager. + Thanks to Dave Eggum for another update. + - Fix: The detailed help didn't display the mapping for toggling + the split type, even though the split type is displayed. + - Fixed incorrect description in the detailed help for toggling + relative or full paths. + - Deprecated s:ExtractBufferNbr(). Vim's str2nr() does the same + thing. + - Created a s:Set() function that sets a variable only if it hasn't + already been defined. It's useful for initializing all those + default settings. + - Removed checks for repetitive command definitions. They were + unnecessary. + - Made the help highlighting a little more fancy. + - Minor reverse compatibility issue: Changed ambiguous setting + names to be more descriptive of what they do (also makes the code + easier to follow): + Changed bufExplorerSortDirection to bufExplorerReverseSort + Changed bufExplorerSplitType to bufExplorerSplitVertical + Changed bufExplorerOpenMode to bufExplorerUseCurrentWindow + - When the BufExplorer window closes, all the file-local marks are + now deleted. This may have the benefit of cleaning up some of the + jumplist. + - Changed the name of the parameter for StartBufExplorer from + "split" to "open". The parameter is a string which specifies how + the buffer will be open, not if it is split or not. + - Deprecated DoAnyMoreBuffersExist() - it is a one line function + only used in one spot. + - Created four functions (SplitOpen(), RebuildBufferList(), + UpdateHelpStatus() and ReSortListing()) all with one purpose - to + reduce repeated code. + - Changed the name of AddHeader() to CreateHelp() to be more + descriptive of what it does. It now returns an array instead of + updating the window directly. This has the benefit of making the + code more efficient since the text the function returns is used a + little differently in the two places the function is called. + - Other minor simplifications. +7.0.12 - MAJOR Update. + This version will ONLY run with Vim version 7.0 or greater. + Dave Eggum has made some 'significant' updates to this latest + version: + - Added BufExplorerGetAltBuf() global function to be used in the + user’s rulerformat. + - Added g:bufExplorerSplitRight option. + - Added g:bufExplorerShowRelativePath option with mapping. + - Added current line highlighting. + - The split type can now be changed whether bufexplorer is opened + in split mode or not. + - Various major and minor bug fixes and speed improvements. + - Sort by extension. + Other improvements/changes: + - Changed the help key from '?' to to be more 'standard'. + - Fixed splitting of vertical bufexplorer window. + Hopefully I have not forgot something :) +7.0.11 - Fixed a couple of highlighting bugs, reported by David Eggum. He also + changed passive voice to active on a couple of warning messages. +7.0.10 - Fixed bug report by Xiangjiang Ma. If the 'ssl' option is set, + the slash character used when displaying the path was incorrect. +7.0.9 - Martin Grenfell found and eliminated an annoying bug in the + bufexplorer/winmanager integration. The bug was were an + annoying message would be displayed when a window was split or + a new file was opened in a new window. Thanks Martin! +7.0.8 - Thanks to Mike Li for catching a bug in the WinManager integration. + The bug was related to the incorrect displaying of the buffer + explorer's window title. +7.0.7 - Thanks to Jeremy Cowgar for adding a new enhancement. This + enhancement allows the user to press 'S', that is capital S, which + will open the buffer under the cursor in a newly created split + window. +7.0.6 - Thanks to Larry Zhang for finding a bug in the "split" buffer code. + If you force set g:bufExplorerSplitType='v' in your vimrc, and if you + tried to do a \bs to split the bufexplorer window, it would always + split horizontal, not vertical. He also found that I had a typeo in + that the variable g:bufExplorerSplitVertSize was all lower case in + the documentation which was incorrect. +7.0.5 - Thanks to Mun Johl for pointing out a bug that if a buffer was + modified, the '+' was not showing up correctly. +7.0.4 - Fixed a problem discovered first by Xiangjiang Ma. Well since I've + been using vim 7.0 and not 6.3, I started using a function (getftype) + that is not in 6.3. So for backward compatibility, I conditionaly use + this function now. Thus, the g:bufExplorerShowDirectories feature is + only available when using vim 7.0 and above. +7.0.3 - Thanks to Erwin Waterlander for finding a problem when the last + buffer was deleted. This issue got me to rewrite the buffer display + logic (which I've wanted to do for sometime now). + Also great thanks to Dave Eggum for coming up with idea for + g:bufExplorerShowDirectories. Read the above information about this + feature. +7.0.2 - Thanks to Thomas Arendsen Hein for finding a problem when a user + has the default help turned off and then brought up the explorer. An + E493 would be displayed. +7.0.1 - Thanks to Erwin Waterlander for finding a couple problems. + The first problem allowed a modified buffer to be deleted. Opps! The + second problem occurred when several files were opened, BufExplorer + was started, the current buffer was deleted using the 'd' option, and + then BufExplorer was exited. The deleted buffer was still visible + while it is not in the buffers list. Opps again! +7.0.0 - Thanks to Shankar R. for suggesting to add the ability to set + the fixed width (g:bufExplorerSplitVertSize) of a new window + when opening bufexplorer vertically and fixed height + (g:bufExplorerSplitHorzSize) of a new window when opening + bufexplorer horizontally. By default, the windows are normally + split to use half the existing width or height. +6.3.0 - Added keepjumps so that the jumps list would not get cluttered with + bufexplorer related stuff. +6.2.3 - Thanks to Jay Logan for finding a bug in the vertical split position + of the code. When selecting that the window was to be split + vertically by doing a '\bv', from then on, all splits, i.e. '\bs', + were split vertically, even though g:bufExplorerSplitType was not set + to 'v'. +6.2.2 - Thanks to Patrik Modesto for adding a small improvement. For some + reason his bufexplorer window was always showing up folded. He added + 'setlocal nofoldenable' and it was fixed. +6.2.1 - Thanks goes out to Takashi Matsuo for added the 'fullPath' sorting + logic and option. +6.2.0 - Thanks goes out to Simon Johann-Ganter for spotting and fixing a + problem in that the last search pattern is overridden by the search + pattern for blank lines. +6.1.6 - Thanks to Artem Chuprina for finding a pesky bug that has been around + for sometime now. The key mapping was causing the buffer + explored to close prematurely when vim was run in an xterm. The + key mapping is now removed. +6.1.5 - Thanks to Khorev Sergey. Added option to show default help or not. +6.1.4 - Thanks goes out to Valery Kondakoff for suggesting the addition of + setlocal nonumber and foldcolumn=0. This allows for line numbering + and folding to be turned off temporarily while in the explorer. +6.1.3 - Added folding. Did some code cleanup. Added the ability to force the + newly split window to be temporarily vertical, which was suggested by + Thomas Glanzmann. +6.1.2 - Now pressing the key will quit, just like 'q'. + Added folds to hide winmanager configuration. + If anyone had the 'C' option in their cpoptions they would receive + a E10 error on startup of BufExplorer. cpo is now saved, updated and + restored. Thanks to Charles E Campbell, Jr. + Attempted to make sure there can only be one BufExplorer window open + at a time. +6.1.1 - Thanks to Brian D. Goodwin for adding toupper to FileNameCmp. This + way buffers sorted by name will be in the correct order regardless of + case. +6.0.16 - Thanks to Andre Pang for the original patch/idea to get bufexplorer + to work in insertmode/modeless mode (evim). Added Initialize + and Cleanup autocommands to handle commands that need to be + performed when starting or leaving bufexplorer. +6.0.15 - Srinath Avadhanulax added a patch for winmanager.vim. +6.0.14 - Fix a few more bug that I thought I already had fixed. Thanks + to Eric Bloodworth for adding 'Open Mode/Edit in Place'. Added + vertical splitting. +6.0.13 - Thanks to Charles E Campbell, Jr. for pointing out some embarrassing + typos that I had in the documentation. I guess I need to run + the spell checker more :o) +6.0.12 - Thanks to Madoka Machitani, for the tip on adding the augroup command + around the MRUList autocommands. +6.0.11 - Fixed bug report by Xiangjiang Ma. '"=' was being added to the + search history which messed up hlsearch. +6.0.10 - Added the necessary hooks so that the Srinath Avadhanula's + winmanager.vim script could more easily integrate with this script. + Tried to improve performance. +6.0.9 - Added MRU (Most Recently Used) sort ordering. +6.0.8 - Was not resetting the showcmd command correctly. + Added nifty help file. +6.0.7 - Thanks to Brett Carlane for some great enhancements. Some are added, + some are not, yet. Added highlighting of current and alternate + filenames. Added splitting of path/filename toggle. Reworked + ShowBuffers(). + Changed my email address. +6.0.6 - Copyright notice added. Needed this so that it could be distributed + with Debian Linux. Fixed problem with the SortListing() function + failing when there was only one buffer to display. +6.0.5 - Fixed problems reported by David Pascoe, in that you where unable to + hit 'd' on a buffer that belonged to a files that no longer existed + and that the 'yank' buffer was being overridden by the help text when + the bufexplorer was opened. +6.0.4 - Thanks to Charles Campbell, Jr. for making this plugin more plugin + *compliant*, adding default keymappings of be and bs + as well as fixing the 'w:sortDirLabel not being defined' bug. +6.0.3 - Added sorting capabilities. Sort taken from explorer.vim. +6.0.2 - Can't remember. (2001-07-25) +6.0.1 - Initial release. + +=============================================================================== +TODO *bufexplorer-todo* + +- Nothing as of now, buf if you have any suggestions, drop me an email. + +=============================================================================== +CREDITS *bufexplorer-credits* + +Author: Jeff Lanzarotta + +Credit must go out to Bram Moolenaar and all the Vim developers for +making the world's best editor (IMHO). I also want to thank everyone who +helped and gave me suggestions. I wouldn't want to leave anyone out so I +won't list names. + +=============================================================================== +vim:tw=78:noet:wrap:ts=8:ft=help:norl: diff --git a/vim/doc/conque_term.txt b/vim/doc/conque_term.txt new file mode 100644 index 0000000..8485a13 --- /dev/null +++ b/vim/doc/conque_term.txt @@ -0,0 +1,646 @@ +*ConqueTerm* Plugin to run a shell inside a Vim buffer + +The ConqueTerm plugin will turn a Vim buffer into a terminal emulator, allowing +you to run and interact with a shell or shell application inside the buffer. + + 1. Installation |conque-term-setup| + 1.1 Requirements for Unix |conque-term-requirements| + 1.2 Requirements for Windows |conque-term-windows| + 1.3 Installation |conque-term-installation| + 2. Usage |conque-term-usage| + 2.1 General Usage |conque-term-gen-usage| + 2.2 Special keys |conque-term-special-keys| + 2.2.1 Send text to Conque |conque-term-send| + 2.2.2 Toggle terminal input mode |conque-term-input-mode| + 2.2.3 Sending the key press |conque-term-esc| + 3. Configuration |conque-term-options| + 3.1 General |conque-config-general| + 3.1.1 Python version |ConqueTerm_PyVersion| + 3.1.2 Fast mode |ConqueTerm_FastMode| + 3.1.3 Color support |ConqueTerm_Color| + 3.1.4 Session Support |ConqueTerm_SessionSupport| + 3.1.5 Keep updating terminal buffer |ConqueTerm_ReadUnfocused| + 3.1.6 Insert mode when entering buffer |ConqueTerm_InsertOnEnter| + 3.1.7 Close buffer when program exits |ConqueTerm_CloseOnEnd| + 3.1.8 Hide start messages |ConqueTerm_StartMessages| + 3.1.9 Regex for highlighting your prompt |ConqueTerm_PromptRegex| + 3.1.10 Syntax type |ConqueTerm_Syntax| + 3.2 Keyboard |conque-config-keyboard| + 3.2.1 The key |ConqueTerm_EscKey| + 3.2.2 Toggle terminal input mode |ConqueTerm_ToggleKey| + 3.2.3 Enable in insert mode |ConqueTerm_CWInsert| + 3.2.4 Execute current file in Conque |ConqueTerm_ExecFileKey| + 3.2.5 Send current file contents to Conque|ConqueTerm_SendFileKey| + 3.2.6 Send selected text to Conque |ConqueTerm_SendVisKey| + 3.2.7 Function Keys |ConqueTerm_SendFunctionKeys| + 3.3 Unix |conque-config-unix| + 3.3.1 Choose your terminal type |ConqueTerm_TERM| + 3.4 Windows |conque-config-windows| + 3.4.1 Python executable |ConqueTerm_PyExe| + 3.4.2 Windows character code page |ConqueTerm_CodePage| + 3.4.3 Terminal color method |ConqueTerm_ColorMode| + 4. VimScript API |conque-term-api| + 4.1 conque_term#open() |conque-term-open| + 4.2 conque_term#subprocess() |conque-term-subprocess| + 4.3 conque_term#get_instance() |conque-term-get-instance| + 4.4 CONQUE_OBJECT.write() |conque-term-write| + 4.5 CONQUE_OBJECT.writeln() |conque-term-writeln| + 4.6 CONQUE_OBJECT.read() |conque-term-read| + 4.7 CONQUE_OBJECT.set_callback() |conque-term-set-callback| + 4.8 CONQUE_OBJECT.close() |conque-term-close| + 4.9 Registering functions |conque-term-events| + 5. Misc |conque-term-misc| + 5.1 Known bugs |conque-term-bugs| + 5.2 Contribute |conque-term-contribute| + 5.3 Feedback |conque-term-feedback| + +============================================================================== + +1. Installation *conque-term-setup* + +Conque is designed for both Unix and Windows operating systems, however the +requirements are slightly different. Please check section below corresponding +to your installed OS. + +1.1 Requirements for Unix *conque-term-requirements* + + * [G]Vim 7.0+ with +python and/or +python3 + * Python 2.3+ and/or 3.x + * Unix-like OS: Linux, OS X, Solaris, Cygwin, etc + +The most common stumbling block is getting a version of Vim which has the +python interface enabled. Most all software package managers will have a copy +of Vim with Python support, so that is often the easiest way to get it. If +you're compiling Vim from source, be sure to use the --enable-pythoninterp +option, or --enable-python3interp for Python 3. On OS X the best option is +MacVim, which installs with Python support by default. + +1.2 Requirements for Windows *conque-term-windows* + + * [G]Vim 7.3 with +python and/or +python3 + * Python 2.7 and/or 3.1 + * Modern Windows OS (XP or later) + +Conque only officially supports the latest GVim 7.3 Windows installer +available at www.vim.org. If you are currently using Vim 7.2 or earlier you +will need to upgrade to 7.3 for Windows support. The Windows installer already +has the +python/+python3 interface built in. + +The official 7.3 release of Vim for Windows only works with Python versions +2.7 and/or 3.1. You can download and install Python from their website +http://www.python.org/download + +If you are compiling Vim + Python from source on Windows, the requirements +become only Vim 7.3+ and Python 2.7+. + + +1.3 Installation *conque-term-installation* + +Download the latest vimball from http://conque.googlecode.com + +Open the .vba file with Vim and run the following commands: +> + :so % + :q +< +That's it! The :ConqueTerm command will be available the next time you start +Vim. You can delete the .vba file when you've verified Conque was successfully +installed. + +============================================================================== + +2. Usage *conque-term-usage* + +2.1 General Usage *conque-term-gen-usage* + +Type :ConqueTerm to launch an application in the current buffer. Eg: +> + :ConqueTerm bash + :ConqueTerm mysql -h localhost -u joe_lunchbox Menu + :ConqueTerm Powershell.exe +< +Use :ConqueTermSplit or :ConqueTermVSplit to open Conque in a new horizontal +or vertical buffer. Use :ConqueTermTab to open Conque in a new tab. + +In insert mode you can interact with the shell as you would expect in a +normal terminal. All key presses will be sent to the terminal, including +control characters. See |conque-term-special-keys| for more information, +particularly regarding the key. + +In normal mode you can use Vim commands to browse your terminal output and +scroll back through the history. Most all Vim functionality will work, such +as searching, yanking or highlighting text. + + +2.2 Special keys *conque-term-special-keys* + +There are several keys which can be configured to have special behavior with +Conque. + +2.2.1 Send text to Conque *conque-term-send* + +Conque gives you three different commands to send text from a different +buffer, probably a source code file, to the Conque terminal buffer. All three +are configurable to use your choice of key combinations. + +To send a visually selected range of text to an existing terminal buffer, +press the key. + +To send the entire contents of the file you are editing to an existing +terminal buffer, press the key. + +Finally, to execute the current file in a new terminal buffer press the +key. This will split the screen with a new Conque buffer. The file you are +editing must be executable for this command to work. + +See |conque-term-options| for information about configuring these commands. + +2.2.2 Toggle terminal input mode *conque-term-input-mode* + +If you want to use insert mode to edit the terminal screen, press . You +will now be able to edit the terminal output freely without your cursor +jumping the the active prompt line. This may be useful if you want to reformat +terminal output for readability. + +While the terminal is paused new output will not be displayed on the screen +until you press again to resume. + +You can configure Conque to use a different key with the |ConqueTerm_ToggleKey| +option. + +2.2.3 Sending the key press *conque-term-esc* + +By default if you press the key in a Conque buffer you will leave insert +mode. But what if you want the character to be sent to your terminal? +There are two options. By default, pressing twice will send one +character to the terminal and you will remain in insert mode, while pressing +it once will leave insert mode. + +Alternatively you can use the |ConqueTerm_EscKey| option to choose a +different key for leaving insert mode. If a custom key is set, then all +key presses will be sent to the terminal. + +2.3 Registering functions *conque-term-register* + +Conque allows you to write your own VimScript functions which will be called +at certain events. See the API section |conque-term-events| for more. + +============================================================================== + +3. Options *conque-term-options* + +You can set the following options in your .vimrc (default values shown) + +3.1 General *conque-config-general* + +3.1.1 Python version *ConqueTerm_PyVersion* + +Conque will work with either Python 2.x or 3.x, assuming the interfaces have +been installed. By default it will try to use Python 2 first, then will try +Python 3. If you want Conque to use Python 3, set this variable to 3. + +Note: even if you set this to 3, if you don't have the python3 interface +Conque will fall back to using Python 2. +> + let g:ConqueTerm_PyVersion = 2 +< +3.1.2 Fast Mode *ConqueTerm_FastMode* + +Disable features which could make Conque run slowly. This includes most +terminal colors and some unicode support. Set this to 1 to enable fast mode. +> + let g:ConqueTerm_FastMode = 0 +< +3.1.3 Color support *ConqueTerm_Color* + +Terminal colors have the potential to slow down terminal screen rendering, +depending on how many colors are used and how fast the computer is. This +option allows you to choose how much color support will be enabled. + +If set to 0, terminal colors will be disabled. This will allow the terminal to +render most quickly. Syntax highlighting will still work. For example +highlighting quoted strings or MySQL output. + +If set to 1, terminal colors will be enabled, but only for the most recent 200 +lines of terminal output. Older output will be periodically stripped of color +highlighting to keep the display responsive. + +If set to 2, terminal colors will always be enabled. If your programs don't +use color output very frequently this is a good choice. + +Note: Color support is automatically disabled in "fast mode". +> + let g:ConqueTerm_Color = 1 +< +3.1.4 Session Support *ConqueTerm_SessionSupport* + +Vim's :mksession command allows you to save your current buffer configuration +to a file, which can be loaded at a later time after you've closed Vim. + +By default, Conque buffers are not restored. This is mostly for safety +reasons; you may not want Vim to automatically re-run a destructive command. + +However, if you're not working with missile launch code, and want Vim to +restart your Conque buffers when you load a session file, set this variable +to 1. Note your original subprocess and shell output will not be restored, but +the same command will be started in your buffer. +> + let g:ConqueTerm_SessionSupport = 0 +< +3.1.5 Keep updating terminal buffer *ConqueTerm_ReadUnfocused* + +If set to 1 then your Conque buffers will continue to update after you've +switched to another buffer. + +Note: Conque buffers may continue to update, but they will not scroll down as +new lines are added beyond the bottom of the visible buffer area. This is a +limitation of the Vim scripting language for which I haven't found a +workaround. +> + let g:ConqueTerm_ReadUnfocused = 1 +< +3.1.6 Insert mode when entering buffer *ConqueTerm_InsertOnEnter* + +If set to 1 then you will automatically go into insert mode when you enter the +buffer. This diverges from normal Vim behavior. If 0 you will still be in +normal mode. +> + let g:ConqueTerm_InsertOnEnter = 0 +< +3.1.7 Close buffer when program exits *ConqueTerm_CloseOnEnd* + +If you want your terminal buffer to be closed and permanently deleted when the +program running inside of it exits, set this option to 1. Otherwise the buffer +will become a simple text buffer after the program exits, and you can edit the +program output in insert mode. +> + let g:ConqueTerm_CloseOnEnd = 0 +< +3.1.8 Show start messages *ConqueTerm_StartMessages* + +Display warning messages when starting up ConqueTerm if your system is +configured incorrectly. +> + let g:ConqueTerm_StartMessages = 1 +< +3.1.9 Regex for highlighting your prompt *ConqueTerm_PromptRegex* + +Use this regular expression for sytax highlighting your terminal prompt. Your +terminal will generally run faster if you use Vim highlighting instead of +terminal colors for your prompt. You can also use it to do more advanced +syntax highlighting for the prompt line. +> + let g:ConqueTerm_PromptRegex = '^\w\+@[0-9A-Za-z_.-]\+:[0-9A-Za-z_./\~,:-]\+\$' +< +3.1.10 Choose Vim syntax type *ConqueTerm_Syntax* + +Set the buffer syntax. The default 'conque_term' has highlighting for MySQL, +but not much else. +> + let g:ConqueTerm_Syntax = 'conque_term' +< +3.2 Keyboard *conque-config-keyboard* + +3.2.1 The key *ConqueTerm_EscKey* + +If a custom key is set, then all key presses will be sent to the +terminal and you must use this custom key to leave insert mode. If left to the +default value of '' then you must press it twice to send the escape +character to the terminal, while pressing it once will leave insert mode. + +Note: You cannot use a key which is internally coded with the escape +character. This includes the keys and often the and keys. +Picking a control key, such as will be your best bet. +> + let g:ConqueTerm_EscKey = '' +< +3.2.2 Toggle terminal input mode *ConqueTerm_ToggleKey* + +Press this key to pause terminal input and output display. You will then be +able to edit the terminal screen as if it were a normal text buffer. Press +this key again to resume terminal mode. +> + let g:ConqueTerm_ToggleKey = '' +< +3.2.3 Enable in insert mode *ConqueTerm_CWInsert* + +If set to 1 then you can leave the Conque buffer using the commands +while you're still in insert mode. If set to 0 then the character will +be sent to the terminal. If both this option and ConqueTerm_InsertOnEnter are +set you can go in and out of the terminal buffer while never leaving insert +mode. +> + let g:ConqueTerm_CWInsert = 0 +< +3.2.4 Execute current file in Conque *ConqueTerm_ExecFileKey* + +Press this key to execute the file you're currently editing in a Conque +buffer. Is equivelent to running the command :ConqueTermSplit YOUR_FILE. Your +file must be executable for this command to work correctly. +> + let g:ConqueTerm_ExecFileKey = '' +< +3.2.5 Send current file contents to Conque *ConqueTerm_SendFileKey* + +Press this key to send your entire file contents to the most recently opened +Conque buffer as keyboard input. +> + let g:ConqueTerm_SendFileKey = '' +< +3.2.6 Send selected text to Conque *ConqueTerm_SendVisKey* + +Use this key to send the currently selected text to the most recently created +Conque buffer. +> + let g:ConqueTerm_SendVisKey = '' +< +3.2.7 Function Keys *ConqueTerm_SendFunctionKeys* + +By default, function keys (the F1-F12 row at the top of your keyboard) are not +passed to the terminal. Set this option to 1 to send these key events. + +Note: Unless you configured |ConqueTerm_SendVisKey| and |ConqueTerm_ToggleKey| +to use different keys, and will not be sent to the terminal even if +you set this option to 1. +> + let g:ConqueTerm_SendFunctionKeys = 0 +< +3.3 Unix *conque-config-unix* + +3.3.1 Choose your terminal type, Unix ONLY *ConqueTerm_TERM* + +Use this option to tell Conque what type of terminal it should identify itself +as. Conque officially uses the more limited VT100 terminal type for +developement and testing, although it supports some more advanced features +such as colors and title strings. + +You can change this setting to a more advanced type, namely 'xterm', but your +results may vary depending on which programs you're running. +> + let g:ConqueTerm_TERM = 'vt100' +< +3.4 Windows *conque-config-windows* + +3.4.1 Python executable, Windows ONLY *ConqueTerm_PyExe* + +The Windows version of Conque needs to know the path to the python.exe +executable for the version of Python Conque is using. If you installed Python +in the default location, or added the Python directory to your system path, +Conque should be able to find python.exe without you changing this variable. + +For example, you might set this to 'C:\Program Files\Python27\python.exe' +> + let g:ConqueTerm_PyExe = '' +< +3.4.2 Windows character code page *ConqueTerm_CodePage* + +Set the "code page" Windows will use for your console. Leave this value set to +zero to use the environment code page. + +Note: Displaying unicode characters on Conque for Windows needs work. +> + let g:ConqueTerm_CodePage = 0 +< +3.4.3 Terminal color method, Windows ONLY *ConqueTerm_ColorMode* + +Vim syntax highlighting by coordinate (e.g. the 3-7th characters on the 42nd +line) can be very slow. If you set this variable to 'conceal', you can use +the new conceal feature to render terminal colors. Requires Vim 7.3 and only +works on the Windows version of Conque. This will make colors render faster, +however it will also add hidden characters to the screen, which may be +annoying if you're copying and pasting terminal output out of the Conque +buffer. Set this to an empty string '' to disable concealed highlighting. +> + let g:ConqueTerm_ColorMode = 'conceal' +< +============================================================================== + +4. VimScript API *conque-term-api* + +The Conque scripting API allows you to create and interact with Conque +terminals with the VimScript language. + +4.1 conque_term#open({command}, [buf_opts], [remain]) *conque-term-open* + +The open() function will create a new terminal buffer and start your command. + +The {command} must be an executable, either an absolute path or relative to +your system path. + +You can pass in a list of vim commands [buf_opts] which will be executed after +the new buffer is created but before the command is started. These are +typically commands to alter the size, position or configuration of the buffer +window. + +Note: If you don't pass in a command such as 'split', the terminal will open +in the current buffer. + +If you don't want the new terminal buffer to become the new active buffer, set + [remain] to 1. Only works if you create a split screen using [options]. + +Returns a Conque terminal object. + +Examples: +> + let my_terminal = conque_term#open('/bin/bash') + let my_terminal = conque_term#open('ipython', ['split', 'resize 20'], 1) +< +4.2 conque_term#subprocess({command}) *conque-term-subprocess* + +Starts a new subprocess with your {command}, but no terminal buffer is ever +created. This may be useful if you need asynchronous interaction with a +subprocess, but want to handle the output on your own. + +Returns a Conque terminal object. + +Example: +> + let my_subprocess = conque_term#subprocess('tail -f /var/log/foo.log') +< +4.3 conque_term#get_instance( [terminal_number] ) *conque-term-get-instance* + +Use the get_instance() function to retrieve an existing terminal object. The +terminal could have been created either with the user command :ConqueTerm or +with an API call to conque_term#open() or subprocess(). + +Use the optional [terminal_number] to retrieve a specific terminal instance. +Otherwise if the current buffer is a Conque terminal, it will be returned, +else the most recently created terminal. The terminal number is what you see +at the end of a terminal buffer name, e.g. "bash - 2". + +Returns a Conque terminal object. + +Example: +> + nnoremap :call conque_term#get_instance().writeln('clear') +< +4.4 CONQUE_OBJECT.write({text}) *conque-term-write* + +Once you have a terminal object from open(), subprocess() or get_instance() +you can send text input to it with the write() method. + +No return value. + +Examples: +> + call my_terminal.write("whoami\n") + call my_terminal.write("\") +< +4.5 CONQUE_OBJECT.writeln({text}) *conque-term-writeln* + +The same as write() except adds a \n character to the end if your input. + +Examples: +> + call my_subprocess.writeln('make') +< +4.6 CONQUE_OBJECT.read( [timeout], [update_buffer] ) *conque-term-read* + +Read new output from a Conque terminal subprocess. New output will be returned +as a string, and the terminal buffer will also be updated by default. + +If you are reading immediately after calling the write() method, you may want +to wait [timeout] milliseconds for output to be ready. + +If you want to prevent the output from being displayed in the terminal buffer, +set [update_buffer] to 0. This option has no effect if the terminal was +created with the subprocess() function, since there never is a buffer to +update. + +Returns output string. + +Note: The terminal buffer will not automatically scroll down if the new output +extends beyond the bottom of the visible buffer. Vim doesn't allow "unfocused" +buffers to be scrolled at the current version, although hopefully this will +change. + +Examples: +> + call my_terminal.writeln('whoami') + let output = my_terminal.read(500) + call my_terminal.writeln('ls -lha') + let output = my_terminal.read(1000, 1) +< +4.7 CONQUE_OBJECT.set_callback( {funcname} ) *conque-term-set-callback* + +Register a callback function for this subprocess instance. This function will +automatically be called whenever new output is available. Only practical with +subprocess() objects. + +Conque checkes for new subprocess output once a second when Vim is idle. If +new output is found your function will be called. + +Pass in the callback function name {funcname} as a string. + +No return value. + +Note: this method requires the g:ConqueTerm_ReadUnfocused option to be set. + +Note: this method is experimental, results may vary. + +Example: +> + let sp = conque_term#subprocess('tail -f /home/joe/log/error_log') + + function! MyErrorAlert(output) + echo a:output + endfunction + + call sp.set_callback('MyErrorAlert') +< +4.8 CONQUE_OBJECT.close() *conque-term-close* + +Kill your terminal subprocess. Sends the ABORT signal. You probably want to +close your subprocess in a more graceful manner with the write() method, but +this can be used when needed. Does not close the terminal buffer, if it +exists. + +This method will be called on all existing Conque subprocesses when Vim exits. + +Example: +> + let term = conque_term#open('ping google.com', ['belowright split']) + call term.read(5000) + call term.close() +< +4.9 Registering functions *conque-term-events* + +Conque provides the option to register callback functions which will be +executed at several different events. The currently available events are: + + after_startup After your application has loaded into the buffer. + buffer_enter When you switch to a Conque buffer. + buffer_leave When you leave a Conque buffer. + +You may use the function conque_term#register_function(event, function_name) +to add additional hooks at a particular event. The second argument should be +the name of a callback function which has one parameter, the current +terminal object (see|conque-term-api|for more about terminal objects). + +For example: +> + function MyConqueStartup(term) + + " set buffer syntax using the name of the program currently running + let syntax_associations = { 'ipython': 'python', 'irb': 'ruby' } + + if has_key(syntax_associations, a:term.program_name) + execute 'setlocal syntax=' . syntax_associations[a:term.program_name] + else + execute 'setlocal syntax=' . a:term.program_name + endif + + " shrink window height to 10 rows + resize 10 + + " silly example of terminal api usage + if a:term.program_name == 'bash' + call a:term.writeln('svn up ~/projects/*') + endif + + endfunction + + call conque_term#register_function('after_startup', 'MyConqueStartup') +< + +============================================================================== + +5. Misc *conque-term-misc* + + +5.1 Known bugs *conque-term-bugs* + +The following are known limitations: + + - Font/color highlighting is imperfect and slow. If you don't care about + color in your shell, set g:ConqueTerm_Color = 0 in your .vimrc + - Conque only supports the extended ASCII character set for input, not utf-8. + - VT100 escape sequence support is not complete. + - Alt/Meta key support in Vim isn't great in general, and conque is no + exception. Pressing x or instead of works in + most cases. + + +5.2 Contribute *conque-term-contribute* + +The two contributions most in need are improvements to Vim itself. I currently +use hacks to capture key press input from the user, and to poll the terminal +for more output. The Vim todo.txt document lists proposed improvements to give +users this behavior without hacks. Having a key press event should allow +Conque to work with multi- byte input. If you are a Vim developer, please +consider prioritizing these two items: + + - todo.txt (Autocommands, line ~3137) + 8 Add an event like CursorHold that is triggered repeatedly, not just + once after typing something. + + +5.3 Feedback *conque-term-feedback* + +Bugs, suggestions and patches are all welcome. + +For more information visit http://conque.googlecode.com + +Check out the latest from svn at http://conque.googlecode.com/svn/trunk/ + + vim:tw=78:ts=8:ft=help:norl: diff --git a/vim/doc/delimitMate.txt b/vim/doc/delimitMate.txt new file mode 100644 index 0000000..8067cf2 --- /dev/null +++ b/vim/doc/delimitMate.txt @@ -0,0 +1,818 @@ +*delimitMate.txt* Trying to keep those beasts at bay! v2.6 *delimitMate* + + + + MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM + MMMM MMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMM MMMMM MMMMMMMMMMMMMMMMMMMMM ~ + MMMM MMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMM MMM MMMMMMMMMMMMMMMMMMMMM + MMMM MMMMMMMMM MMMMMMMMMMMMMMMMMMMMM MMM M M MMMMMMMMMM MMMMMMMMM ~ + MMMM MMM MMM MM MM M M MMM MM MM MM MM MMM MMM MMM MM + MM MM M MM MMMMMM MMMMMMM MMM MMMMM MM M MMM MMM M M ~ + M M MM MM MM MM M M MM MMM MMM MMMMM MMMMM MMM MMM M + M M MM MMMMM MM MM M M MM MMM MMM MMMMM MMM MMM MMM MMMM ~ + M M MM M MM MM MM M M MM MMM MMM MMMMM MM M MMM MMM M M + MM MMM MMM MM MM M M MM MMM MM MMMMM MMM MMM MMM MM ~ + MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM + + + +============================================================================== + 0.- CONTENTS *delimitMate-contents* + + 1. Introduction____________________________|delimitMateIntro| + 2. Customization___________________________|delimitMateOptions| + 2.1 Options summary____________________|delimitMateOptionSummary| + 2.2 Options details____________________|delimitMateOptionDetails| + 3. Functionality___________________________|delimitMateFunctionality| + 3.1 Automatic closing & exiting________|delimitMateAutoClose| + 3.2 Expansion of space and CR__________|delimitMateExpansion| + 3.3 Backspace__________________________|delimitMateBackspace| + 3.4 Smart Quotes_______________________|delimitMateSmartQuotes| + 3.5 Balancing matching pairs___________|delimitMateBalance| + 3.6 FileType based configuration_______|delimitMateFileType| + 3.7 Syntax awareness___________________|delimitMateSyntax| + 4. Commands________________________________|delimitMateCommands| + 5. Mappings________________________________|delimitMateMappings| + 6. Functions_______________________________|delimitMateFunctions| + 7. TODO list_______________________________|delimitMateTodo| + 8. Maintainer______________________________|delimitMateMaintainer| + 9. Credits_________________________________|delimitMateCredits| + 10. History_________________________________|delimitMateHistory| + +============================================================================== + 1.- INTRODUCTION *delimitMateIntro* + +This plug-in provides automatic closing of quotes, parenthesis, brackets, +etc.; besides some other related features that should make your time in insert +mode a little bit easier. + +Most of the features can be modified or disabled permanently, using global +variables, or on a FileType basis, using autocommands. With a couple of +exceptions and limitations, this features don't brake undo, redo or history. + +NOTE 1: If you have any trouble with this plugin, please run |:DelimitMateTest| +in a new buffer to see what is not working. + +NOTE 2: |'timeout'| needs to be set when working in the terminal, otherwise you +might find weird behaviour with mappings including or arrow keys. + +NOTE 3: Abbreiations set with |:iabbrev| will not be expanded by delimiters +used on delimitMate, you should use (read |i_CTRL-]|) to expand them on +the go. + +============================================================================== + 2. CUSTOMIZATION *delimitMateOptions* + +You can create your own mappings for some features using the global functions. +Read |DelimitMateFunctions| for more info. + +------------------------------------------------------------------------------ + 2.1 OPTIONS SUMMARY *delimitMateOptionSummary* + +The behaviour of this script can be customized setting the following options +in your vimrc file. You can use local options to set the configuration for +specific file types, see |delimitMateOptionDetails| for examples. + +|'loaded_delimitMate'| Turns off the script. + +|'delimitMate_autoclose'| Tells delimitMate whether to automagically + insert the closing delimiter. + +|'delimitMate_matchpairs'| Tells delimitMate which characters are + matching pairs. + +|'delimitMate_quotes'| Tells delimitMate which quotes should be + used. + +|'delimitMate_nesting_quotes'| Tells delimitMate which quotes should be + allowed to be nested. + +|'delimitMate_expand_cr'| Turns on/off the expansion of . + +|'delimitMate_expand_space'| Turns on/off the expansion of . + +|'delimitMate_smart_quotes'| Turns on/off the "smart quotes" feature. + +|'delimitMate_smart_matchpairs'| Turns on/off the "smart matchpairs" feature. + +|'delimitMate_balance_matchpairs'|Turns on/off the "balance matching pairs" + feature. + +|'delimitMate_excluded_regions'| Turns off the script for the given regions or + syntax group names. + +|'delimitMate_excluded_ft'| Turns off the script for the given file types. + +|'delimitMate_apostrophes'| Tells delimitMate how it should "fix" + balancing of single quotes when used as + apostrophes. NOTE: Not needed any more, kept + for compatibility with older versions. + +------------------------------------------------------------------------------ + 2.2 OPTIONS DETAILS *delimitMateOptionDetails* + +Add the shown lines to your vimrc file in order to set the below options. +Buffer variables take precedence over global ones and can be used along with +autocmd to modify delimitMate's behavior for specific file types, read more in +|delimitMateFileType|. + +Note: Use buffer variables only to set options for specific file types using +:autocmd, use global variables to set options for every buffer. Read more in +|g:var| and |b:var|. + +------------------------------------------------------------------------------ + *'loaded_delimitMate'* + *'b:loaded_delimitMate'* +This option prevents delimitMate from loading. +e.g.: > + let loaded_delimitMate = 1 + au FileType mail let b:loaded_delimitMate = 1 +< +------------------------------------------------------------------------------ + *'delimitMate_autoclose'* + *'b:delimitMate_autoclose'* +Values: 0 or 1. ~ +Default: 1 ~ + +If this option is set to 0, delimitMate will not add a closing delimiter +automagically. See |delimitMateAutoClose| for details. +e.g.: > + let delimitMate_autoclose = 0 + au FileType mail let b:delimitMate_autoclose = 0 +< +------------------------------------------------------------------------------ + *'delimitMate_matchpairs'* + *'b:delimitMate_matchpairs'* +Values: A string with |'matchpairs'| syntax, plus support for multi-byte~ + characters.~ +Default: &matchpairs ~ + +Use this option to tell delimitMate which characters should be considered +matching pairs. Read |delimitMateAutoClose| for details. +e.g: > + let delimitMate_matchpairs = "(:),[:],{:},<:>" + au FileType vim,html let b:delimitMate_matchpairs = "(:),[:],{:},<:>" +< +------------------------------------------------------------------------------ + *'delimitMate_quotes'* + *'b:delimitMate_quotes'* +Values: A string of characters separated by spaces. ~ +Default: "\" ' `" ~ + +Use this option to tell delimitMate which characters should be considered as +quotes. Read |delimitMateAutoClose| for details. +e.g.: > + let delimitMate_quotes = "\" ' ` *" + au FileType html let b:delimitMate_quotes = "\" '" +< +------------------------------------------------------------------------------ + *'delimitMate_nesting_quotes'* + *'b:delimitMate_nesting_quotes'* +Values: A list of quotes. ~ +Default: [] ~ + +Quotes listed here will not be able to jump out of the empty pair, thus +allowing the autoclosed quotes to be nested. +e.g.: > + let delimitMate_nesting_quotes = ['"','`'] + au FileType python let b:delimitMate_nesting_quotes = ['"'] +< +------------------------------------------------------------------------------ + *'delimitMate_expand_cr'* + *'b:delimitMate_expand_cr'* +Values: 1 or 0 ~ +Default: 0 ~ + +This option turns on/off the expansion of . Read |delimitMateExpansion| +for details. NOTE This feature requires that 'backspace' is either set to 2 or +has "eol" and "start" as part of its value. +e.g.: > + let delimitMate_expand_cr = 1 + au FileType mail let b:delimitMate_expand_cr = 1 +< +------------------------------------------------------------------------------ + *'delimitMate_expand_space'* + *'b:delimitMate_expand_space'* +Values: 1 or 0 ~ +Default: 0 ~ +This option turns on/off the expansion of . Read |delimitMateExpansion| +for details. +e.g.: > + let delimitMate_expand_space = 1 + au FileType tcl let b:delimitMate_expand_space = 1 +< +------------------------------------------------------------------------------ + *'delimitMate_smart_quotes'* + *'b:delimitMate_smart_quotes'* +Values: 1 or 0 ~ +Default: 1 ~ + +This option turns on/off the smart quotes feature. Read +|delimitMateSmartQuotes| for details. +e.g.: > + let delimitMate_smart_quotes = 0 + au FileType tcl let b:delimitMate_smart_quotes = 1 +< +------------------------------------------------------------------------------ + *'delimitMate_smart_matchpairs'* + *'b:delimitMate_smart_matchpairs'* +Values: Regexp ~ +Default: '^\%(\w\|\!\|£\|\$\|_\|["'']\s*\S\)' ~ + +This regex is matched against the text to the right of cursor, if it's not +empty and there is a match delimitMate will not autoclose the pair. At the +moment to match the text, an escaped bang (\!) in the regex will be replaced +by the character being inserted, while an escaped number symbol (\#) will be +replaced by the closing pair. +e.g.: > + let delimitMate_smart_matchpairs = '' + au FileType tcl let b:delimitMate_smart_matchpairs = '^\%(\w\|\$\)' +< +------------------------------------------------------------------------------ + *'delimitMate_balance_matchpairs'* + *'b:delimitMate_balance_matchpairs'* +Values: 1 or 0 ~ +Default: 0 ~ + +This option turns on/off the balancing of matching pairs. Read +|delimitMateBalance| for details. +e.g.: > + let delimitMate_balance_matchpairs = 1 + au FileType tcl let b:delimitMate_balance_matchpairs = 1 +< +------------------------------------------------------------------------------ + *'delimitMate_excluded_regions'* +Values: A string of syntax group names names separated by single commas. ~ +Default: Comment ~ + +This options turns delimitMate off for the listed regions, read |group-name| +for more info about what is a region. +e.g.: > + let delimitMate_excluded_regions = "Comments,String" +< +------------------------------------------------------------------------------ + *'delimitMate_excluded_ft'* +Values: A string of file type names separated by single commas. ~ +Default: Empty. ~ + +This options turns delimitMate off for the listed file types, use this option +only if you don't want any of the features it provides on those file types. +e.g.: > + let delimitMate_excluded_ft = "mail,txt" +< +------------------------------------------------------------------------------ + *'delimitMate_apostrophes'* +Values: Strings separated by ":". ~ +Default: No longer used. ~ + +NOTE: This feature is turned off by default, it's been kept for compatibility +with older version, read |delimitMateSmartQuotes| for details. +If auto-close is enabled, this option tells delimitMate how to try to fix the +balancing of single quotes when used as apostrophes. The values of this option +are strings of text where a single quote would be used as an apostrophe (e.g.: +the "n't" of wouldn't or can't) separated by ":". Set it to an empty string to +disable this feature. +e.g.: > + let delimitMate_apostrophes = "" + au FileType tcl let delimitMate_apostrophes = "" +< +============================================================================== + 3. FUNCTIONALITY *delimitMateFunctionality* + +------------------------------------------------------------------------------ + 3.1 AUTOMATIC CLOSING AND EXITING *delimitMateAutoClose* + +With automatic closing enabled, if an opening delimiter is inserted the plugin +inserts the closing delimiter and places the cursor between the pair. With +automatic closing disabled, no closing delimiters is inserted by delimitMate, +but when a pair of delimiters is typed, the cursor is placed in the middle. + +When the cursor is inside an empty pair or located next to the left of a +closing delimiter, the cursor is placed outside the pair to the right of the +closing delimiter. + +When |'delimitMate_smart_matchpairs'| is not empty and it matches the text to +the right of the cursor, delimitMate will not automatically insert the closing +pair. + +Unless |'delimitMate_matchpairs'| or |'delimitMate_quotes'| are set, this +script uses the values in '&matchpairs' to identify the pairs, and ", ' and ` +for quotes respectively. + + will jump over a single closing delimiter or quote, g will jump +over contiguous delimiters and/or quotes. + +The following table shows the behaviour, this applies to quotes too (the final +position of the cursor is represented by a "|"): + +With auto-close: > + Type | You get + ======================= + ( | (|) + –––––––––––|––––––––––– + () | ()| + –––––––––––|––––––––––– + ( | ()| + –––––––––––|––––––––––– + {("g | {("")}| +< +Without auto-close: > + + Type | You get + ========================= + () | (|) + –––––––––-----|–––––––––– + ()) | ()| + –––––––––-----|–––––––––– + () | ()| + ––––––––––––––|––––––––––– + {}()""g | {("")}| +< +NOTE: Abbreviations will not be expanded by delimiters used on delimitMate, +you should use (read |i_CTRL-]|) to expand them on the go. + +------------------------------------------------------------------------------ + 3.2 EXPANSION OF SPACE AND CAR RETURN *delimitMateExpansion* + +When the cursor is inside an empty pair of delimiters, and can be +expanded, see |'delimitMate_expand_space'| and +|'delimitMate_expand_cr'|: + +Expand to: > + + | You get + ==================================== + (|) | ( | ) +< +Expand to: > + + | You get + ============================ + (|) | ( + | | + | ) +< + +NOTE that the expansion of will brake the redo command. + +Since and are used everywhere, I have made the functions involved +in expansions global, so they can be used to make custom mappings. Read +|delimitMateFunctions| for more details. + +------------------------------------------------------------------------------ + 3.3 BACKSPACE *delimitMateBackspace* + +If you press backspace inside an empty pair, both delimiters are deleted. When +expansions are enabled, will also delete the expansions. NOTE that +deleting expansions will brake the redo command. + +If you type (shift + backspace) instead, only the closing delimiter +will be deleted. NOTE that this will not usually work when using Vim from the +terminal, see 'delimitMate#JumpAny()' below to see how to fix it. + +e.g. typing at the "|": > + + What | Before | After + ============================================== + | call expand(|) | call expand| + ---------|-------------------|----------------- + | call expand( | ) | call expand(|) + ---------|-------------------|----------------- + | call expand( | call expand(|) + | | | + | ) | + ---------|-------------------|----------------- + | call expand(|) | call expand(| +< + +------------------------------------------------------------------------------ + 3.4 SMART QUOTES *delimitMateSmartQuotes* + +Only one quote will be inserted following a quote, a "\" or, following or +preceding a keyword character. This should cover closing quotes after a +string, opening quotes before a string, escaped quotes and apostrophes. Except +for apostrophes, this feature can be disabled setting the option +|'delimitMate_smart_quotes'| to 0. + +e.g. typing at the "|": > + + What | Before | After + ======================================= + " | Text | | Text "|" + " | "String| | "String"| + " | let i = "| | let i = "|" + 'm | I| | I'm| +< +------------------------------------------------------------------------------ + 3.4 SMART MATCHPAIRS *delimitMateSmartMatchpairs* + +This is similar to "smart quotes", but applied to the characters in +|'delimitMate_matchpairs'|. The difference is that delimitMate will not +auto-close the pair when the regex matches the text on the right of the +cursor. See |'delimitMate_smart_matchpairs'| for more details. + + +e.g. typing at the "|": > + + What | Before | After + ======================================= + ( | function| | function(|) + ( | |var | (|var +< +------------------------------------------------------------------------------ + 3.5 BALANCING MATCHING PAIRS *delimitMateBalance* + +When inserting an opening paren and |'delimitMate_balance_matchpairs'| is +enabled, delimitMate will try to balance the closing pairs in the current +line. + +e.g. typing at the "|": > + + What | Before | After + ======================================= + ( | | | (|) + ( | |) | (|) + (( | |) | ((|)) +< +------------------------------------------------------------------------------ + 3.6 FILE TYPE BASED CONFIGURATION *delimitMateFileType* + +delimitMate options can be set globally for all buffers using global +("regular") variables in your |vimrc| file. But |:autocmd| can be used to set +options for specific file types (see |'filetype'|) using buffer variables in +the following way: > + + au FileType mail,text let b:delimitMate_autoclose = 0 + ^ ^ ^ ^ ^ + | | | | | + | | | | - Option value. + | | | - Option name. + | | - Buffer variable. + | - File types for which the option will be set. + - Don't forget to put this event. +< +NOTE that you should use buffer variables (|b:var|) only to set options with +|:autocmd|, for global options use regular variables (|g:var|) in your vimrc. + +------------------------------------------------------------------------------ + 3.7 SYNTAX AWARENESS *delimitMateSyntax* + +The features of this plug-in might not be always helpful, comments and strings +usualy don't need auto-completion. delimitMate monitors which region is being +edited and if it detects that the cursor is in a comment it'll turn itself off +until the cursor leaves the comment. The excluded regions can be set using the +option |'delimitMate_excluded_regions'|. Read |group-name| for a list of +regions or syntax group names. + +NOTE that this feature relies on a proper syntax file for the current file +type, if the appropiate syntax file doesn't define a region, delimitMate won't +know about it. + +============================================================================== + 4. COMMANDS *delimitMateCommands* + +------------------------------------------------------------------------------ +:DelimitMateReload *:DelimitMateReload* + +Re-sets all the mappings used for this script, use it if any option has been +changed or if the filetype option hasn't been set yet. + +------------------------------------------------------------------------------ +:DelimitMateSwitch *:DelimitMateSwitch* + +Switches the plug-in on and off. + +------------------------------------------------------------------------------ +:DelimitMateTest *:DelimitMateTest* + +This command tests every mapping set-up for this script, useful for testing +custom configurations. + +The following output corresponds to the default values, it will be different +depending on your configuration. "Open & close:" represents the final result +when the closing delimiter has been inserted, either manually or +automatically, see |delimitMateExpansion|. "Delete:" typing backspace in an +empty pair, see |delimitMateBackspace|. "Exit:" typing a closing delimiter +inside a pair of delimiters, see |delimitMateAutoclose|. "Space:" the +expansion, if any, of space, see |delimitMateExpansion|. "Visual-L", +"Visual-R" and "Visual" shows visual wrapping, see +|delimitMateVisualWrapping|. "Car return:" the expansion of car return, see +|delimitMateExpansion|. The cursor's position at the end of every test is +represented by an "|": > + + * AUTOCLOSE: + Open & close: (|) + Delete: | + Exit: ()| + Space: ( |) + Visual-L: (v) + Visual-R: (v) + Car return: ( + |) + + Open & close: {|} + Delete: | + Exit: {}| + Space: { |} + Visual-L: {v} + Visual-R: {v} + Car return: { + |} + + Open & close: [|] + Delete: | + Exit: []| + Space: [ |] + Visual-L: [v] + Visual-R: [v] + Car return: [ + |] + + Open & close: "|" + Delete: | + Exit: ""| + Space: " |" + Visual: "v" + Car return: " + |" + + Open & close: '|' + Delete: | + Exit: ''| + Space: ' |' + Visual: 'v' + Car return: ' + |' + + Open & close: `|` + Delete: | + Exit: ``| + Space: ` |` + Visual: `v` + Car return: ` + |` +< + +============================================================================== + 5. MAPPINGS *delimitMateMappings* + +delimitMate doesn't override any existing map, so you may encounter that it +doesn't work as expected because a mapping is missing. In that case, the +conflicting mappings should be resolved by either disabling the conflicting +mapping or creating a custom mappings. + +In order to make custom mappings easier and prevent overwritting existing +ones, delimitMate uses the || + |hasmapto()| (|usr_41.txt|) construct +for its mappings. + +These are the default mappings: + + is mapped to delimitMateBS + is mapped to delimitMateS-BS + is mapped to delimitMateS-Tab +g is mapped to delimitMateJumpMany + is mapped to delimitMateDel + is mapped to delimitMateEsc + is mapped to delimitMateLeft + is mapped to delimitMateRight + is mapped to delimitMateHome + is mapped to delimitMateEnd + is mapped to delimitMateUp + is mapped to delimitMateDown + is mapped to delimitMatePageUp + is mapped to delimitMatePageDown + is mapped to delimitMateS-Down + is mapped to delimitMateS-Up + is mapped to delimitMateMLeftMouse + is mapped to delimitMateMRightMouse + +The rest of the mappings correspond to parens, quotes, CR, Space, etc. and they +depend on the values of the delimitMate options, they have the following form: + +delimitMate + char + +e.g.: for "(": + +( is mapped to delimitMate( + +e.g.: If you have expansion enabled, you might want to skip it on pop-up +menus: + + imap pumvisible() ? + \"\" : + \ "delimitMateCR" + + +============================================================================== + 6. FUNCTIONS *delimitMateFunctions* + +------------------------------------------------------------------------------ +delimitMate#WithinEmptyPair() *delimitMate#WithinEmptyPair()* + +Returns 1 if the cursor is inside an empty pair, 0 otherwise. +e.g.: > + + inoremap delimitMate#WithinEmptyPair() ? + \ "\=delimitMate#ExpandReturn()\" : + \ "external_mapping" +< + +------------------------------------------------------------------------------ +delimitMate#ShouldJump() *delimitMate#ShouldJump()* + +Returns 1 if there is a closing delimiter or a quote to the right of the +cursor, 0 otherwise. + +------------------------------------------------------------------------------ +delimitMate#JumpAny(key) *delimitMate#JumpAny()* + +This function returns a mapping that will make the cursor jump to the right +when delimitMate#ShouldJump() returns 1, returns the argument "key" otherwise. +e.g.: You can use this to create your own mapping to jump over any delimiter. +> + inoremap =delimitMate#JumpAny("\") +< + +============================================================================== + 7. TODO LIST *delimitMateTodo* + +- Automatic set-up by file type. +- Make block-wise visual wrapping work on un-even regions. + +============================================================================== + 8. MAINTAINER *delimitMateMaintainer* + +Hi there! My name is Israel Chauca F. and I can be reached at: + mailto:israelchauca@gmail.com + +Feel free to send me any suggestions and/or comments about this plugin, I'll +be very pleased to read them. + +============================================================================== + 9. CREDITS *delimitMateCredits* + +Contributors: ~ + + - Kim Silkebækken ~ + Fixed mappings being echoed in the terminal. + + - Eric Van Dewoestine ~ + Implemented smart matchpairs. + +Some of the code that makes this script was modified or just shamelessly +copied from the following sources: + + - Ian McCracken ~ + Post titled: Vim, Part II: Matching Pairs: + http://concisionandconcinnity.blogspot.com/ + + - Aristotle Pagaltzis ~ + From the comments on the previous blog post and from: + http://gist.github.com/144619 + + - Karl Guertin ~ + AutoClose: + http://www.vim.org/scripts/script.php?script_id=1849 + + - Thiago Alves ~ + AutoClose: + http://www.vim.org/scripts/script.php?script_id=2009 + + - Edoardo Vacchi ~ + ClosePairs: + http://www.vim.org/scripts/script.php?script_id=2373 + +This script was inspired by the auto-completion of delimiters on TextMate. + +============================================================================== + 10. HISTORY *delimitMateHistory* + + Version Date Release notes ~ +|---------|------------|-----------------------------------------------------| + 2.6 2011-01-14 * Current release: + - Add smart_matchpairs feature. + - Add mapping to jump over contiguous delimiters. + - Fix behaviour of b:loaded_delimitMate. +|---------|------------|-----------------------------------------------------| + 2.5.1 2010-09-30 * - Remove visual wrapping. Surround.vim offers a much + better implementation. + - Minor mods to DelimitMateTest. +|---------|------------|-----------------------------------------------------| + 2.5 2010-09-22 * - Better handling of mappings. + - Add report for mappings in |:DelimitMateTest|. + - Allow the use of "|" and multi-byte characters in + |'delimitMate_quotes'| and |'delimitMate_matchpairs'|. + - Allow commands to be concatenated using |. +|---------|------------|-----------------------------------------------------| + 2.4.1 2010-07-31 * - Fix problem with and . + - Add missing doc on |'delimitMate_smart_quotes'|, + |delimitMateBalance| and + |'delimitMate_balance_matchpairs'|. +|---------|------------|-----------------------------------------------------| + 2.4 2010-07-29 * - Unbalanced parens: see :help delimitMateBalance. + - Visual wrapping now works on block-wise visual + with some limitations. + - Arrow keys didn't work on terminal. + - Added option to allow nested quotes. + - Expand Smart Quotes to look for a string on the + right of the cursor. + +|---------|------------|-----------------------------------------------------| + 2.3.1 2010-06-06 * - Fix: an extra is inserted after + expansion. + +|---------|------------|-----------------------------------------------------| + 2.3 2010-06-06 * - Syntax aware: Will turn off when editing comments + or other regions, customizable. + - Changed format of most mappings. + - Fix: expansion doesn't brake automatic + indentation adjustments anymore. + - Fix: Arrow keys would insert A, B, C or D instead + of moving the cursor when using Vim on a terminal. + +|---------|------------|-----------------------------------------------------| + 2.2 2010-05-16 * - Added command to switch the plug-in on and off. + - Fix: some problems with , and . + - Fix: A small problem when inserting a delimiter at + the beginning of the line. + +|---------|------------|-----------------------------------------------------| + 2.1 2010-05-10 * - Most of the functions have been moved to an + autoload script to avoid loading unnecessary ones. + - Fixed a problem with the redo command. + - Many small fixes. + +|---------|------------|-----------------------------------------------------| + 2.0 2010-04-01 * New features: + - All features are redo/undo-wise safe. + - A single quote typed after an alphanumeric + character is considered an apostrophe and one + single quote is inserted. + - A quote typed after another quote inserts a single + quote and the cursor jumps to the middle. + - jumps out of any empty pair. + - and expansions are fixed, but the + functions used for it are global and can be used in + custom mappings. The previous system is still + active if you have any of the expansion options + set. + - deletes the closing delimiter. + * Fixed bug: + - s:vars were being used to store buffer options. + +|---------|------------|-----------------------------------------------------| + 1.6 2009-10-10 * Now delimitMate tries to fix the balancing of single + quotes when used as apostrophes. You can read + |delimitMate_apostrophes| for details. + Fixed an error when |b:delimitMate_expand_space| + wasn't set but |delimitMate_expand_space| wasn't. + +|---------|------------|-----------------------------------------------------| + 1.5 2009-10-05 * Fix: delimitMate should work correctly for files + passed as arguments to Vim. Thanks to Ben Beuchler + for helping to nail this bug. + +|---------|------------|-----------------------------------------------------| + 1.4 2009-09-27 * Fix: delimitMate is now enabled on new buffers even + if they don't have set the file type option or were + opened directly from the terminal. + +|---------|------------|-----------------------------------------------------| + 1.3 2009-09-24 * Now local options can be used along with autocmd + for specific file type configurations. + Fixes: + - Unnamed register content is not lost on visual + mode. + - Use noremap where appropiate. + - Wrapping a single empty line works as expected. + +|---------|------------|-----------------------------------------------------| + 1.2 2009-09-07 * Fixes: + - When inside nested empty pairs, deleting the + innermost left delimiter would delete all right + contiguous delimiters. + - When inside an empty pair, inserting a left + delimiter wouldn't insert the right one, instead + the cursor would jump to the right. + - New buffer inside the current window wouldn't + have the mappings set. + +|---------|------------|-----------------------------------------------------| + 1.1 2009-08-25 * Fixed an error that ocurred when mapleader wasn't + set and added support for GetLatestScripts + auto-detection. + +|---------|------------|-----------------------------------------------------| + 1.0 2009-08-23 * Initial upload. + +|---------|------------|-----------------------------------------------------| + + + `\|||/´ MMM \|/ www __^__ ~ + (o o) (o o) @ @ (O-O) /(o o)\\ ~ +ooO_(_)_Ooo__ ooO_(_)_Ooo___oOO_(_)_OOo___oOO__(_)__OOo___oOO__(_)__OOo_____ ~ +_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|____ ~ +__|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_ ~ +_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|____ ~ + +vim:tw=78:et:ts=2:sw=2:ft=help:norl:formatoptions+=tcroqn:autoindent: diff --git a/vim/doc/ft-gitcommit-plugin.txt b/vim/doc/ft-gitcommit-plugin.txt new file mode 100644 index 0000000..0d89ae1 --- /dev/null +++ b/vim/doc/ft-gitcommit-plugin.txt @@ -0,0 +1,5 @@ +GIT COMMIT *ft-gitcommit-plugin* + +One command, :DiffGitCached, is provided to show a diff of the current commit +in the preview window. It is equivalent to calling "git diff --cached" plus +any arguments given to the command. diff --git a/vim/doc/greplace.txt b/vim/doc/greplace.txt new file mode 100644 index 0000000..db3e656 --- /dev/null +++ b/vim/doc/greplace.txt @@ -0,0 +1,161 @@ +*greplace.txt* Plugin for replacing pattern across multiple files + +Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com) +For Vim version 7.0 and above +Last change: 2007 March 2 + +Overview~ + +The Global Replace plugin allows you to search and replace a pattern across +multiple files. The lines containing a specified pattern in multiple files are +displayed in a buffer. You can edit the lines in this buffer and make the +desired modifications to them. The plugin can then incorporate these changes +back into the corresponding files interactively. + +============================================================================== + +Installation~ + +1. Download the greplace.vim file and unzip the files into the $HOME/.vim + or the $HOME/vimfiles or the $VIM/vimfiles directory. After this step, you + should have the following two files (the directory structure should be + preserved): + + plugin/greplace.vim - main global replace plugin file + doc/greplace.txt - documentation (help) file + +2. Change to the $HOME/.vim/doc or $HOME/vimfiles/doc or $VIM/vimfiles/doc + directory, start Vim and run the ":helptags ." command to process the + help file. Without this step, you cannot jump to the help topics. +3. Restart Vim. + +To uninstall the global replace plugin, remove the plugin/greplace.vim and +doc/greplace.txt files from the $HOME/.vim or $HOME/vimfiles directory. + +============================================================================== + +The following commands are provided by this plugin: + +:Gsearch Search for a given pattern in the specified group of + files and display the matches in the replace buffer. +:Gbuffersearch Search for a given pattern in all the buffers + in the Vim buffer list. +:Gargsearch Search for a given pattern in all the files in the + Vim argument list. +:Gqfopen Use the results from the quickfix list. +:Greplace Incorporate the modifications from the replace buffer + into the corresponding files. + +One example sequence of commands for using this plugin is: + + :Gsearch mypattern *.java *.c + + + + :Greplace + + + :wall + + +In the above sequence, instead of ":Gsearch", you can use ":Gbuffersearch" or +":Gargsearch" commands to search for a pattern in the files in the Vim buffer +list or the argument list. + +The ":Gsearch" command uses the Vim ":grep" command to search for the pattern +in the specified files. The ":grep" command uses the program specified by the +"grepprg" option to search for the pattern. By default, the "grepprg" option +is set to either grep (on Unix) or findstr (on MS-Windows). By modifying the +"grepprg" option, you can also use other programs for searching. To use the +Vim internal grep, set the "grepprg" option to "internal". + +The syntax of the ":Gsearch" command is: +> + :Gsearch [] [[] []] +< +The arguments to the ":Gsearch" command are optional. + +The first set of arguments, if present, specify the options to the grep +program. These options must start with "-" (for Unix) and "/" (for +MS-Windows). For example, to ignore case, you can use "-i" for the Unix +grep program. + +The next argument specifies the pattern. You cannot use space characters in +the pattern. To specify space characters in the pattern, don't specify the +pattern in the command-line. See below for more information. + +The last set of arguments specify the filenames. You can use wildcards in the +filenames. You can also complete directory and file names by pressing . + +If the pattern or the filenames is not supplied as argument to the ":Gsearch" +command, then you will be prompted to enter the pattern and the filenames. The +default value for the search pattern is the keyword under the cursor. In the +prompt for entering the pattern, you can enter a pattern with space +characters. In the prompt for entering the filenames, you can press to +complete the directory and file names. + +To search for a pattern in the files in the Vim buffer list, use the +":Gbuffersearch" command. The syntax of this command is: +> + :Gbuffersearch [] +< +This command is similar to the ":Gsearch" command. This command searches for +the specified pattern in all the files in the buffer list. You cannot specify +filenames to this command. + +To search for a pattern in the files in the Vim argument list, use the +":Gargsearch" command. The syntax of this command is: +> + :Gargsearch [] +< +This command is similar to the ":Gsearch" command. This command will search +for the specified pattern in all the files in the argument list. You cannot +specify filenames to this command. + +The difference between the ":Gbuffersearch" command and the Vim +":bufdo %s/pattern/replace/c" command is that the ":Gbuffersearch" command +allows you to inspect and change the matching lines in a buffer and then +incorporate the changes. You can also make different changes to different +lines. With a single ":bufdo" command, you can make only the one type of +change in all the buffers. The same difference applies for the ":Gargsearch" +and the ":argdo" command. + +Sometimes, you may have the desired list of filenames and the matching lines +in them already in the quickfix list. For example, you can run tools like +cscope, GNU id-utils, GNU global, etc., and get the results into the quickfix +list. To use this list of files for replacing text, you can use the ":Gqfopen" +command. This command doesn't take the pattern or filenames arguments. It +parses the file names and lines in them from the current quickfix list and +displays it in the replace buffer. + +You can edit the contents of the replace buffer using the Vim editing +commands. You cannot save the contents to a regular file. You should not +change the filename or line numbers in the replace buffer. You should not add +additional lines in this buffer. If you don't want to make any changes, you +can close the replace buffer. + +You can use the ":Greplace" command to store the modified lines from the +replace buffer back to the corresponding files. This command is available only +in the replace buffer. + +The ":Greplace" command will prompt you to confirm each of the changes. At +this prompt, you can press 'y' to accept the change, 'n' to reject the change, +'a' to accept all the changes, 'b' to accept all the changes in the current +buffer and 'q' or to exit the replace prompt and stop making the +changes. + +To incorporate the modifications without the prompt, add "!" to the +":Greplace" command. This will force the ":Greplace" command to make the +changes without any prompts for confirmation. + +The modified files will not be automatically saved. You can save all of them +using the ":wall" command or you can individually inspect the buffers for the +changes and then save the buffer using the ":w" command. You can undo the +changes individually by using the Vim "u" command. + +============================================================================== + +vim:tw=78:ts=8:noet:ft=help: diff --git a/vim/doc/imaps.txt b/vim/doc/imaps.txt new file mode 100644 index 0000000..d49f70d --- /dev/null +++ b/vim/doc/imaps.txt @@ -0,0 +1,116 @@ + IMAP -- A fluid replacement for :imap + *imaps.txt* + Srinath Avadhanula + + + + Abstract + ======== +This plugin provides a function IMAP() which emulates vims |:imap| function. The +motivation for providing this plugin is that |:imap| sufffers from problems +which get increasingly annoying with a large number of mappings. + +Consider an example. If you do > + imap lhs something + + +then a mapping is set up. However, there will be the following problems: +1. The 'ttimeout' option will generally limit how easily you can type the lhs. + if you type the left hand side too slowly, then the mapping will not be + activated. + +2. If you mistype one of the letters of the lhs, then the mapping is deactivated + as soon as you backspace to correct the mistake. + +3. The characters in lhs are shown on top of each other. This is fairly + distracting. This becomes a real annoyance when a lot of characters initiate + mappings. + +This script provides a function IMAP() which does not suffer from these +problems. + + + + *imaps.txt-toc* +|im_1| Using IMAP + +================================================================================ +Viewing this file + +This file can be viewed with all the sections and subsections folded to ease +navigation. By default, vim does not fold help documents. To create the folds, +press za now. The folds are created via a foldexpr which can be seen in the +last section of this file. + +See |usr_28.txt| for an introduction to folding and |fold-commands| for key +sequences and commands to work with folds. + +================================================================================ +Using IMAP *im_1* *imaps-usage* + + + +Each call to IMAP is made using the sytax: > + call IMAP (lhs, rhs, ft [, phs, phe]) + + +This is equivalent to having map to for all files of type . + +Some characters in the have special meaning which help in cursor placement +as described in |imaps-placeholders|. The optional arguments define these +special characters. + +Example One: > + call IMAP ("bit`", "\\begin{itemize}\\\item <++>\\\end{itemize}<++>", "tex") + + +This effectively sets up the map for "bit`" whenever you edit a latex file. When +you type in this sequence of letters, the following text is inserted: > + \begin{itemize} + \item * + \end{itemize}<++> + +where * shows the cursor position. The cursor position after inserting the text +is decided by the position of the first "place-holder". Place holders are +special characters which decide cursor placement and movement. In the example +above, the place holder characters are <+ and +>. After you have typed in the +item, press and you will be taken to the next set of <++>'s. Therefore by +placing the <++> characters appropriately, you can minimize the use of movement +keys. + +Set g:Imap_UsePlaceHolders to 0 to disable placeholders altogether. + +Set g:Imap_PlaceHolderStart and g:Imap_PlaceHolderEnd to something else if you +want different place holder characters. Also, b:Imap_PlaceHolderStart and +b:Imap_PlaceHolderEnd override the values of g:Imap_PlaceHolderStart and +g:Imap_PlaceHolderEnd respectively. This is useful for setting buffer specific +place hoders. + +Example Two: You can use the command to insert dynamic elements such as +dates. > + call IMAP ('date`', "\=strftime('%b %d %Y')\", '') + + + +With this mapping, typing date` will insert the present date into the file. + +================================================================================ +About this file + +This file was created automatically from its XML variant using db2vim. db2vim is +a python script which understands a very limited subset of the Docbook XML 4.2 +DTD and outputs a plain text file in vim help format. + +db2vim can be obtained via anonymous CVS from sourceforge.net. Use + +cvs -d:pserver:anonymous@cvs.vim-latex.sf.net:/cvsroot/vim-latex co db2vim + +Or you can visit the web-interface to sourceforge CVS at: +http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/vim-latex/db2vim/ + +The following modelines should nicely fold up this help manual. + +vim:ft=help:fdm=expr:nowrap +vim:foldexpr=getline(v\:lnum-1)=~'-\\{80}'?'>2'\:getline(v\:lnum-1)=~'=\\{80}'?'>1'\:getline(v\:lnum)=~'=\\{80}'?'0'\:getline(v\:lnum)=~'-\\{80}'?'1'\:'=' +vim:foldtext=substitute(v\:folddashes.substitute(getline(v\:foldstart),'\\s*\\*.*',"",""),'^--','--\ \ \ \ ','') +================================================================================ diff --git a/vim/doc/matchit.txt b/vim/doc/matchit.txt new file mode 100644 index 0000000..8a3a96e --- /dev/null +++ b/vim/doc/matchit.txt @@ -0,0 +1,406 @@ +*matchit.txt* Extended "%" matching + +For instructions on installing this file, type + :help matchit-install +inside Vim. + +For Vim version 6.3. Last change: 2007 Aug 29 + + + VIM REFERENCE MANUAL by Benji Fisher + +*matchit* *matchit.vim* + +1. Extended matching with "%" |matchit-intro| +2. Activation |matchit-activate| +3. Configuration |matchit-configure| +4. Supporting a New Language |matchit-newlang| +5. Known Bugs and Limitations |matchit-bugs| + +The functionality mentioned here is a plugin, see |add-plugin|. +This plugin is only available if 'compatible' is not set. +You can avoid loading this plugin by setting the "loaded_matchit" variable +in your |vimrc| file: > + :let loaded_matchit = 1 + +{Vi does not have any of this} + +============================================================================== +1. Extended matching with "%" *matchit-intro* + + *matchit-%* +% Cycle forward through matching groups, such as "if", "else", "endif", + as specified by |b:match_words|. + + *g%* *v_g%* *o_g%* +g% Cycle backwards through matching groups, as specified by + |b:match_words|. For example, go from "if" to "endif" to "else". + + *[%* *v_[%* *o_[%* +[% Go to [count] previous unmatched group, as specified by + |b:match_words|. Similar to |[{|. + + *]%* *v_]%* *o_]%* +]% Go to [count] next unmatched group, as specified by + |b:match_words|. Similar to |]}|. + + *v_a%* +a% In Visual mode, select the matching group, as specified by + |b:match_words|, containing the cursor. Similar to |v_a[|. + A [count] is ignored, and only the first character of the closing + pattern is selected. + +In Vim, as in plain vi, the percent key, |%|, jumps the cursor from a brace, +bracket, or paren to its match. This can be configured with the 'matchpairs' +option. The matchit plugin extends this in several ways: + + You can match whole words, such as "if" and "endif", not just + single characters. You can also specify a |regular-expression|. + You can define groups with more than two words, such as "if", + "else", "endif". Banging on the "%" key will cycle from the "if" to + the first "else", the next "else", ..., the closing "endif", and back + to the opening "if". Nested structures are skipped. Using |g%| goes + in the reverse direction. + By default, words inside comments and strings are ignored, unless + the cursor is inside a comment or string when you type "%". If the + only thing you want to do is modify the behavior of "%" so that it + behaves this way, you do not have to define |b:match_words|, since the + script uses the 'matchpairs' option as well as this variable. + +See |matchit-details| for details on what the script does, and |b:match_words| +for how to specify matching patterns. + +MODES: *matchit-modes* *matchit-v_%* *matchit-o_%* + +Mostly, % and related motions (|g%| and |[%| and |]%|) work just like built-in +|motion| commands in |Operator-pending| and |Visual| modes. However, you +cannot make these motions |linewise| or |characterwise|, since the |:omap|s +that define them start with "v" in order to make the default behavior +inclusive. (See |o_v|.) In other words, "dV%" will not work. The +work-around is to go through Visual mode: "V%d" will work. + +LANGUAGES: *matchit-languages* + +Currently, the following languages are supported: Ada, ASP with VBS, Csh, +DTD, Entity, Essbase, Fortran, HTML, JSP (same as HTML), LaTeX, Lua, Pascal, +SGML, Shell, Tcsh, Vim, XML. Other languages may already have support via +the default |filetype-plugin|s in the standard vim distribution. + +To support a new language, see |matchit-newlang| below. + +DETAILS: *matchit-details* *matchit-parse* + +Here is an outline of what matchit.vim does each time you hit the "%" key. If +there are |backref|s in |b:match_words| then the first step is to produce a +version in which these back references have been eliminated; if there are no +|backref|s then this step is skipped. This step is called parsing. For +example, "\(foo\|bar\):end\1" is parsed to yield +"\(foo\|bar\):end\(foo\|bar\)". This can get tricky, especially if there are +nested groups. If debugging is turned on, the parsed version is saved as +|b:match_pat|. + + *matchit-choose* +Next, the script looks for a word on the current line that matches the pattern +just constructed. It includes the patterns from the 'matchpairs' option. +The goal is to do what you expect, which turns out to be a little complicated. +The script follows these rules: + + Insist on a match that ends on or after the cursor. + Prefer a match that includes the cursor position (that is, one that + starts on or before the cursor). + Prefer a match that starts as close to the cursor as possible. + If more than one pattern in |b:match_words| matches, choose the one + that is listed first. + +Examples: + + Suppose you > + :let b:match_words = '<:>,:' +< and hit "%" with the cursor on or before the "<" in "a is born". + The pattern '<' comes first, so it is preferred over '', which + also matches. If the cursor is on the "t", however, then '' is + preferred, because this matches a bit of text containing the cursor. + If the two groups of patterns were reversed then '<' would never be + preferred. + + Suppose you > + :let b:match_words = 'if:end if' +< (Note the space!) and hit "%" with the cursor at the end of "end if". + Then "if" matches, which is probably not what you want, but if the + cursor starts on the "end " then "end if" is chosen. (You can avoid + this problem by using a more complicated pattern.) + +If there is no match, the cursor does not move. (Before version 1.13 of the +script, it would fall back on the usual behavior of |%|). If debugging is +turned on, the matched bit of text is saved as |b:match_match| and the cursor +column of the start of the match is saved as |b:match_col|. + +Next, the script looks through |b:match_words| (original and parsed versions) +for the group and pattern that match. If debugging is turned on, the group is +saved as |b:match_ini| (the first pattern) and |b:match_tail| (the rest). If +there are |backref|s then, in addition, the matching pattern is saved as +|b:match_word| and a table of translations is saved as |b:match_table|. If +there are |backref|s, these are determined from the matching pattern and +|b:match_match| and substituted into each pattern in the matching group. + +The script decides whether to search forwards or backwards and chooses +arguments for the |searchpair()| function. Then, the cursor is moved to the +start of the match, and |searchpair()| is called. By default, matching +structures inside strings and comments are ignored. This can be changed by +setting |b:match_skip|. + +============================================================================== +2. Activation *matchit-activate* + +You can use this script as a plugin, by copying it to your plugin directory. +See |add-global-plugin| for instructions. You can also add a line to your +|vimrc| file, such as > + :source $VIMRUNTIME/macros/matchit.vim +or > + :runtime macros/matchit.vim +Either way, the script should start working the next time you start up Vim. + +(Earlier versions of the script did nothing unless a |buffer-variable| named +|b:match_words| was defined. Even earlier versions contained autocommands +that set this variable for various file types. Now, |b:match_words| is +defined in many of the default |filetype-plugin|s instead.) + +For a new language, you can add autocommands to the script or to your vimrc +file, but the recommended method is to add a line such as > + let b:match_words = '\:\' +to the |filetype-plugin| for your language. See |b:match_words| below for how +this variable is interpreted. + +TROUBLESHOOTING *matchit-troubleshoot* + +The script should work in most installations of Vim. It may not work if Vim +was compiled with a minimal feature set, for example if the |+syntax| option +was not enabled. If your Vim has support for syntax compiled in, but you do +not have |syntax| highlighting turned on, matchit.vim should work, but it may +fail to skip matching groups in comments and strings. If the |filetype| +mechanism is turned off, the |b:match_words| variable will probably not be +defined automatically. + +============================================================================== +3. Configuration *matchit-configure* + +There are several variables that govern the behavior of matchit.vim. Note +that these are variables local to the buffer, not options, so use |:let| to +define them, not |:set|. Some of these variables have values that matter; for +others, it only matters whether the variable has been defined. All of these +can be defined in the |filetype-plugin| or autocommand that defines +|b:match_words| or "on the fly." + +The main variable is |b:match_words|. It is described in the section below on +supporting a new language. + + *MatchError* *matchit-hl* *matchit-highlight* +MatchError is the highlight group for error messages from the script. By +default, it is linked to WarningMsg. If you do not want to be bothered by +error messages, you can define this to be something invisible. For example, +if you use the GUI version of Vim and your command line is normally white, you +can do > + :hi MatchError guifg=white guibg=white +< + *b:match_ignorecase* +If you > + :let b:match_ignorecase = 1 +then matchit.vim acts as if 'ignorecase' is set: for example, "end" and "END" +are equivalent. If you > + :let b:match_ignorecase = 0 +then matchit.vim treats "end" and "END" differently. (There will be no +b:match_infercase option unless someone requests it.) + + *b:match_debug* +Define b:match_debug if you want debugging information to be saved. See +|matchit-debug|, below. + + *b:match_skip* +If b:match_skip is defined, it is passed as the skip argument to +|searchpair()|. This controls when matching structures are skipped, or +ignored. By default, they are ignored inside comments and strings, as +determined by the |syntax| mechanism. (If syntax highlighting is turned off, +nothing is skipped.) You can set b:match_skip to a string, which evaluates to +a non-zero, numerical value if the match is to be skipped or zero if the match +should not be skipped. In addition, the following special values are +supported by matchit.vim: + s:foo becomes (current syntax item) =~ foo + S:foo becomes (current syntax item) !~ foo + r:foo becomes (line before cursor) =~ foo + R:foo becomes (line before cursor) !~ foo +(The "s" is meant to suggest "syntax", and the "r" is meant to suggest +"regular expression".) + +Examples: + + You can get the default behavior with > + :let b:match_skip = 's:comment\|string' +< + If you want to skip matching structures unless they are at the start + of the line (ignoring whitespace) then you can > + :let b:match_skip = 'R:^\s*' +< Do not do this if strings or comments can span several lines, since + the normal syntax checking will not be done if you set b:match_skip. + + In LaTeX, since "%" is used as the comment character, you can > + :let b:match_skip = 'r:%' +< Unfortunately, this will skip anything after "\%", an escaped "%". To + allow for this, and also "\\%" (an excaped backslash followed by the + comment character) you can > + :let b:match_skip = 'r:\(^\|[^\\]\)\(\\\\\)*%' +< + See the $VIMRUNTIME/ftplugin/vim.vim for an example that uses both + syntax and a regular expression. + +============================================================================== +4. Supporting a New Language *matchit-newlang* + *b:match_words* +In order for matchit.vim to support a new language, you must define a suitable +pattern for |b:match_words|. You may also want to set some of the +|matchit-configure| variables, as described above. If your language has a +complicated syntax, or many keywords, you will need to know something about +Vim's |regular-expression|s. + +The format for |b:match_words| is similar to that of the 'matchpairs' option: +it is a comma (,)-separated list of groups; each group is a colon(:)-separated +list of patterns (regular expressions). Commas and backslashes that are part +of a pattern should be escaped with backslashes ('\:' and '\,'). It is OK to +have only one group; the effect is undefined if a group has only one pattern. +A simple example is > + :let b:match_words = '\:\,' + \ . '\:\:\:\' +(In Vim regular expressions, |\<| and |\>| denote word boundaries. Thus "if" +matches the end of "endif" but "\" does not.) Then banging on the "%" +key will bounce the cursor between "if" and the matching "endif"; and from +"while" to any matching "continue" or "break", then to the matching "endwhile" +and back to the "while". It is almost always easier to use |literal-string|s +(single quotes) as above: '\' rather than "\\" and so on. + +Exception: If the ":" character does not appear in b:match_words, then it is +treated as an expression to be evaluated. For example, > + :let b:match_words = 'GetMatchWords()' +allows you to define a function. This can return a different string depending +on the current syntax, for example. + +Once you have defined the appropriate value of |b:match_words|, you will +probably want to have this set automatically each time you edit the +appropriate file type. The recommended way to do this is by adding the +definition to a |filetype-plugin| file. + +Tips: Be careful that your initial pattern does not match your final pattern. +See the example above for the use of word-boundary expressions. It is usually +better to use ".\{-}" (as many as necessary) instead of ".*" (as many as +possible). See |\{-|. For example, in the string "label", "<.*>" +matches the whole string whereas "<.\{-}>" and "<[^>]*>" match "" and +"". + + *matchit-spaces* *matchit-s:notend* +If "if" is to be paired with "end if" (Note the space!) then word boundaries +are not enough. Instead, define a regular expression s:notend that will match +anything but "end" and use it as follows: > + :let s:notend = '\%(\:\' +< *matchit-s:sol* +This is a simplified version of what is done for Ada. The s:notend is a +|script-variable|. Similarly, you may want to define a start-of-line regular +expression > + :let s:sol = '\%(^\|;\)\s*' +if keywords are only recognized after the start of a line or after a +semicolon (;), with optional white space. + + *matchit-backref* *matchit-\1* +In any group, the expressions |\1|, |\2|, ..., |\9| refer to parts of the +INITIAL pattern enclosed in |\(|escaped parentheses|\)|. These are referred +to as back references, or backrefs. For example, > + :let b:match_words = '\:\(h\)\1\>' +means that "bo" pairs with "ho" and "boo" pairs with "hoo" and so on. Note +that "\1" does not refer to the "\(h\)" in this example. If you have +"\(nested \(parentheses\)\) then "\d" refers to the d-th "\(" and everything +up to and including the matching "\)": in "\(nested\(parentheses\)\)", "\1" +refers to everything and "\2" refers to "\(parentheses\)". If you use a +variable such as |s:notend| or |s:sol| in the previous paragraph then remember +to count any "\(" patterns in this variable. You do not have to count groups +defined by |\%(\)|. + +It should be possible to resolve back references from any pattern in the +group. For example, > + :let b:match_words = '\(foo\)\(bar\):more\1:and\2:end\1\2' +would not work because "\2" cannot be determined from "morefoo" and "\1" +cannot be determined from "andbar". On the other hand, > + :let b:match_words = '\(\(foo\)\(bar\)\):\3\2:end\1' +should work (and have the same effect as "foobar:barfoo:endfoobar"), although +this has not been thoroughly tested. + +You can use |zero-width| patterns such as |\@<=| and |\zs|. (The latter has +not been thouroughly tested in matchit.vim.) For example, if the keyword "if" +must occur at the start of the line, with optional white space, you might use +the pattern "\(^\s*\)\@<=if" so that the cursor will end on the "i" instead of +at the start of the line. For another example, if HTML had only one tag then +one could > + :let b:match_words = '<:>,<\@<=tag>:<\@<=/tag>' +so that "%" can bounce between matching "<" and ">" pairs or (starting on +"tag" or "/tag") between matching tags. Without the |\@<=|, the script would +bounce from "tag" to the "<" in "", and another "%" would not take you +back to where you started. + +DEBUGGING *matchit-debug* *:MatchDebug* + +If you are having trouble figuring out the appropriate definition of +|b:match_words| then you can take advantage of the same information I use when +debugging the script. This is especially true if you are not sure whether +your patterns or my script are at fault! To make this more convenient, I have +made the command :MatchDebug, which defines the variable |b:match_debug| and +creates a Matchit menu. This menu makes it convenient to check the values of +the variables described below. You will probably also want to read +|matchit-details| above. + +Defining the variable |b:match_debug| causes the script to set the following +variables, each time you hit the "%" key. Several of these are only defined +if |b:match_words| includes |backref|s. + + *b:match_pat* +The b:match_pat variable is set to |b:match_words| with |backref|s parsed. + *b:match_match* +The b:match_match variable is set to the bit of text that is recognized as a +match. + *b:match_col* +The b:match_col variable is set to the cursor column of the start of the +matching text. + *b:match_wholeBR* +The b:match_wholeBR variable is set to the comma-separated group of patterns +that matches, with |backref|s unparsed. + *b:match_iniBR* +The b:match_iniBR variable is set to the first pattern in |b:match_wholeBR|. + *b:match_ini* +The b:match_ini variable is set to the first pattern in |b:match_wholeBR|, +with |backref|s resolved from |b:match_match|. + *b:match_tail* +The b:match_tail variable is set to the remaining patterns in +|b:match_wholeBR|, with |backref|s resolved from |b:match_match|. + *b:match_word* +The b:match_word variable is set to the pattern from |b:match_wholeBR| that +matches |b:match_match|. + *b:match_table* +The back reference '\'.d refers to the same thing as '\'.b:match_table[d] in +|b:match_word|. + +============================================================================== +5. Known Bugs and Limitations *matchit-bugs* + +Just because I know about a bug does not mean that it is on my todo list. I +try to respond to reports of bugs that cause real problems. If it does not +cause serious problems, or if there is a work-around, a bug may sit there for +a while. Moral: if a bug (known or not) bothers you, let me know. + +The various |:vmap|s defined in the script (%, |g%|, |[%|, |]%|, |a%|) may +have undesired effects in Select mode |Select-mode-mapping|. At least, if you +want to replace the selection with any character in "ag%[]" there will be a +pause of |'updatetime'| first. + +It would be nice if "\0" were recognized as the entire pattern. That is, it +would be nice if "foo:\end\0" had the same effect as "\(foo\):\end\1". I may +try to implement this in a future version. (This is not so easy to arrange as +you might think!) + +============================================================================== +vim:tw=78:fo=tcq2: diff --git a/vim/doc/ragtag.txt b/vim/doc/ragtag.txt new file mode 100644 index 0000000..a038b26 --- /dev/null +++ b/vim/doc/ragtag.txt @@ -0,0 +1,82 @@ +*ragtag.txt* Ghetto XML/HTML mappings (formerly allml.vim) + +Author: Tim Pope *ragtag-author* +License: Same terms as Vim itself (see |license|) + +This plugin is only available if 'compatible' is not set. + +INTRODUCTION *ragtag* + +These are my personal mappings for XML/XHTML editing, particularly with +dynamic content like PHP/ASP/eRuby. Because they are personal, less effort +has been put into customizability (if you like these mappings but the lack of +customizability poses an issue for you, let me know). Examples shown are for +eRuby. + +You might find these helpful in your vimrc: +> + inoremap o + inoremap + let g:ragtag_global_maps = 1 +< +MAPPINGS *ragtag-mappings* + +The table below shows what happens if the binding is pressed on the end of a +line consisting of "foo". + +Mapping Changed to (cursor = ^) ~ += foo<%= ^ %> *ragtag-CTRL-X_=* ++ <%= foo^ %> *ragtag-CTRL-X_+* +- foo<% ^ %> *ragtag-CTRL-X_-* +_ <% foo^ %> *ragtag-CTRL-X__* +' foo<%# ^ %> *ragtag-CTRL-X_'* + (mnemonic: ' is a comment in ASP VBS) +" <%# foo^ %> *ragtag-CTRL-X_quote* + ^ *ragtag-CTRL-X_* + \n^\n *ragtag-CTRL-X_* +/ Last HTML tag closed *ragtag-CTRL-X_/* +! / (menu) *ragtag-CTRL-X_!* +@ *ragtag-CTRL-X_@* + (mnemonic: @ is used for importing in a CSS file) +# *ragtag-CTRL-X_#* +$ *ragtag-CTRL-X_$* + (mnemonic: $ is valid in javascript identifiers) + +For the bindings that generate HTML tag pairs, in a few cases, attributes will +be automatically added. For example, script becomes > + O + else + imap ] >O + endif + " <% %> + if &ft == "eruby" + inoremap - <%-%>3hi + inoremap _ I<%A-%>Fs + elseif &ft == "cf" + inoremap - + inoremap _ + else + imap - >2hi + imap _ IA>Fs + endif + " Comments + if &ft =~ '^asp' + imap ' '>2hi + imap " I'A>Fs + let b:surround_35 = maparg("","i")."' \r ".maparg(">","i") + elseif &ft == "jsp" + inoremap ' %----%>4hi + inoremap " I<%--A--%>Fs + let b:surround_35 = "<%-- \r --%>" + elseif &ft == "cf" + inoremap ' !------>4hi + inoremap " IFs + setlocal commentstring= + let b:surround_35 = "" + elseif &ft == "html" || &ft == "xml" || &ft == "xhtml" + inoremap ' !---->3hi + inoremap " IFs + let b:surround_35 = "" + elseif &ft == "django" + inoremap ' {##}2hi + inoremap " I{#A#}Fs + let b:surround_35 = "{# \r #}" + else + imap ' #>2hi + imap " I#A>Fs + let b:surround_35 = maparg("","i")."# \r ".maparg(">","i") + endif + imap % ragtagUrlEncode + imap & ragtagXmlEncode + imap % ragtagUrlV + imap & ragtagXmlV + if !exists("b:did_indent") + if s:subtype() == "xml" + runtime! indent/xml.vim + else + runtime! indent/html.vim + endif + endif + " Pet peeve. Do people still not close their

and

  • tags? + if exists("g:html_indent_tags") && g:html_indent_tags !~ '\\|p\>' + let g:html_indent_tags = g:html_indent_tags.'\|p\|li\|dt\|dd' + endif + set indentkeys+=!^F + let b:surround_indent = 1 + silent doautocmd User ragtag + silent doautocmd User allml +endfunction + +function! s:Leave() + call s:disableescape() +endfunction + +function! s:length(str) + return strlen(substitute(a:str,'.','.','g')) +endfunction + +function! s:repeat(str,cnt) + let cnt = a:cnt + let str = "" + while cnt > 0 + let str = str . a:str + let cnt = cnt - 1 + endwhile + return str +endfunction + +function! s:doctypeSeek() + if !exists("b:ragtag_doctype_index") + if exists("b:allml_doctype_index") + let b:ragtag_doctype_index = b:allml_doctype_index + elseif &ft == 'xhtml' || &ft == 'eruby' + let b:ragtag_doctype_index = 10 + elseif &ft != 'xml' + let b:ragtag_doctype_index = 7 + endif + endif + let index = b:ragtag_doctype_index - 1 + return (index < 0 ? s:repeat("\",-index) : s:repeat("\",index)) +endfunction + +function! s:stylesheetTag() + if !exists("b:ragtag_stylesheet_link_tag") + if exists("b:allml_stylesheet_link_tag") + let b:ragtag_stylesheet_link_tag = b:allml_stylesheet_link_tag + else + let b:ragtag_stylesheet_link_tag = "" + endif + endif + return s:insertTag(b:ragtag_stylesheet_link_tag) +endfunction + +function! s:javascriptIncludeTag() + if !exists("b:ragtag_javascript_include_tag") + if exists("b:allml_javascript_include_tag") + let b:ragtag_javascript_include_tag = b:allml_javascript_include_tag + else + let b:ragtag_javascript_include_tag = "" + endif + endif + return s:insertTag(b:ragtag_javascript_include_tag) +endfunction + +function! s:insertTag(tag) + let tag = a:tag + if s:subtype() == "html" + let tag = substitute(a:tag,'\s*/>','>','g') + endif + let before = matchstr(tag,'^.\{-\}\ze\r') + let after = matchstr(tag,'\r\zs\%(.*\r\)\@!.\{-\}$') + " middle isn't currently used + let middle = matchstr(tag,'\r\zs.\{-\}\ze\r') + return before.after.s:repeat("\",s:length(after)) +endfunction + + +function! s:htmlEn() + let b:ragtag_omni = &l:omnifunc + let b:ragtag_isk = &l:isk + " : is for namespaced xml attributes + setlocal omnifunc=htmlcomplete#CompleteTags isk+=: + return "" +endfunction + +function! s:htmlDis() + if exists("b:ragtag_omni") + let &l:omnifunc = b:ragtag_omni + unlet b:ragtag_omni + endif + if exists("b:ragtag_isk") + let &l:isk = b:ragtag_isk + unlet b:ragtag_isk + endif + return "" +endfunction + +function! s:subtype() + let top = getline(1)."\n".getline(2) + if (top =~ '' && &ft !~? 'html') || &ft =~? '^\%(xml\|xsd\|xslt\)$' + return "xml" + elseif top =~? '\' + return 'xhtml' + elseif top =~ '[^<]\' + return "html" + elseif &ft == "xhtml" || &ft == "eruby" + return "xhtml" + elseif exists("b:loaded_ragtag") + return "html" + else + return "" + endif +endfunction + +function! s:closetagback() + if s:subtype() == "html" + return ">\" + else + return " />\\\" + endif +endfunction + +function! s:closetag() + if s:subtype() == "html" + return ">" + else + return " />" + endif +endfunction + +function! s:charset() + let enc = &fileencoding + if enc == "" + let enc = &encoding + endif + if enc == "latin1" + return "ISO-8859-1" + elseif enc == "" + return "US-ASCII" + else + return enc + endif +endfunction + +function! s:tagextras() + if s:subtype() == "xml" + return "" + elseif @" == 'html' && s:subtype() == 'xhtml' + let lang = "en" + if exists("$LANG") && $LANG =~ '^..' + let lang = strpart($LANG,0,2) + endif + return ' xmlns="http://www.w3.org/1999/xhtml" lang="'.lang.'" xml:lang="'.lang.'"' + elseif @" == 'style' + return ' type="text/css"' + elseif @" == 'script' + return ' type="text/javascript"' + elseif @" == 'table' + return ' cellspacing="0"' + else + return "" + endif +endfunction + +inoremap urlspace =getinput()=~?'\%([?&]\&\)[%a-z0-9._~+-]*=[%a-z0-9._~+-]*$'?'+':'%20' + +function! s:urltab(htmlesc) + let line = s:getinput() + let g:line = line + if line =~ '[^ <>"'."'".']\@"'."'".']\@ ragtagBSUrl + inoremap %0A + imap ${2} +snippet scriptsrc + ${2} +snippet style + ${3} +snippet base + +snippet r + +snippet div +
    + ${2} +
    +# Embed QT Movie +snippet movie + + + + + + ${6} +snippet fieldset +
    + ${1:name} + + ${3} +
    +snippet form +
    + ${3} + + +

    +
    +snippet h1 +

    ${2:$1}

    +snippet input + ${4} +snippet label + ${7} +snippet link + ${4} +snippet mailto + ${3:email me} +snippet meta + ${3} +snippet opt + ${3} +snippet optt + ${2} +snippet select + ${5} +snippet table + + + +
    ${2:Header}
    ${3:Data}
    ${4} +snippet textarea + ${5} +snippet href + ${2}${3} diff --git a/vim/snippets/archive/java.snippets b/vim/snippets/archive/java.snippets new file mode 100755 index 0000000..fd705cb --- /dev/null +++ b/vim/snippets/archive/java.snippets @@ -0,0 +1,78 @@ +snippet main + public static void main (String [] args) + { + ${1:/* code */} + } +snippet pu + public +snippet po + protected +snippet pr + private +snippet st + static +snippet fi + final +snippet ab + abstract +snippet re + return +snippet br + break; +snippet de + default: + ${1} +snippet ca + catch(${1:Exception} ${2:e}) ${3} +snippet th + throw +snippet sy + synchronized +snippet im + import +snippet j.u + java.util +snippet j.i + java.io. +snippet j.b + java.beans. +snippet j.n + java.net. +snippet j.m + java.math. +snippet if + if (${1}) ${2} +snippet el + else +snippet elif + else if (${1}) ${2} +snippet wh + while (${1}) ${2} +snippet for + for (${1}; ${2}; ${3}) ${4} +snippet fore + for (${1} : ${2}) ${3} +snippet sw + switch (${1}) ${2} +snippet cs + case ${1}: + ${2} + ${3} +snippet tc + public class ${1:`Filename()`} extends ${2:TestCase} +snippet t + public void test${1:Name}() throws Exception ${2} +snippet cl + class ${1:`Filename("", "untitled")`} ${2} +snippet in + interface ${1:`Filename("", "untitled")`} ${2:extends Parent}${3} +snippet m + ${1:void} ${2:method}(${3}) ${4:throws }${5} +snippet v + ${1:String} ${2:var}${3: = null}${4};${5} +snippet co + static public final ${1:String} ${2:var} = ${3};${4} +snippet cos + static public final String ${1:var} = "${2}";${3} +snippet as + assert ${1:test} : "${2:Failure message}";${3} diff --git a/vim/snippets/archive/javascript.snippets b/vim/snippets/archive/javascript.snippets new file mode 100755 index 0000000..51f5e05 --- /dev/null +++ b/vim/snippets/archive/javascript.snippets @@ -0,0 +1,74 @@ +# Prototype +snippet proto + ${1:class_name}.prototype.${2:method_name} = + function(${3:first_argument}) { + ${4:// body...} + }; +# Function +snippet fun + function ${1:function_name} (${2:argument}) { + ${3:// body...} + } +# Anonymous Function +snippet f + function(${1}) {${2}}; +# if +snippet if + if (${1:true}) {${2}}; +# if ... else +snippet ife + if (${1:true}) {${2}} + else{${3}}; +# tertiary conditional +snippet t + ${1:/* condition */} ? ${2:a} : ${3:b} +# switch +snippet switch + switch(${1:expression}) { + case '${3:case}': + ${4:// code} + break; + ${5} + default: + ${2:// code} + } +# case +snippet case + case '${1:case}': + ${2:// code} + break; + ${3} +# for (...) {...} +snippet for + for (var ${2:i} = 0; $2 < ${1:Things}.length; $2${3:++}) { + ${4:$1[$2]} + }; +# for (...) {...} (Improved Native For-Loop) +snippet forr + for (var ${2:i} = ${1:Things}.length - 1; $2 >= 0; $2${3:--}) { + ${4:$1[$2]} + }; +# while (...) {...} +snippet wh + while (${1:/* condition */}) { + ${2:/* code */} + } +# do...while +snippet do + do { + ${2:/* code */} + } while (${1:/* condition */}); +# Object Method +snippet :f + ${1:method_name}: function(${2:attribute}) { + ${4} + }${3:,} +# setTimeout function +snippet timeout + setTimeout(function() {${3}}${2}, ${1:10}; +# Get Elements +snippet get + getElementsBy${1:TagName}('${2}')${3} +# Get Element +snippet gett + getElementBy${1:Id}('${2}')${3} diff --git a/vim/snippets/archive/objc.snippets b/vim/snippets/archive/objc.snippets new file mode 100755 index 0000000..6d6bf60 --- /dev/null +++ b/vim/snippets/archive/objc.snippets @@ -0,0 +1,189 @@ +# #import <...> +snippet imp + #import <${1:Cocoa/Cocoa.h}>${2} +# #import "..." +snippet Imp + #import "${1:`Filename()`.h}"${2} +# @selector(...) +snippet sel + @selector(${1:method}:)${3} +# @"..." string +snippet s + @"${1}"${2} +# Object +snippet o + ${1:NSObject} *${2:foo} = [${3:$1 alloc}];${5} +# NSLog(...) +snippet log + NSLog(@"${1}"${2});${3} +# Class +snippet objc + @interface ${1:`Filename('', 'object')`} : ${2:NSObject} + { + } + @end + + @implementation $1 + - (id) init + { + if (self = [super init]) + {${3} + } + return self; + } + @end +# Class Interface +snippet clh + @interface ${1:`Filename('', 'object')`} : ${2:NSObject} + {${3} + } + ${4} + @end +# Class Implementation +snippet clm + @implementation ${1:`Filename('', 'object')`} : ${2:NSObject} + - (id)init + { + if ((self = [super init])) + {$0 + } + return self; + } + @end +# Interface +snippet int + @interface + ${1} + @end +# Implementation +snippet impl + @implementation + ${1} + @end +snippet ibo + IBOutlet ${1:NSSomeClass} *${2:$1}; +# Category +snippet cat + @interface ${1:NSObject} (${2:Category}) + @end + + @implementation $1 ($2) + ${3} + @end +# Category Interface +snippet cath + @interface ${1:NSObject} (${2:Category}) + ${3} + @end +# NSArray +snippet array + NSMutableArray *${1:array} = [NSMutable array];${2} +# NSDictionary +snippet dict + NSMutableDictionary *${1:dict} = [NSMutableDictionary dictionary];${2} +# NSBezierPath +snippet bez + NSBezierPath *${1:path} = [NSBezierPath bezierPath];${2} +# Method +snippet m + - (${1:id})${2:method} + { + ${3:return self;} + } +# Method declaration +snippet md + - (${1:id})${2:method};${3} +# IBAction declaration +snippet ibad + - (IBAction)${1:method};${2} +# IBAction method +snippet iba + - (IBAction)${1:method} + { + ${2} + } +# awakeFromNib method +snippet wake + - (void)awakeFromNib + { + ${1} + } +# Class Method +snippet M + + (${1:id})${2:method} + {${3} + return nil; + } +# Sub-method (Call super) +snippet sm + - (${1:id})${2:method} + { + [super $2];${3} + return self; + } +# Method: Initialize +snippet I + + (void) initialize + { + [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWIthObjectsAndKeys: + ${1}@"value", @"key", + nil]]; + } +# Accessor Methods For: +# Object +snippet objacc + - (${1:id})${2:thing} + { + return $2; + } + + - (void)set$2:($1)${3:new$2} + { + [$3 retain]; + [$2 release]; + $2 = $3; + }${4} +# for (object in array) +snippet fora + for (${1:Class} *${2:Object} in ${3:array}) { + ${4} + } +snippet forarray + unsigned int ${1:object}Count = [${2:array} count]; + + for (unsigned int index = 0; index < $1Count; index++) { + ${3:id} $1 = [$2 $1AtIndex:index]; + ${4} + } +# IBOutlet +# @property (Objective-C 2.0) +snippet prop + @property (${1:retain}) ${2:NSSomeClass} *${3:$2};${4} +# @synthesize (Objective-C 2.0) +snippet syn + @synthesize ${1:property};${2} +# [[ alloc] init] +snippet alloc + [[${1:foo} alloc] init]${2};${3} +# retain +snippet ret + [${1:foo} retain];${2} +# release +snippet rel + [${1:foo} release]; + ${2:$1 = nil;} +# autorelease +snippet arel + [${1:foo} autorelease]; +# autorelease pool +snippet pool + NSAutoReleasePool *${1:pool} = [[NSAutoReleasePool alloc] init]; + ${2:/* code */} + [$1 release]; +# Throw an exception +snippet except + NSException *${1:badness}; + $1 = [NSException exceptionWithName:@"${2:$1Name}" + reason:@"${3}" + userInfo:nil]; + [$1 raise]; diff --git a/vim/snippets/archive/perl.snippets b/vim/snippets/archive/perl.snippets new file mode 100755 index 0000000..8607fa4 --- /dev/null +++ b/vim/snippets/archive/perl.snippets @@ -0,0 +1,91 @@ +# #!/usr/bin/perl +snippet #! + #!/usr/bin/perl + +# Hash Pointer +snippet . + => +# Function +snippet sub + sub ${1:function_name} { + ${2:#body ...} + } +# Conditional +snippet if + if (${1}) { + ${2:# body...} + } +# Conditional if..else +snippet ife + if (${1}) { + ${2:# body...} + } else { + ${3:# else...} + } +# Conditional if..elsif..else +snippet ifee + if (${1}) { + ${2:# body...} + } elsif (${3}) { + ${4:# elsif...} + } else { + ${5:# else...} + } +# Conditional One-line +snippet xif + ${1:expression} if ${2:condition};${3} +# Unless conditional +snippet unless + unless (${1}) { + ${2:# body...} + } +# Unless conditional One-line +snippet xunless + ${1:expression} unless ${2:condition};${3} +# Try/Except +snippet eval + eval { + ${1:# do something risky...} + }; + if ($@) { + ${2:# handle failure...} + } +# While Loop +snippet wh + while (${1}) { + ${2:# body...} + } +# While Loop One-line +snippet xwh + ${1:expression} while ${2:condition};${3} +# For Loop +snippet for + for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) { + ${4:# body...} + } +# Foreach Loop +snippet fore + foreach my $${1:x} (@${2:array}) { + ${3:# body...} + } +# Foreach Loop One-line +snippet xfore + ${1:expression} foreach @${2:array};${3} +# Package +snippet cl + package ${1:ClassName}; + + use base qw(${2:ParentClass}); + + sub new { + my $class = shift; + $class = ref $class if ref $class; + my $self = bless {}, $class; + $self; + } + + 1;${3} +# Read File +snippet slurp + my $${1:var}; + { local $/ = undef; local *FILE; open FILE, "<${2:file}"; $$1 = ; close FILE }${2} diff --git a/vim/snippets/archive/php.snippets b/vim/snippets/archive/php.snippets new file mode 100755 index 0000000..3ce9e26 --- /dev/null +++ b/vim/snippets/archive/php.snippets @@ -0,0 +1,216 @@ +snippet php + +snippet ec + echo "${1:string}"${2}; +snippet inc + include '${1:file}';${2} +snippet inc1 + include_once '${1:file}';${2} +snippet req + require '${1:file}';${2} +snippet req1 + require_once '${1:file}';${2} +# $GLOBALS['...'] +snippet globals + $GLOBALS['${1:variable}']${2: = }${3:something}${4:;}${5} +snippet $_ COOKIE['...'] + $_COOKIE['${1:variable}']${2} +snippet $_ ENV['...'] + $_ENV['${1:variable}']${2} +snippet $_ FILES['...'] + $_FILES['${1:variable}']${2} +snippet $_ Get['...'] + $_GET['${1:variable}']${2} +snippet $_ POST['...'] + $_POST['${1:variable}']${2} +snippet $_ REQUEST['...'] + $_REQUEST['${1:variable}']${2} +snippet $_ SERVER['...'] + $_SERVER['${1:variable}']${2} +snippet $_ SESSION['...'] + $_SESSION['${1:variable}']${2} +# Start Docblock +snippet /* + /** + * ${1} + **/ +# Class - post doc +snippet doc_cp + /** + * ${1:undocumented class} + * + * @package ${2:default} + * @author ${3:`g:snips_author`} + **/${4} +# Class Variable - post doc +snippet doc_vp + /** + * ${1:undocumented class variable} + * + * @var ${2:string} + **/${3} +# Class Variable +snippet doc_v + /** + * ${3:undocumented class variable} + * + * @var ${4:string} + **/ + ${1:var} $${2};${5} +# Class +snippet doc_c + /** + * ${3:undocumented class} + * + * @packaged ${4:default} + * @author ${5:`g:snips_author`} + **/ + ${1:}class ${2:} + {${6} + } // END $1class $2 +# Constant Definition - post doc +snippet doc_dp + /** + * ${1:undocumented constant} + **/${2} +# Constant Definition +snippet doc_d + /** + * ${3:undocumented constant} + **/ + define(${1}, ${2});${4} +# Function - post doc +snippet doc_fp + /** + * ${1:undocumented function} + * + * @return ${2:void} + * @author ${3:`g:snips_author`} + **/${4} +# Function signature +snippet doc_s + /** + * ${4:undocumented function} + * + * @return ${5:void} + * @author ${6:`g:snips_author`} + **/ + ${1}function ${2}(${3});${7} +# Function +snippet doc_f + /** + * ${4:undocumented function} + * + * @return ${5:void} + * @author ${6:`g:snips_author`} + **/ + ${1}function ${2}(${3}) + {${7} + } +# Header +snippet doc_h + /** + * ${1} + * + * @author ${2:`g:snips_author`} + * @version ${3:$Id$} + * @copyright ${4:$2}, `strftime('%d %B, %Y')` + * @package ${5:default} + **/ + + /** + * Define DocBlock + *// +# Interface +snippet doc_i + /** + * ${2:undocumented class} + * + * @package ${3:default} + * @author ${4:`g:snips_author`} + **/ + interface ${1:} + {${5} + } // END interface $1 +# class ... +snippet class + /** + * ${1} + **/ + class ${2:ClassName} + { + ${3} + function ${4:__construct}(${5:argument}) + { + ${6:// code...} + } + } +# define(...) +snippet def + define('${1}'${2});${3} +# defined(...) +snippet def? + ${1}defined('${2}')${3} +snippet wh + while (${1:/* condition */}) { + ${2:// code...} + } +# do ... while +snippet do + do { + ${2:// code... } + } while (${1:/* condition */}); +snippet if + if (${1:/* condition */}) { + ${2:// code...} + } +snippet ife + if (${1:/* condition */}) { + ${2:// code...} + } else { + ${3:// code...} + } + ${4} +snippet else + else { + ${1:// code...} + } +snippet elseif + elseif (${1:/* condition */}) { + ${2:// code...} + } +# Tertiary conditional +snippet t + $${1:retVal} = (${2:condition}) ? ${3:a} : ${4:b};${5} +snippet switch + switch ($${1:variable}) { + case '${2:value}': + ${3:// code...} + break; + ${5} + default: + ${4:// code...} + break; + } +snippet case + case '${1:value}': + ${2:// code...} + break;${3} +snippet for + for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) { + ${4: // code...} + } +snippet foreach + foreach ($${1:variable} as $${2:key}) { + ${3:// code...} + } +snippet fun + ${1:public }function ${2:FunctionName}(${3}) + { + ${4:// code...} + } +# $... = array (...) +snippet array + $${1:arrayName} = array('${2}' => ${3});${4} diff --git a/vim/snippets/archive/python.snippets b/vim/snippets/archive/python.snippets new file mode 100755 index 0000000..af93a5b --- /dev/null +++ b/vim/snippets/archive/python.snippets @@ -0,0 +1,72 @@ +snippet #! + #!/usr/bin/python + +snippet wh + while ${1:condition}: + ${2:# code...} +snippet for + for ${1:needle} in ${2:haystack}: + ${3:# code...} +# New Class +snippet cl + class ${1:ClassName}(${2:object}): + """${3:docstring for $1}""" + def __init__(self, ${4:arg}): + ${5:super($1, self).__init__()} + self.$4 = $4 + ${6} +# New Function +snippet def + def ${1:fname}(${2:`indent('.') ? 'self' : ''`}): + """${3:docstring for $1}""" + ${4:pass} +# New Method +snippet defs + def ${1:mname}(self, ${2:arg})): + ${3:pass} +# New Property +snippet property + def ${1:foo}(): + doc = "${2:The $1 property.}" + def fget(self): + ${3:return self._$1} + def fset(self, value): + +# Self +snippet . + self. +snippet try Try/Except + try: + ${1:pass} + except ${2:Exception}, ${3:e}: + ${4:raise $3} +snippet try Try/Except/Else + try: + ${1:pass} + except ${2:Exception}, ${3:e}: + ${4:raise $3} + else: + ${5:pass} +snippet try Try/Except/Finally + try: + ${1:pass} + except ${2:Exception}, ${3:e}: + ${4:raise $3} + finally: + ${5:pass} +snippet try Try/Except/Else/Finally + try: + ${1:pass} + except ${2:Exception}, ${3:e}: + ${4:raise $3} + else: + ${5:pass} + finally: + ${6:pass} +# if __name__ == '__main__': +snippet ifmain + if __name__ == '__main__': + ${1:main()} +# __magic__ +snippet _ + __${1:init}__${2} diff --git a/vim/snippets/archive/ruby.snippets b/vim/snippets/archive/ruby.snippets new file mode 100755 index 0000000..2ff480f --- /dev/null +++ b/vim/snippets/archive/ruby.snippets @@ -0,0 +1,445 @@ +snippet #! + #!/usr/bin/ruby + +snippet =b + =begin rdoc + ${1} + =end +snippet y + :yields: ${1:arguments} +snippet rb + #!/usr/bin/env ruby -wKU + +snippet req + require "${1}"${2} +snippet # + # => +snippet end + __END__ +snippet case + case ${1:object} + when ${2:condition} + ${3} + end +snippet when + when ${1:condition} + ${2} +snippet def + def ${1:method_name} + ${2} + end +snippet deft + def test_${1:case_name} + ${2} + end +snippet if + if ${1:condition} + ${2} + end +snippet ife + if ${1:condition} + ${2} + else + ${3} + end +snippet elsif + elsif ${1:condition} + ${2} +snippet unless + unless ${1:condition} + ${2} + end +snippet while + while ${1:condition} + ${2} + end +snippet until + until ${1:condition} + ${2} + end +snippet cla class .. end + class ${1:`substitute(Filename(), '^.', '\u&', '')`} + ${2} + end +snippet cla class .. initialize .. end + class ${1:`substitute(Filename(), '^.', '\u&', '')`} + def initialize(${2:args}) + ${3} + end + + + end +snippet cla class .. < ParentClass .. initialize .. end + class ${1:`substitute(Filename(), '^.', '\u&', '')`} < ${2:ParentClass} + def initialize(${3:args}) + ${4} + end + + + end +snippet cla ClassName = Struct .. do .. end + ${1:`substitute(Filename(), '^.', '\u&', '')`} = Struct.new(:${2:attr_names}) do + def ${3:method_name} + ${4} + end + + + end +snippet cla class BlankSlate .. initialize .. end + class ${1:BlankSlate} + instance_methods.each { |meth| undef_method(meth) unless meth =~ /\A__/ } +snippet cla class << self .. end + class << ${1:self} + ${2} + end +# class .. < DelegateClass .. initialize .. end +snippet cla- + class ${1:`substitute(Filename(), '^.', '\u&', '')`} < DelegateClass(${2:ParentClass}) + def initialize(${3:args}) + super(${4:del_obj}) + + ${5} + end + + + end +snippet mod module .. end + module ${1:`substitute(Filename(), '^.', '\u&', '')`} + ${2} + end +snippet mod module .. module_function .. end + module ${1:`substitute(Filename(), '^.', '\u&', '')`} + module_function + + ${2} + end +snippet mod module .. ClassMethods .. end + module ${1:`substitute(Filename(), '^.', '\u&', '')`} + module ClassMethods + ${2} + end + + +# attr_reader +snippet r + attr_reader :${1:attr_names} +# attr_writer +snippet w + attr_writer :${1:attr_names} +# attr_accessor +snippet rw + attr_accessor :${1:attr_names} +# include Enumerable +snippet Enum + include Enumerable + + def each(&block) + ${1} + end +# include Comparable +snippet Comp + include Comparable + + def <=>(other) + ${1} + end +# extend Forwardable +snippet Forw- + extend Forwardable +# def self +snippet defs + def self.${1:class_method_name} + ${2} + end +# def method_missing +snippet defmm + def method_missing(meth, *args, &blk) + ${1} + end +snippet defd + def_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name} +snippet defds + def_delegators :${1:@del_obj}, :${2:del_methods} +snippet am + alias_method :${1:new_name}, :${2:old_name} +snippet app + if __FILE__ == $PROGRAM_NAME + ${1} + end +# usage_if() +snippet usai + if ARGV.${1} + abort "Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}"${3} + end +# usage_unless() +snippet usau + unless ARGV.${1} + abort "Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}"${3} + end +snippet array + Array.new(${1:10}) { |${2:i}| ${3} } +snippet hash + Hash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} } +snippet file File.foreach() { |line| .. } + File.foreach(${1:"path/to/file"}) { |${2:line}| ${3} } +snippet file File.read() + File.read(${1:"path/to/file"})${2} +snippet Dir Dir.global() { |file| .. } + Dir.glob(${1:"dir/glob/*"}) { |${2:file}| ${3} } +snippet Dir Dir[''..''] + Dir[${1:"glob/**/*.rb"}]${2} +snippet dir + Filename.dirname(__FILE__) +snippet deli + delete_if { |${1:e}| ${2} } +snippet fil + fill(${1:range}) { |${2:i}| ${3} } +# flatten_once() +snippet flao + inject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3} +snippet zip + zip(${1:enums}) { |${2:row}| ${3} } +# downto(0) { |n| .. } +snippet dow + downto(${1:0}) { |${2:n}| ${3} } +snippet ste + step(${1:2}) { |${2:n}| ${3} } +snippet tim + times { |${1:n}| ${2} } +snippet upt + upto(${1:1.0/0.0}) { |${2:n}| ${3} } +snippet loo + loop { ${1} } +snippet ea + each { |${1:e}| ${2} } +snippet eab + each_byte { |${1:byte}| ${2} } +snippet eac- each_char { |chr| .. } + each_char { |${1:chr}| ${2} } +snippet eac- each_cons(..) { |group| .. } + each_cons(${1:2}) { |${2:group}| ${3} } +snippet eai + each_index { |${1:i}| ${2} } +snippet eak + each_key { |${1:key}| ${2} } +snippet eal + each_line { |${1:line}| ${2} } +snippet eap + each_pair { |${1:name}, ${2:val}| ${3} } +snippet eas- + each_slice(${1:2}) { |${2:group}| ${3} } +snippet eav + each_value { |${1:val}| ${2} } +snippet eawi + each_with_index { |${1:e}, ${2:i}| ${3} } +snippet reve + reverse_each { |${1:e}| ${2} } +snippet inj + inject(${1:init}) { |${2:mem}, ${3:var}| ${4} } +snippet map + map { |${1:e}| ${2} } +snippet mapwi- + enum_with_index.map { |${1:e}, ${2:i}| ${3} } +snippet sor + sort { |a, b| ${1} } +snippet sorb + sort_by { |${1:e}| ${2} } +snippet ran + sort_by { rand } +snippet all + all? { |${1:e}| ${2} } +snippet any + any? { |${1:e}| ${2} } +snippet cl + classify { |${1:e}| ${2} } +snippet col + collect { |${1:e}| ${2} } +snippet det + detect { |${1:e}| ${2} } +snippet fet + fetch(${1:name}) { |${2:key}| ${3} } +snippet fin + find { |${1:e}| ${2} } +snippet fina + find_all { |${1:e}| ${2} } +snippet gre + grep(${1:/pattern/}) { |${2:match}| ${3} } +snippet sub + ${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} } +snippet sca + scan(${1:/pattern/}) { |${2:match}| ${3} } +snippet max + max { |a, b|, ${1} } +snippet min + min { |a, b|, ${1} } +snippet par + partition { |${1:e}|, ${2} } +snippet rej + reject { |${1:e}|, ${2} } +snippet sel + select { |${1:e}|, ${2} } +snippet lam + lambda { |${1:args}| ${2} } +snippet do + do |${1:variable}| + ${2} + end +snippet : + :${1:key} => ${2:"value"}${3} +snippet ope + open(${1:"path/or/url/or/pipe"}, "${2:w}") { |${3:io}| ${4} } +# path_from_here() +snippet patfh + File.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2} +# unix_filter {} +snippet unif + ARGF.each_line${1} do |${2:line}| + ${3} + end +# option_parse {} +snippet optp + require "optparse" + + options = {${1:default => "args"}} + + ARGV.options do |opts| + opts.banner = "Usage: #{File.basename($PROGRAM_NAME)} +snippet opt + opts.on( "-${1:o}", "--${2:long-option-name}", ${3:String}, + "${4:Option description.}") do |${5:opt}| + ${6} + end +snippet tc + require "test/unit" + + require "${1:library_file_name}" + + class Test${2:$1} < Test::Unit::TestCase + def test_${3:case_name} + ${4} + end + end +snippet ts + require "test/unit" + + require "tc_${1:test_case_file}" + require "tc_${2:test_case_file}"${3} +snippet as + assert(${1:test}, "${2:Failure message.}")${3} +snippet ase + assert_equal(${1:expected}, ${2:actual})${3} +snippet asne + assert_not_equal(${1:unexpected}, ${2:actual})${3} +snippet asid + assert_in_delta(${1:expected_float}, ${2:actual_float}, ${3:2 ** -20})${4} +snippet asio + assert_instance_of(${1:ExpectedClass}, ${2:actual_instance})${3} +snippet asko + assert_kind_of(${1:ExpectedKind}, ${2:actual_instance})${3} +snippet asn + assert_nil(${1:instance})${2} +snippet asnn + assert_not_nil(${1:instance})${2} +snippet asm + assert_match(/${1:expected_pattern}/, ${2:actual_string})${3} +snippet asnm + assert_no_match(/${1:unexpected_pattern}/, ${2:actual_string})${3} +snippet aso + assert_operator(${1:left}, :${2:operator}, ${3:right})${4} +snippet asr + assert_raise(${1:Exception}) { ${2} } +snippet asnr + assert_nothing_raised(${1:Exception}) { ${2} } +snippet asrt + assert_respond_to(${1:object}, :${2:method})${3} +snippet ass assert_same(..) + assert_same(${1:expected}, ${2:actual})${3} +snippet ass assert_send(..) + assert_send([${1:object}, :${2:message}, ${3:args}])${4} +snippet asns + assert_not_same(${1:unexpected}, ${2:actual})${3} +snippet ast + assert_throws(:${1:expected}) { ${2} } +snippet asnt + assert_nothing_thrown { ${1} } +snippet fl + flunk("${1:Failure message.}")${2} +# Benchmark.bmbm do .. end +snippet bm- + TESTS = ${1:10_000} + Benchmark.bmbm do |results| + ${2} + end +snippet rep + results.report("${1:name}:") { TESTS.times { ${2} }} +# Marshal.dump(.., file) +snippet Md + File.open(${1:"path/to/file.dump"}, "wb") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4} +# Mashal.load(obj) +snippet Ml + File.open(${1:"path/to/file.dump"}, "rb") { |${2:file}| Marshal.load($2) }${3} +# deep_copy(..) +snippet deec + Marshal.load(Marshal.dump(${1:obj_to_copy}))${2} +snippet Pn- + PStore.new(${1:"file_name.pstore"})${2} +snippet tra + transaction(${1:true}) { ${2} } +# xmlread(..) +snippet xml- + REXML::Document.new(File.read(${1:"path/to/file"}))${2} +# xpath(..) { .. } +snippet xpa + elements.each(${1:"//Xpath"}) do |${2:node}| + ${3} + end +# class_from_name() +snippet clafn + split("::").inject(Object) { |par, const| par.const_get(const) } +# singleton_class() +snippet sinc + class << self; self end +snippet nam + namespace :${1:`Filename()`} do + ${2} + end +snippet tas + desc "${1:Task description\}" + task :${2:task_name => [:dependent, :tasks]} do + ${3} + end +snippet trace + begin + ${1:# do stuff here} + rescue Exception => e + puts "Exception: #{e.class}: #{e.message}\n\t#{e.backtrace.join("\n\t")}" + ${2:exit 1} + end +snippet begin + begin + ${3:# do stuff here} + rescue ${1:Exception} => ${2:e} + ${4:exit 1} + end +snippet before + before(${1::each}) do + ${2} + end +snippet it + it "should ${1}" do + ${2} + end +snippet desc + describe "${1}" do + ${2} + end +snippet %x + %x{ ${1} } +snippet %w + %w{ ${1} } +snippet %r + %r{ ${1} } +snippet puts + puts "${1}"${2} + + diff --git a/vim/snippets/archive/sh.snippets b/vim/snippets/archive/sh.snippets new file mode 100755 index 0000000..c26ffbd --- /dev/null +++ b/vim/snippets/archive/sh.snippets @@ -0,0 +1,28 @@ +# #!/bin/bash +snippet #! + #!/bin/bash + +snippet if + if [[ ${1:condition} ]]; then + ${2:#statements} + fi +snippet elif + elif [[ ${1:condition} ]]; then + ${2:#statements} +snippet for + for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do + ${3:#statements} + done +snippet wh + while [[ ${1:condition} ]]; do + ${2:#statements} + done +snippet until + [[ ${1:condition} ]]; do + ${2:#statements} + done +snippet case + case ${1:word} in + ${2:pattern}) + ${3};; + esac diff --git a/vim/snippets/archive/snippet.snippets b/vim/snippets/archive/snippet.snippets new file mode 100755 index 0000000..854c058 --- /dev/null +++ b/vim/snippets/archive/snippet.snippets @@ -0,0 +1,7 @@ +# snippets for making snippets :) +snippet snip + snippet ${1:trigger} + ${2} +snippet msnip + snippet ${1:trigger} ${2:description} + ${3} diff --git a/vim/snippets/archive/tex.snippets b/vim/snippets/archive/tex.snippets new file mode 100755 index 0000000..22f7316 --- /dev/null +++ b/vim/snippets/archive/tex.snippets @@ -0,0 +1,115 @@ +# \begin{}...\end{} +snippet begin + \begin{${1:env}} + ${2} + \end{$1} +# Tabular +snippet tab + \begin{${1:tabular}}{${2:c}} + ${3} + \end{$1} +# Align(ed) +snippet ali + \begin{align${1:ed}} + ${2} + \end{align$1} +# Gather(ed) +snippet gat + \begin{gather${1:ed}} + ${2} + \end{gather$1} +# Equation +snippet eq + \begin{equation} + ${1} + \end{equation} +# Unnumbered Equation +snippet \ + \\[ + ${1} + \\] +# Enumerate +snippet enum + \begin{enumerate} + \item ${1} + \end{enumerate} +# Itemize +snippet item + \begin{itemize} + \item ${1} + \end{itemize} +# Description +snippet desc + \begin{description} + \item[${1}] ${2} + \end{description} +# Matrix +snippet mat + \begin{${1:p/b/v/V/B/small}matrix} + ${2} + \end{$1matrix} +# Cases +snippet cas + \begin{cases} + ${1:equation}, &\text{ if }${2:case}\\ + ${3} + \end{cases} +# Split +snippet spl + \begin{split} + ${1} + \end{split} +# Part +snippet part + \part{${1:part name}} % (fold) + \label{prt:${2:$1}} + ${3} + % part $2 (end) +# Chapter +snippet cha + \chapter{${1:chapter name}} % (fold) + \label{cha:${2:$1}} + ${3} + % chapter $2 (end) +# Section +snippet sec + \section{${1:section name}} % (fold) + \label{sec:${2:$1}} + ${3} + % section $2 (end) +# Sub Section +snippet sub + \subsection{${1:subsection name}} % (fold) + \label{sub:${2:$1}} + ${3} + % subsection $2 (end) +# Sub Sub Section +snippet subs + \subsubsection{${1:subsubsection name}} % (fold) + \label{ssub:${2:$1}} + ${3} + % subsubsection $2 (end) +# Paragraph +snippet par + \paragraph{${1:paragraph name}} % (fold) + \label{par:${2:$1}} + ${3} + % paragraph $2 (end) +# Sub Paragraph +snippet subp + \subparagraph{${1:subparagraph name}} % (fold) + \label{subp:${2:$1}} + ${3} + % subparagraph $2 (end) +snippet itd + \item[${1:description}] ${2:item} +snippet figure + ${1:Figure}~\ref{${2:fig:}}${3} +snippet table + ${1:Table}~\ref{${2:tab:}}${3} +snippet listing + ${1:Listing}~\ref{${2:list}}${3} +snippet section + ${1:Section}~\ref{${2:sec:}}${3} +snippet page + ${1:page}~\pageref{${2}}${3} diff --git a/vim/snippets/archive/vim.snippets b/vim/snippets/archive/vim.snippets new file mode 100755 index 0000000..64e7807 --- /dev/null +++ b/vim/snippets/archive/vim.snippets @@ -0,0 +1,32 @@ +snippet header + " File: ${1:`expand('%:t')`} + " Author: ${2:`g:snips_author`} + " Description: ${3} + ${4:" Last Modified: `strftime("%B %d, %Y")`} +snippet guard + if exists('${1:did_`Filename()`}') || &cp${2: || version < 700} + finish + endif + let $1 = 1${3} +snippet f + fun ${1:function_name}(${2}) + ${3:" code} + endf +snippet for + for ${1:needle} in ${2:haystack} + ${3:" code} + endfor +snippet wh + while ${1:condition} + ${2:" code} + endw +snippet if + if ${1:condition} + ${2:" code} + endif +snippet ife + if ${1:condition} + ${2} + else + ${3} + endif diff --git a/vim/snippets/c/cl.snippet b/vim/snippets/c/cl.snippet new file mode 100755 index 0000000..8196287 --- /dev/null +++ b/vim/snippets/c/cl.snippet @@ -0,0 +1,7 @@ +class ${1:`Filename('$1_t', 'name')`} { + public: + $1 (${2:arguments}); + virtual ~$1 (); + private: + ${3:/* data */} +}; diff --git a/vim/snippets/c/def.snippet b/vim/snippets/c/def.snippet new file mode 100755 index 0000000..35f7331 --- /dev/null +++ b/vim/snippets/c/def.snippet @@ -0,0 +1,3 @@ +#ifndef $1 +#define ${1:SYMBOL} ${2:value} +#endif${3} diff --git a/vim/snippets/c/do.snippet b/vim/snippets/c/do.snippet new file mode 100755 index 0000000..9435f15 --- /dev/null +++ b/vim/snippets/c/do.snippet @@ -0,0 +1,3 @@ +do { + ${2:/* code */} +} while (${1:/* condition */}); diff --git a/vim/snippets/c/el.snippet b/vim/snippets/c/el.snippet new file mode 100755 index 0000000..5966669 --- /dev/null +++ b/vim/snippets/c/el.snippet @@ -0,0 +1,3 @@ +else { + ${1} +} diff --git a/vim/snippets/c/for.snippet b/vim/snippets/c/for.snippet new file mode 100755 index 0000000..58d6c36 --- /dev/null +++ b/vim/snippets/c/for.snippet @@ -0,0 +1,3 @@ +for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) { + ${4:/* code */} +} diff --git a/vim/snippets/c/forr.snippet b/vim/snippets/c/forr.snippet new file mode 100755 index 0000000..ea5b430 --- /dev/null +++ b/vim/snippets/c/forr.snippet @@ -0,0 +1,3 @@ +for (${1:i} = 0; ${2:$1 < 5}; $1${3:++}) { + ${4:/* code */} +} diff --git a/vim/snippets/c/fpf.snippet b/vim/snippets/c/fpf.snippet new file mode 100755 index 0000000..53aed56 --- /dev/null +++ b/vim/snippets/c/fpf.snippet @@ -0,0 +1 @@ +fprintf(${1:stderr}, "${2:%s}\n"${3});${4} diff --git a/vim/snippets/c/fun.snippet b/vim/snippets/c/fun.snippet new file mode 100755 index 0000000..b9d7663 --- /dev/null +++ b/vim/snippets/c/fun.snippet @@ -0,0 +1,4 @@ +${1:void} ${2:function_name} (${3}) +{ + ${4:/* code */} +} diff --git a/vim/snippets/c/if.snippet b/vim/snippets/c/if.snippet new file mode 100755 index 0000000..df32c28 --- /dev/null +++ b/vim/snippets/c/if.snippet @@ -0,0 +1,3 @@ +if (${1:/* condition */}) { + ${2:/* code */} +} diff --git a/vim/snippets/c/inc/inc.snippet b/vim/snippets/c/inc/inc.snippet new file mode 100755 index 0000000..302edff --- /dev/null +++ b/vim/snippets/c/inc/inc.snippet @@ -0,0 +1 @@ +#include "${1:`Filename("$1.h")`}"${2} diff --git a/vim/snippets/c/inc/inc_global.snippet b/vim/snippets/c/inc/inc_global.snippet new file mode 100755 index 0000000..cf04993 --- /dev/null +++ b/vim/snippets/c/inc/inc_global.snippet @@ -0,0 +1 @@ +#include <${1:stdio}.h>${2} diff --git a/vim/snippets/c/main.snippet b/vim/snippets/c/main.snippet new file mode 100755 index 0000000..6a3c52f --- /dev/null +++ b/vim/snippets/c/main.snippet @@ -0,0 +1,4 @@ +int main (int argc, char const* argv[]) { + ${1:/* code */} + return 0; +} diff --git a/vim/snippets/c/map.snippet b/vim/snippets/c/map.snippet new file mode 100755 index 0000000..59c4205 --- /dev/null +++ b/vim/snippets/c/map.snippet @@ -0,0 +1 @@ +std::map<${1:key}, ${2:value}> map${3}; diff --git a/vim/snippets/c/ns.snippet b/vim/snippets/c/ns.snippet new file mode 100755 index 0000000..d9b0b33 --- /dev/null +++ b/vim/snippets/c/ns.snippet @@ -0,0 +1,3 @@ +namespace ${1:`Filename('', 'my')`} { + ${2} +} /* $1 */ diff --git a/vim/snippets/c/once.snippet b/vim/snippets/c/once.snippet new file mode 100755 index 0000000..7b70667 --- /dev/null +++ b/vim/snippets/c/once.snippet @@ -0,0 +1,6 @@ +#ifndef ${1:`toupper(Filename('', 'UNTITLED').'_'.system("/usr/bin/ruby -e 'print (rand * 2821109907455).round.to_s(36)'"))`} +#define $1 + +${2} + +#endif /* end of include guard: $1 */ diff --git a/vim/snippets/c/pr.snippet b/vim/snippets/c/pr.snippet new file mode 100755 index 0000000..0dd78dc --- /dev/null +++ b/vim/snippets/c/pr.snippet @@ -0,0 +1 @@ +printf("${1:%s}\n"${2});${3} diff --git a/vim/snippets/c/readfile.snippet b/vim/snippets/c/readfile.snippet new file mode 100755 index 0000000..9aaf9c3 --- /dev/null +++ b/vim/snippets/c/readfile.snippet @@ -0,0 +1,7 @@ +std::vector v; +if (FILE *${2:fp} = fopen(${1:"filename"}, "r")) { + char buf[1024]; + while (size_t len = fread(buf, 1, sizeof(buf), $2)) + v.insert(v.end(), buf, buf + len); + fclose($2); +}${3} diff --git a/vim/snippets/c/st.snippet b/vim/snippets/c/st.snippet new file mode 100755 index 0000000..95b798a --- /dev/null +++ b/vim/snippets/c/st.snippet @@ -0,0 +1,3 @@ +struct ${1:`Filename('$1_t', 'name')`} { + ${2:/* data */} +}${3: /* optional variable list */};${4} diff --git a/vim/snippets/c/t.snippet b/vim/snippets/c/t.snippet new file mode 100755 index 0000000..dbc2f2b --- /dev/null +++ b/vim/snippets/c/t.snippet @@ -0,0 +1 @@ +${1:/* condition */} ? ${2:a} : ${3:b}' diff --git a/vim/snippets/c/td.snippet b/vim/snippets/c/td.snippet new file mode 100755 index 0000000..61b147a --- /dev/null +++ b/vim/snippets/c/td.snippet @@ -0,0 +1 @@ +typedef ${1:int} ${2:MyCustomType}; diff --git a/vim/snippets/c/tds.snippet b/vim/snippets/c/tds.snippet new file mode 100755 index 0000000..fea80d2 --- /dev/null +++ b/vim/snippets/c/tds.snippet @@ -0,0 +1,3 @@ +typedef struct { + ${2:/* data */} +} ${1:`Filename('$1_t', 'name')`}; diff --git a/vim/snippets/c/vector.snippet b/vim/snippets/c/vector.snippet new file mode 100755 index 0000000..f26dc22 --- /dev/null +++ b/vim/snippets/c/vector.snippet @@ -0,0 +1 @@ +std::vector<${1:char}> v${2}; diff --git a/vim/snippets/c/wh.snippet b/vim/snippets/c/wh.snippet new file mode 100755 index 0000000..318ca59 --- /dev/null +++ b/vim/snippets/c/wh.snippet @@ -0,0 +1,3 @@ +while (${1:/* condition */}) { + ${2:/* code */} +} diff --git a/vim/snippets/cmake/bin.snippet b/vim/snippets/cmake/bin.snippet new file mode 100755 index 0000000..7e91c8e --- /dev/null +++ b/vim/snippets/cmake/bin.snippet @@ -0,0 +1 @@ + ADD_EXECUTABLE(${1:bin}) diff --git a/vim/snippets/cmake/cmake.snippet b/vim/snippets/cmake/cmake.snippet new file mode 100755 index 0000000..9792736 --- /dev/null +++ b/vim/snippets/cmake/cmake.snippet @@ -0,0 +1,16 @@ + CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + PROJECT(${1:ProjectName}) + + FIND_PACKAGE(${2:LIBRARY}) + + INCLUDE_DIRECTORIES( + ${$2_INCLUDE_DIR} + ) + + ADD_SUBDIRECTORY(${3:src}) + + ADD_EXECUTABLE($1) + + TARGET_LINK_LIBRARIES($1 + ${$2_LIBRARIES} + ) diff --git a/vim/snippets/cmake/dep.snippet b/vim/snippets/cmake/dep.snippet new file mode 100755 index 0000000..d5b2460 --- /dev/null +++ b/vim/snippets/cmake/dep.snippet @@ -0,0 +1,3 @@ + ADD_DEPENDENCIES(${1:target} + ${2:dep} + ) diff --git a/vim/snippets/cmake/find.snippet b/vim/snippets/cmake/find.snippet new file mode 100755 index 0000000..039f9a4 --- /dev/null +++ b/vim/snippets/cmake/find.snippet @@ -0,0 +1 @@ + FIND_PACKAGE(${1:LIBRARY}) diff --git a/vim/snippets/cmake/glob.snippet b/vim/snippets/cmake/glob.snippet new file mode 100755 index 0000000..6eb5b7f --- /dev/null +++ b/vim/snippets/cmake/glob.snippet @@ -0,0 +1 @@ + FILE(GLOB ${1:SRCS} *.${2:cpp}) diff --git a/vim/snippets/cmake/include.snippet b/vim/snippets/cmake/include.snippet new file mode 100755 index 0000000..ad65b11 --- /dev/null +++ b/vim/snippets/cmake/include.snippet @@ -0,0 +1,3 @@ + INCLUDE_DIRECTORIES( + ${${1:INCLUDE_DIR}} + ) diff --git a/vim/snippets/cmake/lib.snippet b/vim/snippets/cmake/lib.snippet new file mode 100755 index 0000000..30f9095 --- /dev/null +++ b/vim/snippets/cmake/lib.snippet @@ -0,0 +1,3 @@ + ADD_LIBRARY(${1:lib} ${2:STATIC} + ${${3:SRCS}} + ) diff --git a/vim/snippets/cmake/link.snippet b/vim/snippets/cmake/link.snippet new file mode 100755 index 0000000..b795511 --- /dev/null +++ b/vim/snippets/cmake/link.snippet @@ -0,0 +1,3 @@ + TARGET_LINK_LIBRARIES(${1:bin} + ${2:somelib} + ) diff --git a/vim/snippets/cmake/props.snippet b/vim/snippets/cmake/props.snippet new file mode 100755 index 0000000..6cfa0b0 --- /dev/null +++ b/vim/snippets/cmake/props.snippet @@ -0,0 +1,4 @@ + SET_TARGET_PROPERTIES(${1:target} + ${2:PROPERTIES} ${3:COMPILE_FLAGS} + ${4:"-O3 -Wall -pedantic"} + ) diff --git a/vim/snippets/cmake/set.snippet b/vim/snippets/cmake/set.snippet new file mode 100755 index 0000000..6956269 --- /dev/null +++ b/vim/snippets/cmake/set.snippet @@ -0,0 +1 @@ + SET(${1:var} ${2:val}) diff --git a/vim/snippets/cmake/subdir.snippet b/vim/snippets/cmake/subdir.snippet new file mode 100755 index 0000000..0f94660 --- /dev/null +++ b/vim/snippets/cmake/subdir.snippet @@ -0,0 +1 @@ + ADD_SUBDIRECTORY(${1:src}) diff --git a/vim/snippets/css/!.snippet b/vim/snippets/css/!.snippet new file mode 100755 index 0000000..462b9b5 --- /dev/null +++ b/vim/snippets/css/!.snippet @@ -0,0 +1 @@ +!important diff --git a/vim/snippets/css/#.snippet b/vim/snippets/css/#.snippet new file mode 100755 index 0000000..5a92681 --- /dev/null +++ b/vim/snippets/css/#.snippet @@ -0,0 +1,3 @@ +#${1:id} { + ${2} +} diff --git a/vim/snippets/css/background/all.snippet b/vim/snippets/css/background/all.snippet new file mode 100755 index 0000000..5e94d2c --- /dev/null +++ b/vim/snippets/css/background/all.snippet @@ -0,0 +1 @@ +background:${6: #${1:DDD}} url($2) ${3:repeat/repeat-x/repeat-y/no-repeat} ${4:scroll/fixed} ${5:top left/top center/top right/center left/center center/center right/bottom left/bottom center/bottom right/x-% y-%/x-pos y-pos};$0 diff --git a/vim/snippets/css/background/attachment.snippet b/vim/snippets/css/background/attachment.snippet new file mode 100755 index 0000000..cb0c8f8 --- /dev/null +++ b/vim/snippets/css/background/attachment.snippet @@ -0,0 +1 @@ +background-attachment: ${1:scroll/fixed};$0 diff --git a/vim/snippets/css/background/color.snippet b/vim/snippets/css/background/color.snippet new file mode 100755 index 0000000..ebf4bc7 --- /dev/null +++ b/vim/snippets/css/background/color.snippet @@ -0,0 +1 @@ +background-color: #${1:DDD};$0 diff --git a/vim/snippets/css/background/color_name.snippet b/vim/snippets/css/background/color_name.snippet new file mode 100755 index 0000000..c736f99 --- /dev/null +++ b/vim/snippets/css/background/color_name.snippet @@ -0,0 +1 @@ +background-color: ${1:red};$0 diff --git a/vim/snippets/css/background/color_rgb.snippet b/vim/snippets/css/background/color_rgb.snippet new file mode 100755 index 0000000..a818f86 --- /dev/null +++ b/vim/snippets/css/background/color_rgb.snippet @@ -0,0 +1 @@ +background-color: rgb(${1:255},${2:255},${3:255});$0 diff --git a/vim/snippets/css/background/color_transparent.snippet b/vim/snippets/css/background/color_transparent.snippet new file mode 100755 index 0000000..d4ecdd1 --- /dev/null +++ b/vim/snippets/css/background/color_transparent.snippet @@ -0,0 +1 @@ +background-color: transparent;$0 diff --git a/vim/snippets/css/background/image_none.snippet b/vim/snippets/css/background/image_none.snippet new file mode 100755 index 0000000..1112ab7 --- /dev/null +++ b/vim/snippets/css/background/image_none.snippet @@ -0,0 +1 @@ +background-image: none;$0 diff --git a/vim/snippets/css/background/image_url.snippet b/vim/snippets/css/background/image_url.snippet new file mode 100755 index 0000000..83bee3e --- /dev/null +++ b/vim/snippets/css/background/image_url.snippet @@ -0,0 +1 @@ +background-image: url($1);$0 diff --git a/vim/snippets/css/background/position.snippet b/vim/snippets/css/background/position.snippet new file mode 100755 index 0000000..ccdcb69 --- /dev/null +++ b/vim/snippets/css/background/position.snippet @@ -0,0 +1 @@ +background-position: ${1:top left/top center/top right/center left/center center/center right/bottom left/bottom center/bottom right/x-% y-%/x-pos y-pos};$0 diff --git a/vim/snippets/css/background/repeat.snippet b/vim/snippets/css/background/repeat.snippet new file mode 100755 index 0000000..5c6ce16 --- /dev/null +++ b/vim/snippets/css/background/repeat.snippet @@ -0,0 +1 @@ +background-repeat: ${1:repeat/repeat-x/repeat-y/no-repeat};$0 diff --git a/vim/snippets/css/border/basic.snippet b/vim/snippets/css/border/basic.snippet new file mode 100755 index 0000000..bb6adc0 --- /dev/null +++ b/vim/snippets/css/border/basic.snippet @@ -0,0 +1 @@ +border: ${1:1px} ${2:solid} #${3:999};$0 diff --git a/vim/snippets/css/border/color.snippet b/vim/snippets/css/border/color.snippet new file mode 100755 index 0000000..b3e7721 --- /dev/null +++ b/vim/snippets/css/border/color.snippet @@ -0,0 +1 @@ +border-color: ${1:999};$0 diff --git a/vim/snippets/css/border/style.snippet b/vim/snippets/css/border/style.snippet new file mode 100755 index 0000000..0dac5f1 --- /dev/null +++ b/vim/snippets/css/border/style.snippet @@ -0,0 +1 @@ +border-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 diff --git a/vim/snippets/css/border/width.snippet b/vim/snippets/css/border/width.snippet new file mode 100755 index 0000000..7c5fba0 --- /dev/null +++ b/vim/snippets/css/border/width.snippet @@ -0,0 +1 @@ +border-width: ${1:1px};$0 diff --git a/vim/snippets/css/borderb/basic.snippet b/vim/snippets/css/borderb/basic.snippet new file mode 100755 index 0000000..e0b7c21 --- /dev/null +++ b/vim/snippets/css/borderb/basic.snippet @@ -0,0 +1 @@ +border-bottom: ${1:1}px ${2:solid} #${3:999};$0 diff --git a/vim/snippets/css/borderb/color.snippet b/vim/snippets/css/borderb/color.snippet new file mode 100755 index 0000000..d980e49 --- /dev/null +++ b/vim/snippets/css/borderb/color.snippet @@ -0,0 +1 @@ +border-bottom-color: #${1:999};$0 diff --git a/vim/snippets/css/borderb/style.snippet b/vim/snippets/css/borderb/style.snippet new file mode 100755 index 0000000..24617c6 --- /dev/null +++ b/vim/snippets/css/borderb/style.snippet @@ -0,0 +1 @@ +border-bottom-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 diff --git a/vim/snippets/css/borderb/width.snippet b/vim/snippets/css/borderb/width.snippet new file mode 100755 index 0000000..2689cd5 --- /dev/null +++ b/vim/snippets/css/borderb/width.snippet @@ -0,0 +1 @@ +border-bottom-width: ${1:1}px ${2:solid} #${3:999};$0 diff --git a/vim/snippets/css/borderl/basic.snippet b/vim/snippets/css/borderl/basic.snippet new file mode 100755 index 0000000..dd4dd2a --- /dev/null +++ b/vim/snippets/css/borderl/basic.snippet @@ -0,0 +1 @@ +border-left: ${1:1}px ${2:solid} #${3:999};$0 diff --git a/vim/snippets/css/borderl/color.snippet b/vim/snippets/css/borderl/color.snippet new file mode 100755 index 0000000..68afecb --- /dev/null +++ b/vim/snippets/css/borderl/color.snippet @@ -0,0 +1 @@ +border-left-color: #${1:999};$0 diff --git a/vim/snippets/css/borderl/style.snippet b/vim/snippets/css/borderl/style.snippet new file mode 100755 index 0000000..074cbfa --- /dev/null +++ b/vim/snippets/css/borderl/style.snippet @@ -0,0 +1 @@ +border-left-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 diff --git a/vim/snippets/css/borderl/width.snippet b/vim/snippets/css/borderl/width.snippet new file mode 100755 index 0000000..1e2acef --- /dev/null +++ b/vim/snippets/css/borderl/width.snippet @@ -0,0 +1 @@ +border-left-width: ${1:1}px ${2:solid} #${3:999};$0 diff --git a/vim/snippets/css/borderr/basic.snippet b/vim/snippets/css/borderr/basic.snippet new file mode 100755 index 0000000..a0a3e4b --- /dev/null +++ b/vim/snippets/css/borderr/basic.snippet @@ -0,0 +1 @@ +border-right: ${1:1}px ${2:solid} #${3:999};$0 diff --git a/vim/snippets/css/borderr/color.snippet b/vim/snippets/css/borderr/color.snippet new file mode 100755 index 0000000..320accc --- /dev/null +++ b/vim/snippets/css/borderr/color.snippet @@ -0,0 +1 @@ +border-right-color: #${1:999};$0 diff --git a/vim/snippets/css/borderr/style.snippet b/vim/snippets/css/borderr/style.snippet new file mode 100755 index 0000000..8b03f66 --- /dev/null +++ b/vim/snippets/css/borderr/style.snippet @@ -0,0 +1 @@ +border-right-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 diff --git a/vim/snippets/css/borderr/width.snippet b/vim/snippets/css/borderr/width.snippet new file mode 100755 index 0000000..9df0426 --- /dev/null +++ b/vim/snippets/css/borderr/width.snippet @@ -0,0 +1 @@ +border-right-width: ${1:1}px ${2:solid} #${3:999};$0 diff --git a/vim/snippets/css/bordert/basic.snippet b/vim/snippets/css/bordert/basic.snippet new file mode 100755 index 0000000..e233448 --- /dev/null +++ b/vim/snippets/css/bordert/basic.snippet @@ -0,0 +1 @@ +border-top: ${1:1}px ${2:solid} #${3:999};$0 diff --git a/vim/snippets/css/bordert/color.snippet b/vim/snippets/css/bordert/color.snippet new file mode 100755 index 0000000..1a79fb4 --- /dev/null +++ b/vim/snippets/css/bordert/color.snippet @@ -0,0 +1 @@ +border-top-color: #${1:999};$0 diff --git a/vim/snippets/css/bordert/style.snippet b/vim/snippets/css/bordert/style.snippet new file mode 100755 index 0000000..d6ae011 --- /dev/null +++ b/vim/snippets/css/bordert/style.snippet @@ -0,0 +1 @@ +border-top-style: ${1:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset};$0 diff --git a/vim/snippets/css/bordert/width.snippet b/vim/snippets/css/bordert/width.snippet new file mode 100755 index 0000000..5faaef1 --- /dev/null +++ b/vim/snippets/css/bordert/width.snippet @@ -0,0 +1 @@ +border-top-width: ${1:1}px ${2:solid} #${3:999};$0 diff --git a/vim/snippets/css/cl.snippet b/vim/snippets/css/cl.snippet new file mode 100755 index 0000000..a13d120 --- /dev/null +++ b/vim/snippets/css/cl.snippet @@ -0,0 +1,3 @@ +.${1:class} { + ${2:color: pink;} +} diff --git a/vim/snippets/css/clear.snippet b/vim/snippets/css/clear.snippet new file mode 100755 index 0000000..16b3930 --- /dev/null +++ b/vim/snippets/css/clear.snippet @@ -0,0 +1 @@ +clear: ${1:left/right/both/none};$0 diff --git a/vim/snippets/css/color.snippet b/vim/snippets/css/color.snippet new file mode 100755 index 0000000..3d2728a --- /dev/null +++ b/vim/snippets/css/color.snippet @@ -0,0 +1 @@ +color: #${1:DDD};$0 diff --git a/vim/snippets/css/colorn.snippet b/vim/snippets/css/colorn.snippet new file mode 100755 index 0000000..52da6c9 --- /dev/null +++ b/vim/snippets/css/colorn.snippet @@ -0,0 +1 @@ +color: ${1:red};$0 diff --git a/vim/snippets/css/colorr.snippet b/vim/snippets/css/colorr.snippet new file mode 100755 index 0000000..4204aad --- /dev/null +++ b/vim/snippets/css/colorr.snippet @@ -0,0 +1 @@ +color: rgb(${1:255},${2:255},${3:255});$0 diff --git a/vim/snippets/css/cursor.snippet b/vim/snippets/css/cursor.snippet new file mode 100755 index 0000000..c2e45c7 --- /dev/null +++ b/vim/snippets/css/cursor.snippet @@ -0,0 +1 @@ +cursor: ${1:default/auto/crosshair/pointer/move/*-resize/text/wait/help};$0 diff --git a/vim/snippets/css/cursuru.snippet b/vim/snippets/css/cursuru.snippet new file mode 100755 index 0000000..35b1ef2 --- /dev/null +++ b/vim/snippets/css/cursuru.snippet @@ -0,0 +1 @@ +cursor: url($1);$0 diff --git a/vim/snippets/css/direction.snippet b/vim/snippets/css/direction.snippet new file mode 100755 index 0000000..e0a495a --- /dev/null +++ b/vim/snippets/css/direction.snippet @@ -0,0 +1 @@ +direction: ${1:ltr|rtl};$0 diff --git a/vim/snippets/css/display/block.snippet b/vim/snippets/css/display/block.snippet new file mode 100755 index 0000000..d35d1c2 --- /dev/null +++ b/vim/snippets/css/display/block.snippet @@ -0,0 +1 @@ +display: block;$0 diff --git a/vim/snippets/css/display/common.snippet b/vim/snippets/css/display/common.snippet new file mode 100755 index 0000000..38100a8 --- /dev/null +++ b/vim/snippets/css/display/common.snippet @@ -0,0 +1 @@ +display: ${1:none/inline/block/list-item/run-in/compact/marker};$0 diff --git a/vim/snippets/css/display/inline.snippet b/vim/snippets/css/display/inline.snippet new file mode 100755 index 0000000..1969678 --- /dev/null +++ b/vim/snippets/css/display/inline.snippet @@ -0,0 +1 @@ +display: inline;$0 diff --git a/vim/snippets/css/display/table.snippet b/vim/snippets/css/display/table.snippet new file mode 100755 index 0000000..eeb4da0 --- /dev/null +++ b/vim/snippets/css/display/table.snippet @@ -0,0 +1 @@ +display: ${1:table/inline-table/table-row-group/table-header-group/table-footer-group/table-row/table-column-group/table-column/table-cell/table-caption};$0 diff --git a/vim/snippets/css/float.snippet b/vim/snippets/css/float.snippet new file mode 100755 index 0000000..b43a23c --- /dev/null +++ b/vim/snippets/css/float.snippet @@ -0,0 +1 @@ +float: ${1:left/right/none};$0 diff --git a/vim/snippets/css/font/all.snippet b/vim/snippets/css/font/all.snippet new file mode 100755 index 0000000..30900a1 --- /dev/null +++ b/vim/snippets/css/font/all.snippet @@ -0,0 +1 @@ +font: ${1:normal/italic/oblique} ${2:normal/small-caps} ${3:normal/bold} ${4:1em/1.5em} ${5:Arial}, ${6:sans-}serif;$0 diff --git a/vim/snippets/css/font/family.snippet b/vim/snippets/css/font/family.snippet new file mode 100755 index 0000000..b48c3f6 --- /dev/null +++ b/vim/snippets/css/font/family.snippet @@ -0,0 +1 @@ +font-family: ${1:Arial, "MS Trebuchet"}, ${2:sans-}serif;$0 diff --git a/vim/snippets/css/font/size.snippet b/vim/snippets/css/font/size.snippet new file mode 100755 index 0000000..4a43b04 --- /dev/null +++ b/vim/snippets/css/font/size.snippet @@ -0,0 +1 @@ +font-size: ${1:100%};$0 diff --git a/vim/snippets/css/font/size_font.snippet b/vim/snippets/css/font/size_font.snippet new file mode 100755 index 0000000..185b615 --- /dev/null +++ b/vim/snippets/css/font/size_font.snippet @@ -0,0 +1 @@ +font: ${1:75%} ${2:"Lucida Grande", "Trebuchet MS", Verdana,} ${3:sans-}serif;$0 diff --git a/vim/snippets/css/font/style.snippet b/vim/snippets/css/font/style.snippet new file mode 100755 index 0000000..94b6e1d --- /dev/null +++ b/vim/snippets/css/font/style.snippet @@ -0,0 +1 @@ +font-style: ${1:normal/italic/oblique};$0 diff --git a/vim/snippets/css/font/variant.snippet b/vim/snippets/css/font/variant.snippet new file mode 100755 index 0000000..f0aa67f --- /dev/null +++ b/vim/snippets/css/font/variant.snippet @@ -0,0 +1 @@ +font-variant: ${1:normal/small-caps};$0 diff --git a/vim/snippets/css/font/weight.snippet b/vim/snippets/css/font/weight.snippet new file mode 100755 index 0000000..c355c88 --- /dev/null +++ b/vim/snippets/css/font/weight.snippet @@ -0,0 +1 @@ +font-weight: ${1:normal/bold};$0 diff --git a/vim/snippets/css/i.snippet b/vim/snippets/css/i.snippet new file mode 100755 index 0000000..5ca99ef --- /dev/null +++ b/vim/snippets/css/i.snippet @@ -0,0 +1 @@ +${1:!important} diff --git a/vim/snippets/css/letter.snippet b/vim/snippets/css/letter.snippet new file mode 100755 index 0000000..53f64a1 --- /dev/null +++ b/vim/snippets/css/letter.snippet @@ -0,0 +1 @@ +letter-spacing: ${1}${2:em/px};$0 diff --git a/vim/snippets/css/letterem.snippet b/vim/snippets/css/letterem.snippet new file mode 100755 index 0000000..4d81aa3 --- /dev/null +++ b/vim/snippets/css/letterem.snippet @@ -0,0 +1 @@ +letter-spacing: $1em;$0 diff --git a/vim/snippets/css/letterpx.snippet b/vim/snippets/css/letterpx.snippet new file mode 100755 index 0000000..d6d3fee --- /dev/null +++ b/vim/snippets/css/letterpx.snippet @@ -0,0 +1 @@ +letter-spacing: $1px;$0 diff --git a/vim/snippets/css/list-style/image.snippet b/vim/snippets/css/list-style/image.snippet new file mode 100755 index 0000000..f6f0bc8 --- /dev/null +++ b/vim/snippets/css/list-style/image.snippet @@ -0,0 +1 @@ +list-style-image: url($1);$0 diff --git a/vim/snippets/css/list-style/position.snippet b/vim/snippets/css/list-style/position.snippet new file mode 100755 index 0000000..904f45d --- /dev/null +++ b/vim/snippets/css/list-style/position.snippet @@ -0,0 +1 @@ +list-style-position: ${1:inside/outside};$0 diff --git a/vim/snippets/css/list-style/type_asian.snippet b/vim/snippets/css/list-style/type_asian.snippet new file mode 100755 index 0000000..220cf07 --- /dev/null +++ b/vim/snippets/css/list-style/type_asian.snippet @@ -0,0 +1 @@ +list-style-type: ${1:cjk-ideographic/hiragana/katakana/hiragana-iroha/katakana-iroha};$0 diff --git a/vim/snippets/css/list-style/type_marker.snippet b/vim/snippets/css/list-style/type_marker.snippet new file mode 100755 index 0000000..5c9350a --- /dev/null +++ b/vim/snippets/css/list-style/type_marker.snippet @@ -0,0 +1 @@ +list-style-type: ${1:none/disc/circle/square};$0 diff --git a/vim/snippets/css/list-style/type_numeric.snippet b/vim/snippets/css/list-style/type_numeric.snippet new file mode 100755 index 0000000..05efdce --- /dev/null +++ b/vim/snippets/css/list-style/type_numeric.snippet @@ -0,0 +1 @@ +list-style-type: ${1:decimal/decimal-leading-zero/zero};$0 diff --git a/vim/snippets/css/list-style/type_other.snippet b/vim/snippets/css/list-style/type_other.snippet new file mode 100755 index 0000000..0e987a9 --- /dev/null +++ b/vim/snippets/css/list-style/type_other.snippet @@ -0,0 +1 @@ +list-style-type: ${1:hebrew/armenian/georgian};$0 diff --git a/vim/snippets/css/list-style/type_position_image.snippet b/vim/snippets/css/list-style/type_position_image.snippet new file mode 100755 index 0000000..8d7397b --- /dev/null +++ b/vim/snippets/css/list-style/type_position_image.snippet @@ -0,0 +1 @@ +list-style: ${1:none/disc/circle/square/decimal/zero} ${2:inside/outside} url($3);$0 diff --git a/vim/snippets/css/list-style/type_roman_alpha_greek.snippet b/vim/snippets/css/list-style/type_roman_alpha_greek.snippet new file mode 100755 index 0000000..7a6a762 --- /dev/null +++ b/vim/snippets/css/list-style/type_roman_alpha_greek.snippet @@ -0,0 +1 @@ +list-style-type: ${1:lower-roman/upper-roman/lower-alpha/upper-alpha/lower-greek/lower-latin/upper-latin};$0 diff --git a/vim/snippets/css/margin.snippet b/vim/snippets/css/margin.snippet new file mode 100755 index 0000000..06d3fa9 --- /dev/null +++ b/vim/snippets/css/margin.snippet @@ -0,0 +1 @@ +margin: ${1:20px} ${2:0px} ${3:40px} ${4:0px};$0 diff --git a/vim/snippets/css/marginb.snippet b/vim/snippets/css/marginb.snippet new file mode 100755 index 0000000..abb7f41 --- /dev/null +++ b/vim/snippets/css/marginb.snippet @@ -0,0 +1 @@ +margin-bottom: ${1:20px};$0 diff --git a/vim/snippets/css/marginl.snippet b/vim/snippets/css/marginl.snippet new file mode 100755 index 0000000..5ecc61b --- /dev/null +++ b/vim/snippets/css/marginl.snippet @@ -0,0 +1 @@ +margin-left: ${1:20px};$0 diff --git a/vim/snippets/css/margino/T_R_B_L.snippet b/vim/snippets/css/margino/T_R_B_L.snippet new file mode 100755 index 0000000..06d3fa9 --- /dev/null +++ b/vim/snippets/css/margino/T_R_B_L.snippet @@ -0,0 +1 @@ +margin: ${1:20px} ${2:0px} ${3:40px} ${4:0px};$0 diff --git a/vim/snippets/css/margino/V_H.snippet b/vim/snippets/css/margino/V_H.snippet new file mode 100755 index 0000000..e342797 --- /dev/null +++ b/vim/snippets/css/margino/V_H.snippet @@ -0,0 +1 @@ +margin: ${1:20px} ${2:0px};$0 diff --git a/vim/snippets/css/margino/all.snippet b/vim/snippets/css/margino/all.snippet new file mode 100755 index 0000000..1be5f95 --- /dev/null +++ b/vim/snippets/css/margino/all.snippet @@ -0,0 +1 @@ +margin: ${1:20px};$0 diff --git a/vim/snippets/css/margino/bottom.snippet b/vim/snippets/css/margino/bottom.snippet new file mode 100755 index 0000000..abb7f41 --- /dev/null +++ b/vim/snippets/css/margino/bottom.snippet @@ -0,0 +1 @@ +margin-bottom: ${1:20px};$0 diff --git a/vim/snippets/css/margino/left.snippet b/vim/snippets/css/margino/left.snippet new file mode 100755 index 0000000..5ecc61b --- /dev/null +++ b/vim/snippets/css/margino/left.snippet @@ -0,0 +1 @@ +margin-left: ${1:20px};$0 diff --git a/vim/snippets/css/margino/right.snippet b/vim/snippets/css/margino/right.snippet new file mode 100755 index 0000000..d600636 --- /dev/null +++ b/vim/snippets/css/margino/right.snippet @@ -0,0 +1 @@ +margin-right: ${1:20px};$0 diff --git a/vim/snippets/css/margino/top.snippet b/vim/snippets/css/margino/top.snippet new file mode 100755 index 0000000..c2bc40f --- /dev/null +++ b/vim/snippets/css/margino/top.snippet @@ -0,0 +1 @@ +margin-top: ${1:20px};$0 diff --git a/vim/snippets/css/marginr.snippet b/vim/snippets/css/marginr.snippet new file mode 100755 index 0000000..d600636 --- /dev/null +++ b/vim/snippets/css/marginr.snippet @@ -0,0 +1 @@ +margin-right: ${1:20px};$0 diff --git a/vim/snippets/css/margint.snippet b/vim/snippets/css/margint.snippet new file mode 100755 index 0000000..c2bc40f --- /dev/null +++ b/vim/snippets/css/margint.snippet @@ -0,0 +1 @@ +margin-top: ${1:20px};$0 diff --git a/vim/snippets/css/marker/offset_auto.snippet b/vim/snippets/css/marker/offset_auto.snippet new file mode 100755 index 0000000..f4c107a --- /dev/null +++ b/vim/snippets/css/marker/offset_auto.snippet @@ -0,0 +1 @@ +marker-offset: auto;$0 diff --git a/vim/snippets/css/marker/offset_length.snippet b/vim/snippets/css/marker/offset_length.snippet new file mode 100755 index 0000000..864e750 --- /dev/null +++ b/vim/snippets/css/marker/offset_length.snippet @@ -0,0 +1 @@ +marker-offset: ${1:10px};$0 diff --git a/vim/snippets/css/opacity.snippet b/vim/snippets/css/opacity.snippet new file mode 100755 index 0000000..de7d62b --- /dev/null +++ b/vim/snippets/css/opacity.snippet @@ -0,0 +1,3 @@ +opacity: ${1:0.5};${100: +}-moz-opacity: ${1:0.5};${100: +}filter:alpha(opacity=${2:${1/(1?)0?\.(.*)/$1$2/}${1/^\d*\.\d\d+$|^\d*$|(^\d\.\d$)/(?1:0)/}});$0 diff --git a/vim/snippets/css/overflow.snippet b/vim/snippets/css/overflow.snippet new file mode 100755 index 0000000..3caac03 --- /dev/null +++ b/vim/snippets/css/overflow.snippet @@ -0,0 +1 @@ +overflow: ${1:visible/hidden/scroll/auto};$0 diff --git a/vim/snippets/css/padding.snippet b/vim/snippets/css/padding.snippet new file mode 100755 index 0000000..db2a3ef --- /dev/null +++ b/vim/snippets/css/padding.snippet @@ -0,0 +1 @@ +padding: ${1:20px} ${2:0px} ${3:40px} ${4:0px};$0 diff --git a/vim/snippets/css/paddingb.snippet b/vim/snippets/css/paddingb.snippet new file mode 100755 index 0000000..66ad6be --- /dev/null +++ b/vim/snippets/css/paddingb.snippet @@ -0,0 +1 @@ +padding-bottom: ${1:20px};$0 diff --git a/vim/snippets/css/paddingl.snippet b/vim/snippets/css/paddingl.snippet new file mode 100755 index 0000000..0853f49 --- /dev/null +++ b/vim/snippets/css/paddingl.snippet @@ -0,0 +1 @@ +padding-left: ${1:20px};$0 diff --git a/vim/snippets/css/paddingo/T_R_B_L.snippet b/vim/snippets/css/paddingo/T_R_B_L.snippet new file mode 100755 index 0000000..db2a3ef --- /dev/null +++ b/vim/snippets/css/paddingo/T_R_B_L.snippet @@ -0,0 +1 @@ +padding: ${1:20px} ${2:0px} ${3:40px} ${4:0px};$0 diff --git a/vim/snippets/css/paddingo/V_H.snippet b/vim/snippets/css/paddingo/V_H.snippet new file mode 100755 index 0000000..0b92d8e --- /dev/null +++ b/vim/snippets/css/paddingo/V_H.snippet @@ -0,0 +1 @@ +padding: ${1:20px} ${2:0px};$0 diff --git a/vim/snippets/css/paddingo/all.snippet b/vim/snippets/css/paddingo/all.snippet new file mode 100755 index 0000000..6d38bf7 --- /dev/null +++ b/vim/snippets/css/paddingo/all.snippet @@ -0,0 +1 @@ +padding: ${1:20px};$0 diff --git a/vim/snippets/css/paddingo/bottom.snippet b/vim/snippets/css/paddingo/bottom.snippet new file mode 100755 index 0000000..66ad6be --- /dev/null +++ b/vim/snippets/css/paddingo/bottom.snippet @@ -0,0 +1 @@ +padding-bottom: ${1:20px};$0 diff --git a/vim/snippets/css/paddingo/left.snippet b/vim/snippets/css/paddingo/left.snippet new file mode 100755 index 0000000..0853f49 --- /dev/null +++ b/vim/snippets/css/paddingo/left.snippet @@ -0,0 +1 @@ +padding-left: ${1:20px};$0 diff --git a/vim/snippets/css/paddingo/right.snippet b/vim/snippets/css/paddingo/right.snippet new file mode 100755 index 0000000..91a4c80 --- /dev/null +++ b/vim/snippets/css/paddingo/right.snippet @@ -0,0 +1 @@ +padding-right: ${1:20px};$0 diff --git a/vim/snippets/css/paddingo/top.snippet b/vim/snippets/css/paddingo/top.snippet new file mode 100755 index 0000000..9ba6335 --- /dev/null +++ b/vim/snippets/css/paddingo/top.snippet @@ -0,0 +1 @@ +padding-top: ${1:20px};$0 diff --git a/vim/snippets/css/paddingr.snippet b/vim/snippets/css/paddingr.snippet new file mode 100755 index 0000000..91a4c80 --- /dev/null +++ b/vim/snippets/css/paddingr.snippet @@ -0,0 +1 @@ +padding-right: ${1:20px};$0 diff --git a/vim/snippets/css/paddingt.snippet b/vim/snippets/css/paddingt.snippet new file mode 100755 index 0000000..9ba6335 --- /dev/null +++ b/vim/snippets/css/paddingt.snippet @@ -0,0 +1 @@ +padding-top: ${1:20px};$0 diff --git a/vim/snippets/css/position.snippet b/vim/snippets/css/position.snippet new file mode 100755 index 0000000..2643aae --- /dev/null +++ b/vim/snippets/css/position.snippet @@ -0,0 +1 @@ +position: ${1:static/relative/absolute/fixed};$0 diff --git a/vim/snippets/css/scrollbar.snippet b/vim/snippets/css/scrollbar.snippet new file mode 100755 index 0000000..f017249 --- /dev/null +++ b/vim/snippets/css/scrollbar.snippet @@ -0,0 +1,8 @@ +scrollbar-base-color: ${1:#CCCCCC};${2: +scrollbar-arrow-color: ${3:#000000}; +scrollbar-track-color: ${4:#999999}; +scrollbar-3dlight-color: ${5:#EEEEEE}; +scrollbar-highlight-color: ${6:#FFFFFF}; +scrollbar-face-color: ${7:#CCCCCC}; +scrollbar-shadow-color: ${9:#999999}; +scrollbar-darkshadow-color: ${8:#666666};} diff --git a/vim/snippets/css/tag.snippet b/vim/snippets/css/tag.snippet new file mode 100755 index 0000000..765269c --- /dev/null +++ b/vim/snippets/css/tag.snippet @@ -0,0 +1,3 @@ +${1:tag} { + ${2:color: pink;} +} diff --git a/vim/snippets/css/text/align.snippet b/vim/snippets/css/text/align.snippet new file mode 100755 index 0000000..c3a4db3 --- /dev/null +++ b/vim/snippets/css/text/align.snippet @@ -0,0 +1 @@ +text-align: ${1:left/right/center/justify};$0 diff --git a/vim/snippets/css/text/decoration.snippet b/vim/snippets/css/text/decoration.snippet new file mode 100755 index 0000000..1af58ee --- /dev/null +++ b/vim/snippets/css/text/decoration.snippet @@ -0,0 +1 @@ +text-decoration: ${1:none/underline/overline/line-through/blink};$0 diff --git a/vim/snippets/css/text/indent.snippet b/vim/snippets/css/text/indent.snippet new file mode 100755 index 0000000..2dac54b --- /dev/null +++ b/vim/snippets/css/text/indent.snippet @@ -0,0 +1 @@ +text-indent: ${1:10}px;$0 diff --git a/vim/snippets/css/text/shadow_hex.snippet b/vim/snippets/css/text/shadow_hex.snippet new file mode 100755 index 0000000..f6559e4 --- /dev/null +++ b/vim/snippets/css/text/shadow_hex.snippet @@ -0,0 +1 @@ +text-shadow: #${1:DDD} ${2:10px} ${3:10px} ${4:2px};$0 diff --git a/vim/snippets/css/text/shadow_none.snippet b/vim/snippets/css/text/shadow_none.snippet new file mode 100755 index 0000000..57a9eb3 --- /dev/null +++ b/vim/snippets/css/text/shadow_none.snippet @@ -0,0 +1 @@ +text-shadow: none;$0 diff --git a/vim/snippets/css/text/shadow_rgb.snippet b/vim/snippets/css/text/shadow_rgb.snippet new file mode 100755 index 0000000..9b5eacb --- /dev/null +++ b/vim/snippets/css/text/shadow_rgb.snippet @@ -0,0 +1 @@ +text-shadow: rgb(${1:255},${2:255},${3:255}) ${4:10px} ${5:10px} ${6:2px};$0 diff --git a/vim/snippets/css/text/transform.snippet b/vim/snippets/css/text/transform.snippet new file mode 100755 index 0000000..e5cec4c --- /dev/null +++ b/vim/snippets/css/text/transform.snippet @@ -0,0 +1 @@ +text-transform: ${1:capitalize/uppercase/lowercase};$0 diff --git a/vim/snippets/css/text/transform_none.snippet b/vim/snippets/css/text/transform_none.snippet new file mode 100755 index 0000000..8618047 --- /dev/null +++ b/vim/snippets/css/text/transform_none.snippet @@ -0,0 +1 @@ +text-transform: none;$0 diff --git a/vim/snippets/css/url.snippet b/vim/snippets/css/url.snippet new file mode 100755 index 0000000..b45efb2 --- /dev/null +++ b/vim/snippets/css/url.snippet @@ -0,0 +1 @@ +url('${1:../images/}${2}')${3} diff --git a/vim/snippets/css/vertical.snippet b/vim/snippets/css/vertical.snippet new file mode 100755 index 0000000..5f76ac1 --- /dev/null +++ b/vim/snippets/css/vertical.snippet @@ -0,0 +1 @@ +vertical-align: ${1:baseline/sub/super/top/text-top/middle/bottom/text-bottom/length/%};$0 diff --git a/vim/snippets/css/visibility.snippet b/vim/snippets/css/visibility.snippet new file mode 100755 index 0000000..5f76ac1 --- /dev/null +++ b/vim/snippets/css/visibility.snippet @@ -0,0 +1 @@ +vertical-align: ${1:baseline/sub/super/top/text-top/middle/bottom/text-bottom/length/%};$0 diff --git a/vim/snippets/css/white.snippet b/vim/snippets/css/white.snippet new file mode 100755 index 0000000..066260a --- /dev/null +++ b/vim/snippets/css/white.snippet @@ -0,0 +1 @@ +white-space: ${1:normal/pre/nowrap};$0 diff --git a/vim/snippets/css/word/spacing_length.snippet b/vim/snippets/css/word/spacing_length.snippet new file mode 100755 index 0000000..647ea3e --- /dev/null +++ b/vim/snippets/css/word/spacing_length.snippet @@ -0,0 +1 @@ +word-spacing: ${1:10px};$0 diff --git a/vim/snippets/css/word/spacing_normal.snippet b/vim/snippets/css/word/spacing_normal.snippet new file mode 100755 index 0000000..9461551 --- /dev/null +++ b/vim/snippets/css/word/spacing_normal.snippet @@ -0,0 +1 @@ +word-spacing: normal;$0 diff --git a/vim/snippets/css/z.snippet b/vim/snippets/css/z.snippet new file mode 100755 index 0000000..fd19d5f --- /dev/null +++ b/vim/snippets/css/z.snippet @@ -0,0 +1 @@ +z-index: $1;$0 diff --git a/vim/snippets/cucumber/a.snippet b/vim/snippets/cucumber/a.snippet new file mode 100755 index 0000000..d4415f4 --- /dev/null +++ b/vim/snippets/cucumber/a.snippet @@ -0,0 +1 @@ +And diff --git a/vim/snippets/cucumber/aa.snippet b/vim/snippets/cucumber/aa.snippet new file mode 100755 index 0000000..1c4ee05 --- /dev/null +++ b/vim/snippets/cucumber/aa.snippet @@ -0,0 +1 @@ +As a ${1} diff --git a/vim/snippets/cucumber/b.snippet b/vim/snippets/cucumber/b.snippet new file mode 100755 index 0000000..67f3302 --- /dev/null +++ b/vim/snippets/cucumber/b.snippet @@ -0,0 +1,2 @@ +Background: + ${1} diff --git a/vim/snippets/cucumber/e.snippet b/vim/snippets/cucumber/e.snippet new file mode 100755 index 0000000..939fd1c --- /dev/null +++ b/vim/snippets/cucumber/e.snippet @@ -0,0 +1,2 @@ +Examples: + diff --git a/vim/snippets/cucumber/f.snippet b/vim/snippets/cucumber/f.snippet new file mode 100755 index 0000000..4e09650 --- /dev/null +++ b/vim/snippets/cucumber/f.snippet @@ -0,0 +1,2 @@ +Feature: ${1:name} + ${2} diff --git a/vim/snippets/cucumber/feat.snippet b/vim/snippets/cucumber/feat.snippet new file mode 100755 index 0000000..bcf58fa --- /dev/null +++ b/vim/snippets/cucumber/feat.snippet @@ -0,0 +1,5 @@ +Feature: ${1:[feature name eg. "Manage some thing ..."]} + In order to ${2:[goal]} + As a ${3:[stakeholder]} + I want ${4:[behavior]} + diff --git a/vim/snippets/cucumber/feature.snippet b/vim/snippets/cucumber/feature.snippet new file mode 100755 index 0000000..bcf58fa --- /dev/null +++ b/vim/snippets/cucumber/feature.snippet @@ -0,0 +1,5 @@ +Feature: ${1:[feature name eg. "Manage some thing ..."]} + In order to ${2:[goal]} + As a ${3:[stakeholder]} + I want ${4:[behavior]} + diff --git a/vim/snippets/cucumber/g/given.snippet b/vim/snippets/cucumber/g/given.snippet new file mode 100755 index 0000000..1849b11 --- /dev/null +++ b/vim/snippets/cucumber/g/given.snippet @@ -0,0 +1,2 @@ +Given I am on [page_name] + diff --git a/vim/snippets/cucumber/g/given_regexp.snippet b/vim/snippets/cucumber/g/given_regexp.snippet new file mode 100755 index 0000000..b8d14c0 --- /dev/null +++ b/vim/snippets/cucumber/g/given_regexp.snippet @@ -0,0 +1,3 @@ +Given /^ (${1:REGEXP})$/ do |${2}| + ${3} +end diff --git a/vim/snippets/cucumber/iwt.snippet b/vim/snippets/cucumber/iwt.snippet new file mode 100755 index 0000000..cdf54b6 --- /dev/null +++ b/vim/snippets/cucumber/iwt.snippet @@ -0,0 +1 @@ +I want to ${1} diff --git a/vim/snippets/cucumber/s.snippet b/vim/snippets/cucumber/s.snippet new file mode 100755 index 0000000..8e261d3 --- /dev/null +++ b/vim/snippets/cucumber/s.snippet @@ -0,0 +1 @@ +Scenario: diff --git a/vim/snippets/cucumber/scen/scenario_with_js.snippet b/vim/snippets/cucumber/scen/scenario_with_js.snippet new file mode 100755 index 0000000..3de9f0e --- /dev/null +++ b/vim/snippets/cucumber/scen/scenario_with_js.snippet @@ -0,0 +1,3 @@ +@culerity +Scenario: ${1:Delete customers} + ${2:Given the following customers:} diff --git a/vim/snippets/cucumber/scen/scenario_without_js.snippet b/vim/snippets/cucumber/scen/scenario_without_js.snippet new file mode 100755 index 0000000..e1dd0aa --- /dev/null +++ b/vim/snippets/cucumber/scen/scenario_without_js.snippet @@ -0,0 +1,3 @@ +Scenario: ${1:Register new customers} + ${2:Given I am on the new customers page + And I press "Create"} diff --git a/vim/snippets/cucumber/so.snippet b/vim/snippets/cucumber/so.snippet new file mode 100755 index 0000000..e2e3c31 --- /dev/null +++ b/vim/snippets/cucumber/so.snippet @@ -0,0 +1 @@ +Scenario Outline: diff --git a/vim/snippets/cucumber/steps b/vim/snippets/cucumber/steps new file mode 100755 index 0000000..3836e14 --- /dev/null +++ b/vim/snippets/cucumber/steps @@ -0,0 +1,23 @@ + When I go to [page_name] + When I press "[button]" + When I follow "[link]" + When I fill in "[field]" with "[value]" + When I select "[value]" from "[field]" + When I select "[time]" as the date and time + When I select "[datetime]" as the "[datetime_label]" date and time + When I select "[time]" as the time + When I select "[time]" as the "[time_label]" time + When I select "[date]" as the date + When I select "[date]" as the "[date_label]" date + When I check "[field]" + When I uncheck "[field]" + When I choose "[field]" + When I attach the file at "[path]" to "[field]" + + Then I should see "[text]" + Then I should not see "[text]" + Then the "[field]" field should contain "[value]" + Then the "[field]" field should not contain "[value]" + Then the "[label]" checkbox should be checked + Then I should be on [page_name] + diff --git a/vim/snippets/cucumber/sti.snippet b/vim/snippets/cucumber/sti.snippet new file mode 100755 index 0000000..52b71fe --- /dev/null +++ b/vim/snippets/cucumber/sti.snippet @@ -0,0 +1 @@ +So that I ${1} diff --git a/vim/snippets/cucumber/t.snippet b/vim/snippets/cucumber/t.snippet new file mode 100755 index 0000000..eea167a --- /dev/null +++ b/vim/snippets/cucumber/t.snippet @@ -0,0 +1 @@ +Then diff --git a/vim/snippets/cucumber/w.snippet b/vim/snippets/cucumber/w.snippet new file mode 100755 index 0000000..cba6983 --- /dev/null +++ b/vim/snippets/cucumber/w.snippet @@ -0,0 +1 @@ +When diff --git a/vim/snippets/django-html/#.snippet b/vim/snippets/django-html/#.snippet new file mode 100755 index 0000000..a05348e --- /dev/null +++ b/vim/snippets/django-html/#.snippet @@ -0,0 +1 @@ +{# ${1:comment} #} diff --git a/vim/snippets/django-html/%%.snippet b/vim/snippets/django-html/%%.snippet new file mode 100755 index 0000000..5eb1b8e --- /dev/null +++ b/vim/snippets/django-html/%%.snippet @@ -0,0 +1,3 @@ +{% ${1:tag_name} %} + ${2} +{% end$1 %} diff --git a/vim/snippets/django-html/%.snippet b/vim/snippets/django-html/%.snippet new file mode 100755 index 0000000..2ecc3e1 --- /dev/null +++ b/vim/snippets/django-html/%.snippet @@ -0,0 +1 @@ +{% ${1} %}${2} diff --git a/vim/snippets/django-html/add.snippet b/vim/snippets/django-html/add.snippet new file mode 100755 index 0000000..c5845ad --- /dev/null +++ b/vim/snippets/django-html/add.snippet @@ -0,0 +1 @@ +add:"${1}" diff --git a/vim/snippets/django-html/autoescape.snippet b/vim/snippets/django-html/autoescape.snippet new file mode 100755 index 0000000..0868b9d --- /dev/null +++ b/vim/snippets/django-html/autoescape.snippet @@ -0,0 +1,3 @@ +{% autoescape ${1:off} %} + ${2} +{% endautoescape %} diff --git a/vim/snippets/django-html/block.snippet b/vim/snippets/django-html/block.snippet new file mode 100755 index 0000000..f970843 --- /dev/null +++ b/vim/snippets/django-html/block.snippet @@ -0,0 +1,3 @@ +{% block ${1} %} + ${2} +{% endblock %} diff --git a/vim/snippets/django-html/center.snippet b/vim/snippets/django-html/center.snippet new file mode 100755 index 0000000..e0f7ba1 --- /dev/null +++ b/vim/snippets/django-html/center.snippet @@ -0,0 +1 @@ +center:"${1}" diff --git a/vim/snippets/django-html/comment.snippet b/vim/snippets/django-html/comment.snippet new file mode 100755 index 0000000..4b75338 --- /dev/null +++ b/vim/snippets/django-html/comment.snippet @@ -0,0 +1,3 @@ +{% comment %} +${1} +{% endcomment %} diff --git a/vim/snippets/django-html/cut.snippet b/vim/snippets/django-html/cut.snippet new file mode 100755 index 0000000..676eb50 --- /dev/null +++ b/vim/snippets/django-html/cut.snippet @@ -0,0 +1 @@ +cut:"${1}" diff --git a/vim/snippets/django-html/cycle.snippet b/vim/snippets/django-html/cycle.snippet new file mode 100755 index 0000000..526897d --- /dev/null +++ b/vim/snippets/django-html/cycle.snippet @@ -0,0 +1 @@ +{% cycle ${1:val1} ${2:val2} ${3:as } %} diff --git a/vim/snippets/django-html/date.snippet b/vim/snippets/django-html/date.snippet new file mode 100755 index 0000000..27b12af --- /dev/null +++ b/vim/snippets/django-html/date.snippet @@ -0,0 +1 @@ +date:"${1}" diff --git a/vim/snippets/django-html/debug.snippet b/vim/snippets/django-html/debug.snippet new file mode 100755 index 0000000..f2a14ff --- /dev/null +++ b/vim/snippets/django-html/debug.snippet @@ -0,0 +1 @@ +{% debug %} diff --git a/vim/snippets/django-html/default.snippet b/vim/snippets/django-html/default.snippet new file mode 100755 index 0000000..cc6575f --- /dev/null +++ b/vim/snippets/django-html/default.snippet @@ -0,0 +1 @@ +default:"${1}" diff --git a/vim/snippets/django-html/defaultifnone.snippet b/vim/snippets/django-html/defaultifnone.snippet new file mode 100755 index 0000000..48f63bb --- /dev/null +++ b/vim/snippets/django-html/defaultifnone.snippet @@ -0,0 +1 @@ +default_if_none:"${1}" diff --git a/vim/snippets/django-html/dictsort.snippet b/vim/snippets/django-html/dictsort.snippet new file mode 100755 index 0000000..127cc23 --- /dev/null +++ b/vim/snippets/django-html/dictsort.snippet @@ -0,0 +1 @@ +dictsort:"${1}" diff --git a/vim/snippets/django-html/dictsortrev.snippet b/vim/snippets/django-html/dictsortrev.snippet new file mode 100755 index 0000000..f18dc0d --- /dev/null +++ b/vim/snippets/django-html/dictsortrev.snippet @@ -0,0 +1 @@ +dictsortreversed:"${1}" diff --git a/vim/snippets/django-html/divisibleby.snippet b/vim/snippets/django-html/divisibleby.snippet new file mode 100755 index 0000000..63fa25d --- /dev/null +++ b/vim/snippets/django-html/divisibleby.snippet @@ -0,0 +1 @@ +divisibleby:"${1}" diff --git a/vim/snippets/django-html/else.snippet b/vim/snippets/django-html/else.snippet new file mode 100755 index 0000000..78b4d0f --- /dev/null +++ b/vim/snippets/django-html/else.snippet @@ -0,0 +1,2 @@ +{% else %} +${1} diff --git a/vim/snippets/django-html/empty.snippet b/vim/snippets/django-html/empty.snippet new file mode 100755 index 0000000..2d14f52 --- /dev/null +++ b/vim/snippets/django-html/empty.snippet @@ -0,0 +1,2 @@ +{% empty %} +${1} diff --git a/vim/snippets/django-html/extends.snippet b/vim/snippets/django-html/extends.snippet new file mode 100755 index 0000000..c078b32 --- /dev/null +++ b/vim/snippets/django-html/extends.snippet @@ -0,0 +1 @@ +{% extends "${1:base.html}" %} diff --git a/vim/snippets/django-html/filter.snippet b/vim/snippets/django-html/filter.snippet new file mode 100755 index 0000000..277aea9 --- /dev/null +++ b/vim/snippets/django-html/filter.snippet @@ -0,0 +1,3 @@ +{% filter ${1} %} +${2} +{% endfilter %} diff --git a/vim/snippets/django-html/firstof.snippet b/vim/snippets/django-html/firstof.snippet new file mode 100755 index 0000000..9d4bf9a --- /dev/null +++ b/vim/snippets/django-html/firstof.snippet @@ -0,0 +1 @@ +{% firstof ${1} %} diff --git a/vim/snippets/django-html/floatformat.snippet b/vim/snippets/django-html/floatformat.snippet new file mode 100755 index 0000000..b1c0719 --- /dev/null +++ b/vim/snippets/django-html/floatformat.snippet @@ -0,0 +1 @@ +floatformat:"${1}" diff --git a/vim/snippets/django-html/for.snippet b/vim/snippets/django-html/for.snippet new file mode 100755 index 0000000..da54159 --- /dev/null +++ b/vim/snippets/django-html/for.snippet @@ -0,0 +1,3 @@ +{% for ${1} in ${2} %} +${3} +{% endfor %} diff --git a/vim/snippets/django-html/getdigit.snippet b/vim/snippets/django-html/getdigit.snippet new file mode 100755 index 0000000..81e7a3e --- /dev/null +++ b/vim/snippets/django-html/getdigit.snippet @@ -0,0 +1 @@ +get_digit:"${1}" diff --git a/vim/snippets/django-html/if.snippet b/vim/snippets/django-html/if.snippet new file mode 100755 index 0000000..3cf165a --- /dev/null +++ b/vim/snippets/django-html/if.snippet @@ -0,0 +1,3 @@ +{% if ${1} %} +${2} +{% endif %} diff --git a/vim/snippets/django-html/ifchanged.snippet b/vim/snippets/django-html/ifchanged.snippet new file mode 100755 index 0000000..cc5f52c --- /dev/null +++ b/vim/snippets/django-html/ifchanged.snippet @@ -0,0 +1,3 @@ +{% ifchanged %} +${1} +{% endifchanged %} diff --git a/vim/snippets/django-html/ifequal.snippet b/vim/snippets/django-html/ifequal.snippet new file mode 100755 index 0000000..189b2d2 --- /dev/null +++ b/vim/snippets/django-html/ifequal.snippet @@ -0,0 +1,3 @@ +{% ifequal ${1} ${2} %} +${3} +{% endifequal %} diff --git a/vim/snippets/django-html/ifnotequal.snippet b/vim/snippets/django-html/ifnotequal.snippet new file mode 100755 index 0000000..9b3d513 --- /dev/null +++ b/vim/snippets/django-html/ifnotequal.snippet @@ -0,0 +1,3 @@ +{% ifnotequal ${1} ${2} %} +${3} +{% endifnotequal %} diff --git a/vim/snippets/django-html/include.snippet b/vim/snippets/django-html/include.snippet new file mode 100755 index 0000000..bb64157 --- /dev/null +++ b/vim/snippets/django-html/include.snippet @@ -0,0 +1 @@ +{% include "${1}" %} diff --git a/vim/snippets/django-html/join.snippet b/vim/snippets/django-html/join.snippet new file mode 100755 index 0000000..cef7782 --- /dev/null +++ b/vim/snippets/django-html/join.snippet @@ -0,0 +1 @@ +join:"${1}" diff --git a/vim/snippets/django-html/lengthis.snippet b/vim/snippets/django-html/lengthis.snippet new file mode 100755 index 0000000..cbb43fe --- /dev/null +++ b/vim/snippets/django-html/lengthis.snippet @@ -0,0 +1 @@ +length_is:"${1}" diff --git a/vim/snippets/django-html/load.snippet b/vim/snippets/django-html/load.snippet new file mode 100755 index 0000000..69b90c5 --- /dev/null +++ b/vim/snippets/django-html/load.snippet @@ -0,0 +1 @@ +{% load ${1} %} diff --git a/vim/snippets/django-html/now.snippet b/vim/snippets/django-html/now.snippet new file mode 100755 index 0000000..8ab4dfd --- /dev/null +++ b/vim/snippets/django-html/now.snippet @@ -0,0 +1 @@ +{% now "${1:jS F Y H:i}" %} diff --git a/vim/snippets/django-html/pluralize.snippet b/vim/snippets/django-html/pluralize.snippet new file mode 100755 index 0000000..07bcd2f --- /dev/null +++ b/vim/snippets/django-html/pluralize.snippet @@ -0,0 +1 @@ +pluralize:"${1}" diff --git a/vim/snippets/django-html/regroup.snippet b/vim/snippets/django-html/regroup.snippet new file mode 100755 index 0000000..daeb732 --- /dev/null +++ b/vim/snippets/django-html/regroup.snippet @@ -0,0 +1 @@ +{% regroup ${1} by ${2} as ${3} %} diff --git a/vim/snippets/django-html/removetags.snippet b/vim/snippets/django-html/removetags.snippet new file mode 100755 index 0000000..f5754f2 --- /dev/null +++ b/vim/snippets/django-html/removetags.snippet @@ -0,0 +1 @@ +removetags:"${1}" diff --git a/vim/snippets/django-html/slice.snippet b/vim/snippets/django-html/slice.snippet new file mode 100755 index 0000000..5142304 --- /dev/null +++ b/vim/snippets/django-html/slice.snippet @@ -0,0 +1 @@ +slice:"${1}" diff --git a/vim/snippets/django-html/spaceless.snippet b/vim/snippets/django-html/spaceless.snippet new file mode 100755 index 0000000..c0ecc62 --- /dev/null +++ b/vim/snippets/django-html/spaceless.snippet @@ -0,0 +1,3 @@ +{% spaceless %} +${1} +{% endspaceless %} diff --git a/vim/snippets/django-html/ssi.snippet b/vim/snippets/django-html/ssi.snippet new file mode 100755 index 0000000..5f0f33a --- /dev/null +++ b/vim/snippets/django-html/ssi.snippet @@ -0,0 +1 @@ +{% ssi ${1} %} diff --git a/vim/snippets/django-html/stringformat.snippet b/vim/snippets/django-html/stringformat.snippet new file mode 100755 index 0000000..64caae9 --- /dev/null +++ b/vim/snippets/django-html/stringformat.snippet @@ -0,0 +1 @@ +stringformat:"${1}" diff --git a/vim/snippets/django-html/templatetag/closeblock.snippet b/vim/snippets/django-html/templatetag/closeblock.snippet new file mode 100755 index 0000000..84cd53f --- /dev/null +++ b/vim/snippets/django-html/templatetag/closeblock.snippet @@ -0,0 +1 @@ +{% templatetag closeblock %} diff --git a/vim/snippets/django-html/templatetag/closevariable.snippet b/vim/snippets/django-html/templatetag/closevariable.snippet new file mode 100755 index 0000000..15d875b --- /dev/null +++ b/vim/snippets/django-html/templatetag/closevariable.snippet @@ -0,0 +1 @@ +{% templatetag closevariable %} diff --git a/vim/snippets/django-html/templatetag/openblock.snippet b/vim/snippets/django-html/templatetag/openblock.snippet new file mode 100755 index 0000000..b0181c0 --- /dev/null +++ b/vim/snippets/django-html/templatetag/openblock.snippet @@ -0,0 +1 @@ +{% templatetag openblock %} diff --git a/vim/snippets/django-html/templatetag/openvariable.snippet b/vim/snippets/django-html/templatetag/openvariable.snippet new file mode 100755 index 0000000..e18e9bf --- /dev/null +++ b/vim/snippets/django-html/templatetag/openvariable.snippet @@ -0,0 +1 @@ +{% templatetag openvariable %} diff --git a/vim/snippets/django-html/time.snippet b/vim/snippets/django-html/time.snippet new file mode 100755 index 0000000..2eb8405 --- /dev/null +++ b/vim/snippets/django-html/time.snippet @@ -0,0 +1 @@ +time:"${1}" diff --git a/vim/snippets/django-html/trans.snippet b/vim/snippets/django-html/trans.snippet new file mode 100755 index 0000000..f175559 --- /dev/null +++ b/vim/snippets/django-html/trans.snippet @@ -0,0 +1 @@ +{% trans "${1:string}" %} diff --git a/vim/snippets/django-html/truncatewords.snippet b/vim/snippets/django-html/truncatewords.snippet new file mode 100755 index 0000000..d86a20e --- /dev/null +++ b/vim/snippets/django-html/truncatewords.snippet @@ -0,0 +1 @@ +truncatewords:${1} diff --git a/vim/snippets/django-html/truncatewordshtml.snippet b/vim/snippets/django-html/truncatewordshtml.snippet new file mode 100755 index 0000000..0e4ece1 --- /dev/null +++ b/vim/snippets/django-html/truncatewordshtml.snippet @@ -0,0 +1 @@ +truncatewords_html:${1} diff --git a/vim/snippets/django-html/url.snippet b/vim/snippets/django-html/url.snippet new file mode 100755 index 0000000..5e99a67 --- /dev/null +++ b/vim/snippets/django-html/url.snippet @@ -0,0 +1 @@ +{% url ${1} as ${2} %} diff --git a/vim/snippets/django-html/urlizetrunc.snippet b/vim/snippets/django-html/urlizetrunc.snippet new file mode 100755 index 0000000..fcc6aec --- /dev/null +++ b/vim/snippets/django-html/urlizetrunc.snippet @@ -0,0 +1 @@ +urlizetrunc:${1} diff --git a/vim/snippets/django-html/widthratio.snippet b/vim/snippets/django-html/widthratio.snippet new file mode 100755 index 0000000..5636714 --- /dev/null +++ b/vim/snippets/django-html/widthratio.snippet @@ -0,0 +1 @@ +{% widthratio ${1:this_value} ${2:max_value} ${3:100} %} diff --git a/vim/snippets/django-html/with.snippet b/vim/snippets/django-html/with.snippet new file mode 100755 index 0000000..08cc8f8 --- /dev/null +++ b/vim/snippets/django-html/with.snippet @@ -0,0 +1 @@ +{% with ${1} as ${2} %} diff --git a/vim/snippets/django-html/wordwrap.snippet b/vim/snippets/django-html/wordwrap.snippet new file mode 100755 index 0000000..6c39252 --- /dev/null +++ b/vim/snippets/django-html/wordwrap.snippet @@ -0,0 +1 @@ +wordwrap:${1} diff --git a/vim/snippets/django-html/{.snippet b/vim/snippets/django-html/{.snippet new file mode 100755 index 0000000..58654b9 --- /dev/null +++ b/vim/snippets/django-html/{.snippet @@ -0,0 +1 @@ +{{ ${1} }}${2} diff --git a/vim/snippets/django/auto.snippet b/vim/snippets/django/auto.snippet new file mode 100755 index 0000000..728c110 --- /dev/null +++ b/vim/snippets/django/auto.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.AutoField() diff --git a/vim/snippets/django/bool.snippet b/vim/snippets/django/bool.snippet new file mode 100755 index 0000000..1f564e8 --- /dev/null +++ b/vim/snippets/django/bool.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.BooleanField(${2:default=True}) diff --git a/vim/snippets/django/char.snippet b/vim/snippets/django/char.snippet new file mode 100755 index 0000000..f5ccd00 --- /dev/null +++ b/vim/snippets/django/char.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.CharField(max_length=${2}${3:, blank=True}) diff --git a/vim/snippets/django/comma.snippet b/vim/snippets/django/comma.snippet new file mode 100755 index 0000000..9eb14a1 --- /dev/null +++ b/vim/snippets/django/comma.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.CommaSeparatedIntegerField(max_length=${2}${3:, blank=True}) diff --git a/vim/snippets/django/date.snippet b/vim/snippets/django/date.snippet new file mode 100755 index 0000000..c201aa8 --- /dev/null +++ b/vim/snippets/django/date.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.DateField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True}) diff --git a/vim/snippets/django/datetime.snippet b/vim/snippets/django/datetime.snippet new file mode 100755 index 0000000..5da4538 --- /dev/null +++ b/vim/snippets/django/datetime.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.DateTimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True}) diff --git a/vim/snippets/django/decimal.snippet b/vim/snippets/django/decimal.snippet new file mode 100755 index 0000000..f790cf3 --- /dev/null +++ b/vim/snippets/django/decimal.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.DecimalField(max_digits=${2}, decimal_places=${3}) diff --git a/vim/snippets/django/email.snippet b/vim/snippets/django/email.snippet new file mode 100755 index 0000000..ce5f86a --- /dev/null +++ b/vim/snippets/django/email.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.EmailField(max_length=${2:75}${3:, blank=True}) diff --git a/vim/snippets/django/file.snippet b/vim/snippets/django/file.snippet new file mode 100755 index 0000000..253f40b --- /dev/null +++ b/vim/snippets/django/file.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.FileField(upload_to=${2:path/for/upload}${3:, max_length=100}) diff --git a/vim/snippets/django/filepath.snippet b/vim/snippets/django/filepath.snippet new file mode 100755 index 0000000..d284973 --- /dev/null +++ b/vim/snippets/django/filepath.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.FilePathField(path=${2:"/abs/path/to/dir"}${3:, max_length=100}${4:, match="*.ext"}${5:, recursive=True}${6:, blank=True, }) diff --git a/vim/snippets/django/fk.snippet b/vim/snippets/django/fk.snippet new file mode 100755 index 0000000..0c455bb --- /dev/null +++ b/vim/snippets/django/fk.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.ForeignKey(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, to_field=''}) diff --git a/vim/snippets/django/float.snippet b/vim/snippets/django/float.snippet new file mode 100755 index 0000000..f92a940 --- /dev/null +++ b/vim/snippets/django/float.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.FloatField() diff --git a/vim/snippets/django/form.snippet b/vim/snippets/django/form.snippet new file mode 100755 index 0000000..88171ee --- /dev/null +++ b/vim/snippets/django/form.snippet @@ -0,0 +1,3 @@ +class ${1:FormName}(forms.Form): + """${2:docstring}""" + ${3} diff --git a/vim/snippets/django/image.snippet b/vim/snippets/django/image.snippet new file mode 100755 index 0000000..9e8c265 --- /dev/null +++ b/vim/snippets/django/image.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.ImageField(upload_to=${2:path/for/upload}${3:, height_field=height, width_field=width}${4:, max_length=100}) diff --git a/vim/snippets/django/int.snippet b/vim/snippets/django/int.snippet new file mode 100755 index 0000000..866ed9b --- /dev/null +++ b/vim/snippets/django/int.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.IntegerField() diff --git a/vim/snippets/django/ip.snippet b/vim/snippets/django/ip.snippet new file mode 100755 index 0000000..c919e38 --- /dev/null +++ b/vim/snippets/django/ip.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.IPAddressField() diff --git a/vim/snippets/django/manytomany.snippet b/vim/snippets/django/manytomany.snippet new file mode 100755 index 0000000..11541ab --- /dev/null +++ b/vim/snippets/django/manytomany.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.ManyToManyField(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, symmetrical=False}${6:, through=''}${7:, db_table=''}) diff --git a/vim/snippets/django/model.snippet b/vim/snippets/django/model.snippet new file mode 100755 index 0000000..529a57b --- /dev/null +++ b/vim/snippets/django/model.snippet @@ -0,0 +1,16 @@ +class ${1:ModelName}(models.Model): + """${2:docstring}""" + ${3} + + class Meta: + ${4} + + def __unicode__(self): + return ${5} + + def save(self, force_insert=False, force_update=False): + ${6} + + @models.permalink + def get_absolute_url(self): + return ('${7:view_or_url_name}' ${8}) diff --git a/vim/snippets/django/modeladmin.snippet b/vim/snippets/django/modeladmin.snippet new file mode 100755 index 0000000..7aa0969 --- /dev/null +++ b/vim/snippets/django/modeladmin.snippet @@ -0,0 +1,4 @@ +class ${1:ModelName}Admin(admin.ModelAdmin): + ${2} + +admin.site.register($1, $1Admin) diff --git a/vim/snippets/django/nullbool.snippet b/vim/snippets/django/nullbool.snippet new file mode 100755 index 0000000..66e861c --- /dev/null +++ b/vim/snippets/django/nullbool.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.NullBooleanField() diff --git a/vim/snippets/django/onetoone.snippet b/vim/snippets/django/onetoone.snippet new file mode 100755 index 0000000..efe118a --- /dev/null +++ b/vim/snippets/django/onetoone.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.OneToOneField(${2:OtherModel}${3:, parent_link=True}${4:, related_name=''}${5:, limit_choices_to=}${6:, to_field=''}) diff --git a/vim/snippets/django/posint.snippet b/vim/snippets/django/posint.snippet new file mode 100755 index 0000000..d929957 --- /dev/null +++ b/vim/snippets/django/posint.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.PositiveIntegerField() diff --git a/vim/snippets/django/possmallint.snippet b/vim/snippets/django/possmallint.snippet new file mode 100755 index 0000000..0e2c317 --- /dev/null +++ b/vim/snippets/django/possmallint.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.PositiveSmallIntegerField() diff --git a/vim/snippets/django/rendertores.snippet b/vim/snippets/django/rendertores.snippet new file mode 100755 index 0000000..b18e6bd --- /dev/null +++ b/vim/snippets/django/rendertores.snippet @@ -0,0 +1,4 @@ +return render_to_response('${1:template.html}', { + ${2} + }${3:, context_instance=RequestContext(request)} +) diff --git a/vim/snippets/django/sendmail.snippet b/vim/snippets/django/sendmail.snippet new file mode 100755 index 0000000..e6cfcf0 --- /dev/null +++ b/vim/snippets/django/sendmail.snippet @@ -0,0 +1 @@ +mail.send_mail("${1:Subject}", "${2:Message}", "${3:from@example.com}", ${4:["to@example.com"]}${5:, fail_silently=True}) diff --git a/vim/snippets/django/slug.snippet b/vim/snippets/django/slug.snippet new file mode 100755 index 0000000..13cc8b2 --- /dev/null +++ b/vim/snippets/django/slug.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.SlugField(max_length=${2:50}${3:, blank=True}) diff --git a/vim/snippets/django/smallint.snippet b/vim/snippets/django/smallint.snippet new file mode 100755 index 0000000..80151ec --- /dev/null +++ b/vim/snippets/django/smallint.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.SmallIntegerField() diff --git a/vim/snippets/django/stackedinline.snippet b/vim/snippets/django/stackedinline.snippet new file mode 100755 index 0000000..bac9209 --- /dev/null +++ b/vim/snippets/django/stackedinline.snippet @@ -0,0 +1,2 @@ +class ${1:ModelName}Inline(admin.StackedInline): + model = $1 diff --git a/vim/snippets/django/tabularinline.snippet b/vim/snippets/django/tabularinline.snippet new file mode 100755 index 0000000..3f35505 --- /dev/null +++ b/vim/snippets/django/tabularinline.snippet @@ -0,0 +1,2 @@ +class ${1:ModelName}Inline(admin.TabularInline): + model = $1 diff --git a/vim/snippets/django/text.snippet b/vim/snippets/django/text.snippet new file mode 100755 index 0000000..f037166 --- /dev/null +++ b/vim/snippets/django/text.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.TextField(${2:blank=True}) diff --git a/vim/snippets/django/time.snippet b/vim/snippets/django/time.snippet new file mode 100755 index 0000000..cd3ab51 --- /dev/null +++ b/vim/snippets/django/time.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.TimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True}) diff --git a/vim/snippets/django/url.snippet b/vim/snippets/django/url.snippet new file mode 100755 index 0000000..129e469 --- /dev/null +++ b/vim/snippets/django/url.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.URLField(${2:verify_exists=False}${3:, max_length=200}${4:, blank=True}) diff --git a/vim/snippets/django/xml.snippet b/vim/snippets/django/xml.snippet new file mode 100755 index 0000000..0f45b5a --- /dev/null +++ b/vim/snippets/django/xml.snippet @@ -0,0 +1 @@ +${1:FIELDNAME} = models.XMLField(schema_path=${2:None}${3:, blank=True}) diff --git a/vim/snippets/eruby-rails/%-.snippet b/vim/snippets/eruby-rails/%-.snippet new file mode 100755 index 0000000..f9ecbe2 --- /dev/null +++ b/vim/snippets/eruby-rails/%-.snippet @@ -0,0 +1 @@ +<% ${1} -%> diff --git a/vim/snippets/eruby-rails/%.snippet b/vim/snippets/eruby-rails/%.snippet new file mode 100755 index 0000000..050627f --- /dev/null +++ b/vim/snippets/eruby-rails/%.snippet @@ -0,0 +1 @@ +<% ${1} %> diff --git a/vim/snippets/eruby-rails/%=-.snippet b/vim/snippets/eruby-rails/%=-.snippet new file mode 100755 index 0000000..65efa55 --- /dev/null +++ b/vim/snippets/eruby-rails/%=-.snippet @@ -0,0 +1 @@ +<%= ${1} -%> diff --git a/vim/snippets/eruby-rails/%=.snippet b/vim/snippets/eruby-rails/%=.snippet new file mode 100755 index 0000000..cf79319 --- /dev/null +++ b/vim/snippets/eruby-rails/%=.snippet @@ -0,0 +1 @@ +<%= ${1} %> diff --git a/vim/snippets/eruby-rails/%h.snippet b/vim/snippets/eruby-rails/%h.snippet new file mode 100755 index 0000000..51a95e6 --- /dev/null +++ b/vim/snippets/eruby-rails/%h.snippet @@ -0,0 +1 @@ +<%=h ${1} %> diff --git a/vim/snippets/eruby-rails/conf.snippet b/vim/snippets/eruby-rails/conf.snippet new file mode 100755 index 0000000..79cc0ac --- /dev/null +++ b/vim/snippets/eruby-rails/conf.snippet @@ -0,0 +1,3 @@ +<% content_for :${1:yield_label_in_layout} do %> + ${2} +<% end %> diff --git a/vim/snippets/eruby-rails/cs.snippet b/vim/snippets/eruby-rails/cs.snippet new file mode 100755 index 0000000..8edc396 --- /dev/null +++ b/vim/snippets/eruby-rails/cs.snippet @@ -0,0 +1 @@ +<%= collection_select ${1:object}, ${2:method}, ${3:collection}, ${4:value_method}, ${5:text_method}${6:,options} %>${7} diff --git a/vim/snippets/eruby-rails/ct.snippet b/vim/snippets/eruby-rails/ct.snippet new file mode 100755 index 0000000..733ee5b --- /dev/null +++ b/vim/snippets/eruby-rails/ct.snippet @@ -0,0 +1 @@ +<%= content_tag '${1:DIV}', ${2:content}${3:, options} %> diff --git a/vim/snippets/eruby-rails/e.snippet b/vim/snippets/eruby-rails/e.snippet new file mode 100755 index 0000000..f9ecbe2 --- /dev/null +++ b/vim/snippets/eruby-rails/e.snippet @@ -0,0 +1 @@ +<% ${1} -%> diff --git a/vim/snippets/eruby-rails/eend.snippet b/vim/snippets/eruby-rails/eend.snippet new file mode 100755 index 0000000..4c79184 --- /dev/null +++ b/vim/snippets/eruby-rails/eend.snippet @@ -0,0 +1 @@ +<% end -%> diff --git a/vim/snippets/eruby-rails/end.snippet b/vim/snippets/eruby-rails/end.snippet new file mode 100755 index 0000000..a55806d --- /dev/null +++ b/vim/snippets/eruby-rails/end.snippet @@ -0,0 +1,2 @@ +<% end -%> +${1} diff --git a/vim/snippets/eruby-rails/er.snippet b/vim/snippets/eruby-rails/er.snippet new file mode 100755 index 0000000..cf79319 --- /dev/null +++ b/vim/snippets/eruby-rails/er.snippet @@ -0,0 +1 @@ +<%= ${1} %> diff --git a/vim/snippets/eruby-rails/ff.snippet b/vim/snippets/eruby-rails/ff.snippet new file mode 100755 index 0000000..1305a46 --- /dev/null +++ b/vim/snippets/eruby-rails/ff.snippet @@ -0,0 +1,3 @@ +<%= form_for @${1:model} do |f| %> + ${2} +<% end %> diff --git a/vim/snippets/eruby-rails/ffcb.snippet b/vim/snippets/eruby-rails/ffcb.snippet new file mode 100755 index 0000000..46feff8 --- /dev/null +++ b/vim/snippets/eruby-rails/ffcb.snippet @@ -0,0 +1 @@ +<%= ${1:f}.check_box :${2:attribute} %> diff --git a/vim/snippets/eruby-rails/ffe.snippet b/vim/snippets/eruby-rails/ffe.snippet new file mode 100755 index 0000000..19f367f --- /dev/null +++ b/vim/snippets/eruby-rails/ffe.snippet @@ -0,0 +1,4 @@ +<%= form_for @${2:model} do |f| %> + <%= f.error_messages %> + ${3} +<% end %> diff --git a/vim/snippets/eruby-rails/ffff.snippet b/vim/snippets/eruby-rails/ffff.snippet new file mode 100755 index 0000000..7db85a2 --- /dev/null +++ b/vim/snippets/eruby-rails/ffff.snippet @@ -0,0 +1 @@ +<%= ${1:f}.file_field :${2:attribute} %> diff --git a/vim/snippets/eruby-rails/ffhf.snippet b/vim/snippets/eruby-rails/ffhf.snippet new file mode 100755 index 0000000..81f9dec --- /dev/null +++ b/vim/snippets/eruby-rails/ffhf.snippet @@ -0,0 +1 @@ +<%= ${1:f}.hidden_field :${2:attribute} %> diff --git a/vim/snippets/eruby-rails/ffl.snippet b/vim/snippets/eruby-rails/ffl.snippet new file mode 100755 index 0000000..c0bdcee --- /dev/null +++ b/vim/snippets/eruby-rails/ffl.snippet @@ -0,0 +1 @@ +<%= ${1:f}.label :${2:attribute}, '${3:$2}' %> diff --git a/vim/snippets/eruby-rails/ffpf.snippet b/vim/snippets/eruby-rails/ffpf.snippet new file mode 100755 index 0000000..3b579a3 --- /dev/null +++ b/vim/snippets/eruby-rails/ffpf.snippet @@ -0,0 +1 @@ +<%= ${1:f}.password_field :${2:attribute} %> diff --git a/vim/snippets/eruby-rails/ffrb.snippet b/vim/snippets/eruby-rails/ffrb.snippet new file mode 100755 index 0000000..d63f0a5 --- /dev/null +++ b/vim/snippets/eruby-rails/ffrb.snippet @@ -0,0 +1 @@ +<%= ${1:f}.radio_button :${2:attribute}, :${3:tag_value} %> diff --git a/vim/snippets/eruby-rails/ffs.snippet b/vim/snippets/eruby-rails/ffs.snippet new file mode 100755 index 0000000..d0851db --- /dev/null +++ b/vim/snippets/eruby-rails/ffs.snippet @@ -0,0 +1 @@ +<%= ${1:f}.submit "${2:submit}" %> diff --git a/vim/snippets/eruby-rails/ffta.snippet b/vim/snippets/eruby-rails/ffta.snippet new file mode 100755 index 0000000..9057483 --- /dev/null +++ b/vim/snippets/eruby-rails/ffta.snippet @@ -0,0 +1 @@ +<%= ${1:f}.text_area :${2:attribute} %> diff --git a/vim/snippets/eruby-rails/fftf.snippet b/vim/snippets/eruby-rails/fftf.snippet new file mode 100755 index 0000000..83d1add --- /dev/null +++ b/vim/snippets/eruby-rails/fftf.snippet @@ -0,0 +1 @@ +<%= ${1:f}.text_field :${2:attribute} %> diff --git a/vim/snippets/eruby-rails/fields.snippet b/vim/snippets/eruby-rails/fields.snippet new file mode 100755 index 0000000..9522d5c --- /dev/null +++ b/vim/snippets/eruby-rails/fields.snippet @@ -0,0 +1,3 @@ +<% fields_for :${1:model}, @$1 do |${2:f}| %> + ${3} +<% end %> diff --git a/vim/snippets/eruby-rails/for.snippet b/vim/snippets/eruby-rails/for.snippet new file mode 100755 index 0000000..7f67a6c --- /dev/null +++ b/vim/snippets/eruby-rails/for.snippet @@ -0,0 +1,3 @@ +<%- for ${2:item} in ${1:list} -%> + ${3} +<%- end -%> diff --git a/vim/snippets/eruby-rails/ft.snippet b/vim/snippets/eruby-rails/ft.snippet new file mode 100755 index 0000000..d11978c --- /dev/null +++ b/vim/snippets/eruby-rails/ft.snippet @@ -0,0 +1,3 @@ +<% form_tag(${1:'url'}) do -%> + ${2} +<% end -%> diff --git a/vim/snippets/eruby-rails/fta.snippet b/vim/snippets/eruby-rails/fta.snippet new file mode 100755 index 0000000..afd2e8c --- /dev/null +++ b/vim/snippets/eruby-rails/fta.snippet @@ -0,0 +1,3 @@ +<% form_tag(:action => "${1}", {:{$2:id} => "${3}"${4:,}}) do %> + ${5} +<% end %> diff --git a/vim/snippets/eruby-rails/i18.snippet b/vim/snippets/eruby-rails/i18.snippet new file mode 100755 index 0000000..2a30fae --- /dev/null +++ b/vim/snippets/eruby-rails/i18.snippet @@ -0,0 +1 @@ +I18n.t('${1:type.key}')${2} diff --git a/vim/snippets/eruby-rails/it.snippet b/vim/snippets/eruby-rails/it.snippet new file mode 100755 index 0000000..e15196e --- /dev/null +++ b/vim/snippets/eruby-rails/it.snippet @@ -0,0 +1 @@ +<%= image_tag "${1}"${2} %> diff --git a/vim/snippets/eruby-rails/jit.snippet b/vim/snippets/eruby-rails/jit.snippet new file mode 100755 index 0000000..851f484 --- /dev/null +++ b/vim/snippets/eruby-rails/jit.snippet @@ -0,0 +1 @@ +<%= javascript_include_tag :${1:all}, :cache => ${2:true} %> diff --git a/vim/snippets/eruby-rails/jsit.snippet b/vim/snippets/eruby-rails/jsit.snippet new file mode 100755 index 0000000..187e9ab --- /dev/null +++ b/vim/snippets/eruby-rails/jsit.snippet @@ -0,0 +1 @@ +<%= javascript_include_tag "${1}" %> diff --git a/vim/snippets/eruby-rails/jt.snippet b/vim/snippets/eruby-rails/jt.snippet new file mode 100755 index 0000000..882aab9 --- /dev/null +++ b/vim/snippets/eruby-rails/jt.snippet @@ -0,0 +1,5 @@ +<% javascript_tag do -%> + $(function () { + ${1} + }); +<% end -%> diff --git a/vim/snippets/eruby-rails/lia.snippet b/vim/snippets/eruby-rails/lia.snippet new file mode 100755 index 0000000..2732e6e --- /dev/null +++ b/vim/snippets/eruby-rails/lia.snippet @@ -0,0 +1 @@ +<%= link_to "${1:link text}", :action => "${2:index}" %> diff --git a/vim/snippets/eruby-rails/liai.snippet b/vim/snippets/eruby-rails/liai.snippet new file mode 100755 index 0000000..eb3094c --- /dev/null +++ b/vim/snippets/eruby-rails/liai.snippet @@ -0,0 +1 @@ +<%= link_to "${1:link text}", :action => "${2:edit}", :id => @${3:item} %> diff --git a/vim/snippets/eruby-rails/lic.snippet b/vim/snippets/eruby-rails/lic.snippet new file mode 100755 index 0000000..f8d5b95 --- /dev/null +++ b/vim/snippets/eruby-rails/lic.snippet @@ -0,0 +1 @@ +<%= link_to "${1:link text}", :controller => "${2:items}" %> diff --git a/vim/snippets/eruby-rails/lica.snippet b/vim/snippets/eruby-rails/lica.snippet new file mode 100755 index 0000000..d9aae5f --- /dev/null +++ b/vim/snippets/eruby-rails/lica.snippet @@ -0,0 +1 @@ +<%= link_to "${1:link text}", :controller => "${2:items}", :action => "${3:index}" %> diff --git a/vim/snippets/eruby-rails/licai.snippet b/vim/snippets/eruby-rails/licai.snippet new file mode 100755 index 0000000..eae93d9 --- /dev/null +++ b/vim/snippets/eruby-rails/licai.snippet @@ -0,0 +1 @@ +<%= link_to "${1:link text}", :controller => "${2:items}", :action => "${3:edit}", :id => <+@<+item+>+> %> diff --git a/vim/snippets/eruby-rails/lim.snippet b/vim/snippets/eruby-rails/lim.snippet new file mode 100755 index 0000000..767f09b --- /dev/null +++ b/vim/snippets/eruby-rails/lim.snippet @@ -0,0 +1 @@ +<%= link_to ${1:model}.${2:name}, ${3:$1_path($1)} %> diff --git a/vim/snippets/eruby-rails/linp.snippet b/vim/snippets/eruby-rails/linp.snippet new file mode 100755 index 0000000..ae57d92 --- /dev/null +++ b/vim/snippets/eruby-rails/linp.snippet @@ -0,0 +1 @@ +<%= link_to "${1:link text}", ${2:parent}_${3:child}_path(@$2, @$3) %> diff --git a/vim/snippets/eruby-rails/linpp.snippet b/vim/snippets/eruby-rails/linpp.snippet new file mode 100755 index 0000000..e044734 --- /dev/null +++ b/vim/snippets/eruby-rails/linpp.snippet @@ -0,0 +1 @@ +<%= link_to "${1:link text}", ${2:parent}_${3:child}_path(@$2) %> diff --git a/vim/snippets/eruby-rails/lip.snippet b/vim/snippets/eruby-rails/lip.snippet new file mode 100755 index 0000000..7d92da7 --- /dev/null +++ b/vim/snippets/eruby-rails/lip.snippet @@ -0,0 +1 @@ +<%= link_to "${1:link text}", ${2:model}_path(@${3:instance}) %> diff --git a/vim/snippets/eruby-rails/lipp.snippet b/vim/snippets/eruby-rails/lipp.snippet new file mode 100755 index 0000000..f88bbea --- /dev/null +++ b/vim/snippets/eruby-rails/lipp.snippet @@ -0,0 +1 @@ +<%= link_to "${1:link text}", ${2:model}s_path %> diff --git a/vim/snippets/eruby-rails/lt.snippet b/vim/snippets/eruby-rails/lt.snippet new file mode 100755 index 0000000..b6c9a5b --- /dev/null +++ b/vim/snippets/eruby-rails/lt.snippet @@ -0,0 +1 @@ +<%= link_to "${1:name}", ${2:dest} %> diff --git a/vim/snippets/eruby-rails/ltr.snippet b/vim/snippets/eruby-rails/ltr.snippet new file mode 100755 index 0000000..96761d6 --- /dev/null +++ b/vim/snippets/eruby-rails/ltr.snippet @@ -0,0 +1 @@ +<%= link_to_remote "${1:name}", ${2:options} %> diff --git a/vim/snippets/eruby-rails/ofcfs.snippet b/vim/snippets/eruby-rails/ofcfs.snippet new file mode 100755 index 0000000..d68f692 --- /dev/null +++ b/vim/snippets/eruby-rails/ofcfs.snippet @@ -0,0 +1 @@ +<%= options_from_collection_for_select ${1:collection}, ${2:value_method}, ${3:text_method}<+, <+[selected_value]+>+> %> diff --git a/vim/snippets/eruby-rails/rf.snippet b/vim/snippets/eruby-rails/rf.snippet new file mode 100755 index 0000000..16067e9 --- /dev/null +++ b/vim/snippets/eruby-rails/rf.snippet @@ -0,0 +1 @@ +<%= render :file => "${1:file}"${2} %> diff --git a/vim/snippets/eruby-rails/rp.snippet b/vim/snippets/eruby-rails/rp.snippet new file mode 100755 index 0000000..706a4cb --- /dev/null +++ b/vim/snippets/eruby-rails/rp.snippet @@ -0,0 +1 @@ +<%= render :partial => "${1:file}"${2} %> diff --git a/vim/snippets/eruby-rails/rt.snippet b/vim/snippets/eruby-rails/rt.snippet new file mode 100755 index 0000000..75a8f93 --- /dev/null +++ b/vim/snippets/eruby-rails/rt.snippet @@ -0,0 +1 @@ +<%= render :template => "${1:file}"${2} %> diff --git a/vim/snippets/eruby-rails/sbtr.snippet b/vim/snippets/eruby-rails/sbtr.snippet new file mode 100755 index 0000000..63ea521 --- /dev/null +++ b/vim/snippets/eruby-rails/sbtr.snippet @@ -0,0 +1 @@ +<%= submit_to_remote ${1:name}, ${2:value} %> diff --git a/vim/snippets/eruby-rails/sff/sff.multi.snippet b/vim/snippets/eruby-rails/sff/sff.multi.snippet new file mode 100755 index 0000000..925fbce --- /dev/null +++ b/vim/snippets/eruby-rails/sff/sff.multi.snippet @@ -0,0 +1,6 @@ +<% semantic_form_for @${1:object} do |f| -%> + <% f.inputs ${2:do} -%> + <%= f.input :${3:name} -%> + <% end -%> + <%= f.buttons %> +<% end -%> diff --git a/vim/snippets/eruby-rails/sff/sff.simple.snippet b/vim/snippets/eruby-rails/sff/sff.simple.snippet new file mode 100755 index 0000000..0eedfd6 --- /dev/null +++ b/vim/snippets/eruby-rails/sff/sff.simple.snippet @@ -0,0 +1,4 @@ +<% semantic_form_for @${1:object} do |f| -%> + <%= f.inputs %>${2:} + <%= f.buttons %> +<% end -%> diff --git a/vim/snippets/eruby-rails/slt.snippet b/vim/snippets/eruby-rails/slt.snippet new file mode 100755 index 0000000..3b8ac8c --- /dev/null +++ b/vim/snippets/eruby-rails/slt.snippet @@ -0,0 +1 @@ +<%= stylesheet_link_tag ${1::all}<+, :cache => <+true+>+> %> diff --git a/vim/snippets/eruby-rails/sslt.snippet b/vim/snippets/eruby-rails/sslt.snippet new file mode 100755 index 0000000..1fd0f68 --- /dev/null +++ b/vim/snippets/eruby-rails/sslt.snippet @@ -0,0 +1 @@ +<%= stylesheet_link_tag "${1}" %> diff --git a/vim/snippets/eruby-rails/st.snippet b/vim/snippets/eruby-rails/st.snippet new file mode 100755 index 0000000..e57d458 --- /dev/null +++ b/vim/snippets/eruby-rails/st.snippet @@ -0,0 +1 @@ +<%= submit_tag "${1:Save changes}"<+, :id => "<+submit+>"+><+, :name => "<+submit+>"+><+, :class => "<+form_name+>"+><+, :disabled => <+false+>+><+, :disable_with => "<+Please wait+>"+> %> diff --git a/vim/snippets/eruby/e.snippet b/vim/snippets/eruby/e.snippet new file mode 100755 index 0000000..cf79319 --- /dev/null +++ b/vim/snippets/eruby/e.snippet @@ -0,0 +1 @@ +<%= ${1} %> diff --git a/vim/snippets/eruby/else.snippet b/vim/snippets/eruby/else.snippet new file mode 100755 index 0000000..c9124ed --- /dev/null +++ b/vim/snippets/eruby/else.snippet @@ -0,0 +1 @@ +<%- else -%> diff --git a/vim/snippets/eruby/end.snippet b/vim/snippets/eruby/end.snippet new file mode 100755 index 0000000..ef2f0a9 --- /dev/null +++ b/vim/snippets/eruby/end.snippet @@ -0,0 +1 @@ +<%- end -%> diff --git a/vim/snippets/eruby/er.snippet b/vim/snippets/eruby/er.snippet new file mode 100755 index 0000000..6ca03fc --- /dev/null +++ b/vim/snippets/eruby/er.snippet @@ -0,0 +1 @@ +<%- ${1} -%> diff --git a/vim/snippets/eruby/if.snippet b/vim/snippets/eruby/if.snippet new file mode 100755 index 0000000..8c9944b --- /dev/null +++ b/vim/snippets/eruby/if.snippet @@ -0,0 +1,3 @@ +<%- if ${1:condition} -%> + ${2} +<%- end -%> diff --git a/vim/snippets/eruby/ife.snippet b/vim/snippets/eruby/ife.snippet new file mode 100755 index 0000000..e53079c --- /dev/null +++ b/vim/snippets/eruby/ife.snippet @@ -0,0 +1,4 @@ +<%- if ${1} -%> + ${2} +<%- else -%> +<%- end -%> diff --git a/vim/snippets/eruby/p.snippet b/vim/snippets/eruby/p.snippet new file mode 100755 index 0000000..7bafe49 --- /dev/null +++ b/vim/snippets/eruby/p.snippet @@ -0,0 +1,3 @@ +

    + ${1:para} +

    diff --git a/vim/snippets/eruby/unless.snippet b/vim/snippets/eruby/unless.snippet new file mode 100755 index 0000000..f247253 --- /dev/null +++ b/vim/snippets/eruby/unless.snippet @@ -0,0 +1,3 @@ +<% unless ${1} %> + ${2} +<% end %> diff --git a/vim/snippets/eruby/unlesse.snippet b/vim/snippets/eruby/unlesse.snippet new file mode 100755 index 0000000..e2182a9 --- /dev/null +++ b/vim/snippets/eruby/unlesse.snippet @@ -0,0 +1,4 @@ +<% unless ${1} %> + ${2} +<% else %> +<% end %> diff --git a/vim/snippets/falcon/class.snippet b/vim/snippets/falcon/class.snippet new file mode 100755 index 0000000..08d3783 --- /dev/null +++ b/vim/snippets/falcon/class.snippet @@ -0,0 +1,3 @@ +class ${1:class_name}(${2:class_params}) + ${3:/* members/methods */} +end diff --git a/vim/snippets/falcon/elif.snippet b/vim/snippets/falcon/elif.snippet new file mode 100755 index 0000000..817091e --- /dev/null +++ b/vim/snippets/falcon/elif.snippet @@ -0,0 +1,2 @@ +elif ${1:condition} + ${2:/* code */} diff --git a/vim/snippets/falcon/forin.snippet b/vim/snippets/falcon/forin.snippet new file mode 100755 index 0000000..d3dba49 --- /dev/null +++ b/vim/snippets/falcon/forin.snippet @@ -0,0 +1,3 @@ +for ${1:element} in ${2:container} + ${3:/* code */} +end diff --git a/vim/snippets/falcon/forto.snippet b/vim/snippets/falcon/forto.snippet new file mode 100755 index 0000000..04ada9d --- /dev/null +++ b/vim/snippets/falcon/forto.snippet @@ -0,0 +1,3 @@ +for ${1:lowerbound} to ${2:upperbound} + ${3:/* code */} +end diff --git a/vim/snippets/falcon/fun.snippet b/vim/snippets/falcon/fun.snippet new file mode 100755 index 0000000..f138154 --- /dev/null +++ b/vim/snippets/falcon/fun.snippet @@ -0,0 +1,3 @@ +function ${2:function_name}(${3}) + ${4:/* code */} +end diff --git a/vim/snippets/falcon/if.snippet b/vim/snippets/falcon/if.snippet new file mode 100755 index 0000000..131b8e6 --- /dev/null +++ b/vim/snippets/falcon/if.snippet @@ -0,0 +1,3 @@ +if ${1:condition} + ${2:/* code */} +end diff --git a/vim/snippets/falcon/ife.snippet b/vim/snippets/falcon/ife.snippet new file mode 100755 index 0000000..4f3fae9 --- /dev/null +++ b/vim/snippets/falcon/ife.snippet @@ -0,0 +1,5 @@ +if ${1:condition} + ${2:/* code */} +else + ${1} +end diff --git a/vim/snippets/falcon/imp.snippet b/vim/snippets/falcon/imp.snippet new file mode 100755 index 0000000..74b2d79 --- /dev/null +++ b/vim/snippets/falcon/imp.snippet @@ -0,0 +1 @@ +import ${1:module} diff --git a/vim/snippets/falcon/while.snippet b/vim/snippets/falcon/while.snippet new file mode 100755 index 0000000..0431a4c --- /dev/null +++ b/vim/snippets/falcon/while.snippet @@ -0,0 +1,3 @@ +while ${1:conidition} + ${2:/* code */} +end diff --git a/vim/snippets/falcon/while.snippet!.snippet b/vim/snippets/falcon/while.snippet!.snippet new file mode 100755 index 0000000..e1b3c4b --- /dev/null +++ b/vim/snippets/falcon/while.snippet!.snippet @@ -0,0 +1 @@ +#!/usr/bin/env falcon diff --git a/vim/snippets/haml-html/p.snippet b/vim/snippets/haml-html/p.snippet new file mode 100755 index 0000000..653eaab --- /dev/null +++ b/vim/snippets/haml-html/p.snippet @@ -0,0 +1,2 @@ +%p#${1:id}.${2:class} + ${3} \ No newline at end of file diff --git a/vim/snippets/haml/conf.snippet b/vim/snippets/haml/conf.snippet new file mode 100755 index 0000000..d5d782a --- /dev/null +++ b/vim/snippets/haml/conf.snippet @@ -0,0 +1,3 @@ +- content_for :${1:yield_label_in_layout} do + ${2} + diff --git a/vim/snippets/haml/cs.snippet b/vim/snippets/haml/cs.snippet new file mode 100755 index 0000000..47571f1 --- /dev/null +++ b/vim/snippets/haml/cs.snippet @@ -0,0 +1 @@ += collection_select :${1:object}, :${2:method}, :${3:collection}, :${4:value_method}, :${5:text_method} ${6:, [options]} ${7:, [html_options]} diff --git a/vim/snippets/haml/ff.snippet b/vim/snippets/haml/ff.snippet new file mode 100755 index 0000000..f5f8efd --- /dev/null +++ b/vim/snippets/haml/ff.snippet @@ -0,0 +1,2 @@ += form_for @${1:model} do |f| + ${2} diff --git a/vim/snippets/haml/ffcb.snippet b/vim/snippets/haml/ffcb.snippet new file mode 100755 index 0000000..0c76b98 --- /dev/null +++ b/vim/snippets/haml/ffcb.snippet @@ -0,0 +1 @@ += ${1:f}.check_box :${2:attribute} diff --git a/vim/snippets/haml/ffe.snippet b/vim/snippets/haml/ffe.snippet new file mode 100755 index 0000000..f7a0a5d --- /dev/null +++ b/vim/snippets/haml/ffe.snippet @@ -0,0 +1,3 @@ += form_for @${1:model} do |f| + = f.error_messages + ${2} diff --git a/vim/snippets/haml/ffff.snippet b/vim/snippets/haml/ffff.snippet new file mode 100755 index 0000000..5803a16 --- /dev/null +++ b/vim/snippets/haml/ffff.snippet @@ -0,0 +1 @@ += ${1:f}.file_field :${2:attribute} diff --git a/vim/snippets/haml/ffhf.snippet b/vim/snippets/haml/ffhf.snippet new file mode 100755 index 0000000..1442f61 --- /dev/null +++ b/vim/snippets/haml/ffhf.snippet @@ -0,0 +1 @@ += ${1:f}.hidden_field :${2:attribute} diff --git a/vim/snippets/haml/ffl.snippet b/vim/snippets/haml/ffl.snippet new file mode 100755 index 0000000..143b949 --- /dev/null +++ b/vim/snippets/haml/ffl.snippet @@ -0,0 +1 @@ += ${1:f}.label :${2:attribute} diff --git a/vim/snippets/haml/ffpf.snippet b/vim/snippets/haml/ffpf.snippet new file mode 100755 index 0000000..ee402f7 --- /dev/null +++ b/vim/snippets/haml/ffpf.snippet @@ -0,0 +1 @@ += ${1:f}.password_field :${2:attribute} diff --git a/vim/snippets/haml/ffrb.snippet b/vim/snippets/haml/ffrb.snippet new file mode 100755 index 0000000..54b2eb9 --- /dev/null +++ b/vim/snippets/haml/ffrb.snippet @@ -0,0 +1 @@ += ${1:f}.radio_button :${2:attribute}, :${3:tag_value} diff --git a/vim/snippets/haml/ffs.snippet b/vim/snippets/haml/ffs.snippet new file mode 100755 index 0000000..f70ce2e --- /dev/null +++ b/vim/snippets/haml/ffs.snippet @@ -0,0 +1 @@ += ${1:f}.submit "${2:Submit}" diff --git a/vim/snippets/haml/ffta.snippet b/vim/snippets/haml/ffta.snippet new file mode 100755 index 0000000..552abab --- /dev/null +++ b/vim/snippets/haml/ffta.snippet @@ -0,0 +1 @@ += ${1:f}.text_area :${2:attribute} diff --git a/vim/snippets/haml/fftf.snippet b/vim/snippets/haml/fftf.snippet new file mode 100755 index 0000000..54c852e --- /dev/null +++ b/vim/snippets/haml/fftf.snippet @@ -0,0 +1 @@ += ${1:f}.text_field :${2:attribute} diff --git a/vim/snippets/haml/fields.snippet b/vim/snippets/haml/fields.snippet new file mode 100755 index 0000000..52e70f3 --- /dev/null +++ b/vim/snippets/haml/fields.snippet @@ -0,0 +1,2 @@ +- fields_for :${1:model}, @$1 do |${2:f}| + ${3} diff --git a/vim/snippets/haml/for.snippet b/vim/snippets/haml/for.snippet new file mode 100755 index 0000000..1037c39 --- /dev/null +++ b/vim/snippets/haml/for.snippet @@ -0,0 +1,2 @@ +- for ${1:item} in ${2:items} + ${3} diff --git a/vim/snippets/haml/ft.snippet b/vim/snippets/haml/ft.snippet new file mode 100755 index 0000000..3222326 --- /dev/null +++ b/vim/snippets/haml/ft.snippet @@ -0,0 +1,2 @@ += form_tag(:action => "${1:update}") do + ${2} diff --git a/vim/snippets/haml/if.snippet b/vim/snippets/haml/if.snippet new file mode 100755 index 0000000..9462ff5 --- /dev/null +++ b/vim/snippets/haml/if.snippet @@ -0,0 +1,2 @@ +- if ${1} + ${2} diff --git a/vim/snippets/haml/ife.snippet b/vim/snippets/haml/ife.snippet new file mode 100755 index 0000000..4d605c7 --- /dev/null +++ b/vim/snippets/haml/ife.snippet @@ -0,0 +1,3 @@ +- if ${1} + ${2} +- else diff --git a/vim/snippets/haml/it.snippet b/vim/snippets/haml/it.snippet new file mode 100755 index 0000000..41ad078 --- /dev/null +++ b/vim/snippets/haml/it.snippet @@ -0,0 +1 @@ += image_tag "${1}" diff --git a/vim/snippets/haml/jit.snippet b/vim/snippets/haml/jit.snippet new file mode 100755 index 0000000..1580962 --- /dev/null +++ b/vim/snippets/haml/jit.snippet @@ -0,0 +1 @@ += javascript_include_tag ${1::all}, :cache => ${2:true} diff --git a/vim/snippets/haml/jsit.snippet b/vim/snippets/haml/jsit.snippet new file mode 100755 index 0000000..d5e8f55 --- /dev/null +++ b/vim/snippets/haml/jsit.snippet @@ -0,0 +1 @@ += javascript_include_tag "${1}" diff --git a/vim/snippets/haml/lia.snippet b/vim/snippets/haml/lia.snippet new file mode 100755 index 0000000..a074da2 --- /dev/null +++ b/vim/snippets/haml/lia.snippet @@ -0,0 +1 @@ += link_to "${1:link text}", :action => "${2:index}" diff --git a/vim/snippets/haml/liai.snippet b/vim/snippets/haml/liai.snippet new file mode 100755 index 0000000..d6bd525 --- /dev/null +++ b/vim/snippets/haml/liai.snippet @@ -0,0 +1 @@ += link_to "${1:link_text}", :action => "${2:edit}", :id => ${3:@item} diff --git a/vim/snippets/haml/lic.snippet b/vim/snippets/haml/lic.snippet new file mode 100755 index 0000000..dee0b49 --- /dev/null +++ b/vim/snippets/haml/lic.snippet @@ -0,0 +1 @@ += link_to "${1:link text}", :controller => "${2:items}" diff --git a/vim/snippets/haml/lica.snippet b/vim/snippets/haml/lica.snippet new file mode 100755 index 0000000..2f7ea3a --- /dev/null +++ b/vim/snippets/haml/lica.snippet @@ -0,0 +1 @@ += link_to "${1:link text}", :controller => "${2:items}", :action => "${3:index}" diff --git a/vim/snippets/haml/licai.snippet b/vim/snippets/haml/licai.snippet new file mode 100755 index 0000000..0f3027c --- /dev/null +++ b/vim/snippets/haml/licai.snippet @@ -0,0 +1 @@ += link_to "${1:link text}", :controller => "${2:items}", :action => "${3:edit}", :id => ${4:@item} diff --git a/vim/snippets/haml/lim.snippet b/vim/snippets/haml/lim.snippet new file mode 100755 index 0000000..424ff8f --- /dev/null +++ b/vim/snippets/haml/lim.snippet @@ -0,0 +1 @@ += link_to ${1:model}.${2:name}, $1_path($1) diff --git a/vim/snippets/haml/linp.snippet b/vim/snippets/haml/linp.snippet new file mode 100755 index 0000000..0405568 --- /dev/null +++ b/vim/snippets/haml/linp.snippet @@ -0,0 +1 @@ += link_to "${1:link text}", ${2:parent}_${3:child}_path(@$2, @$3) diff --git a/vim/snippets/haml/linpp.snippet b/vim/snippets/haml/linpp.snippet new file mode 100755 index 0000000..b755f07 --- /dev/null +++ b/vim/snippets/haml/linpp.snippet @@ -0,0 +1 @@ += link_to "${1:link text}", ${2:parent}_${3:child}_path(@$2) diff --git a/vim/snippets/haml/lip.snippet b/vim/snippets/haml/lip.snippet new file mode 100755 index 0000000..a256fe1 --- /dev/null +++ b/vim/snippets/haml/lip.snippet @@ -0,0 +1 @@ += link_to "${1:link text}", ${2:model}_path(${3:@instance}) diff --git a/vim/snippets/haml/lipp.snippet b/vim/snippets/haml/lipp.snippet new file mode 100755 index 0000000..d2bc765 --- /dev/null +++ b/vim/snippets/haml/lipp.snippet @@ -0,0 +1 @@ += link_to "${1:link text}", ${2:model}s_path diff --git a/vim/snippets/haml/lt.snippet b/vim/snippets/haml/lt.snippet new file mode 100755 index 0000000..ad66392 --- /dev/null +++ b/vim/snippets/haml/lt.snippet @@ -0,0 +1 @@ += link_to "${1}", ${2:dest} diff --git a/vim/snippets/haml/ofcfs.snippet b/vim/snippets/haml/ofcfs.snippet new file mode 100755 index 0000000..c71ff2b --- /dev/null +++ b/vim/snippets/haml/ofcfs.snippet @@ -0,0 +1 @@ += options_from_collection_for_select ${1:collection}, ${2:value_method}, ${3:text_method}, ${4:[selected_value]} diff --git a/vim/snippets/haml/rf.snippet b/vim/snippets/haml/rf.snippet new file mode 100755 index 0000000..e5476a0 --- /dev/null +++ b/vim/snippets/haml/rf.snippet @@ -0,0 +1 @@ += render :file => "${1:file}"${2} diff --git a/vim/snippets/haml/rp.snippet b/vim/snippets/haml/rp.snippet new file mode 100755 index 0000000..28e5c18 --- /dev/null +++ b/vim/snippets/haml/rp.snippet @@ -0,0 +1 @@ += render :partial => "${1:file}"${2} diff --git a/vim/snippets/haml/rt.snippet b/vim/snippets/haml/rt.snippet new file mode 100755 index 0000000..f7960bd --- /dev/null +++ b/vim/snippets/haml/rt.snippet @@ -0,0 +1 @@ += render :template => "${1:file}"${2} diff --git a/vim/snippets/haml/slt.snippet b/vim/snippets/haml/slt.snippet new file mode 100755 index 0000000..87e572c --- /dev/null +++ b/vim/snippets/haml/slt.snippet @@ -0,0 +1 @@ += stylesheet_link_tag ${1::all}, :cache => ${2:true} diff --git a/vim/snippets/haml/sslt.snippet b/vim/snippets/haml/sslt.snippet new file mode 100755 index 0000000..066a170 --- /dev/null +++ b/vim/snippets/haml/sslt.snippet @@ -0,0 +1 @@ += stylesheet_link_tag "${1}" diff --git a/vim/snippets/haml/st.snippet b/vim/snippets/haml/st.snippet new file mode 100755 index 0000000..0f06c61 --- /dev/null +++ b/vim/snippets/haml/st.snippet @@ -0,0 +1 @@ += submit_tag "${1:Save changes}" diff --git a/vim/snippets/haml/unless.snippet b/vim/snippets/haml/unless.snippet new file mode 100755 index 0000000..a788eb9 --- /dev/null +++ b/vim/snippets/haml/unless.snippet @@ -0,0 +1,3 @@ +- unless ${1} + ${2} + diff --git a/vim/snippets/haml/unlesse.snippet b/vim/snippets/haml/unlesse.snippet new file mode 100755 index 0000000..b8d12d8 --- /dev/null +++ b/vim/snippets/haml/unlesse.snippet @@ -0,0 +1,4 @@ +-if ${1} + ${2} +-else + diff --git a/vim/snippets/html.snippets b/vim/snippets/html.snippets new file mode 100755 index 0000000..fe7e2db --- /dev/null +++ b/vim/snippets/html.snippets @@ -0,0 +1,6 @@ +snippet ${2} +snippet < +<${1:div}${2}> + ${3} + diff --git a/vim/snippets/html/ah.snippet b/vim/snippets/html/ah.snippet new file mode 100755 index 0000000..7aba565 --- /dev/null +++ b/vim/snippets/html/ah.snippet @@ -0,0 +1 @@ +${2}${3} diff --git a/vim/snippets/html/base.snippet b/vim/snippets/html/base.snippet new file mode 100755 index 0000000..0e273e2 --- /dev/null +++ b/vim/snippets/html/base.snippet @@ -0,0 +1 @@ +/> diff --git a/vim/snippets/html/body.snippet b/vim/snippets/html/body.snippet new file mode 100755 index 0000000..692403d --- /dev/null +++ b/vim/snippets/html/body.snippet @@ -0,0 +1,3 @@ + + ${2} + diff --git a/vim/snippets/html/break.snippet b/vim/snippets/html/break.snippet new file mode 100755 index 0000000..07ff652 --- /dev/null +++ b/vim/snippets/html/break.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/html/css.snippet b/vim/snippets/html/css.snippet new file mode 100755 index 0000000..f25d677 --- /dev/null +++ b/vim/snippets/html/css.snippet @@ -0,0 +1 @@ +${4} diff --git a/vim/snippets/html/div.snippet b/vim/snippets/html/div.snippet new file mode 100755 index 0000000..1ee10bf --- /dev/null +++ b/vim/snippets/html/div.snippet @@ -0,0 +1,3 @@ +
    + ${2} +
    diff --git a/vim/snippets/html/doctype.snippet b/vim/snippets/html/doctype.snippet new file mode 100644 index 0000000..8d98d40 --- /dev/null +++ b/vim/snippets/html/doctype.snippet @@ -0,0 +1 @@ +${1} diff --git a/vim/snippets/html/doctype/HTML 4.01 Strict.snippet b/vim/snippets/html/doctype/HTML 4.01 Strict.snippet new file mode 100755 index 0000000..7293f80 --- /dev/null +++ b/vim/snippets/html/doctype/HTML 4.01 Strict.snippet @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/vim/snippets/html/doctype/HTML 4.01 Transitional.snippet b/vim/snippets/html/doctype/HTML 4.01 Transitional.snippet new file mode 100755 index 0000000..2c6623e --- /dev/null +++ b/vim/snippets/html/doctype/HTML 4.01 Transitional.snippet @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/vim/snippets/html/doctype/HTML 5.snippet b/vim/snippets/html/doctype/HTML 5.snippet new file mode 100755 index 0000000..5fa1cdf --- /dev/null +++ b/vim/snippets/html/doctype/HTML 5.snippet @@ -0,0 +1,2 @@ + + diff --git a/vim/snippets/html/doctype/XHTML 1.0 Frameset.snippet b/vim/snippets/html/doctype/XHTML 1.0 Frameset.snippet new file mode 100755 index 0000000..831094b --- /dev/null +++ b/vim/snippets/html/doctype/XHTML 1.0 Frameset.snippet @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/vim/snippets/html/doctype/XHTML 1.0 Strict.snippet b/vim/snippets/html/doctype/XHTML 1.0 Strict.snippet new file mode 100755 index 0000000..831094b --- /dev/null +++ b/vim/snippets/html/doctype/XHTML 1.0 Strict.snippet @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/vim/snippets/html/doctype/XHTML 1.0 Transitional.snippet b/vim/snippets/html/doctype/XHTML 1.0 Transitional.snippet new file mode 100755 index 0000000..c005382 --- /dev/null +++ b/vim/snippets/html/doctype/XHTML 1.0 Transitional.snippet @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/vim/snippets/html/doctype/XHTML 1.1.snippet b/vim/snippets/html/doctype/XHTML 1.1.snippet new file mode 100755 index 0000000..b805e7b --- /dev/null +++ b/vim/snippets/html/doctype/XHTML 1.1.snippet @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/vim/snippets/html/form.snippet b/vim/snippets/html/form.snippet new file mode 100755 index 0000000..6fa8a22 --- /dev/null +++ b/vim/snippets/html/form.snippet @@ -0,0 +1,5 @@ +
    + ${3} + +

    +
    diff --git a/vim/snippets/html/h1.snippet b/vim/snippets/html/h1.snippet new file mode 100755 index 0000000..21e88b8 --- /dev/null +++ b/vim/snippets/html/h1.snippet @@ -0,0 +1 @@ +

    ${2}

    diff --git a/vim/snippets/html/h2.snippet b/vim/snippets/html/h2.snippet new file mode 100755 index 0000000..4634927 --- /dev/null +++ b/vim/snippets/html/h2.snippet @@ -0,0 +1 @@ +${2}${3} diff --git a/vim/snippets/html/h3.snippet b/vim/snippets/html/h3.snippet new file mode 100755 index 0000000..4f2bd48 --- /dev/null +++ b/vim/snippets/html/h3.snippet @@ -0,0 +1 @@ +${2}${3} diff --git a/vim/snippets/html/head.snippet b/vim/snippets/html/head.snippet new file mode 100755 index 0000000..3fde542 --- /dev/null +++ b/vim/snippets/html/head.snippet @@ -0,0 +1,5 @@ + + + ${1:`substitute(Filename('', 'Page Title'), '^.', '\u&', '')`} + ${2} + diff --git a/vim/snippets/html/href.snippet b/vim/snippets/html/href.snippet new file mode 100644 index 0000000..0b744a0 --- /dev/null +++ b/vim/snippets/html/href.snippet @@ -0,0 +1 @@ +${2} diff --git a/vim/snippets/html/ifie.snippet b/vim/snippets/html/ifie.snippet new file mode 100755 index 0000000..abb68f5 --- /dev/null +++ b/vim/snippets/html/ifie.snippet @@ -0,0 +1 @@ +${3} diff --git a/vim/snippets/html/img.snippet b/vim/snippets/html/img.snippet new file mode 100755 index 0000000..ba32a24 --- /dev/null +++ b/vim/snippets/html/img.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/html/input.snippet b/vim/snippets/html/input.snippet new file mode 100755 index 0000000..a8814b2 --- /dev/null +++ b/vim/snippets/html/input.snippet @@ -0,0 +1 @@ +${5} diff --git a/vim/snippets/html/inputl.snippet b/vim/snippets/html/inputl.snippet new file mode 100755 index 0000000..4efe994 --- /dev/null +++ b/vim/snippets/html/inputl.snippet @@ -0,0 +1,2 @@ + +${7} diff --git a/vim/snippets/html/label.snippet b/vim/snippets/html/label.snippet new file mode 100755 index 0000000..c32b6f7 --- /dev/null +++ b/vim/snippets/html/label.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/html/li.snippet b/vim/snippets/html/li.snippet new file mode 100755 index 0000000..2749ac2 --- /dev/null +++ b/vim/snippets/html/li.snippet @@ -0,0 +1 @@ +${2}
  • ${3} diff --git a/vim/snippets/html/link.snippet b/vim/snippets/html/link.snippet new file mode 100755 index 0000000..42dd1c6 --- /dev/null +++ b/vim/snippets/html/link.snippet @@ -0,0 +1 @@ +${5} diff --git a/vim/snippets/html/mailto.snippet b/vim/snippets/html/mailto.snippet new file mode 100755 index 0000000..2538ab0 --- /dev/null +++ b/vim/snippets/html/mailto.snippet @@ -0,0 +1 @@ +<+email me+> diff --git a/vim/snippets/html/meta.snippet b/vim/snippets/html/meta.snippet new file mode 100755 index 0000000..e0319b0 --- /dev/null +++ b/vim/snippets/html/meta.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/html/movie.snippet b/vim/snippets/html/movie.snippet new file mode 100755 index 0000000..d37ae0c --- /dev/null +++ b/vim/snippets/html/movie.snippet @@ -0,0 +1,12 @@ + + + + + +${6} diff --git a/vim/snippets/html/ol.snippet b/vim/snippets/html/ol.snippet new file mode 100755 index 0000000..74e45ec --- /dev/null +++ b/vim/snippets/html/ol.snippet @@ -0,0 +1,4 @@ + +
  • ${2}
  • + ${3} +${4} diff --git a/vim/snippets/html/option.snippet b/vim/snippets/html/option.snippet new file mode 100755 index 0000000..b7383d0 --- /dev/null +++ b/vim/snippets/html/option.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/html/p.snippet b/vim/snippets/html/p.snippet new file mode 100755 index 0000000..f07aecd --- /dev/null +++ b/vim/snippets/html/p.snippet @@ -0,0 +1,3 @@ + + ${2} +

    ${3} diff --git a/vim/snippets/html/php.snippet b/vim/snippets/html/php.snippet new file mode 100755 index 0000000..b128e8d --- /dev/null +++ b/vim/snippets/html/php.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/html/script/include_script.snippet b/vim/snippets/html/script/include_script.snippet new file mode 100755 index 0000000..dd35e4b --- /dev/null +++ b/vim/snippets/html/script/include_script.snippet @@ -0,0 +1 @@ +${2} diff --git a/vim/snippets/html/script/inline_script.snippet b/vim/snippets/html/script/inline_script.snippet new file mode 100755 index 0000000..586171a --- /dev/null +++ b/vim/snippets/html/script/inline_script.snippet @@ -0,0 +1,5 @@ +${2} diff --git a/vim/snippets/html/select.snippet b/vim/snippets/html/select.snippet new file mode 100755 index 0000000..252e3f7 --- /dev/null +++ b/vim/snippets/html/select.snippet @@ -0,0 +1,3 @@ + diff --git a/vim/snippets/html/skel/HTML 4 Strict.snippet b/vim/snippets/html/skel/HTML 4 Strict.snippet new file mode 100755 index 0000000..8b555a0 --- /dev/null +++ b/vim/snippets/html/skel/HTML 4 Strict.snippet @@ -0,0 +1,15 @@ + + + + + + ${1:Untitled} + + ${3} + + + +${4} + + + diff --git a/vim/snippets/html/skel/HTML 5.snippet b/vim/snippets/html/skel/HTML 5.snippet new file mode 100755 index 0000000..bedf7bc --- /dev/null +++ b/vim/snippets/html/skel/HTML 5.snippet @@ -0,0 +1,17 @@ + + + + + + ${1:Untitled} + + ${3} + + + + + +${4} + + + diff --git a/vim/snippets/html/skel/XHTML 1.0 Strict.snippet b/vim/snippets/html/skel/XHTML 1.0 Strict.snippet new file mode 100755 index 0000000..b7d5bf6 --- /dev/null +++ b/vim/snippets/html/skel/XHTML 1.0 Strict.snippet @@ -0,0 +1,15 @@ + + + + + + ${1:Untitled} + + ${3} + + + +${4} + + + diff --git a/vim/snippets/html/skel/basic.snippet b/vim/snippets/html/skel/basic.snippet new file mode 100644 index 0000000..61ec244 --- /dev/null +++ b/vim/snippets/html/skel/basic.snippet @@ -0,0 +1,13 @@ + + + + + ${1:Page Title} + + + + + ${2} + + diff --git a/vim/snippets/html/skel/basic_with_meta.snippet b/vim/snippets/html/skel/basic_with_meta.snippet new file mode 100644 index 0000000..b6de9f8 --- /dev/null +++ b/vim/snippets/html/skel/basic_with_meta.snippet @@ -0,0 +1,15 @@ + + + + + ${1:Page Title} + + + + + + + ${2} + + diff --git a/vim/snippets/html/skel/html5.snippet b/vim/snippets/html/skel/html5.snippet new file mode 100755 index 0000000..855deab --- /dev/null +++ b/vim/snippets/html/skel/html5.snippet @@ -0,0 +1,28 @@ + + + + ${1:Page Title} + + + + + + + + + + + + +
    +
    + +
    +
    + +
    +
    + + diff --git a/vim/snippets/html/span.snippet b/vim/snippets/html/span.snippet new file mode 100755 index 0000000..17589b0 --- /dev/null +++ b/vim/snippets/html/span.snippet @@ -0,0 +1 @@ +${2} diff --git a/vim/snippets/html/style.snippet b/vim/snippets/html/style.snippet new file mode 100755 index 0000000..26ae0fe --- /dev/null +++ b/vim/snippets/html/style.snippet @@ -0,0 +1,3 @@ + diff --git a/vim/snippets/html/t.snippet b/vim/snippets/html/t.snippet new file mode 100755 index 0000000..9edc26a --- /dev/null +++ b/vim/snippets/html/t.snippet @@ -0,0 +1,3 @@ +<${1:div}${2}> + ${3} + diff --git a/vim/snippets/html/table/basic.snippet b/vim/snippets/html/table/basic.snippet new file mode 100755 index 0000000..2100d13 --- /dev/null +++ b/vim/snippets/html/table/basic.snippet @@ -0,0 +1,3 @@ + + ${2} +
    diff --git a/vim/snippets/html/table/hardcore.snippet b/vim/snippets/html/table/hardcore.snippet new file mode 100755 index 0000000..61900cc --- /dev/null +++ b/vim/snippets/html/table/hardcore.snippet @@ -0,0 +1,9 @@ + + + + + + + + +
    ${1}
    diff --git a/vim/snippets/html/textarea.snippet b/vim/snippets/html/textarea.snippet new file mode 100755 index 0000000..0b3fb84 --- /dev/null +++ b/vim/snippets/html/textarea.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/html/ti.snippet b/vim/snippets/html/ti.snippet new file mode 100755 index 0000000..7a700d9 --- /dev/null +++ b/vim/snippets/html/ti.snippet @@ -0,0 +1 @@ +<${1:span}${2}>${3} diff --git a/vim/snippets/html/tt.snippet b/vim/snippets/html/tt.snippet new file mode 100755 index 0000000..20f466e --- /dev/null +++ b/vim/snippets/html/tt.snippet @@ -0,0 +1 @@ +${1}${2} diff --git a/vim/snippets/html/ul.snippet b/vim/snippets/html/ul.snippet new file mode 100755 index 0000000..63561a9 --- /dev/null +++ b/vim/snippets/html/ul.snippet @@ -0,0 +1,4 @@ + +
  • ${2}
  • + ${3} +${4} diff --git a/vim/snippets/java/class/basic+constructor+main.snippet b/vim/snippets/java/class/basic+constructor+main.snippet new file mode 100755 index 0000000..3bd770e --- /dev/null +++ b/vim/snippets/java/class/basic+constructor+main.snippet @@ -0,0 +1,17 @@ +/** + * class $2 + * @author ${4:`g:snips_author`} + */ +${1:public} class ${2:`Snippet_JavaClassNameFromFilename()`}${3} { + + /** + * Constructor for $2 + */ + public $2(${4}) { + ${5} + } + + public static void main(String args[]) { + } + +} diff --git a/vim/snippets/java/class/basic+constructor.snippet b/vim/snippets/java/class/basic+constructor.snippet new file mode 100755 index 0000000..05eabef --- /dev/null +++ b/vim/snippets/java/class/basic+constructor.snippet @@ -0,0 +1,14 @@ +/** + * class $2 + * @author ${4:`g:snips_author`} + */ +${1:public} class ${2:`Snippet_JavaClassNameFromFilename()`}${3} { + + /** + * Constructor for $2 + */ + public $2(${5}){ + ${6} + } + +} diff --git a/vim/snippets/java/class/basic.snippet b/vim/snippets/java/class/basic.snippet new file mode 100755 index 0000000..05eabef --- /dev/null +++ b/vim/snippets/java/class/basic.snippet @@ -0,0 +1,14 @@ +/** + * class $2 + * @author ${4:`g:snips_author`} + */ +${1:public} class ${2:`Snippet_JavaClassNameFromFilename()`}${3} { + + /** + * Constructor for $2 + */ + public $2(${5}){ + ${6} + } + +} diff --git a/vim/snippets/java/for.snippet b/vim/snippets/java/for.snippet new file mode 100755 index 0000000..70a4108 --- /dev/null +++ b/vim/snippets/java/for.snippet @@ -0,0 +1,3 @@ +for(${1:int i=0}; ${2:condition}; ${3:i++}){ + ${4} +} diff --git a/vim/snippets/java/gs.snippet b/vim/snippets/java/gs.snippet new file mode 100755 index 0000000..954a9a0 --- /dev/null +++ b/vim/snippets/java/gs.snippet @@ -0,0 +1,9 @@ +//getter for $3 +public ${2:variable_type} get${1:VariableName}() { + return ${3:variableName}; +} + +//setter for $3 +public void set$1($2 $3) { + this.$3 = $3; +}${4} diff --git a/vim/snippets/java/if.snippet b/vim/snippets/java/if.snippet new file mode 100755 index 0000000..b9d1c5c --- /dev/null +++ b/vim/snippets/java/if.snippet @@ -0,0 +1,3 @@ +if(${1}){ + ${2} +} diff --git a/vim/snippets/java/ife.snippet b/vim/snippets/java/ife.snippet new file mode 100755 index 0000000..a7e43d0 --- /dev/null +++ b/vim/snippets/java/ife.snippet @@ -0,0 +1,4 @@ +if(${1}){ + ${2} +}else{ +} diff --git a/vim/snippets/java/log.snippet b/vim/snippets/java/log.snippet new file mode 100755 index 0000000..abb7c7d --- /dev/null +++ b/vim/snippets/java/log.snippet @@ -0,0 +1 @@ +System.${1:out}.println(${2}); diff --git a/vim/snippets/java/m.snippet b/vim/snippets/java/m.snippet new file mode 100755 index 0000000..67bf3fb --- /dev/null +++ b/vim/snippets/java/m.snippet @@ -0,0 +1,8 @@ +/** + * ${7:Method Description} + * ${5} + * @return ${6} + */ +${1:public} ${2:void} ${3:methodName}(${4}) { + ${8} +} diff --git a/vim/snippets/javascript-jquery/add.snippet b/vim/snippets/javascript-jquery/add.snippet new file mode 100755 index 0000000..3bf9756 --- /dev/null +++ b/vim/snippets/javascript-jquery/add.snippet @@ -0,0 +1 @@ +${1:obj}.add('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/addClass.snippet b/vim/snippets/javascript-jquery/addClass.snippet new file mode 100755 index 0000000..6800774 --- /dev/null +++ b/vim/snippets/javascript-jquery/addClass.snippet @@ -0,0 +1 @@ +${1:obj}.addClass('${2:class name}')${3} diff --git a/vim/snippets/javascript-jquery/after.snippet b/vim/snippets/javascript-jquery/after.snippet new file mode 100755 index 0000000..34d1956 --- /dev/null +++ b/vim/snippets/javascript-jquery/after.snippet @@ -0,0 +1 @@ +${1:obj}.after('${2:Some text and bold!}')${3} diff --git a/vim/snippets/javascript-jquery/ajax.snippet b/vim/snippets/javascript-jquery/ajax.snippet new file mode 100755 index 0000000..5453a25 --- /dev/null +++ b/vim/snippets/javascript-jquery/ajax.snippet @@ -0,0 +1,18 @@ +$.ajax({ + url: "${1:mydomain.com/url}", + type: "${2:POST}", + dataType: "${3:xml/html/script/json}", + data: $.param( $("${4:Element or Expression}") ), + + complete: function() { + ${5://called when complete} + }, + + success: function() { + ${6://called when successful} + }, + + error: function() { + ${7://called when there is an error} + }, +}); diff --git a/vim/snippets/javascript-jquery/ajaxerror.snippet b/vim/snippets/javascript-jquery/ajaxerror.snippet new file mode 100755 index 0000000..0f8ccda --- /dev/null +++ b/vim/snippets/javascript-jquery/ajaxerror.snippet @@ -0,0 +1,4 @@ +.ajaxError(function(${1:request, settings}) { + ${2://stuff to do when an AJAX call returns an error}; +}); +${3} diff --git a/vim/snippets/javascript-jquery/ajaxget.snippet b/vim/snippets/javascript-jquery/ajaxget.snippet new file mode 100755 index 0000000..1489859 --- /dev/null +++ b/vim/snippets/javascript-jquery/ajaxget.snippet @@ -0,0 +1,3 @@ +$.get('${1:/test/ajax-test.xml}', function(xml){ + ${2:alert( ("title",xml).text() ) //optional stuff to do after get;} +}); diff --git a/vim/snippets/javascript-jquery/ajaxgetif.snippet b/vim/snippets/javascript-jquery/ajaxgetif.snippet new file mode 100755 index 0000000..0f4d1ef --- /dev/null +++ b/vim/snippets/javascript-jquery/ajaxgetif.snippet @@ -0,0 +1,3 @@ +$.getIfModified('${1:/test/test.cgi}', function(data){ + ${2:alert( "Data loaded: " + data ) //optional stuff to do after get;} +}); diff --git a/vim/snippets/javascript-jquery/ajaxpost.snippet b/vim/snippets/javascript-jquery/ajaxpost.snippet new file mode 100755 index 0000000..f62bf10 --- /dev/null +++ b/vim/snippets/javascript-jquery/ajaxpost.snippet @@ -0,0 +1,5 @@ +$.post('<+/path/to/file.cgi+>',{ + <+<+param1+>: "<+value1+>", <+param2+>: "<+value2+>"+>}, + function(){ + <+//stuff to do after event occurs;+> +}); diff --git a/vim/snippets/javascript-jquery/ajaxsend.snippet b/vim/snippets/javascript-jquery/ajaxsend.snippet new file mode 100755 index 0000000..4b74cd9 --- /dev/null +++ b/vim/snippets/javascript-jquery/ajaxsend.snippet @@ -0,0 +1,4 @@ +.ajaxSend(function(${1:request, settings}) { + ${2://stuff to do when an AJAX call returns an error}; +}); +${3} diff --git a/vim/snippets/javascript-jquery/ajaxsetup.snippet b/vim/snippets/javascript-jquery/ajaxsetup.snippet new file mode 100755 index 0000000..c5b4ad0 --- /dev/null +++ b/vim/snippets/javascript-jquery/ajaxsetup.snippet @@ -0,0 +1,18 @@ +$.ajaxSetup({ + url: "${1:mydomain.com/url}", + type: "${2:POST}", + dataType: "${3:xml/html/script/json}", + data: $.param( $("${4:Element or Expression}") ), + + complete: function() { + ${5://called when complete} + }, + + success: function() { + ${6://called when successful} + }, + + error: function() { + ${7://called when there is an error} + }, +}); diff --git a/vim/snippets/javascript-jquery/ajaxstart.snippet b/vim/snippets/javascript-jquery/ajaxstart.snippet new file mode 100755 index 0000000..3caafd5 --- /dev/null +++ b/vim/snippets/javascript-jquery/ajaxstart.snippet @@ -0,0 +1,4 @@ +$.ajaxStart(function() { + ${1://stuff to do when an AJAX call is started and no other AJAX calls are in progress}; +}); +${2} diff --git a/vim/snippets/javascript-jquery/ajaxstop.snippet b/vim/snippets/javascript-jquery/ajaxstop.snippet new file mode 100755 index 0000000..6088a9f --- /dev/null +++ b/vim/snippets/javascript-jquery/ajaxstop.snippet @@ -0,0 +1,4 @@ +$.ajaxStop(function() { + ${1://stuff to do when an AJAX call is started and no other AJAX calls are in progress}; +}); +${2} diff --git a/vim/snippets/javascript-jquery/ajaxsuccess.snippet b/vim/snippets/javascript-jquery/ajaxsuccess.snippet new file mode 100755 index 0000000..ba2247d --- /dev/null +++ b/vim/snippets/javascript-jquery/ajaxsuccess.snippet @@ -0,0 +1,4 @@ +$.ajaxSuccess(function() { + ${1://stuff to do when an AJAX call is started and no other AJAX calls are in progress}; +}); +${2} diff --git a/vim/snippets/javascript-jquery/animate.snippet b/vim/snippets/javascript-jquery/animate.snippet new file mode 100755 index 0000000..1913532 --- /dev/null +++ b/vim/snippets/javascript-jquery/animate.snippet @@ -0,0 +1 @@ +${1:obj}.animate({${2:param1: value1, param2: value2}}, ${3:speed})${4} diff --git a/vim/snippets/javascript-jquery/append.snippet b/vim/snippets/javascript-jquery/append.snippet new file mode 100755 index 0000000..bc4ff4d --- /dev/null +++ b/vim/snippets/javascript-jquery/append.snippet @@ -0,0 +1 @@ +${1:obj}.append('${2:Some text and bold!}')${3} diff --git a/vim/snippets/javascript-jquery/appendTo.snippet b/vim/snippets/javascript-jquery/appendTo.snippet new file mode 100755 index 0000000..9788371 --- /dev/null +++ b/vim/snippets/javascript-jquery/appendTo.snippet @@ -0,0 +1 @@ +${1:obj}.appendTo('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/attr.snippet b/vim/snippets/javascript-jquery/attr.snippet new file mode 100755 index 0000000..fb7e2f4 --- /dev/null +++ b/vim/snippets/javascript-jquery/attr.snippet @@ -0,0 +1 @@ +${1:obj}.attr('${2:attribute}', '${3:value}')${4} diff --git a/vim/snippets/javascript-jquery/attrm.snippet b/vim/snippets/javascript-jquery/attrm.snippet new file mode 100755 index 0000000..1568551 --- /dev/null +++ b/vim/snippets/javascript-jquery/attrm.snippet @@ -0,0 +1 @@ +${1:obj}.attr({'${2:attr1}': '${3:value1}', '${4:attr2}': '${5:value2}'})${6} diff --git a/vim/snippets/javascript-jquery/before.snippet b/vim/snippets/javascript-jquery/before.snippet new file mode 100755 index 0000000..e12c4ae --- /dev/null +++ b/vim/snippets/javascript-jquery/before.snippet @@ -0,0 +1 @@ +${1:obj}.before('${2:Some text and bold!}')${3} diff --git a/vim/snippets/javascript-jquery/bind.snippet b/vim/snippets/javascript-jquery/bind.snippet new file mode 100755 index 0000000..dda284d --- /dev/null +++ b/vim/snippets/javascript-jquery/bind.snippet @@ -0,0 +1,3 @@ +${1:obj}.bind('${2:event name}', function(${3:event}) { + ${4:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/blur.snippet b/vim/snippets/javascript-jquery/blur.snippet new file mode 100755 index 0000000..674623d --- /dev/null +++ b/vim/snippets/javascript-jquery/blur.snippet @@ -0,0 +1,3 @@ +${1:obj}.blur(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/change.snippet b/vim/snippets/javascript-jquery/change.snippet new file mode 100755 index 0000000..184f8a9 --- /dev/null +++ b/vim/snippets/javascript-jquery/change.snippet @@ -0,0 +1,3 @@ +${1:obj}.change(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/children.snippet b/vim/snippets/javascript-jquery/children.snippet new file mode 100755 index 0000000..2db688b --- /dev/null +++ b/vim/snippets/javascript-jquery/children.snippet @@ -0,0 +1 @@ +${1:obj}.children('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/click.snippet b/vim/snippets/javascript-jquery/click.snippet new file mode 100755 index 0000000..d17a047 --- /dev/null +++ b/vim/snippets/javascript-jquery/click.snippet @@ -0,0 +1,3 @@ +${1:obj}.click(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/clone.snippet b/vim/snippets/javascript-jquery/clone.snippet new file mode 100755 index 0000000..83b0b42 --- /dev/null +++ b/vim/snippets/javascript-jquery/clone.snippet @@ -0,0 +1 @@ +${1:obj}.clone()${2} diff --git a/vim/snippets/javascript-jquery/contains.snippet b/vim/snippets/javascript-jquery/contains.snippet new file mode 100755 index 0000000..2a07394 --- /dev/null +++ b/vim/snippets/javascript-jquery/contains.snippet @@ -0,0 +1 @@ +${1:obj}.contains('${2:text to find}')${3} diff --git a/vim/snippets/javascript-jquery/css.snippet b/vim/snippets/javascript-jquery/css.snippet new file mode 100755 index 0000000..408199e --- /dev/null +++ b/vim/snippets/javascript-jquery/css.snippet @@ -0,0 +1 @@ +${1:obj}.css('${2:attribute}', '${3:value}')${4} diff --git a/vim/snippets/javascript-jquery/cssm.snippet b/vim/snippets/javascript-jquery/cssm.snippet new file mode 100755 index 0000000..7eebe1e --- /dev/null +++ b/vim/snippets/javascript-jquery/cssm.snippet @@ -0,0 +1 @@ +${1:obj}.css({${2:attribute1}: '${3:value1}', ${4:attribute2}: '${5:value2}'})${6} diff --git a/vim/snippets/javascript-jquery/dblclick.snippet b/vim/snippets/javascript-jquery/dblclick.snippet new file mode 100755 index 0000000..4b2d6b2 --- /dev/null +++ b/vim/snippets/javascript-jquery/dblclick.snippet @@ -0,0 +1,3 @@ +${1:obj}.dblclick(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/each.snippet b/vim/snippets/javascript-jquery/each.snippet new file mode 100755 index 0000000..05beed2 --- /dev/null +++ b/vim/snippets/javascript-jquery/each.snippet @@ -0,0 +1,3 @@ +${1:obj}.each(function(index) { + ${2:this.innerHTML = this + " is the element, " + index + " is the position";} +}); diff --git a/vim/snippets/javascript-jquery/el.snippet b/vim/snippets/javascript-jquery/el.snippet new file mode 100755 index 0000000..d206523 --- /dev/null +++ b/vim/snippets/javascript-jquery/el.snippet @@ -0,0 +1 @@ +$('${1}')${2:} diff --git a/vim/snippets/javascript-jquery/eltrim.snippet b/vim/snippets/javascript-jquery/eltrim.snippet new file mode 100755 index 0000000..9cc0d69 --- /dev/null +++ b/vim/snippets/javascript-jquery/eltrim.snippet @@ -0,0 +1 @@ +$.trim('${1:string}')${2} diff --git a/vim/snippets/javascript-jquery/end.snippet b/vim/snippets/javascript-jquery/end.snippet new file mode 100755 index 0000000..293102c --- /dev/null +++ b/vim/snippets/javascript-jquery/end.snippet @@ -0,0 +1 @@ +${1:obj}.end()${2} diff --git a/vim/snippets/javascript-jquery/error.snippet b/vim/snippets/javascript-jquery/error.snippet new file mode 100755 index 0000000..23b0e65 --- /dev/null +++ b/vim/snippets/javascript-jquery/error.snippet @@ -0,0 +1,3 @@ +${1:obj}.error(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/fadein.snippet b/vim/snippets/javascript-jquery/fadein.snippet new file mode 100755 index 0000000..549d846 --- /dev/null +++ b/vim/snippets/javascript-jquery/fadein.snippet @@ -0,0 +1 @@ +${1:obj}.fadeIn('${2:slow/400/fast}')${3} diff --git a/vim/snippets/javascript-jquery/fadeinc.snippet b/vim/snippets/javascript-jquery/fadeinc.snippet new file mode 100755 index 0000000..9090853 --- /dev/null +++ b/vim/snippets/javascript-jquery/fadeinc.snippet @@ -0,0 +1,3 @@ +${1:obj}.fadeIn('slow/400/fast', function() { + ${2://Stuff to do *after* the animation takes place}; +}); diff --git a/vim/snippets/javascript-jquery/fadeout.snippet b/vim/snippets/javascript-jquery/fadeout.snippet new file mode 100755 index 0000000..24d6c76 --- /dev/null +++ b/vim/snippets/javascript-jquery/fadeout.snippet @@ -0,0 +1 @@ +${1:obj}.fadeOut('${2:slow/400/fast}')${3} diff --git a/vim/snippets/javascript-jquery/fadeoutc.snippet b/vim/snippets/javascript-jquery/fadeoutc.snippet new file mode 100755 index 0000000..76d5457 --- /dev/null +++ b/vim/snippets/javascript-jquery/fadeoutc.snippet @@ -0,0 +1,3 @@ +${1:obj}.fadeOut('slow/400/fast', function() { + ${2://Stuff to do *after* the animation takes place}; +}); diff --git a/vim/snippets/javascript-jquery/fadeto.snippet b/vim/snippets/javascript-jquery/fadeto.snippet new file mode 100755 index 0000000..b0e584a --- /dev/null +++ b/vim/snippets/javascript-jquery/fadeto.snippet @@ -0,0 +1 @@ +${1:obj}.fadeTo('${2:slow/400/fast}', ${3:0.5})${4} diff --git a/vim/snippets/javascript-jquery/fadetoc.snippet b/vim/snippets/javascript-jquery/fadetoc.snippet new file mode 100755 index 0000000..17243b4 --- /dev/null +++ b/vim/snippets/javascript-jquery/fadetoc.snippet @@ -0,0 +1,3 @@ +${1:obj}.fadeTo('slow/400/fast', ${2:0.5}, function() { + ${3://Stuff to do *after* the animation takes place}; +}); diff --git a/vim/snippets/javascript-jquery/filter.snippet b/vim/snippets/javascript-jquery/filter.snippet new file mode 100755 index 0000000..d33fdf2 --- /dev/null +++ b/vim/snippets/javascript-jquery/filter.snippet @@ -0,0 +1 @@ +${1:obj}.filter('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/find.snippet b/vim/snippets/javascript-jquery/find.snippet new file mode 100755 index 0000000..1791e91 --- /dev/null +++ b/vim/snippets/javascript-jquery/find.snippet @@ -0,0 +1 @@ +${1:obj}.find('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/focus.snippet b/vim/snippets/javascript-jquery/focus.snippet new file mode 100755 index 0000000..3b1b571 --- /dev/null +++ b/vim/snippets/javascript-jquery/focus.snippet @@ -0,0 +1,3 @@ +${1:obj}.focus(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/get.snippet b/vim/snippets/javascript-jquery/get.snippet new file mode 100755 index 0000000..4374c18 --- /dev/null +++ b/vim/snippets/javascript-jquery/get.snippet @@ -0,0 +1 @@ +${1:obj}.get(${2:element index})${3} diff --git a/vim/snippets/javascript-jquery/getjson.snippet b/vim/snippets/javascript-jquery/getjson.snippet new file mode 100755 index 0000000..518d676 --- /dev/null +++ b/vim/snippets/javascript-jquery/getjson.snippet @@ -0,0 +1,5 @@ +$.getJSON('<+/path/to/file.cgi+>',{ + <+<+param1+>: "<+value1+>", <+param2+>: "<+value2+>"+>}, + function(json){ + <+//stuff to do after event occurs;+> +}); diff --git a/vim/snippets/javascript-jquery/getscript.snippet b/vim/snippets/javascript-jquery/getscript.snippet new file mode 100755 index 0000000..0b62d90 --- /dev/null +++ b/vim/snippets/javascript-jquery/getscript.snippet @@ -0,0 +1,3 @@ +$.getScript('${1:somescript.js}', function(){ + ${2://optional stuff to do after getScript;} +}); diff --git a/vim/snippets/javascript-jquery/height.snippet b/vim/snippets/javascript-jquery/height.snippet new file mode 100755 index 0000000..1515d5c --- /dev/null +++ b/vim/snippets/javascript-jquery/height.snippet @@ -0,0 +1 @@ +${1:obj}.height(${2:integer})${3} diff --git a/vim/snippets/javascript-jquery/hide.snippet b/vim/snippets/javascript-jquery/hide.snippet new file mode 100755 index 0000000..c8071cb --- /dev/null +++ b/vim/snippets/javascript-jquery/hide.snippet @@ -0,0 +1 @@ +${1:obj}.hide('${2:slow/400/fast}')${3} diff --git a/vim/snippets/javascript-jquery/hidec.snippet b/vim/snippets/javascript-jquery/hidec.snippet new file mode 100755 index 0000000..62f2280 --- /dev/null +++ b/vim/snippets/javascript-jquery/hidec.snippet @@ -0,0 +1,3 @@ +${1:obj}.hide('${2:slow/400/fast}', function() { + ${3://Stuff to do *after* the animation takes place} +}); diff --git a/vim/snippets/javascript-jquery/hover.snippet b/vim/snippets/javascript-jquery/hover.snippet new file mode 100755 index 0000000..d8468c1 --- /dev/null +++ b/vim/snippets/javascript-jquery/hover.snippet @@ -0,0 +1,5 @@ +${1:obj}.hover(function() { + ${2:// Stuff to do when the mouse enters the element;} +}, function() { + ${3:// Stuff to do when the mouse leaves the element;} +});${4} diff --git a/vim/snippets/javascript-jquery/html.snippet b/vim/snippets/javascript-jquery/html.snippet new file mode 100755 index 0000000..0c5a25e --- /dev/null +++ b/vim/snippets/javascript-jquery/html.snippet @@ -0,0 +1 @@ +${1:obj}.html('${2:Some text and bold!}')${3} diff --git a/vim/snippets/javascript-jquery/insertAfter.snippet b/vim/snippets/javascript-jquery/insertAfter.snippet new file mode 100755 index 0000000..66c389e --- /dev/null +++ b/vim/snippets/javascript-jquery/insertAfter.snippet @@ -0,0 +1 @@ +${1:obj}.insertAfter('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/insertBefore.snippet b/vim/snippets/javascript-jquery/insertBefore.snippet new file mode 100755 index 0000000..e7090d4 --- /dev/null +++ b/vim/snippets/javascript-jquery/insertBefore.snippet @@ -0,0 +1 @@ +${1:obj}.insertBefore('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/is.snippet b/vim/snippets/javascript-jquery/is.snippet new file mode 100755 index 0000000..28eefb0 --- /dev/null +++ b/vim/snippets/javascript-jquery/is.snippet @@ -0,0 +1 @@ +${1:obj}.is('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/jj.snippet b/vim/snippets/javascript-jquery/jj.snippet new file mode 100755 index 0000000..7342abc --- /dev/null +++ b/vim/snippets/javascript-jquery/jj.snippet @@ -0,0 +1 @@ +$('${1:selector}')${2} diff --git a/vim/snippets/javascript-jquery/load.snippet b/vim/snippets/javascript-jquery/load.snippet new file mode 100755 index 0000000..1f09fbc --- /dev/null +++ b/vim/snippets/javascript-jquery/load.snippet @@ -0,0 +1,3 @@ +${1:obj}.load(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/loadf.snippet b/vim/snippets/javascript-jquery/loadf.snippet new file mode 100755 index 0000000..2e7d9c8 --- /dev/null +++ b/vim/snippets/javascript-jquery/loadf.snippet @@ -0,0 +1,3 @@ +<+obj+>.load('<+/path/to/file.htm+>', { <+<+param1+>: "<+value1+>", <+param2+>: "<+value2+>"+> }, function() { + <+// Stuff to do after the page is loaded+> +}); \ No newline at end of file diff --git a/vim/snippets/javascript-jquery/loadif.snippet b/vim/snippets/javascript-jquery/loadif.snippet new file mode 100755 index 0000000..fe45d05 --- /dev/null +++ b/vim/snippets/javascript-jquery/loadif.snippet @@ -0,0 +1,3 @@ +<+obj+>.loadIfModified('<+/path/to/file.htm+>', { <+<+param1+>: "<+value1+>", <+param2+>: "<+value2+>"+> }, function() { + <+// Stuff to do after the page is loaded+> +}); \ No newline at end of file diff --git a/vim/snippets/javascript-jquery/mdown.snippet b/vim/snippets/javascript-jquery/mdown.snippet new file mode 100755 index 0000000..3be70e1 --- /dev/null +++ b/vim/snippets/javascript-jquery/mdown.snippet @@ -0,0 +1,3 @@ +${1:obj}.mousedown(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/mmove.snippet b/vim/snippets/javascript-jquery/mmove.snippet new file mode 100755 index 0000000..eb7ac05 --- /dev/null +++ b/vim/snippets/javascript-jquery/mmove.snippet @@ -0,0 +1,3 @@ +${1:obj}.mousemove(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/mout.snippet b/vim/snippets/javascript-jquery/mout.snippet new file mode 100755 index 0000000..f214275 --- /dev/null +++ b/vim/snippets/javascript-jquery/mout.snippet @@ -0,0 +1,3 @@ +${1:obj}.mouseout(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/mover.snippet b/vim/snippets/javascript-jquery/mover.snippet new file mode 100755 index 0000000..f1eb19c --- /dev/null +++ b/vim/snippets/javascript-jquery/mover.snippet @@ -0,0 +1,3 @@ +${1:obj}.mouseover(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/mup.snippet b/vim/snippets/javascript-jquery/mup.snippet new file mode 100755 index 0000000..04fb36a --- /dev/null +++ b/vim/snippets/javascript-jquery/mup.snippet @@ -0,0 +1,3 @@ +${1:obj}.mouseup(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/next.snippet b/vim/snippets/javascript-jquery/next.snippet new file mode 100755 index 0000000..b6a6528 --- /dev/null +++ b/vim/snippets/javascript-jquery/next.snippet @@ -0,0 +1 @@ +${1:obj}.next('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/not.snippet b/vim/snippets/javascript-jquery/not.snippet new file mode 100755 index 0000000..c6a217f --- /dev/null +++ b/vim/snippets/javascript-jquery/not.snippet @@ -0,0 +1 @@ +${1:obj}.not('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/one.snippet b/vim/snippets/javascript-jquery/one.snippet new file mode 100755 index 0000000..cacdbfb --- /dev/null +++ b/vim/snippets/javascript-jquery/one.snippet @@ -0,0 +1,3 @@ +${1:obj}.one('${2:event name}', function(${3:event}) { + ${4:// Act on the event once} +}); diff --git a/vim/snippets/javascript-jquery/parent.snippet b/vim/snippets/javascript-jquery/parent.snippet new file mode 100755 index 0000000..0490f05 --- /dev/null +++ b/vim/snippets/javascript-jquery/parent.snippet @@ -0,0 +1 @@ +${1:obj}.parent('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/parents.snippet b/vim/snippets/javascript-jquery/parents.snippet new file mode 100755 index 0000000..fb0bd13 --- /dev/null +++ b/vim/snippets/javascript-jquery/parents.snippet @@ -0,0 +1 @@ +${1:obj}.parents('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/plugin.snippet b/vim/snippets/javascript-jquery/plugin.snippet new file mode 100755 index 0000000..aacbded --- /dev/null +++ b/vim/snippets/javascript-jquery/plugin.snippet @@ -0,0 +1,28 @@ +// Create Closure +;(function($) { + $.fn.${1} = function(options) { + // Extend the defaults, over-writing them with anything passed by the caller + var opts = $.extend({}, $.fn.$1.defaults, options); + + // Iterate over each element + return this.each(function() { + $this = $(this); + + // Allow for use of the Metadata plugin + var o = $.meta ? $.extend({}, opts, $this.data()) : opts; + + ${2:YOUR CODE GOES HERE} + + }); + }; + + // Additional methods follow the format: + // $.fn.$1.format = function(txt) { + // FUNCTION STUFF GOES HERE + // }; + + // Plugin Defaults + $.fn.$1.defaults = { + + }; +})(jQuery); // Closure Closed diff --git a/vim/snippets/javascript-jquery/prepend.snippet b/vim/snippets/javascript-jquery/prepend.snippet new file mode 100755 index 0000000..bc41d48 --- /dev/null +++ b/vim/snippets/javascript-jquery/prepend.snippet @@ -0,0 +1 @@ +${1:obj}.prepend('${2:Some text and bold!}')${3} diff --git a/vim/snippets/javascript-jquery/prependto.snippet b/vim/snippets/javascript-jquery/prependto.snippet new file mode 100755 index 0000000..e440695 --- /dev/null +++ b/vim/snippets/javascript-jquery/prependto.snippet @@ -0,0 +1 @@ +${1:obj}.prependTo('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/prev.snippet b/vim/snippets/javascript-jquery/prev.snippet new file mode 100755 index 0000000..b7aba64 --- /dev/null +++ b/vim/snippets/javascript-jquery/prev.snippet @@ -0,0 +1 @@ +${1:obj}.prev('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/ready.snippet b/vim/snippets/javascript-jquery/ready.snippet new file mode 100755 index 0000000..a1d3007 --- /dev/null +++ b/vim/snippets/javascript-jquery/ready.snippet @@ -0,0 +1,3 @@ +$(function() { + ${1} +}); diff --git a/vim/snippets/javascript-jquery/remove.snippet b/vim/snippets/javascript-jquery/remove.snippet new file mode 100755 index 0000000..4c976a1 --- /dev/null +++ b/vim/snippets/javascript-jquery/remove.snippet @@ -0,0 +1 @@ +${1:obj}.remove()${2} diff --git a/vim/snippets/javascript-jquery/removeattr.snippet b/vim/snippets/javascript-jquery/removeattr.snippet new file mode 100755 index 0000000..267d584 --- /dev/null +++ b/vim/snippets/javascript-jquery/removeattr.snippet @@ -0,0 +1 @@ +${1:obj}.removeAttr('${2:attribute name}')${3} diff --git a/vim/snippets/javascript-jquery/removeclass.snippet b/vim/snippets/javascript-jquery/removeclass.snippet new file mode 100755 index 0000000..f553803 --- /dev/null +++ b/vim/snippets/javascript-jquery/removeclass.snippet @@ -0,0 +1 @@ +${1:obj}.removeClass('${2:class name}')${3} diff --git a/vim/snippets/javascript-jquery/reset.snippet b/vim/snippets/javascript-jquery/reset.snippet new file mode 100755 index 0000000..777af95 --- /dev/null +++ b/vim/snippets/javascript-jquery/reset.snippet @@ -0,0 +1,3 @@ +${1:obj}.reset(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/resize.snippet b/vim/snippets/javascript-jquery/resize.snippet new file mode 100755 index 0000000..b46ac0a --- /dev/null +++ b/vim/snippets/javascript-jquery/resize.snippet @@ -0,0 +1,3 @@ +${1:obj}.resize(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/scroll.snippet b/vim/snippets/javascript-jquery/scroll.snippet new file mode 100755 index 0000000..7a51244 --- /dev/null +++ b/vim/snippets/javascript-jquery/scroll.snippet @@ -0,0 +1,3 @@ +${1:obj}.scroll(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/sdown.snippet b/vim/snippets/javascript-jquery/sdown.snippet new file mode 100755 index 0000000..b39840e --- /dev/null +++ b/vim/snippets/javascript-jquery/sdown.snippet @@ -0,0 +1 @@ +${1:obj}.slideDown('${2:slow/400/fast}')${3} diff --git a/vim/snippets/javascript-jquery/sdownc.snippet b/vim/snippets/javascript-jquery/sdownc.snippet new file mode 100755 index 0000000..3404b78 --- /dev/null +++ b/vim/snippets/javascript-jquery/sdownc.snippet @@ -0,0 +1,3 @@ +${1:obj}.slideDown('${2:slow/400/fast}', function() { + ${3://Stuff to do *after* the animation takes place}; +}); diff --git a/vim/snippets/javascript-jquery/sdupc.snippet b/vim/snippets/javascript-jquery/sdupc.snippet new file mode 100755 index 0000000..873c665 --- /dev/null +++ b/vim/snippets/javascript-jquery/sdupc.snippet @@ -0,0 +1,3 @@ +${1:obj}.slideUp('${2:slow/400/fast}', function() { + ${3://Stuff to do *after* the animation takes place}; +}); diff --git a/vim/snippets/javascript-jquery/select.snippet b/vim/snippets/javascript-jquery/select.snippet new file mode 100755 index 0000000..986437e --- /dev/null +++ b/vim/snippets/javascript-jquery/select.snippet @@ -0,0 +1,3 @@ +${1:obj}.select(function() { + ${2:// Act on the event} +}); diff --git a/vim/snippets/javascript-jquery/show.snippet b/vim/snippets/javascript-jquery/show.snippet new file mode 100755 index 0000000..31819b1 --- /dev/null +++ b/vim/snippets/javascript-jquery/show.snippet @@ -0,0 +1 @@ +${1:obj}.show('${2:slow/400/fast}')${3} diff --git a/vim/snippets/javascript-jquery/showc.snippet b/vim/snippets/javascript-jquery/showc.snippet new file mode 100755 index 0000000..6dc5bac --- /dev/null +++ b/vim/snippets/javascript-jquery/showc.snippet @@ -0,0 +1,3 @@ +${1:obj}.show('${2:slow/400/fast}', function() { + ${3://Stuff to do *after* the animation takes place} +}); diff --git a/vim/snippets/javascript-jquery/sib.snippet b/vim/snippets/javascript-jquery/sib.snippet new file mode 100755 index 0000000..014f1f7 --- /dev/null +++ b/vim/snippets/javascript-jquery/sib.snippet @@ -0,0 +1 @@ +${1:obj}.siblings('${2:selector expression}')${3} diff --git a/vim/snippets/javascript-jquery/size.snippet b/vim/snippets/javascript-jquery/size.snippet new file mode 100755 index 0000000..1ba1543 --- /dev/null +++ b/vim/snippets/javascript-jquery/size.snippet @@ -0,0 +1 @@ +${1:obj}.size()${2} diff --git a/vim/snippets/javascript-jquery/stoggle.snippet b/vim/snippets/javascript-jquery/stoggle.snippet new file mode 100755 index 0000000..daba37d --- /dev/null +++ b/vim/snippets/javascript-jquery/stoggle.snippet @@ -0,0 +1 @@ +${1:obj}.slideToggle('${2:slow/400/fast}')${3} diff --git a/vim/snippets/javascript-jquery/submit.snippet b/vim/snippets/javascript-jquery/submit.snippet new file mode 100755 index 0000000..ae98d83 --- /dev/null +++ b/vim/snippets/javascript-jquery/submit.snippet @@ -0,0 +1,3 @@ +${1:obj}.submit(function() { + ${2:// Act on the event once} +}); diff --git a/vim/snippets/javascript-jquery/sup.snippet b/vim/snippets/javascript-jquery/sup.snippet new file mode 100755 index 0000000..d844a68 --- /dev/null +++ b/vim/snippets/javascript-jquery/sup.snippet @@ -0,0 +1 @@ +${1:obj}.slideUp('${2:slow/400/fast}')${3} diff --git a/vim/snippets/javascript-jquery/text.snippet b/vim/snippets/javascript-jquery/text.snippet new file mode 100755 index 0000000..5f667c0 --- /dev/null +++ b/vim/snippets/javascript-jquery/text.snippet @@ -0,0 +1 @@ +${1:obj}.text(${2:'some text'})${3} diff --git a/vim/snippets/javascript-jquery/this.snippet b/vim/snippets/javascript-jquery/this.snippet new file mode 100755 index 0000000..b3cee8d --- /dev/null +++ b/vim/snippets/javascript-jquery/this.snippet @@ -0,0 +1 @@ +$(this)${1} diff --git a/vim/snippets/javascript-jquery/tog.snippet b/vim/snippets/javascript-jquery/tog.snippet new file mode 100755 index 0000000..54f5f17 --- /dev/null +++ b/vim/snippets/javascript-jquery/tog.snippet @@ -0,0 +1,6 @@ +${1:obj}.toggle(function() { + ${2:// Stuff to do every *odd* time the element is clicked;} +}, function() { + ${3:// Stuff to do every *even* time the element is clicked;} +}); +${4} diff --git a/vim/snippets/javascript-jquery/togclass.snippet b/vim/snippets/javascript-jquery/togclass.snippet new file mode 100755 index 0000000..023a4b7 --- /dev/null +++ b/vim/snippets/javascript-jquery/togclass.snippet @@ -0,0 +1 @@ +${1:obj}.toggleClass('${2:class name}')${3} diff --git a/vim/snippets/javascript-jquery/togsh.snippet b/vim/snippets/javascript-jquery/togsh.snippet new file mode 100755 index 0000000..265a62d --- /dev/null +++ b/vim/snippets/javascript-jquery/togsh.snippet @@ -0,0 +1 @@ +${1:obj}.toggle('${2:slow/400/fast}')${3} diff --git a/vim/snippets/javascript-jquery/trig.snippet b/vim/snippets/javascript-jquery/trig.snippet new file mode 100755 index 0000000..f7105e0 --- /dev/null +++ b/vim/snippets/javascript-jquery/trig.snippet @@ -0,0 +1 @@ +${1:obj}.trigger('${2:event name}')${3} diff --git a/vim/snippets/javascript-jquery/unbind.snippet b/vim/snippets/javascript-jquery/unbind.snippet new file mode 100755 index 0000000..0fe423d --- /dev/null +++ b/vim/snippets/javascript-jquery/unbind.snippet @@ -0,0 +1 @@ +${1:obj}.unbind('${2:event name}')${3} diff --git a/vim/snippets/javascript-jquery/val.snippet b/vim/snippets/javascript-jquery/val.snippet new file mode 100755 index 0000000..cafe0b0 --- /dev/null +++ b/vim/snippets/javascript-jquery/val.snippet @@ -0,0 +1 @@ +${1:obj}.val('${2:text}')${3} diff --git a/vim/snippets/javascript-jquery/width.snippet b/vim/snippets/javascript-jquery/width.snippet new file mode 100755 index 0000000..415631c --- /dev/null +++ b/vim/snippets/javascript-jquery/width.snippet @@ -0,0 +1 @@ +${1:obj}.width(${2:integer})${3} diff --git a/vim/snippets/javascript-jquery/wrap.snippet b/vim/snippets/javascript-jquery/wrap.snippet new file mode 100755 index 0000000..55df53f --- /dev/null +++ b/vim/snippets/javascript-jquery/wrap.snippet @@ -0,0 +1 @@ +${1:obj}.wrap('${2:<div class="extra-wrapper"></div>}')${3} diff --git a/vim/snippets/javascript/a.snippet b/vim/snippets/javascript/a.snippet new file mode 100755 index 0000000..d02b907 --- /dev/null +++ b/vim/snippets/javascript/a.snippet @@ -0,0 +1 @@ +alert(${1:this.element}); diff --git a/vim/snippets/javascript/anon.snippet b/vim/snippets/javascript/anon.snippet new file mode 100755 index 0000000..fff379e --- /dev/null +++ b/vim/snippets/javascript/anon.snippet @@ -0,0 +1,3 @@ +function(${1}) { + ${2} +}; diff --git a/vim/snippets/javascript/as.snippet b/vim/snippets/javascript/as.snippet new file mode 100755 index 0000000..8a88fe4 --- /dev/null +++ b/vim/snippets/javascript/as.snippet @@ -0,0 +1 @@ +alert("${1}"); diff --git a/vim/snippets/javascript/ea.snippet b/vim/snippets/javascript/ea.snippet new file mode 100755 index 0000000..e77be32 --- /dev/null +++ b/vim/snippets/javascript/ea.snippet @@ -0,0 +1,3 @@ +each(function() { + +}); diff --git a/vim/snippets/javascript/for.snippet b/vim/snippets/javascript/for.snippet new file mode 100755 index 0000000..e1e4d87 --- /dev/null +++ b/vim/snippets/javascript/for.snippet @@ -0,0 +1,3 @@ +for (var ${1:i} = 0; $1 < ${2:length}; $1++) { + ${3} +} diff --git a/vim/snippets/javascript/fun.snippet b/vim/snippets/javascript/fun.snippet new file mode 100755 index 0000000..caf168b --- /dev/null +++ b/vim/snippets/javascript/fun.snippet @@ -0,0 +1,3 @@ +function ${1:function_name}(${2:argument}) { + ${3:// body} +} diff --git a/vim/snippets/javascript/if.snippet b/vim/snippets/javascript/if.snippet new file mode 100755 index 0000000..d81ac04 --- /dev/null +++ b/vim/snippets/javascript/if.snippet @@ -0,0 +1,3 @@ +if (${1:true}) { + ${2} +}; diff --git a/vim/snippets/javascript/ife.snippet b/vim/snippets/javascript/ife.snippet new file mode 100755 index 0000000..7adadbc --- /dev/null +++ b/vim/snippets/javascript/ife.snippet @@ -0,0 +1,4 @@ +if (${1:true}) { + ${2} +} else { +} diff --git a/vim/snippets/javascript/iff.snippet b/vim/snippets/javascript/iff.snippet new file mode 100755 index 0000000..f4aa67a --- /dev/null +++ b/vim/snippets/javascript/iff.snippet @@ -0,0 +1,3 @@ +if (${1:true}) { + ${2} +} diff --git a/vim/snippets/javascript/l.snippet b/vim/snippets/javascript/l.snippet new file mode 100755 index 0000000..b4cf84f --- /dev/null +++ b/vim/snippets/javascript/l.snippet @@ -0,0 +1 @@ +console.log(${1}); diff --git a/vim/snippets/javascript/log.snippet b/vim/snippets/javascript/log.snippet new file mode 100755 index 0000000..b4cf84f --- /dev/null +++ b/vim/snippets/javascript/log.snippet @@ -0,0 +1 @@ +console.log(${1}); diff --git a/vim/snippets/javascript/met.snippet b/vim/snippets/javascript/met.snippet new file mode 100755 index 0000000..1c30d61 --- /dev/null +++ b/vim/snippets/javascript/met.snippet @@ -0,0 +1,3 @@ +${1:method_name}: function(${2:attribute}){ + ${3} +}${4:, } diff --git a/vim/snippets/javascript/pe.snippet b/vim/snippets/javascript/pe.snippet new file mode 100755 index 0000000..b86f530 --- /dev/null +++ b/vim/snippets/javascript/pe.snippet @@ -0,0 +1,3 @@ +${1:property}: function(event) { + ${2:body} +} diff --git a/vim/snippets/javascript/pf.snippet b/vim/snippets/javascript/pf.snippet new file mode 100755 index 0000000..7798a7e --- /dev/null +++ b/vim/snippets/javascript/pf.snippet @@ -0,0 +1,3 @@ +${1:property}: function() { + ${2:body} +} diff --git a/vim/snippets/javascript/proto.snippet b/vim/snippets/javascript/proto.snippet new file mode 100755 index 0000000..37cd6d4 --- /dev/null +++ b/vim/snippets/javascript/proto.snippet @@ -0,0 +1,3 @@ +${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) { + ${4:// body} +}; diff --git a/vim/snippets/javascript/t.snippet b/vim/snippets/javascript/t.snippet new file mode 100755 index 0000000..c47acc6 --- /dev/null +++ b/vim/snippets/javascript/t.snippet @@ -0,0 +1 @@ +I18n.t('${1:type.key}', { defaultValue: '${2}' })${3} diff --git a/vim/snippets/javascript/timeout.snippet b/vim/snippets/javascript/timeout.snippet new file mode 100755 index 0000000..6ea2842 --- /dev/null +++ b/vim/snippets/javascript/timeout.snippet @@ -0,0 +1 @@ +setTimeout(function() { ${1} }, ${2:10}); diff --git a/vim/snippets/jinja.snippets b/vim/snippets/jinja.snippets new file mode 100755 index 0000000..0e9c31e --- /dev/null +++ b/vim/snippets/jinja.snippets @@ -0,0 +1,8 @@ +snippet % + {% ${1} %} + +snippet { + {{ ${1} }} + +snippet # + {# ${1} #} diff --git a/vim/snippets/jinja/block.snippet b/vim/snippets/jinja/block.snippet new file mode 100755 index 0000000..f970843 --- /dev/null +++ b/vim/snippets/jinja/block.snippet @@ -0,0 +1,3 @@ +{% block ${1} %} + ${2} +{% endblock %} diff --git a/vim/snippets/jinja/else.snippet b/vim/snippets/jinja/else.snippet new file mode 100755 index 0000000..78b4d0f --- /dev/null +++ b/vim/snippets/jinja/else.snippet @@ -0,0 +1,2 @@ +{% else %} +${1} diff --git a/vim/snippets/jinja/extends.snippet b/vim/snippets/jinja/extends.snippet new file mode 100755 index 0000000..c078b32 --- /dev/null +++ b/vim/snippets/jinja/extends.snippet @@ -0,0 +1 @@ +{% extends "${1:base.html}" %} diff --git a/vim/snippets/jinja/for.snippet b/vim/snippets/jinja/for.snippet new file mode 100755 index 0000000..da54159 --- /dev/null +++ b/vim/snippets/jinja/for.snippet @@ -0,0 +1,3 @@ +{% for ${1} in ${2} %} +${3} +{% endfor %} diff --git a/vim/snippets/jinja/if.snippet b/vim/snippets/jinja/if.snippet new file mode 100755 index 0000000..3cf165a --- /dev/null +++ b/vim/snippets/jinja/if.snippet @@ -0,0 +1,3 @@ +{% if ${1} %} +${2} +{% endif %} diff --git a/vim/snippets/jinja/include.snippet b/vim/snippets/jinja/include.snippet new file mode 100755 index 0000000..bb64157 --- /dev/null +++ b/vim/snippets/jinja/include.snippet @@ -0,0 +1 @@ +{% include "${1}" %} diff --git a/vim/snippets/markdown.snippets b/vim/snippets/markdown.snippets new file mode 100755 index 0000000..4a56481 --- /dev/null +++ b/vim/snippets/markdown.snippets @@ -0,0 +1,51 @@ +# [link][] +snippet [] + [${1:link_id}][]${2} +# [link][id] +snippet [[ + [${1:link}][${2:id}]${3} +# [link](url) +snippet [( + [${1:link}](${2:url})${3} +# [link](email) +snippet [@ + [${1:link}](mailto:${2:email})${3} +# [link](url "title") +snippet [(" + [${1:link}](${2:url} "${3:title}")${4} +# [id]: url "title" +snippet [: + [${1:id}]: http://${2:url} "${3:title}" +# [id]: email "title" +snippet [:@ + [${1:id}]: mailto:${2:url} "${3:title}" +# ![alt][id] +snippet ![ + ![${1:alt}][${2:id}]${3} +# ![alt](url) +snippet !( + ![${1:alt}](${2:url})${3} +# ![alt](url "title") +snippet !(" + ![${1:alt}](${2:url} "${3:title}")${4} +# *emphasis* or _emphasis_ +snippet * + *${1}*${2} +snippet _ + _${1}_${2} +# **strong** or __strong__ +snippet ** + **${1}**${2} +snippet __ + __${1}__${2} +# `code` +snippet ` + `${1}`${2} +# ================== (H1) +snippet === + =========================== + ${1} +# ------------------ (H2) +snippet --- + --------------------------- + ${1} diff --git a/vim/snippets/objc/I.snippet b/vim/snippets/objc/I.snippet new file mode 100755 index 0000000..0032f65 --- /dev/null +++ b/vim/snippets/objc/I.snippet @@ -0,0 +1,6 @@ ++ (void) initialize +{ + [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWIthObjectsAndKeys: + ${1}@"value", @"key", + nil]]; +} diff --git a/vim/snippets/objc/Imp.snippet b/vim/snippets/objc/Imp.snippet new file mode 100755 index 0000000..91724d3 --- /dev/null +++ b/vim/snippets/objc/Imp.snippet @@ -0,0 +1 @@ +#import "${1:`Filename()`.h}"${2} diff --git a/vim/snippets/objc/alloc.snippet b/vim/snippets/objc/alloc.snippet new file mode 100755 index 0000000..e4d1599 --- /dev/null +++ b/vim/snippets/objc/alloc.snippet @@ -0,0 +1 @@ +[[${1:foo} alloc] init]${2};${3} diff --git a/vim/snippets/objc/array.snippet b/vim/snippets/objc/array.snippet new file mode 100755 index 0000000..45d3ef0 --- /dev/null +++ b/vim/snippets/objc/array.snippet @@ -0,0 +1 @@ +NSMutableArray *${1:array} = [NSMutable array];${2} diff --git a/vim/snippets/objc/bez.snippet b/vim/snippets/objc/bez.snippet new file mode 100755 index 0000000..493aff6 --- /dev/null +++ b/vim/snippets/objc/bez.snippet @@ -0,0 +1 @@ +NSBezierPath *${1:path} = [NSBezierPath bezierPath];${2} diff --git a/vim/snippets/objc/cat.snippet b/vim/snippets/objc/cat.snippet new file mode 100755 index 0000000..fd57aae --- /dev/null +++ b/vim/snippets/objc/cat.snippet @@ -0,0 +1,6 @@ +@interface ${1:NSObject} (${2:Category}) +@end + +@implementation $1 ($2) +${3} +@end diff --git a/vim/snippets/objc/cati.snippet b/vim/snippets/objc/cati.snippet new file mode 100755 index 0000000..d285260 --- /dev/null +++ b/vim/snippets/objc/cati.snippet @@ -0,0 +1,3 @@ +@interface ${1:NSObject} (${2:Category}) +${3} +@end diff --git a/vim/snippets/objc/cli.snippet b/vim/snippets/objc/cli.snippet new file mode 100755 index 0000000..fa89622 --- /dev/null +++ b/vim/snippets/objc/cli.snippet @@ -0,0 +1,5 @@ +@interface ${1:ClassName} : ${2:NSObject} +{${3} +} +${4} +@end diff --git a/vim/snippets/objc/dict.snippet b/vim/snippets/objc/dict.snippet new file mode 100755 index 0000000..8b2d7e9 --- /dev/null +++ b/vim/snippets/objc/dict.snippet @@ -0,0 +1 @@ +NSMutableDictionary *${1:dict} = [NSMutableDictionary dictionary];${2} diff --git a/vim/snippets/objc/forarray.snippet b/vim/snippets/objc/forarray.snippet new file mode 100755 index 0000000..d32215d --- /dev/null +++ b/vim/snippets/objc/forarray.snippet @@ -0,0 +1,7 @@ +unsigned int ${1:object}Count = [${2:array} count]; + +for (unsigned int index = 0; index < $1Count; index++) +{ + ${3:id} $1 = [$2 $1AtIndex:index]; + ${4} +} diff --git a/vim/snippets/objc/log.snippet b/vim/snippets/objc/log.snippet new file mode 100755 index 0000000..69f9c06 --- /dev/null +++ b/vim/snippets/objc/log.snippet @@ -0,0 +1 @@ +NSLog(@"${1}"${2});${3} diff --git a/vim/snippets/objc/m/class method.snippet b/vim/snippets/objc/m/class method.snippet new file mode 100755 index 0000000..191ee16 --- /dev/null +++ b/vim/snippets/objc/m/class method.snippet @@ -0,0 +1,4 @@ ++ (${1:id}) ${2:method} +{${3} + return nil; +} diff --git a/vim/snippets/objc/m/method.snippet b/vim/snippets/objc/m/method.snippet new file mode 100755 index 0000000..9f7390e --- /dev/null +++ b/vim/snippets/objc/m/method.snippet @@ -0,0 +1,4 @@ +- (${1:id}) ${2:method} +{${3} + ${4:return nil;} +} diff --git a/vim/snippets/objc/objacc.snippet b/vim/snippets/objc/objacc.snippet new file mode 100755 index 0000000..840ebfd --- /dev/null +++ b/vim/snippets/objc/objacc.snippet @@ -0,0 +1,11 @@ +- (${1:id})${2:thing} +{ + return $2; +} + +- (void) set$2:($1) +{ + $1 old$2 = $2; + $2 = [aValue retain]; + [old$2 release]; +} diff --git a/vim/snippets/objc/objc.snippet b/vim/snippets/objc/objc.snippet new file mode 100755 index 0000000..d667148 --- /dev/null +++ b/vim/snippets/objc/objc.snippet @@ -0,0 +1,14 @@ +@interface ${1:`Filename('', 'object')`} : ${2:NSObject} +{ +} +@end + +@implementation $1 +- (id) init +{ + if (self = [super init]) + {${3} + } + return self +} +@end diff --git a/vim/snippets/objc/prop.snippet b/vim/snippets/objc/prop.snippet new file mode 100755 index 0000000..d77495a --- /dev/null +++ b/vim/snippets/objc/prop.snippet @@ -0,0 +1 @@ +@property (${1:retain}) ${2:NSSomeClass} *${3:$2};${4} diff --git a/vim/snippets/objc/rel.snippet b/vim/snippets/objc/rel.snippet new file mode 100755 index 0000000..5dea04d --- /dev/null +++ b/vim/snippets/objc/rel.snippet @@ -0,0 +1 @@ +[${1:foo} release];${2} diff --git a/vim/snippets/objc/ret.snippet b/vim/snippets/objc/ret.snippet new file mode 100755 index 0000000..ee8eba4 --- /dev/null +++ b/vim/snippets/objc/ret.snippet @@ -0,0 +1 @@ +[${1:foo} retain];${2} diff --git a/vim/snippets/objc/sel.snippet b/vim/snippets/objc/sel.snippet new file mode 100755 index 0000000..4d4996d --- /dev/null +++ b/vim/snippets/objc/sel.snippet @@ -0,0 +1 @@ +@selector(${1:method}:)${2} diff --git a/vim/snippets/objc/sm.snippet b/vim/snippets/objc/sm.snippet new file mode 100755 index 0000000..af139a9 --- /dev/null +++ b/vim/snippets/objc/sm.snippet @@ -0,0 +1,5 @@ +- (${1:id}) ${2:method}:(${3:id})${4:anArgument} +{ + $1 res = [super $2:$4];${5} + return res; +} diff --git a/vim/snippets/objc/syn.snippet b/vim/snippets/objc/syn.snippet new file mode 100755 index 0000000..eef7581 --- /dev/null +++ b/vim/snippets/objc/syn.snippet @@ -0,0 +1 @@ +@synthesize ${1:NSSomeClass};${2} diff --git a/vim/snippets/php-cake/actas.snippet b/vim/snippets/php-cake/actas.snippet new file mode 100755 index 0000000..8993089 --- /dev/null +++ b/vim/snippets/php-cake/actas.snippet @@ -0,0 +1,3 @@ +var $actsAs = array( + '${1:BehaviorName}'${2: => ${3:ConfigForBehavior}} +); diff --git a/vim/snippets/php-cake/addc.snippet b/vim/snippets/php-cake/addc.snippet new file mode 100755 index 0000000..9a885f6 --- /dev/null +++ b/vim/snippets/php-cake/addc.snippet @@ -0,0 +1 @@ +addCrumb('${1:CrumbName}'${2:, '${3:CrumbLink}'}) ?> diff --git a/vim/snippets/php-cake/aftdel.snippet b/vim/snippets/php-cake/aftdel.snippet new file mode 100755 index 0000000..8993d9c --- /dev/null +++ b/vim/snippets/php-cake/aftdel.snippet @@ -0,0 +1,3 @@ +function afterDelete() { + ${1} +}; diff --git a/vim/snippets/php-cake/aftfin.snippet b/vim/snippets/php-cake/aftfin.snippet new file mode 100755 index 0000000..4981233 --- /dev/null +++ b/vim/snippets/php-cake/aftfin.snippet @@ -0,0 +1,3 @@ +function afterFind() { + ${1} +}; diff --git a/vim/snippets/php-cake/aftfind.snippet b/vim/snippets/php-cake/aftfind.snippet new file mode 100755 index 0000000..a4b1fd3 --- /dev/null +++ b/vim/snippets/php-cake/aftfind.snippet @@ -0,0 +1,3 @@ +function afterFind(${1:$results}) { + ${2} +}; diff --git a/vim/snippets/php-cake/aftsave.snippet b/vim/snippets/php-cake/aftsave.snippet new file mode 100755 index 0000000..0a2316f --- /dev/null +++ b/vim/snippets/php-cake/aftsave.snippet @@ -0,0 +1,3 @@ +function afterSave(${1:$created}) { + ${2} +}; diff --git a/vim/snippets/php-cake/aftss.snippet b/vim/snippets/php-cake/aftss.snippet new file mode 100755 index 0000000..f651d68 --- /dev/null +++ b/vim/snippets/php-cake/aftss.snippet @@ -0,0 +1,4 @@ +function _afterScaffoldSave($method) { + ${1} + return true; +}; diff --git a/vim/snippets/php-cake/aftsse.snippet b/vim/snippets/php-cake/aftsse.snippet new file mode 100755 index 0000000..c8c279d --- /dev/null +++ b/vim/snippets/php-cake/aftsse.snippet @@ -0,0 +1,4 @@ +function _afterScaffoldSaveError($method) { + ${1} + return true; +}; diff --git a/vim/snippets/php-cake/befdel.snippet b/vim/snippets/php-cake/befdel.snippet new file mode 100755 index 0000000..0a6f101 --- /dev/null +++ b/vim/snippets/php-cake/befdel.snippet @@ -0,0 +1,3 @@ +function beforeDelete() { + ${1} +}; diff --git a/vim/snippets/php-cake/beffil.snippet b/vim/snippets/php-cake/beffil.snippet new file mode 100755 index 0000000..0f73b57 --- /dev/null +++ b/vim/snippets/php-cake/beffil.snippet @@ -0,0 +1,3 @@ +function beforeFilter() { + ${1} +}; diff --git a/vim/snippets/php-cake/beffind.snippet b/vim/snippets/php-cake/beffind.snippet new file mode 100755 index 0000000..8007051 --- /dev/null +++ b/vim/snippets/php-cake/beffind.snippet @@ -0,0 +1,3 @@ +function beforeFind(${1:$queryData}) { + ${2} +}; diff --git a/vim/snippets/php-cake/befren.snippet b/vim/snippets/php-cake/befren.snippet new file mode 100755 index 0000000..da9ed66 --- /dev/null +++ b/vim/snippets/php-cake/befren.snippet @@ -0,0 +1,3 @@ +function beforeRender() { + ${1} +}; diff --git a/vim/snippets/php-cake/befsave.snippet b/vim/snippets/php-cake/befsave.snippet new file mode 100755 index 0000000..b169a7f --- /dev/null +++ b/vim/snippets/php-cake/befsave.snippet @@ -0,0 +1,3 @@ +function beforeSave() { + ${1} +}; diff --git a/vim/snippets/php-cake/befsca.snippet b/vim/snippets/php-cake/befsca.snippet new file mode 100755 index 0000000..af1c231 --- /dev/null +++ b/vim/snippets/php-cake/befsca.snippet @@ -0,0 +1,4 @@ +function _beforeScaffold($method) { + ${1} + return true; +}; diff --git a/vim/snippets/php-cake/befval.snippet b/vim/snippets/php-cake/befval.snippet new file mode 100755 index 0000000..81d7d7e --- /dev/null +++ b/vim/snippets/php-cake/befval.snippet @@ -0,0 +1,3 @@ +function beforeValidate() { + ${1} +}; diff --git a/vim/snippets/php-cake/bt.snippet b/vim/snippets/php-cake/bt.snippet new file mode 100755 index 0000000..9c1c6e8 --- /dev/null +++ b/vim/snippets/php-cake/bt.snippet @@ -0,0 +1,3 @@ +var $belongsTo = array( + '${1:Model}'${2: => array(${3:'className' => '${4:${1:ModelClassName}}',}${5:'foreignKey' => '${6:foreign_key_field}'})} +); diff --git a/vim/snippets/php-cake/cbefdel.snippet b/vim/snippets/php-cake/cbefdel.snippet new file mode 100755 index 0000000..b55eea9 --- /dev/null +++ b/vim/snippets/php-cake/cbefdel.snippet @@ -0,0 +1,3 @@ +function beforeDelete($controller, $url, $status, $exit) { + ${1} +}; diff --git a/vim/snippets/php-cake/cfg.snippet b/vim/snippets/php-cake/cfg.snippet new file mode 100755 index 0000000..5f67cfd --- /dev/null +++ b/vim/snippets/php-cake/cfg.snippet @@ -0,0 +1 @@ +$config['${1:...}'] = ${2:'${3:...}'} diff --git a/vim/snippets/php-cake/cfl.snippet b/vim/snippets/php-cake/cfl.snippet new file mode 100755 index 0000000..7ba0d1b --- /dev/null +++ b/vim/snippets/php-cake/cfl.snippet @@ -0,0 +1 @@ +echo $content_for_layout diff --git a/vim/snippets/php-cake/cinit.snippet b/vim/snippets/php-cake/cinit.snippet new file mode 100755 index 0000000..9565975 --- /dev/null +++ b/vim/snippets/php-cake/cinit.snippet @@ -0,0 +1,4 @@ +function initialize(&$controller) { + $this->controller = &$controller; + ${1} +}; diff --git a/vim/snippets/php-cake/cri.snippet b/vim/snippets/php-cake/cri.snippet new file mode 100755 index 0000000..72dc4fc --- /dev/null +++ b/vim/snippets/php-cake/cri.snippet @@ -0,0 +1 @@ +$${1:varName} = ClassRegistry::init('${2:ClassName}'); diff --git a/vim/snippets/php-cake/dat.snippet b/vim/snippets/php-cake/dat.snippet new file mode 100755 index 0000000..2754cd5 --- /dev/null +++ b/vim/snippets/php-cake/dat.snippet @@ -0,0 +1 @@ +$this->data${1:['${2:...}']} diff --git a/vim/snippets/php-cake/dbg.snippet b/vim/snippets/php-cake/dbg.snippet new file mode 100755 index 0000000..974db04 --- /dev/null +++ b/vim/snippets/php-cake/dbg.snippet @@ -0,0 +1 @@ +debug(${1:$var}); diff --git a/vim/snippets/php-cake/dela.snippet b/vim/snippets/php-cake/dela.snippet new file mode 100755 index 0000000..c038105 --- /dev/null +++ b/vim/snippets/php-cake/dela.snippet @@ -0,0 +1 @@ +$this->${1:Model}->deleteAll(${2:$conditions}${3:, ${4: $cascade}}) diff --git a/vim/snippets/php-cake/ele.snippet b/vim/snippets/php-cake/ele.snippet new file mode 100755 index 0000000..e2f1bf9 --- /dev/null +++ b/vim/snippets/php-cake/ele.snippet @@ -0,0 +1 @@ +element('${1:path/to/element}') ?> diff --git a/vim/snippets/php-cake/fchk.snippet b/vim/snippets/php-cake/fchk.snippet new file mode 100755 index 0000000..5dedad3 --- /dev/null +++ b/vim/snippets/php-cake/fchk.snippet @@ -0,0 +1 @@ +checkbox(${1:'${2:name}'}) ?> diff --git a/vim/snippets/php-cake/fcre.snippet b/vim/snippets/php-cake/fcre.snippet new file mode 100755 index 0000000..05f0bc1 --- /dev/null +++ b/vim/snippets/php-cake/fcre.snippet @@ -0,0 +1 @@ +create(${1:name}') ?> diff --git a/vim/snippets/php-cake/fend.snippet b/vim/snippets/php-cake/fend.snippet new file mode 100755 index 0000000..92f3d35 --- /dev/null +++ b/vim/snippets/php-cake/fend.snippet @@ -0,0 +1 @@ +end(${2:'${3:SubmitButtonValue}'}) ?> diff --git a/vim/snippets/php-cake/ferr.snippet b/vim/snippets/php-cake/ferr.snippet new file mode 100755 index 0000000..d241a4d --- /dev/null +++ b/vim/snippets/php-cake/ferr.snippet @@ -0,0 +1 @@ +error(${1:'$2'}, ${3:'$4'}) ?> diff --git a/vim/snippets/php-cake/ffil.snippet b/vim/snippets/php-cake/ffil.snippet new file mode 100755 index 0000000..83e8890 --- /dev/null +++ b/vim/snippets/php-cake/ffil.snippet @@ -0,0 +1 @@ +file(${1:'${2:name}'}) ?> diff --git a/vim/snippets/php-cake/fhid.snippet b/vim/snippets/php-cake/fhid.snippet new file mode 100755 index 0000000..241360a --- /dev/null +++ b/vim/snippets/php-cake/fhid.snippet @@ -0,0 +1 @@ +hidden(${1:'${2:name}'}) ?> diff --git a/vim/snippets/php-cake/finp.snippet b/vim/snippets/php-cake/finp.snippet new file mode 100755 index 0000000..0b0b90d --- /dev/null +++ b/vim/snippets/php-cake/finp.snippet @@ -0,0 +1 @@ +input(${1:'${2:name}'}) ?> diff --git a/vim/snippets/php-cake/flbl.snippet b/vim/snippets/php-cake/flbl.snippet new file mode 100755 index 0000000..a1ea3fb --- /dev/null +++ b/vim/snippets/php-cake/flbl.snippet @@ -0,0 +1 @@ +label(${1:'${2:fieldName}'}, ${3:'${4:labelText}'}) ?> diff --git a/vim/snippets/php-cake/fpwd.snippet b/vim/snippets/php-cake/fpwd.snippet new file mode 100755 index 0000000..716b3e3 --- /dev/null +++ b/vim/snippets/php-cake/fpwd.snippet @@ -0,0 +1 @@ +password(${1:'${2:name}'}) ?> diff --git a/vim/snippets/php-cake/frad.snippet b/vim/snippets/php-cake/frad.snippet new file mode 100755 index 0000000..ab9a9ac --- /dev/null +++ b/vim/snippets/php-cake/frad.snippet @@ -0,0 +1 @@ +radio(${1:'${2:name}'}) ?> diff --git a/vim/snippets/php-cake/fsel.snippet b/vim/snippets/php-cake/fsel.snippet new file mode 100755 index 0000000..b363719 --- /dev/null +++ b/vim/snippets/php-cake/fsel.snippet @@ -0,0 +1 @@ +select(${1:'${2:name}'}, ${3:$options}, ${4:$selected}, ${5:$attributes}, ${6:$showEmpty}) ?> diff --git a/vim/snippets/php-cake/fsub.snippet b/vim/snippets/php-cake/fsub.snippet new file mode 100755 index 0000000..289d32a --- /dev/null +++ b/vim/snippets/php-cake/fsub.snippet @@ -0,0 +1 @@ +submit(${1:'${2:name}'}) ?> diff --git a/vim/snippets/php-cake/fsubimg.snippet b/vim/snippets/php-cake/fsubimg.snippet new file mode 100755 index 0000000..3be4490 --- /dev/null +++ b/vim/snippets/php-cake/fsubimg.snippet @@ -0,0 +1 @@ +submitImage(${1:$path}) ?> diff --git a/vim/snippets/php-cake/ftarea.snippet b/vim/snippets/php-cake/ftarea.snippet new file mode 100755 index 0000000..f61b7a6 --- /dev/null +++ b/vim/snippets/php-cake/ftarea.snippet @@ -0,0 +1 @@ +textarea(${1:'${2:name}'}) ?> diff --git a/vim/snippets/php-cake/ftxt.snippet b/vim/snippets/php-cake/ftxt.snippet new file mode 100755 index 0000000..5eda1d7 --- /dev/null +++ b/vim/snippets/php-cake/ftxt.snippet @@ -0,0 +1 @@ +text(${1:'${2:name}'}) ?> diff --git a/vim/snippets/php-cake/getc.snippet b/vim/snippets/php-cake/getc.snippet new file mode 100755 index 0000000..d76cbda --- /dev/null +++ b/vim/snippets/php-cake/getc.snippet @@ -0,0 +1 @@ +getCrumbs(${1:'${2:«separator»}'}) ?> diff --git a/vim/snippets/php-cake/habtm.snippet b/vim/snippets/php-cake/habtm.snippet new file mode 100755 index 0000000..1c1f059 --- /dev/null +++ b/vim/snippets/php-cake/habtm.snippet @@ -0,0 +1,3 @@ +var $hasAndBelongsToMany = array( + '${1:Model}'${2: => array(${3:'className' => '${4:${1:ModelClassName}}',}${5:'foreignKey' => '${6:foreign_key_field}'})} +); diff --git a/vim/snippets/php-cake/hm.snippet b/vim/snippets/php-cake/hm.snippet new file mode 100755 index 0000000..8a94f52 --- /dev/null +++ b/vim/snippets/php-cake/hm.snippet @@ -0,0 +1,3 @@ +var $hasMany = array( + '${1:Model}'${2: => array(${3:'className' => '${4:${1:ModelClassName}}',}${5:'foreignKey' => '${6:foreign_key_field}'})} +); diff --git a/vim/snippets/php-cake/ho.snippet b/vim/snippets/php-cake/ho.snippet new file mode 100755 index 0000000..b2c8817 --- /dev/null +++ b/vim/snippets/php-cake/ho.snippet @@ -0,0 +1,3 @@ +var $hasOne = array( + '${1:Model}'${2: => array(${3:'className' => '${4:${1:ModelClassName}}',}${5:'foreignKey' => '${6:foreign_key_field}'})} +); diff --git a/vim/snippets/php-cake/imp.snippet b/vim/snippets/php-cake/imp.snippet new file mode 100755 index 0000000..9668e53 --- /dev/null +++ b/vim/snippets/php-cake/imp.snippet @@ -0,0 +1 @@ +App::import('${1:Core}', '${2:ClassName}'); diff --git a/vim/snippets/php-cake/inflector/camelize.snippet b/vim/snippets/php-cake/inflector/camelize.snippet new file mode 100755 index 0000000..b38fc7b --- /dev/null +++ b/vim/snippets/php-cake/inflector/camelize.snippet @@ -0,0 +1 @@ +Inflector::camelize(${1:$word}) diff --git a/vim/snippets/php-cake/inflector/classify.snippet b/vim/snippets/php-cake/inflector/classify.snippet new file mode 100755 index 0000000..d82a393 --- /dev/null +++ b/vim/snippets/php-cake/inflector/classify.snippet @@ -0,0 +1 @@ +Inflector::classify(${1:$word}) diff --git a/vim/snippets/php-cake/inflector/humanize.snippet b/vim/snippets/php-cake/inflector/humanize.snippet new file mode 100755 index 0000000..edecd12 --- /dev/null +++ b/vim/snippets/php-cake/inflector/humanize.snippet @@ -0,0 +1 @@ +Inflector::humanize(${1:$word}) diff --git a/vim/snippets/php-cake/inflector/pluralize.snippet b/vim/snippets/php-cake/inflector/pluralize.snippet new file mode 100755 index 0000000..255bbba --- /dev/null +++ b/vim/snippets/php-cake/inflector/pluralize.snippet @@ -0,0 +1 @@ +Inflector::pluralize(${1:$word}) diff --git a/vim/snippets/php-cake/inflector/singularize.snippet b/vim/snippets/php-cake/inflector/singularize.snippet new file mode 100755 index 0000000..0cf3100 --- /dev/null +++ b/vim/snippets/php-cake/inflector/singularize.snippet @@ -0,0 +1 @@ +Inflector::singularize(${1:$word}) diff --git a/vim/snippets/php-cake/inflector/slug.snippet b/vim/snippets/php-cake/inflector/slug.snippet new file mode 100755 index 0000000..1cf7124 --- /dev/null +++ b/vim/snippets/php-cake/inflector/slug.snippet @@ -0,0 +1 @@ +Inflector::slug(${1:$word}) diff --git a/vim/snippets/php-cake/inflector/tabelize.snippet b/vim/snippets/php-cake/inflector/tabelize.snippet new file mode 100755 index 0000000..b3dd469 --- /dev/null +++ b/vim/snippets/php-cake/inflector/tabelize.snippet @@ -0,0 +1 @@ +Inflector::tabelize(${1:$word}) diff --git a/vim/snippets/php-cake/inflector/underscore.snippet b/vim/snippets/php-cake/inflector/underscore.snippet new file mode 100755 index 0000000..ab06858 --- /dev/null +++ b/vim/snippets/php-cake/inflector/underscore.snippet @@ -0,0 +1 @@ +Inflector::underscore(${1:$word}) diff --git a/vim/snippets/php-cake/inflector/variable.snippet b/vim/snippets/php-cake/inflector/variable.snippet new file mode 100755 index 0000000..5bbe8ea --- /dev/null +++ b/vim/snippets/php-cake/inflector/variable.snippet @@ -0,0 +1 @@ +Inflector::variable(${1:$word}) diff --git a/vim/snippets/php-cake/lay.snippet b/vim/snippets/php-cake/lay.snippet new file mode 100755 index 0000000..f7ccee7 --- /dev/null +++ b/vim/snippets/php-cake/lay.snippet @@ -0,0 +1 @@ +var $layout = ${1:'${2}'}; diff --git a/vim/snippets/php-cake/lay=.snippet b/vim/snippets/php-cake/lay=.snippet new file mode 100755 index 0000000..f2300cd --- /dev/null +++ b/vim/snippets/php-cake/lay=.snippet @@ -0,0 +1 @@ +var $layout = ${1:}'${2:layout_name}'; diff --git a/vim/snippets/php-cake/lia.snippet b/vim/snippets/php-cake/lia.snippet new file mode 100755 index 0000000..f6288f7 --- /dev/null +++ b/vim/snippets/php-cake/lia.snippet @@ -0,0 +1 @@ +link('${1:Link Title}', array('action' => '${2:action_name}')) ?> diff --git a/vim/snippets/php-cake/lic.snippet b/vim/snippets/php-cake/lic.snippet new file mode 100755 index 0000000..fb41512 --- /dev/null +++ b/vim/snippets/php-cake/lic.snippet @@ -0,0 +1 @@ +link('${1:Link Title}', array('controller' => '${2:controller_name}')) ?> diff --git a/vim/snippets/php-cake/lica.snippet b/vim/snippets/php-cake/lica.snippet new file mode 100755 index 0000000..b990f1f --- /dev/null +++ b/vim/snippets/php-cake/lica.snippet @@ -0,0 +1 @@ +link('${1:Link Title}', array('controller' => '${2:controller_name}', 'action' => '${3:action_name}')) ?> diff --git a/vim/snippets/php-cake/lin.snippet b/vim/snippets/php-cake/lin.snippet new file mode 100755 index 0000000..67c9314 --- /dev/null +++ b/vim/snippets/php-cake/lin.snippet @@ -0,0 +1 @@ +link('${1:Link Title}', '${2:/controller/action}') ?> diff --git a/vim/snippets/php-cake/matom.snippet b/vim/snippets/php-cake/matom.snippet new file mode 100755 index 0000000..1b87b52 --- /dev/null +++ b/vim/snippets/php-cake/matom.snippet @@ -0,0 +1 @@ +meta('atom', ${1:$this->webroot('${2:atom.xml}')}) ?> diff --git a/vim/snippets/php-cake/mdel.snippet b/vim/snippets/php-cake/mdel.snippet new file mode 100755 index 0000000..ed77485 --- /dev/null +++ b/vim/snippets/php-cake/mdel.snippet @@ -0,0 +1 @@ +$this->${1:Model}->del(${2:$id}${3:, ${4: $cascade}}) diff --git a/vim/snippets/php-cake/mdesc.snippet b/vim/snippets/php-cake/mdesc.snippet new file mode 100755 index 0000000..57f6317 --- /dev/null +++ b/vim/snippets/php-cake/mdesc.snippet @@ -0,0 +1 @@ +meta('description', ${1:'${2:your description here}'}) ?> diff --git a/vim/snippets/php-cake/mfind.snippet b/vim/snippets/php-cake/mfind.snippet new file mode 100755 index 0000000..656563d --- /dev/null +++ b/vim/snippets/php-cake/mfind.snippet @@ -0,0 +1 @@ +$this->${1:Model}->find(${2:...}) diff --git a/vim/snippets/php-cake/mfinda.snippet b/vim/snippets/php-cake/mfinda.snippet new file mode 100755 index 0000000..2a45972 --- /dev/null +++ b/vim/snippets/php-cake/mfinda.snippet @@ -0,0 +1 @@ +$this->${1:Model}->find('all', ${2:...}) diff --git a/vim/snippets/php-cake/mfindb.snippet b/vim/snippets/php-cake/mfindb.snippet new file mode 100755 index 0000000..9467123 --- /dev/null +++ b/vim/snippets/php-cake/mfindb.snippet @@ -0,0 +1 @@ +$this->${1:Model}->findBy${2:ColumnName}(${3:...}) diff --git a/vim/snippets/php-cake/mfindc.snippet b/vim/snippets/php-cake/mfindc.snippet new file mode 100755 index 0000000..6eb2e8b --- /dev/null +++ b/vim/snippets/php-cake/mfindc.snippet @@ -0,0 +1 @@ +$this->${1:Model}->find('count', ${2:...}) diff --git a/vim/snippets/php-cake/mfindf.snippet b/vim/snippets/php-cake/mfindf.snippet new file mode 100755 index 0000000..42a9f14 --- /dev/null +++ b/vim/snippets/php-cake/mfindf.snippet @@ -0,0 +1 @@ +$this->${1:Model}->find('first', ${2:...}) diff --git a/vim/snippets/php-cake/mfindl.snippet b/vim/snippets/php-cake/mfindl.snippet new file mode 100755 index 0000000..21dbdcf --- /dev/null +++ b/vim/snippets/php-cake/mfindl.snippet @@ -0,0 +1 @@ +$this->${1:Model}->find('list', ${2:...}) diff --git a/vim/snippets/php-cake/mfindn.snippet b/vim/snippets/php-cake/mfindn.snippet new file mode 100755 index 0000000..1872a23 --- /dev/null +++ b/vim/snippets/php-cake/mfindn.snippet @@ -0,0 +1 @@ +$this->${1:Model}->find('neighbors', ${2:...}) diff --git a/vim/snippets/php-cake/mfindt.snippet b/vim/snippets/php-cake/mfindt.snippet new file mode 100755 index 0000000..0b62412 --- /dev/null +++ b/vim/snippets/php-cake/mfindt.snippet @@ -0,0 +1 @@ +$this->${1:Model}->find('threaded', ${2:...}) diff --git a/vim/snippets/php-cake/micon.snippet b/vim/snippets/php-cake/micon.snippet new file mode 100755 index 0000000..658c2e4 --- /dev/null +++ b/vim/snippets/php-cake/micon.snippet @@ -0,0 +1 @@ +meta('icon', ${1:$this->webroot('${2:favicon.ico}')}) ?> diff --git a/vim/snippets/php-cake/mid.snippet b/vim/snippets/php-cake/mid.snippet new file mode 100755 index 0000000..bdfe461 --- /dev/null +++ b/vim/snippets/php-cake/mid.snippet @@ -0,0 +1 @@ +$this->${1:Model}->id = ${2:$id}; diff --git a/vim/snippets/php-cake/mifsave.snippet b/vim/snippets/php-cake/mifsave.snippet new file mode 100755 index 0000000..e6e66ff --- /dev/null +++ b/vim/snippets/php-cake/mifsave.snippet @@ -0,0 +1,5 @@ +if ($this->${1:Model}->save(${2:$this->data})) { + $3 +} else { + $4 +}; diff --git a/vim/snippets/php-cake/mkeyw.snippet b/vim/snippets/php-cake/mkeyw.snippet new file mode 100755 index 0000000..73e22fb --- /dev/null +++ b/vim/snippets/php-cake/mkeyw.snippet @@ -0,0 +1 @@ +meta('keywords', ${1:'${2:your, keywords, here}'}) ?> diff --git a/vim/snippets/php-cake/mrem.snippet b/vim/snippets/php-cake/mrem.snippet new file mode 100755 index 0000000..ecc7de6 --- /dev/null +++ b/vim/snippets/php-cake/mrem.snippet @@ -0,0 +1 @@ +$this->${1:Model}->remove(${2:$id}${3:, ${4: $cascade}) diff --git a/vim/snippets/php-cake/mrss.snippet b/vim/snippets/php-cake/mrss.snippet new file mode 100755 index 0000000..44809bd --- /dev/null +++ b/vim/snippets/php-cake/mrss.snippet @@ -0,0 +1 @@ +meta('rss', ${1:$this->webroot('${2:feed.rss}')}) ?> diff --git a/vim/snippets/php-cake/msave.snippet b/vim/snippets/php-cake/msave.snippet new file mode 100755 index 0000000..c7f506b --- /dev/null +++ b/vim/snippets/php-cake/msave.snippet @@ -0,0 +1 @@ +$this->${1:Model}->save(${2:$this->data}) diff --git a/vim/snippets/php-cake/msavef.snippet b/vim/snippets/php-cake/msavef.snippet new file mode 100755 index 0000000..3d95af5 --- /dev/null +++ b/vim/snippets/php-cake/msavef.snippet @@ -0,0 +1 @@ +$this->${1:Model}->saveField(${2:'$3'}, ${4:$fieldValue}) diff --git a/vim/snippets/php-cake/mupa.snippet b/vim/snippets/php-cake/mupa.snippet new file mode 100755 index 0000000..448e4a6 --- /dev/null +++ b/vim/snippets/php-cake/mupa.snippet @@ -0,0 +1 @@ +$this->${1:Model}->updateAll(${2:$fields}${3:, ${4: $conditions}}) diff --git a/vim/snippets/php-cake/newbeh.snippet b/vim/snippets/php-cake/newbeh.snippet new file mode 100755 index 0000000..5dbae0a --- /dev/null +++ b/vim/snippets/php-cake/newbeh.snippet @@ -0,0 +1,3 @@ +class ${1:My}Behavior extends ModelBehavior { + ${2:// My Code ...} +}; diff --git a/vim/snippets/php-cake/newcom.snippet b/vim/snippets/php-cake/newcom.snippet new file mode 100755 index 0000000..c356754 --- /dev/null +++ b/vim/snippets/php-cake/newcom.snippet @@ -0,0 +1,4 @@ +class ${1:My}Component extends Object { + ${2:var $controller;} + ${3} +}; diff --git a/vim/snippets/php-cake/newcon.snippet b/vim/snippets/php-cake/newcon.snippet new file mode 100755 index 0000000..df207d6 --- /dev/null +++ b/vim/snippets/php-cake/newcon.snippet @@ -0,0 +1,3 @@ +class ${1:My}Controller extends AppController { + ${2:// My Code ...} +}; diff --git a/vim/snippets/php-cake/newhel.snippet b/vim/snippets/php-cake/newhel.snippet new file mode 100755 index 0000000..7096a00 --- /dev/null +++ b/vim/snippets/php-cake/newhel.snippet @@ -0,0 +1,3 @@ +class ${1:My}Helper extends AppHelper { + ${2:// My Code ...} +}; diff --git a/vim/snippets/php-cake/newmod.snippet b/vim/snippets/php-cake/newmod.snippet new file mode 100755 index 0000000..4b167fe --- /dev/null +++ b/vim/snippets/php-cake/newmod.snippet @@ -0,0 +1,3 @@ +class ${1:My}Model extends AppModel { + ${2:// My Code ...} +}; diff --git a/vim/snippets/php-cake/onerr.snippet b/vim/snippets/php-cake/onerr.snippet new file mode 100755 index 0000000..aca7d1b --- /dev/null +++ b/vim/snippets/php-cake/onerr.snippet @@ -0,0 +1,3 @@ +function onError() { + ${1} +}; diff --git a/vim/snippets/php-cake/par.snippet b/vim/snippets/php-cake/par.snippet new file mode 100755 index 0000000..7c12d87 --- /dev/null +++ b/vim/snippets/php-cake/par.snippet @@ -0,0 +1 @@ +$this->params['${1:...}'] diff --git a/vim/snippets/php-cake/pr.snippet b/vim/snippets/php-cake/pr.snippet new file mode 100755 index 0000000..f1f67f4 --- /dev/null +++ b/vim/snippets/php-cake/pr.snippet @@ -0,0 +1 @@ +pr(${1:$var}); diff --git a/vim/snippets/php-cake/pt=.snippet b/vim/snippets/php-cake/pt=.snippet new file mode 100755 index 0000000..de0ac14 --- /dev/null +++ b/vim/snippets/php-cake/pt=.snippet @@ -0,0 +1 @@ +var $this->pageTitle = ${1:'${2:Page Title}'}; diff --git a/vim/snippets/php-cake/ran.snippet b/vim/snippets/php-cake/ran.snippet new file mode 100755 index 0000000..b00a865 --- /dev/null +++ b/vim/snippets/php-cake/ran.snippet @@ -0,0 +1 @@ +'rule' => 'alphaNumeric' diff --git a/vim/snippets/php-cake/rbe.snippet b/vim/snippets/php-cake/rbe.snippet new file mode 100755 index 0000000..ff5ebac --- /dev/null +++ b/vim/snippets/php-cake/rbe.snippet @@ -0,0 +1 @@ +'rule' => array('between', ${1:min}, ${2:max}) diff --git a/vim/snippets/php-cake/rbl.snippet b/vim/snippets/php-cake/rbl.snippet new file mode 100755 index 0000000..d05c705 --- /dev/null +++ b/vim/snippets/php-cake/rbl.snippet @@ -0,0 +1 @@ +'rule' => 'blank' diff --git a/vim/snippets/php-cake/rbo.snippet b/vim/snippets/php-cake/rbo.snippet new file mode 100755 index 0000000..ca951a3 --- /dev/null +++ b/vim/snippets/php-cake/rbo.snippet @@ -0,0 +1 @@ +'rule' => 'boolean' diff --git a/vim/snippets/php-cake/rcc.snippet b/vim/snippets/php-cake/rcc.snippet new file mode 100755 index 0000000..2fb321d --- /dev/null +++ b/vim/snippets/php-cake/rcc.snippet @@ -0,0 +1 @@ +'rule' => array('cc', '${1:visa}') diff --git a/vim/snippets/php-cake/rco.snippet b/vim/snippets/php-cake/rco.snippet new file mode 100755 index 0000000..ce97c7d --- /dev/null +++ b/vim/snippets/php-cake/rco.snippet @@ -0,0 +1 @@ +'rule' => array('comparison', '${1:an operator}'${2:, '{3:a second value}'}) diff --git a/vim/snippets/php-cake/rcu.snippet b/vim/snippets/php-cake/rcu.snippet new file mode 100755 index 0000000..0ef9070 --- /dev/null +++ b/vim/snippets/php-cake/rcu.snippet @@ -0,0 +1 @@ +'rule' => array('custom', '${1:regular expression}') diff --git a/vim/snippets/php-cake/rda.snippet b/vim/snippets/php-cake/rda.snippet new file mode 100755 index 0000000..bed6ed8 --- /dev/null +++ b/vim/snippets/php-cake/rda.snippet @@ -0,0 +1 @@ +'rule' => array('date', '${1:Ymd}') diff --git a/vim/snippets/php-cake/rde.snippet b/vim/snippets/php-cake/rde.snippet new file mode 100755 index 0000000..c6a4037 --- /dev/null +++ b/vim/snippets/php-cake/rde.snippet @@ -0,0 +1 @@ +'rule' => 'decimal' diff --git a/vim/snippets/php-cake/rea.snippet b/vim/snippets/php-cake/rea.snippet new file mode 100755 index 0000000..17408f2 --- /dev/null +++ b/vim/snippets/php-cake/rea.snippet @@ -0,0 +1 @@ +$this->redirect(array('action' => '${1:action_name}')); diff --git a/vim/snippets/php-cake/rec.snippet b/vim/snippets/php-cake/rec.snippet new file mode 100755 index 0000000..61cabeb --- /dev/null +++ b/vim/snippets/php-cake/rec.snippet @@ -0,0 +1 @@ +$this->redirect(array('controller' => '${1:controller_name}')); diff --git a/vim/snippets/php-cake/reca.snippet b/vim/snippets/php-cake/reca.snippet new file mode 100755 index 0000000..e9cc2a2 --- /dev/null +++ b/vim/snippets/php-cake/reca.snippet @@ -0,0 +1 @@ +$this->redirect(array('controller' => '${1:controller_name}', 'action' => '${2:action_name}')); diff --git a/vim/snippets/php-cake/redir.snippet b/vim/snippets/php-cake/redir.snippet new file mode 100755 index 0000000..78afc12 --- /dev/null +++ b/vim/snippets/php-cake/redir.snippet @@ -0,0 +1 @@ +$this->redirect('${1:/controller/action}'); diff --git a/vim/snippets/php-cake/rem.snippet b/vim/snippets/php-cake/rem.snippet new file mode 100755 index 0000000..7760730 --- /dev/null +++ b/vim/snippets/php-cake/rem.snippet @@ -0,0 +1 @@ +'rule' => 'email' diff --git a/vim/snippets/php-cake/ren.snippet b/vim/snippets/php-cake/ren.snippet new file mode 100755 index 0000000..64a586e --- /dev/null +++ b/vim/snippets/php-cake/ren.snippet @@ -0,0 +1 @@ +renderElement('${1:path/to/element}') ?> diff --git a/vim/snippets/php-cake/req.snippet b/vim/snippets/php-cake/req.snippet new file mode 100755 index 0000000..35d1247 --- /dev/null +++ b/vim/snippets/php-cake/req.snippet @@ -0,0 +1 @@ +'rule' => array('equalTo', '${1:another value}') diff --git a/vim/snippets/php-cake/rex.snippet b/vim/snippets/php-cake/rex.snippet new file mode 100755 index 0000000..e44e035 --- /dev/null +++ b/vim/snippets/php-cake/rex.snippet @@ -0,0 +1 @@ +'rule' => array('extension', array('${1:jpg}'${2:, '${3:gif}'})) diff --git a/vim/snippets/php-cake/rfi.snippet b/vim/snippets/php-cake/rfi.snippet new file mode 100755 index 0000000..0580ed1 --- /dev/null +++ b/vim/snippets/php-cake/rfi.snippet @@ -0,0 +1 @@ +'rule' => 'file' diff --git a/vim/snippets/php-cake/rin.snippet b/vim/snippets/php-cake/rin.snippet new file mode 100755 index 0000000..a0ffbae --- /dev/null +++ b/vim/snippets/php-cake/rin.snippet @@ -0,0 +1 @@ +'rule' => array('inList', array(${1:List Items})) diff --git a/vim/snippets/php-cake/rip.snippet b/vim/snippets/php-cake/rip.snippet new file mode 100755 index 0000000..8383d4d --- /dev/null +++ b/vim/snippets/php-cake/rip.snippet @@ -0,0 +1 @@ +'rule' => 'ip' diff --git a/vim/snippets/php-cake/rma.snippet b/vim/snippets/php-cake/rma.snippet new file mode 100755 index 0000000..155a9f8 --- /dev/null +++ b/vim/snippets/php-cake/rma.snippet @@ -0,0 +1 @@ +'rule' => array('maxLength', ${1:length}) diff --git a/vim/snippets/php-cake/rmi.snippet b/vim/snippets/php-cake/rmi.snippet new file mode 100755 index 0000000..47e97fe --- /dev/null +++ b/vim/snippets/php-cake/rmi.snippet @@ -0,0 +1 @@ +'rule' => array('minLength', ${1:length}) diff --git a/vim/snippets/php-cake/rmo.snippet b/vim/snippets/php-cake/rmo.snippet new file mode 100755 index 0000000..d07b7e4 --- /dev/null +++ b/vim/snippets/php-cake/rmo.snippet @@ -0,0 +1 @@ +'rule' => 'money' diff --git a/vim/snippets/php-cake/rmu.snippet b/vim/snippets/php-cake/rmu.snippet new file mode 100755 index 0000000..80e8b6a --- /dev/null +++ b/vim/snippets/php-cake/rmu.snippet @@ -0,0 +1 @@ +'rule' => array('multiple', ${1:type}) diff --git a/vim/snippets/php-cake/rnu.snippet b/vim/snippets/php-cake/rnu.snippet new file mode 100755 index 0000000..2736925 --- /dev/null +++ b/vim/snippets/php-cake/rnu.snippet @@ -0,0 +1 @@ +'rule' => 'numeric' diff --git a/vim/snippets/php-cake/rph.snippet b/vim/snippets/php-cake/rph.snippet new file mode 100755 index 0000000..e77bc19 --- /dev/null +++ b/vim/snippets/php-cake/rph.snippet @@ -0,0 +1 @@ +'rule' => 'phone' diff --git a/vim/snippets/php-cake/rpo.snippet b/vim/snippets/php-cake/rpo.snippet new file mode 100755 index 0000000..4d5b71e --- /dev/null +++ b/vim/snippets/php-cake/rpo.snippet @@ -0,0 +1 @@ +'rule' => 'postal' diff --git a/vim/snippets/php-cake/rra.snippet b/vim/snippets/php-cake/rra.snippet new file mode 100755 index 0000000..3f8b940 --- /dev/null +++ b/vim/snippets/php-cake/rra.snippet @@ -0,0 +1 @@ +'rule' => array('range', ${1:lower}, ${2:upper}) diff --git a/vim/snippets/php-cake/rssn.snippet b/vim/snippets/php-cake/rssn.snippet new file mode 100755 index 0000000..959d022 --- /dev/null +++ b/vim/snippets/php-cake/rssn.snippet @@ -0,0 +1 @@ +'rule' => 'ssn' diff --git a/vim/snippets/php-cake/rti.snippet b/vim/snippets/php-cake/rti.snippet new file mode 100755 index 0000000..f7576b3 --- /dev/null +++ b/vim/snippets/php-cake/rti.snippet @@ -0,0 +1 @@ +'rule' => 'time' diff --git a/vim/snippets/php-cake/rur.snippet b/vim/snippets/php-cake/rur.snippet new file mode 100755 index 0000000..1e4fcb1 --- /dev/null +++ b/vim/snippets/php-cake/rur.snippet @@ -0,0 +1 @@ +'rule' => 'url' diff --git a/vim/snippets/php-cake/scaerr.snippet b/vim/snippets/php-cake/scaerr.snippet new file mode 100755 index 0000000..eb42e7b --- /dev/null +++ b/vim/snippets/php-cake/scaerr.snippet @@ -0,0 +1,4 @@ +function _ScaffoldError($method) { + ${1} + return false; +}; diff --git a/vim/snippets/php-cake/scf.snippet b/vim/snippets/php-cake/scf.snippet new file mode 100755 index 0000000..669ea85 --- /dev/null +++ b/vim/snippets/php-cake/scf.snippet @@ -0,0 +1 @@ +$this->Session->check('Message.flash') diff --git a/vim/snippets/php-cake/see.snippet b/vim/snippets/php-cake/see.snippet new file mode 100755 index 0000000..bdd455f --- /dev/null +++ b/vim/snippets/php-cake/see.snippet @@ -0,0 +1 @@ +error() ?> diff --git a/vim/snippets/php-cake/sef.snippet b/vim/snippets/php-cake/sef.snippet new file mode 100755 index 0000000..3c845e1 --- /dev/null +++ b/vim/snippets/php-cake/sef.snippet @@ -0,0 +1 @@ +flash(${1:'${2:keyName}'}) ?> diff --git a/vim/snippets/php-cake/ser.snippet b/vim/snippets/php-cake/ser.snippet new file mode 100755 index 0000000..aa9023e --- /dev/null +++ b/vim/snippets/php-cake/ser.snippet @@ -0,0 +1 @@ +read(${1:'${2:keyName}'}) ?> diff --git a/vim/snippets/php-cake/set.snippet b/vim/snippets/php-cake/set.snippet new file mode 100755 index 0000000..05fd3b1 --- /dev/null +++ b/vim/snippets/php-cake/set.snippet @@ -0,0 +1 @@ +$this->set('${1:varName}', ${2:'${3:value}'}); diff --git a/vim/snippets/php-cake/sfl.snippet b/vim/snippets/php-cake/sfl.snippet new file mode 100755 index 0000000..ddf6e77 --- /dev/null +++ b/vim/snippets/php-cake/sfl.snippet @@ -0,0 +1 @@ +echo $scripts_for_layout diff --git a/vim/snippets/php-cake/ssc.snippet b/vim/snippets/php-cake/ssc.snippet new file mode 100755 index 0000000..7d35cde --- /dev/null +++ b/vim/snippets/php-cake/ssc.snippet @@ -0,0 +1 @@ +$this->Session->check(${1:'${2:key_name}'}) diff --git a/vim/snippets/php-cake/ssd.snippet b/vim/snippets/php-cake/ssd.snippet new file mode 100755 index 0000000..a203471 --- /dev/null +++ b/vim/snippets/php-cake/ssd.snippet @@ -0,0 +1 @@ +$this->Session->del(${1:'${2:key_name}'}) diff --git a/vim/snippets/php-cake/ssde.snippet b/vim/snippets/php-cake/ssde.snippet new file mode 100755 index 0000000..48f7785 --- /dev/null +++ b/vim/snippets/php-cake/ssde.snippet @@ -0,0 +1 @@ +$this->Session->destroy() diff --git a/vim/snippets/php-cake/sse.snippet b/vim/snippets/php-cake/sse.snippet new file mode 100755 index 0000000..af3ab27 --- /dev/null +++ b/vim/snippets/php-cake/sse.snippet @@ -0,0 +1 @@ +$this->Session->error() diff --git a/vim/snippets/php-cake/ssf.snippet b/vim/snippets/php-cake/ssf.snippet new file mode 100755 index 0000000..94190da --- /dev/null +++ b/vim/snippets/php-cake/ssf.snippet @@ -0,0 +1 @@ +$this->Session->setFlash(${1:'${2:Message Text}'}) diff --git a/vim/snippets/php-cake/ssr.snippet b/vim/snippets/php-cake/ssr.snippet new file mode 100755 index 0000000..cc2fab2 --- /dev/null +++ b/vim/snippets/php-cake/ssr.snippet @@ -0,0 +1 @@ +$this->Session->read(${1:'${2:key_name}'}) diff --git a/vim/snippets/php-cake/ssw.snippet b/vim/snippets/php-cake/ssw.snippet new file mode 100755 index 0000000..2b797f8 --- /dev/null +++ b/vim/snippets/php-cake/ssw.snippet @@ -0,0 +1 @@ +$this->Session->write(${1:'${2:key_name}'}, ${3:$value}) diff --git a/vim/snippets/php-cake/tfl.snippet b/vim/snippets/php-cake/tfl.snippet new file mode 100755 index 0000000..92e55ca --- /dev/null +++ b/vim/snippets/php-cake/tfl.snippet @@ -0,0 +1 @@ +echo $title_for_layout diff --git a/vim/snippets/php-cake/use.snippet b/vim/snippets/php-cake/use.snippet new file mode 100755 index 0000000..2f80557 --- /dev/null +++ b/vim/snippets/php-cake/use.snippet @@ -0,0 +1 @@ +var $useTable = ${1:'${2:table_name}'}; diff --git a/vim/snippets/php-cake/val.snippet b/vim/snippets/php-cake/val.snippet new file mode 100755 index 0000000..5708e75 --- /dev/null +++ b/vim/snippets/php-cake/val.snippet @@ -0,0 +1,9 @@ +var $validate = array( + '${1:fieldName}' => array( + '${2:ruleName}' => array( + 'rule' => '${3:rule}', + 'allowEmpty' => false, + 'message' => '${4:message}' + ) + ) +); diff --git a/vim/snippets/php-cake/vcfl.snippet b/vim/snippets/php-cake/vcfl.snippet new file mode 100755 index 0000000..5375089 --- /dev/null +++ b/vim/snippets/php-cake/vcfl.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/php-cake/vsfl.snippet b/vim/snippets/php-cake/vsfl.snippet new file mode 100755 index 0000000..3e36fbd --- /dev/null +++ b/vim/snippets/php-cake/vsfl.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/php-cake/vtfl.snippet b/vim/snippets/php-cake/vtfl.snippet new file mode 100755 index 0000000..26ce7a2 --- /dev/null +++ b/vim/snippets/php-cake/vtfl.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/php-zend/assert.snippet b/vim/snippets/php-zend/assert.snippet new file mode 100755 index 0000000..ca928f2 --- /dev/null +++ b/vim/snippets/php-zend/assert.snippet @@ -0,0 +1 @@ +$this->assertTrue(${1:somevar}, '${2:sometext}'); diff --git a/vim/snippets/php-zend/boolcol.snippet b/vim/snippets/php-zend/boolcol.snippet new file mode 100755 index 0000000..715fe19 --- /dev/null +++ b/vim/snippets/php-zend/boolcol.snippet @@ -0,0 +1 @@ +$this->hasColumn('${1:active}', '${2:boolean}', ${3:1}, array('default' => '${4:1}','notnull' => true)); diff --git a/vim/snippets/php-zend/clac.snippet b/vim/snippets/php-zend/clac.snippet new file mode 100755 index 0000000..80972a1 --- /dev/null +++ b/vim/snippets/php-zend/clac.snippet @@ -0,0 +1,20 @@ +_flashMessenger->addMessage("${1}", '${2:error}'); diff --git a/vim/snippets/php-zend/getconf.snippet b/vim/snippets/php-zend/getconf.snippet new file mode 100755 index 0000000..10f2b20 --- /dev/null +++ b/vim/snippets/php-zend/getconf.snippet @@ -0,0 +1 @@ +$${1:conf} = Zend_Registry::get('${2:config}')->${3:general}; diff --git a/vim/snippets/php-zend/input.snippet b/vim/snippets/php-zend/input.snippet new file mode 100755 index 0000000..3c4ed27 --- /dev/null +++ b/vim/snippets/php-zend/input.snippet @@ -0,0 +1,4 @@ +formInput(array( 'type' => '${1:hidden}', + 'name' => '${2}', + 'value' => ${3:}, + 'id' => '${4:}' )); ?> diff --git a/vim/snippets/php-zend/inputarr.snippet b/vim/snippets/php-zend/inputarr.snippet new file mode 100755 index 0000000..8e97bee --- /dev/null +++ b/vim/snippets/php-zend/inputarr.snippet @@ -0,0 +1,6 @@ +formInput(array( 'type' => '${1:dropdown}', + 'name' => '${2}', + 'label' => '${3:}', + 'errors' => ${4:}, + 'value' => ${5:}, + 'valueList' => ${6:} )); ?> diff --git a/vim/snippets/php-zend/intcol.snippet b/vim/snippets/php-zend/intcol.snippet new file mode 100755 index 0000000..caacaa6 --- /dev/null +++ b/vim/snippets/php-zend/intcol.snippet @@ -0,0 +1 @@ +$this->hasColumn('${1:id}', '${2:integer}', ${3:11}, array(${4:'notnull' => true)}); diff --git a/vim/snippets/php-zend/lib.snippet b/vim/snippets/php-zend/lib.snippet new file mode 100755 index 0000000..683e22e --- /dev/null +++ b/vim/snippets/php-zend/lib.snippet @@ -0,0 +1,5 @@ +hasColumn('id', 'integer', 4, array('notnull' => true, + 'primary' => true, + 'autoincrement' => true)); + ${3} + } + +} diff --git a/vim/snippets/php-zend/navi.snippet b/vim/snippets/php-zend/navi.snippet new file mode 100755 index 0000000..2724ff9 --- /dev/null +++ b/vim/snippets/php-zend/navi.snippet @@ -0,0 +1 @@ +$this->view->navigationActive = array('topnavi' => '${1:home}','subnavi' => '${2:index}'); diff --git a/vim/snippets/php-zend/route.snippet b/vim/snippets/php-zend/route.snippet new file mode 100755 index 0000000..cdf834b --- /dev/null +++ b/vim/snippets/php-zend/route.snippet @@ -0,0 +1 @@ +$this->_redirector->gotoRoute(array('controller' => '${1}', 'action' => '${2:index}', 'id' => '${3:}'), '${4:admin_action}'); diff --git a/vim/snippets/php-zend/rp.snippet b/vim/snippets/php-zend/rp.snippet new file mode 100755 index 0000000..b5dcd1f --- /dev/null +++ b/vim/snippets/php-zend/rp.snippet @@ -0,0 +1,2 @@ +partial('${1:somefile}.phtml', + array(${2}))?> diff --git a/vim/snippets/php-zend/strcol.snippet b/vim/snippets/php-zend/strcol.snippet new file mode 100755 index 0000000..98d3cf3 --- /dev/null +++ b/vim/snippets/php-zend/strcol.snippet @@ -0,0 +1 @@ +$this->hasColumn('${1:title}', '${2:string}', ${3:255}, array(${4:'notnull' => true})); diff --git a/vim/snippets/php/$.snippet b/vim/snippets/php/$.snippet new file mode 120000 index 0000000..a3b0561 --- /dev/null +++ b/vim/snippets/php/$.snippet @@ -0,0 +1 @@ +$m.snippet \ No newline at end of file diff --git a/vim/snippets/php/$a.snippet b/vim/snippets/php/$a.snippet new file mode 100755 index 0000000..3989bac --- /dev/null +++ b/vim/snippets/php/$a.snippet @@ -0,0 +1 @@ +$${1:name}->${2:method}${3} diff --git a/vim/snippets/php/$m.snippet b/vim/snippets/php/$m.snippet new file mode 100755 index 0000000..738af18 --- /dev/null +++ b/vim/snippets/php/$m.snippet @@ -0,0 +1 @@ +$${1:name}->${2:method}(${3:args})${4} diff --git a/vim/snippets/php/a.snippet b/vim/snippets/php/a.snippet new file mode 100755 index 0000000..10d7ef2 --- /dev/null +++ b/vim/snippets/php/a.snippet @@ -0,0 +1 @@ +->${1:attr}${2} diff --git a/vim/snippets/php/ar.snippet b/vim/snippets/php/ar.snippet new file mode 100755 index 0000000..bdd58f4 --- /dev/null +++ b/vim/snippets/php/ar.snippet @@ -0,0 +1 @@ +array('${1}' => ${2}); diff --git a/vim/snippets/php/array.snippet b/vim/snippets/php/array.snippet new file mode 100755 index 0000000..922542e --- /dev/null +++ b/vim/snippets/php/array.snippet @@ -0,0 +1 @@ +$${1:arrayName} = array('${2}' => ${3});${4} diff --git a/vim/snippets/php/case.snippet b/vim/snippets/php/case.snippet new file mode 100755 index 0000000..8f9e4da --- /dev/null +++ b/vim/snippets/php/case.snippet @@ -0,0 +1,3 @@ +case '${1:value}': + ${2:// code...} + break;${3} diff --git a/vim/snippets/php/class.snippet b/vim/snippets/php/class.snippet new file mode 100755 index 0000000..28d7c0a --- /dev/null +++ b/vim/snippets/php/class.snippet @@ -0,0 +1,11 @@ +/** + * ${1} + */ +class ${2:ClassName} +{ + ${3} + function ${4:__construct}(${5:$argument}) + { + ${6:// code...} + } +} diff --git a/vim/snippets/php/classe.snippet b/vim/snippets/php/classe.snippet new file mode 100755 index 0000000..2f2b0bc --- /dev/null +++ b/vim/snippets/php/classe.snippet @@ -0,0 +1,12 @@ +/** + * ${1} + */ +class ${2:ClassName} extends ${3:AnotherClass} +{ + ${4} + function ${5:__construct}(${6:argument}) + { + ${7:// code...} + } +} + diff --git a/vim/snippets/php/def.snippet b/vim/snippets/php/def.snippet new file mode 100755 index 0000000..df0f5eb --- /dev/null +++ b/vim/snippets/php/def.snippet @@ -0,0 +1 @@ +define('${1}'${2});${3} diff --git a/vim/snippets/php/defd.snippet b/vim/snippets/php/defd.snippet new file mode 100755 index 0000000..6758cda --- /dev/null +++ b/vim/snippets/php/defd.snippet @@ -0,0 +1 @@ +${1}defined('${2}')${3} diff --git a/vim/snippets/php/do.snippet b/vim/snippets/php/do.snippet new file mode 100755 index 0000000..e7dd5b0 --- /dev/null +++ b/vim/snippets/php/do.snippet @@ -0,0 +1,3 @@ +do { + ${2:// code... } +} while (${1:/* condition */});" diff --git a/vim/snippets/php/doc_cp.snippet b/vim/snippets/php/doc_cp.snippet new file mode 100755 index 0000000..d6d1b3f --- /dev/null +++ b/vim/snippets/php/doc_cp.snippet @@ -0,0 +1,6 @@ +/** + * ${1:undocumented class} + * + * @package ${2:default} + * @author ${3:`g:snips_author`} + **/${4} diff --git a/vim/snippets/php/doc_f.snippet b/vim/snippets/php/doc_f.snippet new file mode 100755 index 0000000..a9adbb0 --- /dev/null +++ b/vim/snippets/php/doc_f.snippet @@ -0,0 +1,8 @@ +/** + * $2 + * @return ${4:void} + * @author ${5:`g:snips_author`} + **/ +${1:public }function ${2:someFunc}(${3}) +{${6} +} diff --git a/vim/snippets/php/doc_h.snippet b/vim/snippets/php/doc_h.snippet new file mode 100755 index 0000000..a0c12e0 --- /dev/null +++ b/vim/snippets/php/doc_h.snippet @@ -0,0 +1,10 @@ +/** + * ${1} + * + * @author ${2:`g:snips_author`} + * @version ${3:$Id$} + * @copyright ${4:$2}, `strftime('%d %B, %Y')` + * @package ${5:default} + **/ +/** + * Define DocBlock *// diff --git a/vim/snippets/php/doc_i.snippet b/vim/snippets/php/doc_i.snippet new file mode 100755 index 0000000..e62eab7 --- /dev/null +++ b/vim/snippets/php/doc_i.snippet @@ -0,0 +1,8 @@ +/** + * $1 + * @package ${2:default} + * @author ${3:`g:snips_author`} + **/ +interface ${1:someClass} +{${4} +} // END interface $1" diff --git a/vim/snippets/php/each.snippet b/vim/snippets/php/each.snippet new file mode 120000 index 0000000..0c6ba66 --- /dev/null +++ b/vim/snippets/php/each.snippet @@ -0,0 +1 @@ +foreach.snippet \ No newline at end of file diff --git a/vim/snippets/php/eachk.snippet b/vim/snippets/php/eachk.snippet new file mode 120000 index 0000000..82311a2 --- /dev/null +++ b/vim/snippets/php/eachk.snippet @@ -0,0 +1 @@ +foreachk.snippet \ No newline at end of file diff --git a/vim/snippets/php/ec.snippet b/vim/snippets/php/ec.snippet new file mode 100755 index 0000000..489d759 --- /dev/null +++ b/vim/snippets/php/ec.snippet @@ -0,0 +1 @@ +echo "${1:string}"${2}; diff --git a/vim/snippets/php/else.snippet b/vim/snippets/php/else.snippet new file mode 100755 index 0000000..b910e98 --- /dev/null +++ b/vim/snippets/php/else.snippet @@ -0,0 +1,3 @@ +else { + ${1:// code...} +} diff --git a/vim/snippets/php/elseif.snippet b/vim/snippets/php/elseif.snippet new file mode 100755 index 0000000..a57dec8 --- /dev/null +++ b/vim/snippets/php/elseif.snippet @@ -0,0 +1,3 @@ +elseif (${1:/* condition */}) { + ${2:// code...} +} diff --git a/vim/snippets/php/for.snippet b/vim/snippets/php/for.snippet new file mode 100755 index 0000000..e9bc52a --- /dev/null +++ b/vim/snippets/php/for.snippet @@ -0,0 +1,3 @@ +for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) { + ${4:// code...} +} diff --git a/vim/snippets/php/fore/key-value-template.snippet b/vim/snippets/php/fore/key-value-template.snippet new file mode 100755 index 0000000..0c55992 --- /dev/null +++ b/vim/snippets/php/fore/key-value-template.snippet @@ -0,0 +1,4 @@ + $${3:value}): ?> + ${4} + + ${5} diff --git a/vim/snippets/php/fore/key-value.snippet b/vim/snippets/php/fore/key-value.snippet new file mode 100755 index 0000000..e72c855 --- /dev/null +++ b/vim/snippets/php/fore/key-value.snippet @@ -0,0 +1,5 @@ + foreach ($${1:variable} as $${2:key} => $${3:value}) { + ${4} + } + + ${5} diff --git a/vim/snippets/php/fore/value-template.snippet b/vim/snippets/php/fore/value-template.snippet new file mode 100755 index 0000000..c44b35c --- /dev/null +++ b/vim/snippets/php/fore/value-template.snippet @@ -0,0 +1,4 @@ + + ${3} + + ${4} diff --git a/vim/snippets/php/fore/value.snippet b/vim/snippets/php/fore/value.snippet new file mode 100755 index 0000000..8756c95 --- /dev/null +++ b/vim/snippets/php/fore/value.snippet @@ -0,0 +1,5 @@ + foreach ($${1:variable} as $${2:value}) { + ${3} + } + + ${4} diff --git a/vim/snippets/php/foreach.snippet b/vim/snippets/php/foreach.snippet new file mode 100755 index 0000000..dd40f21 --- /dev/null +++ b/vim/snippets/php/foreach.snippet @@ -0,0 +1,3 @@ +foreach ($${1:variable} as $${2:value}){ + ${3:// code...} +} diff --git a/vim/snippets/php/foreachk.snippet b/vim/snippets/php/foreachk.snippet new file mode 100755 index 0000000..f78d57a --- /dev/null +++ b/vim/snippets/php/foreachk.snippet @@ -0,0 +1,3 @@ +foreach ($${1:variable} as $${2:key} => $${3:value}){ + ${4:// code...} +} diff --git a/vim/snippets/php/fun.snippet b/vim/snippets/php/fun.snippet new file mode 100755 index 0000000..0f5d353 --- /dev/null +++ b/vim/snippets/php/fun.snippet @@ -0,0 +1,4 @@ +${1:public }function ${2:FunctionName}(${3}) +{ + ${4:// code...} +} diff --git a/vim/snippets/php/get.snippet b/vim/snippets/php/get.snippet new file mode 100755 index 0000000..af32e0a --- /dev/null +++ b/vim/snippets/php/get.snippet @@ -0,0 +1 @@ +$_GET['${1}']${2} diff --git a/vim/snippets/php/globals.snippet b/vim/snippets/php/globals.snippet new file mode 100755 index 0000000..6f5b04f --- /dev/null +++ b/vim/snippets/php/globals.snippet @@ -0,0 +1 @@ +$GLOBALS['${1:variable}']${2: = }${3:something}${4:;}${5} diff --git a/vim/snippets/php/if.snippet b/vim/snippets/php/if.snippet new file mode 100755 index 0000000..69ac0bd --- /dev/null +++ b/vim/snippets/php/if.snippet @@ -0,0 +1,3 @@ +if (${1:/* condition */}) { + ${2:// code...} +} diff --git a/vim/snippets/php/ife.snippet b/vim/snippets/php/ife.snippet new file mode 100755 index 0000000..b8621c1 --- /dev/null +++ b/vim/snippets/php/ife.snippet @@ -0,0 +1,4 @@ +if (${1:/* condition */}) { + ${2:// code...} +} else { +} diff --git a/vim/snippets/php/inc.snippet b/vim/snippets/php/inc.snippet new file mode 100755 index 0000000..8df3966 --- /dev/null +++ b/vim/snippets/php/inc.snippet @@ -0,0 +1 @@ +include '${1:file}';${2} diff --git a/vim/snippets/php/inc1.snippet b/vim/snippets/php/inc1.snippet new file mode 100755 index 0000000..ba26281 --- /dev/null +++ b/vim/snippets/php/inc1.snippet @@ -0,0 +1 @@ +include_once '${1:file}';${2} diff --git a/vim/snippets/php/k.snippet b/vim/snippets/php/k.snippet new file mode 100755 index 0000000..cba4b29 --- /dev/null +++ b/vim/snippets/php/k.snippet @@ -0,0 +1 @@ +'${1:key}' => ${2:value} diff --git a/vim/snippets/php/ks.snippet b/vim/snippets/php/ks.snippet new file mode 100755 index 0000000..e1b5a7f --- /dev/null +++ b/vim/snippets/php/ks.snippet @@ -0,0 +1 @@ +'${1:key}' => '${2:value}' diff --git a/vim/snippets/php/log.snippet b/vim/snippets/php/log.snippet new file mode 100755 index 0000000..2b8dcc4 --- /dev/null +++ b/vim/snippets/php/log.snippet @@ -0,0 +1 @@ +error_log(var_export(${1}, true));${2} diff --git a/vim/snippets/php/m.snippet b/vim/snippets/php/m.snippet new file mode 100755 index 0000000..87de4f4 --- /dev/null +++ b/vim/snippets/php/m.snippet @@ -0,0 +1 @@ +->${1:method}(${2:args})${3} diff --git a/vim/snippets/php/php.snippet b/vim/snippets/php/php.snippet new file mode 100755 index 0000000..ed2ed1c --- /dev/null +++ b/vim/snippets/php/php.snippet @@ -0,0 +1,3 @@ + diff --git a/vim/snippets/php/phpc.snippet b/vim/snippets/php/phpc.snippet new file mode 100755 index 0000000..3be32e0 --- /dev/null +++ b/vim/snippets/php/phpc.snippet @@ -0,0 +1 @@ + ?> ${1} diff --git a/vim/snippets/php/phpin.snippet b/vim/snippets/php/phpin.snippet new file mode 100755 index 0000000..b128e8d --- /dev/null +++ b/vim/snippets/php/phpin.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/php/phpo.snippet b/vim/snippets/php/phpo.snippet new file mode 100755 index 0000000..6fd56c0 --- /dev/null +++ b/vim/snippets/php/phpo.snippet @@ -0,0 +1 @@ +${1:attr}${2}; diff --git a/vim/snippets/php/throw.snippet b/vim/snippets/php/throw.snippet new file mode 100755 index 0000000..54db517 --- /dev/null +++ b/vim/snippets/php/throw.snippet @@ -0,0 +1 @@ +throw new ${1:Exception}('${2}'); diff --git a/vim/snippets/php/tm.snippet b/vim/snippets/php/tm.snippet new file mode 100755 index 0000000..70049ef --- /dev/null +++ b/vim/snippets/php/tm.snippet @@ -0,0 +1 @@ +$this->${1:method}(${2:args})${3}; diff --git a/vim/snippets/php/try.snippet b/vim/snippets/php/try.snippet new file mode 100755 index 0000000..66a7f65 --- /dev/null +++ b/vim/snippets/php/try.snippet @@ -0,0 +1,6 @@ +try { + ${1:// code...} +} catch (${2:Exception} $e) { + ${3:// code...} +} + diff --git a/vim/snippets/php/var.snippet b/vim/snippets/php/var.snippet new file mode 100755 index 0000000..1f8cd08 --- /dev/null +++ b/vim/snippets/php/var.snippet @@ -0,0 +1 @@ +var_export(${1});${2} diff --git a/vim/snippets/php/wh.snippet b/vim/snippets/php/wh.snippet new file mode 100755 index 0000000..36ae0ff --- /dev/null +++ b/vim/snippets/php/wh.snippet @@ -0,0 +1,3 @@ +while (${1:/* condition */}) { + ${2:// code...} +} diff --git a/vim/snippets/php/while.snippet b/vim/snippets/php/while.snippet new file mode 120000 index 0000000..8d3633c --- /dev/null +++ b/vim/snippets/php/while.snippet @@ -0,0 +1 @@ +wh.snippet \ No newline at end of file diff --git a/vim/snippets/po/msg.snippet b/vim/snippets/po/msg.snippet new file mode 100755 index 0000000..2ad6638 --- /dev/null +++ b/vim/snippets/po/msg.snippet @@ -0,0 +1,2 @@ +msgid "${1}" +msgstr "${2}"${3} diff --git a/vim/snippets/progress/alert.snippet b/vim/snippets/progress/alert.snippet new file mode 100755 index 0000000..0700c15 --- /dev/null +++ b/vim/snippets/progress/alert.snippet @@ -0,0 +1 @@ +MESSAGE "${1:MessageContent}" ${2:Data} VIEW-AS ALERT-BOX. diff --git a/vim/snippets/progress/char.snippet b/vim/snippets/progress/char.snippet new file mode 100755 index 0000000..a4913ba --- /dev/null +++ b/vim/snippets/progress/char.snippet @@ -0,0 +1 @@ +CHARACTER diff --git a/vim/snippets/progress/dec.snippet b/vim/snippets/progress/dec.snippet new file mode 100755 index 0000000..923c4d6 --- /dev/null +++ b/vim/snippets/progress/dec.snippet @@ -0,0 +1 @@ +DECIMAL diff --git a/vim/snippets/progress/defbuf.snippet b/vim/snippets/progress/defbuf.snippet new file mode 100755 index 0000000..9cc4532 --- /dev/null +++ b/vim/snippets/progress/defbuf.snippet @@ -0,0 +1 @@ +DEFINE VARIABLE ${1:VariableName} AS ${2}.DEFINE BUFFER b_${1:TableName} FOR $1 ${2}. diff --git a/vim/snippets/progress/defvar.snippet b/vim/snippets/progress/defvar.snippet new file mode 100755 index 0000000..b476e4c --- /dev/null +++ b/vim/snippets/progress/defvar.snippet @@ -0,0 +1 @@ +DEFINE VARIABLE ${1:VariableName} AS ${2}. diff --git a/vim/snippets/progress/do.snippet b/vim/snippets/progress/do.snippet new file mode 100755 index 0000000..30d4e88 --- /dev/null +++ b/vim/snippets/progress/do.snippet @@ -0,0 +1,3 @@ +DO${1: Clauses}: + ${2} +END. diff --git a/vim/snippets/progress/err.snippet b/vim/snippets/progress/err.snippet new file mode 100755 index 0000000..5df7507 --- /dev/null +++ b/vim/snippets/progress/err.snippet @@ -0,0 +1 @@ +ERROR diff --git a/vim/snippets/progress/ff.snippet b/vim/snippets/progress/ff.snippet new file mode 100755 index 0000000..ab57090 --- /dev/null +++ b/vim/snippets/progress/ff.snippet @@ -0,0 +1,2 @@ +FIND FIRST ${1:BufferName} +${2:WHERE $1.${3}} ${4} diff --git a/vim/snippets/progress/if.snippet b/vim/snippets/progress/if.snippet new file mode 100755 index 0000000..0cafabc --- /dev/null +++ b/vim/snippets/progress/if.snippet @@ -0,0 +1,3 @@ +IF ${1:Condition} +THEN ${2:Action} +${3:ELSE ${4:OtherWise}} diff --git a/vim/snippets/progress/ini.snippet b/vim/snippets/progress/ini.snippet new file mode 100755 index 0000000..4ac993f --- /dev/null +++ b/vim/snippets/progress/ini.snippet @@ -0,0 +1 @@ +INITIAL ${1:?} diff --git a/vim/snippets/progress/input.snippet b/vim/snippets/progress/input.snippet new file mode 100755 index 0000000..2f2417f --- /dev/null +++ b/vim/snippets/progress/input.snippet @@ -0,0 +1 @@ +DEFINE INPUT PARAMETER ${1:ParamName} AS ${2}. diff --git a/vim/snippets/progress/int.snippet b/vim/snippets/progress/int.snippet new file mode 100755 index 0000000..97b327c --- /dev/null +++ b/vim/snippets/progress/int.snippet @@ -0,0 +1 @@ +INTEGER diff --git a/vim/snippets/progress/log.snippet b/vim/snippets/progress/log.snippet new file mode 100755 index 0000000..6268694 --- /dev/null +++ b/vim/snippets/progress/log.snippet @@ -0,0 +1 @@ +LOGICAL diff --git a/vim/snippets/progress/ne.snippet b/vim/snippets/progress/ne.snippet new file mode 100755 index 0000000..bf2cb1c --- /dev/null +++ b/vim/snippets/progress/ne.snippet @@ -0,0 +1 @@ +NO-ERROR diff --git a/vim/snippets/progress/nl.snippet b/vim/snippets/progress/nl.snippet new file mode 100755 index 0000000..11f6eee --- /dev/null +++ b/vim/snippets/progress/nl.snippet @@ -0,0 +1 @@ +NO-LOCK diff --git a/vim/snippets/progress/nle.snippet b/vim/snippets/progress/nle.snippet new file mode 100755 index 0000000..1138325 --- /dev/null +++ b/vim/snippets/progress/nle.snippet @@ -0,0 +1 @@ +NO-LOCK NO-ERROR diff --git a/vim/snippets/progress/nu.snippet b/vim/snippets/progress/nu.snippet new file mode 100755 index 0000000..57b8f70 --- /dev/null +++ b/vim/snippets/progress/nu.snippet @@ -0,0 +1 @@ +NO-UNDO diff --git a/vim/snippets/progress/output.snippet b/vim/snippets/progress/output.snippet new file mode 100755 index 0000000..1555cd8 --- /dev/null +++ b/vim/snippets/progress/output.snippet @@ -0,0 +1 @@ +DEFINE OUTPUT PARAMETER ${1:ParamName} AS ${2:ParamType}. diff --git a/vim/snippets/progress/proc.snippet b/vim/snippets/progress/proc.snippet new file mode 100755 index 0000000..1e4d799 --- /dev/null +++ b/vim/snippets/progress/proc.snippet @@ -0,0 +1,11 @@ + + /******************************************************************************/ + + PROCEDURE ${1:ProcName}: + + ${2} + + END PROCEDURE. /* $1 */ + + /******************************************************************************/ + diff --git a/vim/snippets/progress/sep.snippet b/vim/snippets/progress/sep.snippet new file mode 100755 index 0000000..a2cf2e8 --- /dev/null +++ b/vim/snippets/progress/sep.snippet @@ -0,0 +1 @@ +/* ------------------------------------------------------------------------- */ diff --git a/vim/snippets/python/#!.snippet b/vim/snippets/python/#!.snippet new file mode 100755 index 0000000..e4ad972 --- /dev/null +++ b/vim/snippets/python/#!.snippet @@ -0,0 +1,2 @@ +#!/usr/bin/env python +# −*− coding: UTF−8 −*− diff --git a/vim/snippets/python/class.snippet b/vim/snippets/python/class.snippet new file mode 100755 index 0000000..d9e2b8e --- /dev/null +++ b/vim/snippets/python/class.snippet @@ -0,0 +1,2 @@ +class ${1:``Snippet_PythonClassNameFromFilename()``}(${2:data}): +${3} diff --git a/vim/snippets/python/class/basic.snippet b/vim/snippets/python/class/basic.snippet new file mode 100755 index 0000000..2f2834a --- /dev/null +++ b/vim/snippets/python/class/basic.snippet @@ -0,0 +1,2 @@ +class ${1:`Snippet_PythonClassNameFromFilename()`}(${2:data}): + ${3} diff --git a/vim/snippets/python/class/exception.snippet b/vim/snippets/python/class/exception.snippet new file mode 100755 index 0000000..ece777b --- /dev/null +++ b/vim/snippets/python/class/exception.snippet @@ -0,0 +1 @@ +class ${1:ExceptionName}(${2:Exception}): pass diff --git a/vim/snippets/python/class/with_init.snippet b/vim/snippets/python/class/with_init.snippet new file mode 100755 index 0000000..db6bc25 --- /dev/null +++ b/vim/snippets/python/class/with_init.snippet @@ -0,0 +1,3 @@ +class ${1:`Snippet_PythonClassNameFromFilename()`}(${2:data}): + def __init__(self, ${3:args}): + ${4} diff --git a/vim/snippets/python/def.snippet b/vim/snippets/python/def.snippet new file mode 100755 index 0000000..71a884c --- /dev/null +++ b/vim/snippets/python/def.snippet @@ -0,0 +1,2 @@ +def ${1:name}(${2:data}): + ${3} diff --git a/vim/snippets/python/for.snippet b/vim/snippets/python/for.snippet new file mode 100755 index 0000000..d0772ec --- /dev/null +++ b/vim/snippets/python/for.snippet @@ -0,0 +1,2 @@ +for ${1:var} in ${2:type}: + ${3:pass} diff --git a/vim/snippets/python/from.snippet b/vim/snippets/python/from.snippet new file mode 100755 index 0000000..5fa504c --- /dev/null +++ b/vim/snippets/python/from.snippet @@ -0,0 +1 @@ +from ${1:module} import ${2:name} diff --git a/vim/snippets/python/get.snippet b/vim/snippets/python/get.snippet new file mode 100755 index 0000000..f6a279b --- /dev/null +++ b/vim/snippets/python/get.snippet @@ -0,0 +1,2 @@ +def get_${1:name}(self): + return self._$1 diff --git a/vim/snippets/python/if.snippet b/vim/snippets/python/if.snippet new file mode 100755 index 0000000..cfa7605 --- /dev/null +++ b/vim/snippets/python/if.snippet @@ -0,0 +1,2 @@ +if (${1:condition}): + ${2} diff --git a/vim/snippets/python/ife.snippet b/vim/snippets/python/ife.snippet new file mode 100755 index 0000000..5ce0795 --- /dev/null +++ b/vim/snippets/python/ife.snippet @@ -0,0 +1,4 @@ +if (${1:condition}): + ${2} +else: + ${3} diff --git a/vim/snippets/python/ifmain.snippet b/vim/snippets/python/ifmain.snippet new file mode 100755 index 0000000..8051c3b --- /dev/null +++ b/vim/snippets/python/ifmain.snippet @@ -0,0 +1,2 @@ +if __name__ == '__main__': + ${1} diff --git a/vim/snippets/python/import.snippet b/vim/snippets/python/import.snippet new file mode 100755 index 0000000..74b2d79 --- /dev/null +++ b/vim/snippets/python/import.snippet @@ -0,0 +1 @@ +import ${1:module} diff --git a/vim/snippets/python/init.snippet b/vim/snippets/python/init.snippet new file mode 100755 index 0000000..a8a004b --- /dev/null +++ b/vim/snippets/python/init.snippet @@ -0,0 +1,2 @@ +def __init__(self, ${1:args}): + ${2} diff --git a/vim/snippets/python/set.snippet b/vim/snippets/python/set.snippet new file mode 100755 index 0000000..3cf6286 --- /dev/null +++ b/vim/snippets/python/set.snippet @@ -0,0 +1,2 @@ +def set_${1:name}(self, ${2:value}): + ${3} diff --git a/vim/snippets/python/try.snippet b/vim/snippets/python/try.snippet new file mode 100755 index 0000000..c623953 --- /dev/null +++ b/vim/snippets/python/try.snippet @@ -0,0 +1,4 @@ +try: + ${1} +except ${2:Exception}: + ${3} diff --git a/vim/snippets/rst.snippets b/vim/snippets/rst.snippets new file mode 100755 index 0000000..283bb26 --- /dev/null +++ b/vim/snippets/rst.snippets @@ -0,0 +1,16 @@ +# rst +## Some filesystems have trouble with some characters in these triggers in filenames, so leaving in here. + +snippet : + :${1:Text}: ${2:blah blah} +snippet * + *${1:Emphasis}* +snippet ** + **${1:Strong emphasis}** +snippet = + ${1:Title} + =====${2:=} + ${3} +snippet cont: + .. contents:: + diff --git a/vim/snippets/rst/-.snippet b/vim/snippets/rst/-.snippet new file mode 100755 index 0000000..e43df80 --- /dev/null +++ b/vim/snippets/rst/-.snippet @@ -0,0 +1,3 @@ +${1:Title} +-----${2:-} +${3} diff --git a/vim/snippets/rst/_.snippet b/vim/snippets/rst/_.snippet new file mode 100755 index 0000000..dc5d467 --- /dev/null +++ b/vim/snippets/rst/_.snippet @@ -0,0 +1,2 @@ +\`${1:Text}\`_ +.. _\`$1\`: ${2:blah blah} diff --git a/vim/snippets/ruby-factorygirl/fac.snippet b/vim/snippets/ruby-factorygirl/fac.snippet new file mode 100755 index 0000000..05cc3e8 --- /dev/null +++ b/vim/snippets/ruby-factorygirl/fac.snippet @@ -0,0 +1 @@ +Factory(:${1}, ${2})${3} diff --git a/vim/snippets/ruby-factorygirl/faca.snippet b/vim/snippets/ruby-factorygirl/faca.snippet new file mode 100755 index 0000000..ffc3d76 --- /dev/null +++ b/vim/snippets/ruby-factorygirl/faca.snippet @@ -0,0 +1 @@ +Factory.attributes_for(:${1}, ${2})${3} diff --git a/vim/snippets/ruby-factorygirl/facb.snippet b/vim/snippets/ruby-factorygirl/facb.snippet new file mode 100755 index 0000000..299c033 --- /dev/null +++ b/vim/snippets/ruby-factorygirl/facb.snippet @@ -0,0 +1 @@ +Factory.build(:${1}, ${2})${3} diff --git a/vim/snippets/ruby-factorygirl/facc.snippet b/vim/snippets/ruby-factorygirl/facc.snippet new file mode 100755 index 0000000..9cb1f73 --- /dev/null +++ b/vim/snippets/ruby-factorygirl/facc.snippet @@ -0,0 +1 @@ +Factory.create(:${1})${2} diff --git a/vim/snippets/ruby-factorygirl/facd.snippet b/vim/snippets/ruby-factorygirl/facd.snippet new file mode 100755 index 0000000..7dcd6d9 --- /dev/null +++ b/vim/snippets/ruby-factorygirl/facd.snippet @@ -0,0 +1,4 @@ +Factory.define(:${1:model}) do |f| + ${2} +end +${3} diff --git a/vim/snippets/ruby-factorygirl/facn.snippet b/vim/snippets/ruby-factorygirl/facn.snippet new file mode 100755 index 0000000..7232308 --- /dev/null +++ b/vim/snippets/ruby-factorygirl/facn.snippet @@ -0,0 +1 @@ +Factory.next(:${1:sequence-name})${2} diff --git a/vim/snippets/ruby-factorygirl/facs.snippet b/vim/snippets/ruby-factorygirl/facs.snippet new file mode 100755 index 0000000..13fd5b9 --- /dev/null +++ b/vim/snippets/ruby-factorygirl/facs.snippet @@ -0,0 +1,4 @@ +Factory.sequence :${1:sequence-name} do |${2:m}| + ${3} +end +${4} diff --git a/vim/snippets/ruby-machinist/bluep.snippet b/vim/snippets/ruby-machinist/bluep.snippet new file mode 100755 index 0000000..0a783a8 --- /dev/null +++ b/vim/snippets/ruby-machinist/bluep.snippet @@ -0,0 +1,3 @@ +${1:Model}.blueprint do + ${2} +end diff --git a/vim/snippets/ruby-machinist/mm_ma.snippet b/vim/snippets/ruby-machinist/mm_ma.snippet new file mode 100755 index 0000000..1c4b259 --- /dev/null +++ b/vim/snippets/ruby-machinist/mm_ma.snippet @@ -0,0 +1 @@ +${1:Model}.make diff --git a/vim/snippets/ruby-machinist/mmn.snippet b/vim/snippets/ruby-machinist/mmn.snippet new file mode 100755 index 0000000..4189110 --- /dev/null +++ b/vim/snippets/ruby-machinist/mmn.snippet @@ -0,0 +1 @@ +${1:Model}.make(${2::symbol}) diff --git a/vim/snippets/ruby-machinist/mp.snippet b/vim/snippets/ruby-machinist/mp.snippet new file mode 100755 index 0000000..ecb381d --- /dev/null +++ b/vim/snippets/ruby-machinist/mp.snippet @@ -0,0 +1 @@ +${1:Model}.plan diff --git a/vim/snippets/ruby-machinist/mp_ma.snippet b/vim/snippets/ruby-machinist/mp_ma.snippet new file mode 100755 index 0000000..ecb381d --- /dev/null +++ b/vim/snippets/ruby-machinist/mp_ma.snippet @@ -0,0 +1 @@ +${1:Model}.plan diff --git a/vim/snippets/ruby-machinist/mpn.snippet b/vim/snippets/ruby-machinist/mpn.snippet new file mode 100755 index 0000000..2fa6166 --- /dev/null +++ b/vim/snippets/ruby-machinist/mpn.snippet @@ -0,0 +1 @@ +${1:Model}.plan(${2::symbol}) diff --git a/vim/snippets/ruby-machinist/plan.snippet b/vim/snippets/ruby-machinist/plan.snippet new file mode 100755 index 0000000..ecb381d --- /dev/null +++ b/vim/snippets/ruby-machinist/plan.snippet @@ -0,0 +1 @@ +${1:Model}.plan diff --git a/vim/snippets/ruby-machinist/sham.snippet b/vim/snippets/ruby-machinist/sham.snippet new file mode 100755 index 0000000..f5157dc --- /dev/null +++ b/vim/snippets/ruby-machinist/sham.snippet @@ -0,0 +1,3 @@ +Sham.define do + ${1} +end diff --git a/vim/snippets/ruby-rails-rjs/hide.snippet b/vim/snippets/ruby-rails-rjs/hide.snippet new file mode 100755 index 0000000..c20ac57 --- /dev/null +++ b/vim/snippets/ruby-rails-rjs/hide.snippet @@ -0,0 +1 @@ +page.hide "${1}" diff --git a/vim/snippets/ruby-rails-rjs/ins.snippet b/vim/snippets/ruby-rails-rjs/ins.snippet new file mode 100755 index 0000000..ec67dec --- /dev/null +++ b/vim/snippets/ruby-rails-rjs/ins.snippet @@ -0,0 +1 @@ +page.insert_html :${1}, "${2:id}", :partial => "${3:template}" diff --git a/vim/snippets/ruby-rails-rjs/rep.snippet b/vim/snippets/ruby-rails-rjs/rep.snippet new file mode 100755 index 0000000..d8d2058 --- /dev/null +++ b/vim/snippets/ruby-rails-rjs/rep.snippet @@ -0,0 +1 @@ +page.replace "${1:id}", :partial => "${:template}" diff --git a/vim/snippets/ruby-rails-rjs/reph.snippet b/vim/snippets/ruby-rails-rjs/reph.snippet new file mode 100755 index 0000000..b622cf2 --- /dev/null +++ b/vim/snippets/ruby-rails-rjs/reph.snippet @@ -0,0 +1 @@ +page.replace_html "${1:id}", :partial => "${2:template}" diff --git a/vim/snippets/ruby-rails-rjs/show.snippet b/vim/snippets/ruby-rails-rjs/show.snippet new file mode 100755 index 0000000..7f6cf3d --- /dev/null +++ b/vim/snippets/ruby-rails-rjs/show.snippet @@ -0,0 +1 @@ +page.show "${1:id}" diff --git a/vim/snippets/ruby-rails-rjs/tog.snippet b/vim/snippets/ruby-rails-rjs/tog.snippet new file mode 100755 index 0000000..b6d438b --- /dev/null +++ b/vim/snippets/ruby-rails-rjs/tog.snippet @@ -0,0 +1 @@ +page.toggle "${1:id}" diff --git a/vim/snippets/ruby-rails-rjs/vis.snippet b/vim/snippets/ruby-rails-rjs/vis.snippet new file mode 100755 index 0000000..e0cba96 --- /dev/null +++ b/vim/snippets/ruby-rails-rjs/vis.snippet @@ -0,0 +1 @@ +page.visual_effect :${1}, "${2:id}" diff --git a/vim/snippets/ruby-rails/ac.snippet b/vim/snippets/ruby-rails/ac.snippet new file mode 100755 index 0000000..3230893 --- /dev/null +++ b/vim/snippets/ruby-rails/ac.snippet @@ -0,0 +1 @@ +after_create :${1:method} diff --git a/vim/snippets/ruby-rails/anaf.snippet b/vim/snippets/ruby-rails/anaf.snippet new file mode 100755 index 0000000..2a0939d --- /dev/null +++ b/vim/snippets/ruby-rails/anaf.snippet @@ -0,0 +1 @@ +accepts_nested_attributes_for :${1:object} diff --git a/vim/snippets/ruby-rails/art.snippet b/vim/snippets/ruby-rails/art.snippet new file mode 100755 index 0000000..a5a7d34 --- /dev/null +++ b/vim/snippets/ruby-rails/art.snippet @@ -0,0 +1 @@ +assert_redirected_to ${1::action => "${2:index}"} diff --git a/vim/snippets/ruby-rails/artnp.snippet b/vim/snippets/ruby-rails/artnp.snippet new file mode 100755 index 0000000..2c9bfef --- /dev/null +++ b/vim/snippets/ruby-rails/artnp.snippet @@ -0,0 +1 @@ +assert_redirected_to <+<+parent+>_<+child+>_path(<+@<+parent+>+>, <+@<+child+>+>)+> diff --git a/vim/snippets/ruby-rails/artnpp.snippet b/vim/snippets/ruby-rails/artnpp.snippet new file mode 100755 index 0000000..becd79b --- /dev/null +++ b/vim/snippets/ruby-rails/artnpp.snippet @@ -0,0 +1 @@ +assert_redirected_to <+<+parent+>_<+child+>_path(<+@<+parent+>+>)+> diff --git a/vim/snippets/ruby-rails/artp.snippet b/vim/snippets/ruby-rails/artp.snippet new file mode 100755 index 0000000..55b9204 --- /dev/null +++ b/vim/snippets/ruby-rails/artp.snippet @@ -0,0 +1 @@ +assert_redirected_to <+<+model+>_path(<+@<+model+>+>)+> diff --git a/vim/snippets/ruby-rails/artpp.snippet b/vim/snippets/ruby-rails/artpp.snippet new file mode 100755 index 0000000..1d1d203 --- /dev/null +++ b/vim/snippets/ruby-rails/artpp.snippet @@ -0,0 +1 @@ +assert_redirected_to <+<+model+>s_path+> diff --git a/vim/snippets/ruby-rails/asd.snippet b/vim/snippets/ruby-rails/asd.snippet new file mode 100755 index 0000000..35ab730 --- /dev/null +++ b/vim/snippets/ruby-rails/asd.snippet @@ -0,0 +1,3 @@ +assert_difference "${1:Model}.${2:count}", $1 do + ${3} +end diff --git a/vim/snippets/ruby-rails/asnd.snippet b/vim/snippets/ruby-rails/asnd.snippet new file mode 100755 index 0000000..c5124e0 --- /dev/null +++ b/vim/snippets/ruby-rails/asnd.snippet @@ -0,0 +1,3 @@ +assert_no_difference "${1:Model}.${2:count}" do + ${3} +end diff --git a/vim/snippets/ruby-rails/asre.snippet b/vim/snippets/ruby-rails/asre.snippet new file mode 100755 index 0000000..d0ac6b2 --- /dev/null +++ b/vim/snippets/ruby-rails/asre.snippet @@ -0,0 +1 @@ +assert_response :${1:success}, @response.body${2} diff --git a/vim/snippets/ruby-rails/asrj.snippet b/vim/snippets/ruby-rails/asrj.snippet new file mode 100755 index 0000000..6ee13f2 --- /dev/null +++ b/vim/snippets/ruby-rails/asrj.snippet @@ -0,0 +1 @@ +assert_rjs :<+replace+>, <+"<+dom id+>"+> diff --git a/vim/snippets/ruby-rails/ass.snippet b/vim/snippets/ruby-rails/ass.snippet new file mode 100755 index 0000000..4cc696f --- /dev/null +++ b/vim/snippets/ruby-rails/ass.snippet @@ -0,0 +1 @@ +assert_select '<+path+>'<+, :<+text+> => <+'<+inner_html+>'+>+> <+do<++>+> diff --git a/vim/snippets/ruby-rails/bc.snippet b/vim/snippets/ruby-rails/bc.snippet new file mode 100755 index 0000000..7fed4bf --- /dev/null +++ b/vim/snippets/ruby-rails/bc.snippet @@ -0,0 +1 @@ +before_create :${1:method} diff --git a/vim/snippets/ruby-rails/bf.snippet b/vim/snippets/ruby-rails/bf.snippet new file mode 100755 index 0000000..ad25cc9 --- /dev/null +++ b/vim/snippets/ruby-rails/bf.snippet @@ -0,0 +1 @@ +before_filter :${1:method} diff --git a/vim/snippets/ruby-rails/bt.snippet b/vim/snippets/ruby-rails/bt.snippet new file mode 100755 index 0000000..b28e1e6 --- /dev/null +++ b/vim/snippets/ruby-rails/bt.snippet @@ -0,0 +1 @@ +belongs_to :${1:association} diff --git a/vim/snippets/ruby-rails/cr.snippet b/vim/snippets/ruby-rails/cr.snippet new file mode 100755 index 0000000..8492316 --- /dev/null +++ b/vim/snippets/ruby-rails/cr.snippet @@ -0,0 +1 @@ +cattr_reader :${1:attr_names} diff --git a/vim/snippets/ruby-rails/crw.snippet b/vim/snippets/ruby-rails/crw.snippet new file mode 100755 index 0000000..3b1ab61 --- /dev/null +++ b/vim/snippets/ruby-rails/crw.snippet @@ -0,0 +1 @@ +cattr_accessor :${1:attr_names} diff --git a/vim/snippets/ruby-rails/cw.snippet b/vim/snippets/ruby-rails/cw.snippet new file mode 100755 index 0000000..07ffc8e --- /dev/null +++ b/vim/snippets/ruby-rails/cw.snippet @@ -0,0 +1 @@ +cattr_writer :${1:attr_names} diff --git a/vim/snippets/ruby-rails/defcreate.snippet b/vim/snippets/ruby-rails/defcreate.snippet new file mode 100755 index 0000000..e878d3a --- /dev/null +++ b/vim/snippets/ruby-rails/defcreate.snippet @@ -0,0 +1,14 @@ +def create + @${1:model_class_name} = ${2:ModelClassName}.new(params[:$1]) + + respond_to do |wants| + if @$1.save + flash[:notice] = '$2 was successfully created.' + wants.html { redirect_to(@$1) } + wants.xml { render :xml => @$1, :status => :created, :location => @$1 } + else + wants.html { render :action => "new" } + wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity } + end + end +end${3} diff --git a/vim/snippets/ruby-rails/defdestroy.snippet b/vim/snippets/ruby-rails/defdestroy.snippet new file mode 100755 index 0000000..9c34080 --- /dev/null +++ b/vim/snippets/ruby-rails/defdestroy.snippet @@ -0,0 +1,9 @@ +def destroy + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id]) + @$1.destroy + + respond_to do |wants| + wants.html { redirect_to($1s_url) } + wants.xml { head :ok } + end +end${3} diff --git a/vim/snippets/ruby-rails/defedit.snippet b/vim/snippets/ruby-rails/defedit.snippet new file mode 100755 index 0000000..0e80dcb --- /dev/null +++ b/vim/snippets/ruby-rails/defedit.snippet @@ -0,0 +1,3 @@ +def edit + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id]) +end diff --git a/vim/snippets/ruby-rails/defindex.snippet b/vim/snippets/ruby-rails/defindex.snippet new file mode 100755 index 0000000..2265c63 --- /dev/null +++ b/vim/snippets/ruby-rails/defindex.snippet @@ -0,0 +1,8 @@ +def index + @${1:model_class_name}s = ${2:ModelClassName}.all + + respond_to do |wants| + wants.html # index.html.erb + wants.xml { render :xml => @$1s } + end +end${3} diff --git a/vim/snippets/ruby-rails/defnew.snippet b/vim/snippets/ruby-rails/defnew.snippet new file mode 100755 index 0000000..0a4762b --- /dev/null +++ b/vim/snippets/ruby-rails/defnew.snippet @@ -0,0 +1,8 @@ +def new + @${1:model_class_name} = ${2:ModelClassName}.new + + respond_to do |wants| + wants.html # new.html.erb + wants.xml { render :xml => @$1 } + end +end${3} diff --git a/vim/snippets/ruby-rails/defshow.snippet b/vim/snippets/ruby-rails/defshow.snippet new file mode 100755 index 0000000..ba745d5 --- /dev/null +++ b/vim/snippets/ruby-rails/defshow.snippet @@ -0,0 +1,8 @@ +def show + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id]) + + respond_to do |wants| + wants.html # show.html.erb + wants.xml { render :xml => @$1 } + end +end${3} diff --git a/vim/snippets/ruby-rails/defupdate.snippet b/vim/snippets/ruby-rails/defupdate.snippet new file mode 100755 index 0000000..0556895 --- /dev/null +++ b/vim/snippets/ruby-rails/defupdate.snippet @@ -0,0 +1,14 @@ +def update + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id]) + + respond_to do |wants| + if @$1.update_attributes(params[:$1]) + flash[:notice] = '$2 was successfully updated.' + wants.html { redirect_to(@$1) } + wants.xml { head :ok } + else + wants.html { render :action => "edit" } + wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity } + end + end +end${3} diff --git a/vim/snippets/ruby-rails/fina.snippet b/vim/snippets/ruby-rails/fina.snippet new file mode 100755 index 0000000..fc0af5a --- /dev/null +++ b/vim/snippets/ruby-rails/fina.snippet @@ -0,0 +1 @@ +find(:all, :conditions => ['${1:field} = ?', ${2:true}])${3} diff --git a/vim/snippets/ruby-rails/finf.snippet b/vim/snippets/ruby-rails/finf.snippet new file mode 100755 index 0000000..b50df63 --- /dev/null +++ b/vim/snippets/ruby-rails/finf.snippet @@ -0,0 +1 @@ +find(:first, :conditions => ['${1:field} = ?', ${2:true}])${3} diff --git a/vim/snippets/ruby-rails/fini.snippet b/vim/snippets/ruby-rails/fini.snippet new file mode 100755 index 0000000..9adce48 --- /dev/null +++ b/vim/snippets/ruby-rails/fini.snippet @@ -0,0 +1 @@ +find(${1:id})${2} diff --git a/vim/snippets/ruby-rails/finl.snippet b/vim/snippets/ruby-rails/finl.snippet new file mode 100755 index 0000000..9d5e472 --- /dev/null +++ b/vim/snippets/ruby-rails/finl.snippet @@ -0,0 +1 @@ +find(:last, :conditions => ['${1:field} = ?', ${2:true}])${3} diff --git a/vim/snippets/ruby-rails/flash.snippet b/vim/snippets/ruby-rails/flash.snippet new file mode 100755 index 0000000..2a06930 --- /dev/null +++ b/vim/snippets/ruby-rails/flash.snippet @@ -0,0 +1 @@ +flash[:${1:notice}] = "${2}" diff --git a/vim/snippets/ruby-rails/habtm.snippet b/vim/snippets/ruby-rails/habtm.snippet new file mode 100755 index 0000000..1b27396 --- /dev/null +++ b/vim/snippets/ruby-rails/habtm.snippet @@ -0,0 +1 @@ +has_and_belongs_to_many :${1:object}, :join_table => "${2:table_name}", :foreign_key => "${3}_id"${4} diff --git a/vim/snippets/ruby-rails/hm.snippet b/vim/snippets/ruby-rails/hm.snippet new file mode 100755 index 0000000..9204df5 --- /dev/null +++ b/vim/snippets/ruby-rails/hm.snippet @@ -0,0 +1 @@ +has_many :${1:object} diff --git a/vim/snippets/ruby-rails/hmd.snippet b/vim/snippets/ruby-rails/hmd.snippet new file mode 100755 index 0000000..6aadd73 --- /dev/null +++ b/vim/snippets/ruby-rails/hmd.snippet @@ -0,0 +1 @@ +has_many :<+object+>s<+, :class_name => "<+object+>", :foreign_key => "<+reference+>_id"+>, :dependent => :destroy<++> diff --git a/vim/snippets/ruby-rails/hmt.snippet b/vim/snippets/ruby-rails/hmt.snippet new file mode 100755 index 0000000..4128e03 --- /dev/null +++ b/vim/snippets/ruby-rails/hmt.snippet @@ -0,0 +1 @@ +has_many :${1:object}, :through => :${2:object} diff --git a/vim/snippets/ruby-rails/ho.snippet b/vim/snippets/ruby-rails/ho.snippet new file mode 100755 index 0000000..77e14e7 --- /dev/null +++ b/vim/snippets/ruby-rails/ho.snippet @@ -0,0 +1 @@ +has_one :${1:object} diff --git a/vim/snippets/ruby-rails/i18.snippet b/vim/snippets/ruby-rails/i18.snippet new file mode 100755 index 0000000..2a30fae --- /dev/null +++ b/vim/snippets/ruby-rails/i18.snippet @@ -0,0 +1 @@ +I18n.t('${1:type.key}')${2} diff --git a/vim/snippets/ruby-rails/ist.snippet b/vim/snippets/ruby-rails/ist.snippet new file mode 100755 index 0000000..d97d482 --- /dev/null +++ b/vim/snippets/ruby-rails/ist.snippet @@ -0,0 +1 @@ +<%= image_submit_tag("<+agree.png+>"<+<+, :id => "<+id+>"+><+, :name => "<+name+>"+><+, :class => "<+class+>"+><+, :disabled => <+false+>+>+>) %> diff --git a/vim/snippets/ruby-rails/log.snippet b/vim/snippets/ruby-rails/log.snippet new file mode 100755 index 0000000..53360dd --- /dev/null +++ b/vim/snippets/ruby-rails/log.snippet @@ -0,0 +1 @@ +RAILS_DEFAULT_LOGGER.${1:debug} ${2} diff --git a/vim/snippets/ruby-rails/logd.snippet b/vim/snippets/ruby-rails/logd.snippet new file mode 100755 index 0000000..36236a3 --- /dev/null +++ b/vim/snippets/ruby-rails/logd.snippet @@ -0,0 +1 @@ +logger.debug { "${1:message}" }${2} diff --git a/vim/snippets/ruby-rails/loge.snippet b/vim/snippets/ruby-rails/loge.snippet new file mode 100755 index 0000000..4417ad2 --- /dev/null +++ b/vim/snippets/ruby-rails/loge.snippet @@ -0,0 +1 @@ +logger.error { "${1:message}" }${2} diff --git a/vim/snippets/ruby-rails/logf.snippet b/vim/snippets/ruby-rails/logf.snippet new file mode 100755 index 0000000..1bd419c --- /dev/null +++ b/vim/snippets/ruby-rails/logf.snippet @@ -0,0 +1 @@ +logger.fatal { "${1:message}" }${2} diff --git a/vim/snippets/ruby-rails/logi.snippet b/vim/snippets/ruby-rails/logi.snippet new file mode 100755 index 0000000..bf508dc --- /dev/null +++ b/vim/snippets/ruby-rails/logi.snippet @@ -0,0 +1 @@ +logger.info { "${1:message}" }${2} diff --git a/vim/snippets/ruby-rails/logw.snippet b/vim/snippets/ruby-rails/logw.snippet new file mode 100755 index 0000000..447f688 --- /dev/null +++ b/vim/snippets/ruby-rails/logw.snippet @@ -0,0 +1 @@ +logger.warn { "${1:message}" }${2} diff --git a/vim/snippets/ruby-rails/mac.snippet b/vim/snippets/ruby-rails/mac.snippet new file mode 100755 index 0000000..548d4af --- /dev/null +++ b/vim/snippets/ruby-rails/mac.snippet @@ -0,0 +1 @@ +add_column :${1:table}, :${2:column}, :${3:type} diff --git a/vim/snippets/ruby-rails/mapc.snippet b/vim/snippets/ruby-rails/mapc.snippet new file mode 100755 index 0000000..b14ec4c --- /dev/null +++ b/vim/snippets/ruby-rails/mapc.snippet @@ -0,0 +1 @@ +${1:map}.${2:connect} '${3:controller/:action/:id}' diff --git a/vim/snippets/ruby-rails/mapca.snippet b/vim/snippets/ruby-rails/mapca.snippet new file mode 100755 index 0000000..9292ffe --- /dev/null +++ b/vim/snippets/ruby-rails/mapca.snippet @@ -0,0 +1 @@ +${1:map}.catch_all "*${2:anything}", :controller => "${3:default}", :action => "${4:error}"${5} diff --git a/vim/snippets/ruby-rails/mapr.snippet b/vim/snippets/ruby-rails/mapr.snippet new file mode 100755 index 0000000..424805b --- /dev/null +++ b/vim/snippets/ruby-rails/mapr.snippet @@ -0,0 +1 @@ +${1:map}.resource :${2:resource} diff --git a/vim/snippets/ruby-rails/maprs.snippet b/vim/snippets/ruby-rails/maprs.snippet new file mode 100755 index 0000000..a18c4df --- /dev/null +++ b/vim/snippets/ruby-rails/maprs.snippet @@ -0,0 +1 @@ +${1:map}.resources :${2:resource} diff --git a/vim/snippets/ruby-rails/mapwo.snippet b/vim/snippets/ruby-rails/mapwo.snippet new file mode 100755 index 0000000..b3cf791 --- /dev/null +++ b/vim/snippets/ruby-rails/mapwo.snippet @@ -0,0 +1,3 @@ +${1:map}.with_options :${2:controller} => '${3:thing}' do |$3| + ${4} +end diff --git a/vim/snippets/ruby-rails/mbs.snippet b/vim/snippets/ruby-rails/mbs.snippet new file mode 100755 index 0000000..a3b34bb --- /dev/null +++ b/vim/snippets/ruby-rails/mbs.snippet @@ -0,0 +1 @@ +before_save :${1:method} diff --git a/vim/snippets/ruby-rails/mcc.snippet b/vim/snippets/ruby-rails/mcc.snippet new file mode 100755 index 0000000..74dc7af --- /dev/null +++ b/vim/snippets/ruby-rails/mcc.snippet @@ -0,0 +1 @@ +change_column :${1:table}, :${2:column}, :${3:type} diff --git a/vim/snippets/ruby-rails/mccc.snippet b/vim/snippets/ruby-rails/mccc.snippet new file mode 100755 index 0000000..2915a37 --- /dev/null +++ b/vim/snippets/ruby-rails/mccc.snippet @@ -0,0 +1 @@ +t.column :${1:title}, :${2:string} diff --git a/vim/snippets/ruby-rails/mcht.snippet b/vim/snippets/ruby-rails/mcht.snippet new file mode 100755 index 0000000..a71b473 --- /dev/null +++ b/vim/snippets/ruby-rails/mcht.snippet @@ -0,0 +1,3 @@ +change_table :${1:table_name} do |t| + ${2} +end diff --git a/vim/snippets/ruby-rails/mcol.snippet b/vim/snippets/ruby-rails/mcol.snippet new file mode 100755 index 0000000..8a5bd1f --- /dev/null +++ b/vim/snippets/ruby-rails/mcol.snippet @@ -0,0 +1 @@ +remove_column :${1:table}, :${2:column} diff --git a/vim/snippets/ruby-rails/mct.snippet b/vim/snippets/ruby-rails/mct.snippet new file mode 100755 index 0000000..8dbe1ea --- /dev/null +++ b/vim/snippets/ruby-rails/mct.snippet @@ -0,0 +1,3 @@ +create_table :${1:table_name} do |t| + t.column :${2:name}, :${3:type} +end diff --git a/vim/snippets/ruby-rails/migration.snippet b/vim/snippets/ruby-rails/migration.snippet new file mode 100755 index 0000000..9f54e0b --- /dev/null +++ b/vim/snippets/ruby-rails/migration.snippet @@ -0,0 +1,8 @@ +class ${1:`Snippet_MigrationNameFromFilename()`} < ActiveRecord::Migration + def self.up + ${2} + end + + def self.down + end +end diff --git a/vim/snippets/ruby-rails/mp.snippet b/vim/snippets/ruby-rails/mp.snippet new file mode 100755 index 0000000..1264a59 --- /dev/null +++ b/vim/snippets/ruby-rails/mp.snippet @@ -0,0 +1 @@ +map(&:${1:id}) diff --git a/vim/snippets/ruby-rails/mrc.snippet b/vim/snippets/ruby-rails/mrc.snippet new file mode 100755 index 0000000..8a5bd1f --- /dev/null +++ b/vim/snippets/ruby-rails/mrc.snippet @@ -0,0 +1 @@ +remove_column :${1:table}, :${2:column} diff --git a/vim/snippets/ruby-rails/mrmc.snippet b/vim/snippets/ruby-rails/mrmc.snippet new file mode 100755 index 0000000..8a5bd1f --- /dev/null +++ b/vim/snippets/ruby-rails/mrmc.snippet @@ -0,0 +1 @@ +remove_column :${1:table}, :${2:column} diff --git a/vim/snippets/ruby-rails/mrnc.snippet b/vim/snippets/ruby-rails/mrnc.snippet new file mode 100755 index 0000000..6e16721 --- /dev/null +++ b/vim/snippets/ruby-rails/mrnc.snippet @@ -0,0 +1 @@ +rename_column :${1:table}, :${2:old}, :${3:new} diff --git a/vim/snippets/ruby-rails/mrw.snippet b/vim/snippets/ruby-rails/mrw.snippet new file mode 100755 index 0000000..9ef0f8f --- /dev/null +++ b/vim/snippets/ruby-rails/mrw.snippet @@ -0,0 +1 @@ +mattr_accessor :${1:attr_names} diff --git a/vim/snippets/ruby-rails/mtab.snippet b/vim/snippets/ruby-rails/mtab.snippet new file mode 100755 index 0000000..9f0e7f0 --- /dev/null +++ b/vim/snippets/ruby-rails/mtab.snippet @@ -0,0 +1,3 @@ +create_table :${1:table} do |t| + ${2} +end diff --git a/vim/snippets/ruby-rails/nc.snippet b/vim/snippets/ruby-rails/nc.snippet new file mode 100755 index 0000000..cfc42ca --- /dev/null +++ b/vim/snippets/ruby-rails/nc.snippet @@ -0,0 +1 @@ +named_scope :<+name+><+, :joins => :<+table+>+>, :conditions => <+['<+<+field+> = ?+>', <+true+>]+> diff --git a/vim/snippets/ruby-rails/ncl.snippet b/vim/snippets/ruby-rails/ncl.snippet new file mode 100755 index 0000000..c420ef2 --- /dev/null +++ b/vim/snippets/ruby-rails/ncl.snippet @@ -0,0 +1 @@ +named_scope :<+name+>, lambda { |<+param+>| { :conditions => <+['<+<+field+> = ?+>', <+param+>]+> } } diff --git a/vim/snippets/ruby-rails/pa.snippet b/vim/snippets/ruby-rails/pa.snippet new file mode 100755 index 0000000..14fa54f --- /dev/null +++ b/vim/snippets/ruby-rails/pa.snippet @@ -0,0 +1 @@ +params[:${1:id}]${2} diff --git a/vim/snippets/ruby-rails/ra.snippet b/vim/snippets/ruby-rails/ra.snippet new file mode 100755 index 0000000..56a9bbf --- /dev/null +++ b/vim/snippets/ruby-rails/ra.snippet @@ -0,0 +1 @@ +render :action => "${1:action}" diff --git a/vim/snippets/ruby-rails/ral.snippet b/vim/snippets/ruby-rails/ral.snippet new file mode 100755 index 0000000..0a0b202 --- /dev/null +++ b/vim/snippets/ruby-rails/ral.snippet @@ -0,0 +1 @@ +render :action => "${1:action}", :layout => "${2:layoutname}" diff --git a/vim/snippets/ruby-rails/rest.snippet b/vim/snippets/ruby-rails/rest.snippet new file mode 100755 index 0000000..ad61342 --- /dev/null +++ b/vim/snippets/ruby-rails/rest.snippet @@ -0,0 +1,6 @@ +respond_to do |f| + f.html + f.js do + ${1:render} + end +end diff --git a/vim/snippets/ruby-rails/rf.snippet b/vim/snippets/ruby-rails/rf.snippet new file mode 100755 index 0000000..76fcdb1 --- /dev/null +++ b/vim/snippets/ruby-rails/rf.snippet @@ -0,0 +1 @@ +render :file => "${1:filepath}" diff --git a/vim/snippets/ruby-rails/rfu.snippet b/vim/snippets/ruby-rails/rfu.snippet new file mode 100755 index 0000000..c0bb72b --- /dev/null +++ b/vim/snippets/ruby-rails/rfu.snippet @@ -0,0 +1 @@ +render :file => "${1:filepath}", :use_full_path => ${2:false} diff --git a/vim/snippets/ruby-rails/ri.snippet b/vim/snippets/ruby-rails/ri.snippet new file mode 100755 index 0000000..17a0404 --- /dev/null +++ b/vim/snippets/ruby-rails/ri.snippet @@ -0,0 +1 @@ +render :inline => "<+<%= 'hello' %>+>" diff --git a/vim/snippets/ruby-rails/ril.snippet b/vim/snippets/ruby-rails/ril.snippet new file mode 100755 index 0000000..b1801aa --- /dev/null +++ b/vim/snippets/ruby-rails/ril.snippet @@ -0,0 +1 @@ +render :inline => "${1:<%= 'hello' %>}", :locals => { ${2::name} => "${3:value}"${4} } diff --git a/vim/snippets/ruby-rails/rit.snippet b/vim/snippets/ruby-rails/rit.snippet new file mode 100755 index 0000000..b3cd834 --- /dev/null +++ b/vim/snippets/ruby-rails/rit.snippet @@ -0,0 +1 @@ +render :inline => "${1:<%= 'hello' %>}", :type => ${2::rxml} diff --git a/vim/snippets/ruby-rails/rjson.snippet b/vim/snippets/ruby-rails/rjson.snippet new file mode 100755 index 0000000..fece1fc --- /dev/null +++ b/vim/snippets/ruby-rails/rjson.snippet @@ -0,0 +1 @@ +render :json => ${1:text to render} diff --git a/vim/snippets/ruby-rails/rl.snippet b/vim/snippets/ruby-rails/rl.snippet new file mode 100755 index 0000000..53e8340 --- /dev/null +++ b/vim/snippets/ruby-rails/rl.snippet @@ -0,0 +1 @@ +render :layout => "${1:layoutname}" diff --git a/vim/snippets/ruby-rails/rn.snippet b/vim/snippets/ruby-rails/rn.snippet new file mode 100755 index 0000000..6c6b0fe --- /dev/null +++ b/vim/snippets/ruby-rails/rn.snippet @@ -0,0 +1 @@ +render :nothing => ${1:true} diff --git a/vim/snippets/ruby-rails/rns.snippet b/vim/snippets/ruby-rails/rns.snippet new file mode 100755 index 0000000..d1a581f --- /dev/null +++ b/vim/snippets/ruby-rails/rns.snippet @@ -0,0 +1 @@ +render :nothing => ${1:true}, :status => ${2:401} diff --git a/vim/snippets/ruby-rails/rp.snippet b/vim/snippets/ruby-rails/rp.snippet new file mode 100755 index 0000000..0c5daa2 --- /dev/null +++ b/vim/snippets/ruby-rails/rp.snippet @@ -0,0 +1 @@ +render :partial => "${1:item}" diff --git a/vim/snippets/ruby-rails/rpc.snippet b/vim/snippets/ruby-rails/rpc.snippet new file mode 100755 index 0000000..570644b --- /dev/null +++ b/vim/snippets/ruby-rails/rpc.snippet @@ -0,0 +1 @@ +render :partial => "<+item+>", :collection => <+@<+item+>s+> diff --git a/vim/snippets/ruby-rails/rpl.snippet b/vim/snippets/ruby-rails/rpl.snippet new file mode 100755 index 0000000..6981fbc --- /dev/null +++ b/vim/snippets/ruby-rails/rpl.snippet @@ -0,0 +1 @@ +render :partial => "<+item+>", :locals => { :<+item+> => <+@<+item+>+><++> } diff --git a/vim/snippets/ruby-rails/rpo.snippet b/vim/snippets/ruby-rails/rpo.snippet new file mode 100755 index 0000000..bab9da9 --- /dev/null +++ b/vim/snippets/ruby-rails/rpo.snippet @@ -0,0 +1 @@ +render :partial => "<+item+>", :object => <+@<+item+>+> diff --git a/vim/snippets/ruby-rails/rps.snippet b/vim/snippets/ruby-rails/rps.snippet new file mode 100755 index 0000000..aef4c49 --- /dev/null +++ b/vim/snippets/ruby-rails/rps.snippet @@ -0,0 +1 @@ +render :partial => "${1:item}", :status => ${2:500} diff --git a/vim/snippets/ruby-rails/rt.snippet b/vim/snippets/ruby-rails/rt.snippet new file mode 100755 index 0000000..c464879 --- /dev/null +++ b/vim/snippets/ruby-rails/rt.snippet @@ -0,0 +1 @@ +render :text => "${1:text to render}" diff --git a/vim/snippets/ruby-rails/rtl.snippet b/vim/snippets/ruby-rails/rtl.snippet new file mode 100755 index 0000000..fc78bf1 --- /dev/null +++ b/vim/snippets/ruby-rails/rtl.snippet @@ -0,0 +1 @@ +render :text => "${1:text to render}", :layout => "${2:layoutname}" diff --git a/vim/snippets/ruby-rails/rtlt.snippet b/vim/snippets/ruby-rails/rtlt.snippet new file mode 100755 index 0000000..69618be --- /dev/null +++ b/vim/snippets/ruby-rails/rtlt.snippet @@ -0,0 +1 @@ +render :text => "${1:text to render}", :layout => ${2:true} diff --git a/vim/snippets/ruby-rails/rts.snippet b/vim/snippets/ruby-rails/rts.snippet new file mode 100755 index 0000000..04fe409 --- /dev/null +++ b/vim/snippets/ruby-rails/rts.snippet @@ -0,0 +1 @@ +render :text => "${1:text to render}", :status => ${2:401} diff --git a/vim/snippets/ruby-rails/ru.snippet b/vim/snippets/ruby-rails/ru.snippet new file mode 100755 index 0000000..3a2d1ed --- /dev/null +++ b/vim/snippets/ruby-rails/ru.snippet @@ -0,0 +1,3 @@ +render :update do |${1:page}| + $1.${2} +end diff --git a/vim/snippets/ruby-rails/rxml.snippet b/vim/snippets/ruby-rails/rxml.snippet new file mode 100755 index 0000000..e4e721a --- /dev/null +++ b/vim/snippets/ruby-rails/rxml.snippet @@ -0,0 +1 @@ +render :xml => ${1:text to render} diff --git a/vim/snippets/ruby-rails/sha1.snippet b/vim/snippets/ruby-rails/sha1.snippet new file mode 100755 index 0000000..1984747 --- /dev/null +++ b/vim/snippets/ruby-rails/sha1.snippet @@ -0,0 +1 @@ +Digest::SHA1.hexdigest(${1:string}) diff --git a/vim/snippets/ruby-rails/sweeper.snippet b/vim/snippets/ruby-rails/sweeper.snippet new file mode 100755 index 0000000..659aeb0 --- /dev/null +++ b/vim/snippets/ruby-rails/sweeper.snippet @@ -0,0 +1,15 @@ +class ${1:ModelClassName}Sweeper < ActionController::Caching::Sweeper + observe $1 + + def after_save(${2:model_class_name}) + expire_cache($2) + end + + def after_destroy($2) + expire_cache($2) + end + + def expire_cache($2) + expire_page + end +end diff --git a/vim/snippets/ruby-rails/tcb.snippet b/vim/snippets/ruby-rails/tcb.snippet new file mode 100755 index 0000000..021740d --- /dev/null +++ b/vim/snippets/ruby-rails/tcb.snippet @@ -0,0 +1,2 @@ +t.boolean :${1:title} +${2} diff --git a/vim/snippets/ruby-rails/tcbi.snippet b/vim/snippets/ruby-rails/tcbi.snippet new file mode 100755 index 0000000..3e6d3c9 --- /dev/null +++ b/vim/snippets/ruby-rails/tcbi.snippet @@ -0,0 +1,2 @@ +t.binary :<+title+><+, :limit => <+2+>.megabytes+> +<++> diff --git a/vim/snippets/ruby-rails/tcd.snippet b/vim/snippets/ruby-rails/tcd.snippet new file mode 100755 index 0000000..c3048dc --- /dev/null +++ b/vim/snippets/ruby-rails/tcd.snippet @@ -0,0 +1,2 @@ +t.decimal :${1:title}<+<+, :precision => <+10+>+><+, :scale => <+2+>+>+> +<++> diff --git a/vim/snippets/ruby-rails/tcda.snippet b/vim/snippets/ruby-rails/tcda.snippet new file mode 100755 index 0000000..b716e8b --- /dev/null +++ b/vim/snippets/ruby-rails/tcda.snippet @@ -0,0 +1,2 @@ +t.date :${1:title} +${2} diff --git a/vim/snippets/ruby-rails/tcdt.snippet b/vim/snippets/ruby-rails/tcdt.snippet new file mode 100755 index 0000000..d060532 --- /dev/null +++ b/vim/snippets/ruby-rails/tcdt.snippet @@ -0,0 +1,2 @@ +t.datetime :${1:title} +${2} diff --git a/vim/snippets/ruby-rails/tcf.snippet b/vim/snippets/ruby-rails/tcf.snippet new file mode 100755 index 0000000..f09f790 --- /dev/null +++ b/vim/snippets/ruby-rails/tcf.snippet @@ -0,0 +1,2 @@ +t.float :${1:title} +${2} diff --git a/vim/snippets/ruby-rails/tch.snippet b/vim/snippets/ruby-rails/tch.snippet new file mode 100755 index 0000000..bcce727 --- /dev/null +++ b/vim/snippets/ruby-rails/tch.snippet @@ -0,0 +1,2 @@ +t.change :<+name+><+, :<+string+><+, :<+limit+> => <+80+>+>+> +<++> diff --git a/vim/snippets/ruby-rails/tci.snippet b/vim/snippets/ruby-rails/tci.snippet new file mode 100755 index 0000000..7cb011c --- /dev/null +++ b/vim/snippets/ruby-rails/tci.snippet @@ -0,0 +1,2 @@ +t.integer :${1:title} +${2} diff --git a/vim/snippets/ruby-rails/tcl.snippet b/vim/snippets/ruby-rails/tcl.snippet new file mode 100755 index 0000000..ffa359f --- /dev/null +++ b/vim/snippets/ruby-rails/tcl.snippet @@ -0,0 +1,2 @@ +t.integer :lock_version, :null => false, :default => 0 +${1} diff --git a/vim/snippets/ruby-rails/tcr.snippet b/vim/snippets/ruby-rails/tcr.snippet new file mode 100755 index 0000000..2b421dd --- /dev/null +++ b/vim/snippets/ruby-rails/tcr.snippet @@ -0,0 +1,2 @@ +t.references :<+taggable+><+, :polymorphic => <+{ :default => '<+Photo+>' }+>+> +<++> diff --git a/vim/snippets/ruby-rails/tcs.snippet b/vim/snippets/ruby-rails/tcs.snippet new file mode 100755 index 0000000..a7b8473 --- /dev/null +++ b/vim/snippets/ruby-rails/tcs.snippet @@ -0,0 +1,2 @@ +t.string :${1:title} +${2} diff --git a/vim/snippets/ruby-rails/tct.snippet b/vim/snippets/ruby-rails/tct.snippet new file mode 100755 index 0000000..f28518f --- /dev/null +++ b/vim/snippets/ruby-rails/tct.snippet @@ -0,0 +1,2 @@ +t.text :${1:title} +${2} diff --git a/vim/snippets/ruby-rails/tcti.snippet b/vim/snippets/ruby-rails/tcti.snippet new file mode 100755 index 0000000..0006c81 --- /dev/null +++ b/vim/snippets/ruby-rails/tcti.snippet @@ -0,0 +1,2 @@ +t.time :${1:title} +${2} diff --git a/vim/snippets/ruby-rails/tcts.snippet b/vim/snippets/ruby-rails/tcts.snippet new file mode 100755 index 0000000..e46e844 --- /dev/null +++ b/vim/snippets/ruby-rails/tcts.snippet @@ -0,0 +1,2 @@ +t.timestamp :${1:title} +${2} diff --git a/vim/snippets/ruby-rails/tctss.snippet b/vim/snippets/ruby-rails/tctss.snippet new file mode 100755 index 0000000..f009ee6 --- /dev/null +++ b/vim/snippets/ruby-rails/tctss.snippet @@ -0,0 +1,2 @@ +t.timestamps +${1} diff --git a/vim/snippets/ruby-rails/test.snippet b/vim/snippets/ruby-rails/test.snippet new file mode 100755 index 0000000..8164798 --- /dev/null +++ b/vim/snippets/ruby-rails/test.snippet @@ -0,0 +1,3 @@ +test "${1:case_name}" do + ${2} +end diff --git a/vim/snippets/ruby-rails/trc.snippet b/vim/snippets/ruby-rails/trc.snippet new file mode 100755 index 0000000..2d6250a --- /dev/null +++ b/vim/snippets/ruby-rails/trc.snippet @@ -0,0 +1 @@ +t.remove :${1:column} diff --git a/vim/snippets/ruby-rails/tre.snippet b/vim/snippets/ruby-rails/tre.snippet new file mode 100755 index 0000000..8f70788 --- /dev/null +++ b/vim/snippets/ruby-rails/tre.snippet @@ -0,0 +1,2 @@ +t.rename :<+old_column_name+>, :<+new_column_name+> +<++> diff --git a/vim/snippets/ruby-rails/tref.snippet b/vim/snippets/ruby-rails/tref.snippet new file mode 100755 index 0000000..1286786 --- /dev/null +++ b/vim/snippets/ruby-rails/tref.snippet @@ -0,0 +1 @@ +t.references :${1:model} diff --git a/vim/snippets/ruby-rails/va.snippet b/vim/snippets/ruby-rails/va.snippet new file mode 100755 index 0000000..064bb7b --- /dev/null +++ b/vim/snippets/ruby-rails/va.snippet @@ -0,0 +1 @@ +validates_associated :${1:attribute} diff --git a/vim/snippets/ruby-rails/vao.snippet b/vim/snippets/ruby-rails/vao.snippet new file mode 100755 index 0000000..4c6c98b --- /dev/null +++ b/vim/snippets/ruby-rails/vao.snippet @@ -0,0 +1 @@ +validates_acceptance_of :${1:terms} diff --git a/vim/snippets/ruby-rails/vc.snippet b/vim/snippets/ruby-rails/vc.snippet new file mode 100755 index 0000000..0aa1a75 --- /dev/null +++ b/vim/snippets/ruby-rails/vc.snippet @@ -0,0 +1 @@ +validates_confirmation_of :${1:attribute} diff --git a/vim/snippets/ruby-rails/ve.snippet b/vim/snippets/ruby-rails/ve.snippet new file mode 100755 index 0000000..b6a4c4d --- /dev/null +++ b/vim/snippets/ruby-rails/ve.snippet @@ -0,0 +1 @@ +validates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )} diff --git a/vim/snippets/ruby-rails/vf.snippet b/vim/snippets/ruby-rails/vf.snippet new file mode 100755 index 0000000..adc142c --- /dev/null +++ b/vim/snippets/ruby-rails/vf.snippet @@ -0,0 +1 @@ +validates_format_of :${1:attribute}, :with => /${2:regex}/ diff --git a/vim/snippets/ruby-rails/vi.snippet b/vim/snippets/ruby-rails/vi.snippet new file mode 100755 index 0000000..8ba16d2 --- /dev/null +++ b/vim/snippets/ruby-rails/vi.snippet @@ -0,0 +1 @@ +validates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi }) diff --git a/vim/snippets/ruby-rails/vl.snippet b/vim/snippets/ruby-rails/vl.snippet new file mode 100755 index 0000000..71d802b --- /dev/null +++ b/vim/snippets/ruby-rails/vl.snippet @@ -0,0 +1 @@ +validates_length_of :${1:attribute}, :within => ${2:3}..${3:20} diff --git a/vim/snippets/ruby-rails/vn.snippet b/vim/snippets/ruby-rails/vn.snippet new file mode 100755 index 0000000..34bfaa7 --- /dev/null +++ b/vim/snippets/ruby-rails/vn.snippet @@ -0,0 +1 @@ +validates_numericality_of :${1:attribute} diff --git a/vim/snippets/ruby-rails/vp.snippet b/vim/snippets/ruby-rails/vp.snippet new file mode 100755 index 0000000..6ddbdab --- /dev/null +++ b/vim/snippets/ruby-rails/vp.snippet @@ -0,0 +1 @@ +validates_presence_of :${1:attr} diff --git a/vim/snippets/ruby-rails/vpo.snippet b/vim/snippets/ruby-rails/vpo.snippet new file mode 100755 index 0000000..c8fdff9 --- /dev/null +++ b/vim/snippets/ruby-rails/vpo.snippet @@ -0,0 +1 @@ +validates_presence_of :${1:attribute} diff --git a/vim/snippets/ruby-rails/vu.snippet b/vim/snippets/ruby-rails/vu.snippet new file mode 100755 index 0000000..0c06e65 --- /dev/null +++ b/vim/snippets/ruby-rails/vu.snippet @@ -0,0 +1 @@ +validates_uniqueness_of :${1:attribute} diff --git a/vim/snippets/ruby-rails/wants.snippet b/vim/snippets/ruby-rails/wants.snippet new file mode 100755 index 0000000..909c8d5 --- /dev/null +++ b/vim/snippets/ruby-rails/wants.snippet @@ -0,0 +1 @@ +wants.<+js|xml|html+> <+{ <++> }+> diff --git a/vim/snippets/ruby-rails/xdelete.snippet b/vim/snippets/ruby-rails/xdelete.snippet new file mode 100755 index 0000000..41184e9 --- /dev/null +++ b/vim/snippets/ruby-rails/xdelete.snippet @@ -0,0 +1 @@ +xhr :delete, :${1:destroy}, :id => ${2:1}${3} diff --git a/vim/snippets/ruby-rails/xget.snippet b/vim/snippets/ruby-rails/xget.snippet new file mode 100755 index 0000000..1ae7834 --- /dev/null +++ b/vim/snippets/ruby-rails/xget.snippet @@ -0,0 +1 @@ +xhr :get, :<+show+><+, :id => <+1+>+><++> diff --git a/vim/snippets/ruby-rails/xpost.snippet b/vim/snippets/ruby-rails/xpost.snippet new file mode 100755 index 0000000..3681a95 --- /dev/null +++ b/vim/snippets/ruby-rails/xpost.snippet @@ -0,0 +1 @@ +xhr :post, :${1:create}, :${2:object} => { ${3} } diff --git a/vim/snippets/ruby-rails/xput.snippet b/vim/snippets/ruby-rails/xput.snippet new file mode 100755 index 0000000..f046f2e --- /dev/null +++ b/vim/snippets/ruby-rails/xput.snippet @@ -0,0 +1 @@ +xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5} diff --git a/vim/snippets/ruby-rspec/Given.snippet b/vim/snippets/ruby-rspec/Given.snippet new file mode 100755 index 0000000..c0e39e6 --- /dev/null +++ b/vim/snippets/ruby-rspec/Given.snippet @@ -0,0 +1,3 @@ +Given /^${1:something} ${2:"([^\"]*)"}$/ do |${3:arg1}| + ${4:pending} +end diff --git a/vim/snippets/ruby-rspec/Then.snippet b/vim/snippets/ruby-rspec/Then.snippet new file mode 100755 index 0000000..5b799fe --- /dev/null +++ b/vim/snippets/ruby-rspec/Then.snippet @@ -0,0 +1,3 @@ +Then /^${1:something} ${2:"([^\"]*)"}$/ do |${3:arg1}| + ${4:pending} +end diff --git a/vim/snippets/ruby-rspec/When.snippet b/vim/snippets/ruby-rspec/When.snippet new file mode 100755 index 0000000..af4e0fd --- /dev/null +++ b/vim/snippets/ruby-rspec/When.snippet @@ -0,0 +1,3 @@ +When /^${1:something} ${2:"([^\"]*)"}$/ do |${3:arg1}| + ${4:pending} +end diff --git a/vim/snippets/ruby-rspec/aft.snippet b/vim/snippets/ruby-rspec/aft.snippet new file mode 100755 index 0000000..528f1b3 --- /dev/null +++ b/vim/snippets/ruby-rspec/aft.snippet @@ -0,0 +1,3 @@ +after(${1::each}) do + ${2} +end diff --git a/vim/snippets/ruby-rspec/annot.snippet b/vim/snippets/ruby-rspec/annot.snippet new file mode 100755 index 0000000..7199170 --- /dev/null +++ b/vim/snippets/ruby-rspec/annot.snippet @@ -0,0 +1 @@ +any_number_of_times diff --git a/vim/snippets/ruby-rspec/anr.snippet b/vim/snippets/ruby-rspec/anr.snippet new file mode 100755 index 0000000..573addd --- /dev/null +++ b/vim/snippets/ruby-rspec/anr.snippet @@ -0,0 +1 @@ +and_return(${1:value}) diff --git a/vim/snippets/ruby-rspec/anra.snippet b/vim/snippets/ruby-rspec/anra.snippet new file mode 100755 index 0000000..ab03deb --- /dev/null +++ b/vim/snippets/ruby-rspec/anra.snippet @@ -0,0 +1 @@ +and_raise(${1:exception}) diff --git a/vim/snippets/ruby-rspec/anrb.snippet b/vim/snippets/ruby-rspec/anrb.snippet new file mode 100755 index 0000000..e313a51 --- /dev/null +++ b/vim/snippets/ruby-rspec/anrb.snippet @@ -0,0 +1 @@ +and_return { ${1} } diff --git a/vim/snippets/ruby-rspec/ant.snippet b/vim/snippets/ruby-rspec/ant.snippet new file mode 100755 index 0000000..d230e92 --- /dev/null +++ b/vim/snippets/ruby-rspec/ant.snippet @@ -0,0 +1 @@ +and_throw(${1:sym}) diff --git a/vim/snippets/ruby-rspec/any.snippet b/vim/snippets/ruby-rspec/any.snippet new file mode 100755 index 0000000..34c08d6 --- /dev/null +++ b/vim/snippets/ruby-rspec/any.snippet @@ -0,0 +1 @@ +and_yield(${1:values}) diff --git a/vim/snippets/ruby-rspec/atl.snippet b/vim/snippets/ruby-rspec/atl.snippet new file mode 100755 index 0000000..b95128b --- /dev/null +++ b/vim/snippets/ruby-rspec/atl.snippet @@ -0,0 +1 @@ +at_least(${1:n}).times diff --git a/vim/snippets/ruby-rspec/atm.snippet b/vim/snippets/ruby-rspec/atm.snippet new file mode 100755 index 0000000..fa5c606 --- /dev/null +++ b/vim/snippets/ruby-rspec/atm.snippet @@ -0,0 +1 @@ +at_most(${1:n}).times diff --git a/vim/snippets/ruby-rspec/bef.snippet b/vim/snippets/ruby-rspec/bef.snippet new file mode 100755 index 0000000..f96608c --- /dev/null +++ b/vim/snippets/ruby-rspec/bef.snippet @@ -0,0 +1,3 @@ +before(${1::each}) do + ${2} +end diff --git a/vim/snippets/ruby-rspec/befi.snippet b/vim/snippets/ruby-rspec/befi.snippet new file mode 100755 index 0000000..c29db8b --- /dev/null +++ b/vim/snippets/ruby-rspec/befi.snippet @@ -0,0 +1 @@ +before(:each) { ${1} } diff --git a/vim/snippets/ruby-rspec/cap.snippet b/vim/snippets/ruby-rspec/cap.snippet new file mode 100755 index 0000000..49d3891 --- /dev/null +++ b/vim/snippets/ruby-rspec/cap.snippet @@ -0,0 +1 @@ +"([^\"]*)" diff --git a/vim/snippets/ruby-rspec/conn.snippet b/vim/snippets/ruby-rspec/conn.snippet new file mode 100755 index 0000000..4bd9d23 --- /dev/null +++ b/vim/snippets/ruby-rspec/conn.snippet @@ -0,0 +1 @@ +controller_name :${1:controller} diff --git a/vim/snippets/ruby-rspec/cont.snippet b/vim/snippets/ruby-rspec/cont.snippet new file mode 100755 index 0000000..d884e0a --- /dev/null +++ b/vim/snippets/ruby-rspec/cont.snippet @@ -0,0 +1,3 @@ +context "${1}" do + ${2} +end diff --git a/vim/snippets/ruby-rspec/des.snippet b/vim/snippets/ruby-rspec/des.snippet new file mode 100755 index 0000000..f0cfc51 --- /dev/null +++ b/vim/snippets/ruby-rspec/des.snippet @@ -0,0 +1,3 @@ +describe ${1:subject} do + ${2} +end diff --git a/vim/snippets/ruby-rspec/desc.snippet b/vim/snippets/ruby-rspec/desc.snippet new file mode 100755 index 0000000..3a25035 --- /dev/null +++ b/vim/snippets/ruby-rspec/desc.snippet @@ -0,0 +1,5 @@ +require 'spec_helper' + +describe ${1:controller} do + ${2} +end diff --git a/vim/snippets/ruby-rspec/desrc.snippet b/vim/snippets/ruby-rspec/desrc.snippet new file mode 100755 index 0000000..a9c8ac2 --- /dev/null +++ b/vim/snippets/ruby-rspec/desrc.snippet @@ -0,0 +1,3 @@ +describe ${1:controller}, "${2:GET|POST|PUT|DELETE} ${3:/some/path}${4}" do + ${5} +end diff --git a/vim/snippets/ruby-rspec/dess.snippet b/vim/snippets/ruby-rspec/dess.snippet new file mode 100755 index 0000000..78233fa --- /dev/null +++ b/vim/snippets/ruby-rspec/dess.snippet @@ -0,0 +1,3 @@ +describe "${1:name}" do + ${2} +end diff --git a/vim/snippets/ruby-rspec/dest.snippet b/vim/snippets/ruby-rspec/dest.snippet new file mode 100755 index 0000000..b3b3e01 --- /dev/null +++ b/vim/snippets/ruby-rspec/dest.snippet @@ -0,0 +1,3 @@ +describe ${1:Type} do + ${2} +end diff --git a/vim/snippets/ruby-rspec/dests.snippet b/vim/snippets/ruby-rspec/dests.snippet new file mode 100755 index 0000000..89e9372 --- /dev/null +++ b/vim/snippets/ruby-rspec/dests.snippet @@ -0,0 +1,3 @@ +describe ${1:Type}, "${2:description}" do + ${3} +end diff --git a/vim/snippets/ruby-rspec/ex.snippet b/vim/snippets/ruby-rspec/ex.snippet new file mode 100755 index 0000000..2e5a4a0 --- /dev/null +++ b/vim/snippets/ruby-rspec/ex.snippet @@ -0,0 +1 @@ +exactly(${1:n}).times diff --git a/vim/snippets/ruby-rspec/isbl.snippet b/vim/snippets/ruby-rspec/isbl.snippet new file mode 100755 index 0000000..728223f --- /dev/null +++ b/vim/snippets/ruby-rspec/isbl.snippet @@ -0,0 +1 @@ +it_should_behave_like '${1:do something}' diff --git a/vim/snippets/ruby-rspec/it.snippet b/vim/snippets/ruby-rspec/it.snippet new file mode 100755 index 0000000..8af38db --- /dev/null +++ b/vim/snippets/ruby-rspec/it.snippet @@ -0,0 +1,3 @@ +it "${1}" do + ${2} +end diff --git a/vim/snippets/ruby-rspec/it.snippet.orig b/vim/snippets/ruby-rspec/it.snippet.orig new file mode 100755 index 0000000..5c63f11 --- /dev/null +++ b/vim/snippets/ruby-rspec/it.snippet.orig @@ -0,0 +1,8 @@ +<<<<<<< HEAD:ruby-rspec/it.snippet +it '${1}' do + ${2} +======= +it "${1}" do + ${2} +>>>>>>> 7e58374... Ruby rspec snippets improvements:ruby-rspec/it.snippet +end diff --git a/vim/snippets/ruby-rspec/itb.snippet b/vim/snippets/ruby-rspec/itb.snippet new file mode 100755 index 0000000..ca2a48f --- /dev/null +++ b/vim/snippets/ruby-rspec/itb.snippet @@ -0,0 +1 @@ +it { ${1} } diff --git a/vim/snippets/ruby-rspec/iti.snippet b/vim/snippets/ruby-rspec/iti.snippet new file mode 100755 index 0000000..10a9237 --- /dev/null +++ b/vim/snippets/ruby-rspec/iti.snippet @@ -0,0 +1 @@ +it { should ${1} } diff --git a/vim/snippets/ruby-rspec/its.snippet b/vim/snippets/ruby-rspec/its.snippet new file mode 100755 index 0000000..704ef19 --- /dev/null +++ b/vim/snippets/ruby-rspec/its.snippet @@ -0,0 +1,3 @@ +it "should ${1:work correctly}" do + ${2} +end diff --git a/vim/snippets/ruby-rspec/itsh.snippet b/vim/snippets/ruby-rspec/itsh.snippet new file mode 100755 index 0000000..ee1fa16 --- /dev/null +++ b/vim/snippets/ruby-rspec/itsh.snippet @@ -0,0 +1,3 @@ +it "should ${1:do something}" do + ${2} +end diff --git a/vim/snippets/ruby-rspec/let.snippet b/vim/snippets/ruby-rspec/let.snippet new file mode 100755 index 0000000..36dfd44 --- /dev/null +++ b/vim/snippets/ruby-rspec/let.snippet @@ -0,0 +1 @@ +let(:${1}) { ${2} } diff --git a/vim/snippets/ruby-rspec/mat.snippet b/vim/snippets/ruby-rspec/mat.snippet new file mode 100755 index 0000000..2f04771 --- /dev/null +++ b/vim/snippets/ruby-rspec/mat.snippet @@ -0,0 +1,24 @@ +class ${1:ReverseTo} + def initialize(${2:param}) + @$2 = $2 + end + + def matches?(actual) + @actual = actual + # Satisfy expectation here. Return false or raise an error if it's not met. + ${3:@actual.reverse.should == @$2} + true + end + + def failure_message + "expected #{@actual.inspect} to ${4} #{@$2.inspect}, but it didn't" + end + + def negative_failure_message + "expected #{@actual.inspect} not to ${5} #{@$2.inspect}, but it did" + end +end + +def ${6:reverse_to}(${7:expected}) + ${8}.new($7) +end diff --git a/vim/snippets/ruby-rspec/mm.snippet b/vim/snippets/ruby-rspec/mm.snippet new file mode 100755 index 0000000..b10aa1d --- /dev/null +++ b/vim/snippets/ruby-rspec/mm.snippet @@ -0,0 +1 @@ +mock_model(${1:model})${2} diff --git a/vim/snippets/ruby-rspec/moc.snippet b/vim/snippets/ruby-rspec/moc.snippet new file mode 100755 index 0000000..4ff954f --- /dev/null +++ b/vim/snippets/ruby-rspec/moc.snippet @@ -0,0 +1,2 @@ +${1:var} = mock("${2:mock_name}"${3:, :null_object => true}) +${4} diff --git a/vim/snippets/ruby-rspec/mocw.snippet b/vim/snippets/ruby-rspec/mocw.snippet new file mode 100755 index 0000000..09f93e0 --- /dev/null +++ b/vim/snippets/ruby-rspec/mocw.snippet @@ -0,0 +1,3 @@ +Spec::Runner.configure do |config| + config.mock_with :${1:mocha|flexmock|rr} +end diff --git a/vim/snippets/ruby-rspec/on.snippet b/vim/snippets/ruby-rspec/on.snippet new file mode 100755 index 0000000..b2d1a77 --- /dev/null +++ b/vim/snippets/ruby-rspec/on.snippet @@ -0,0 +1 @@ +once diff --git a/vim/snippets/ruby-rspec/pshc.snippet b/vim/snippets/ruby-rspec/pshc.snippet new file mode 100755 index 0000000..d586f6a --- /dev/null +++ b/vim/snippets/ruby-rspec/pshc.snippet @@ -0,0 +1 @@ +page.should have_content "${1}" diff --git a/vim/snippets/ruby-rspec/resh.snippet b/vim/snippets/ruby-rspec/resh.snippet new file mode 100755 index 0000000..91cd5b0 --- /dev/null +++ b/vim/snippets/ruby-rspec/resh.snippet @@ -0,0 +1 @@ +require File.dirname(__FILE__) + '/../spec_helper' diff --git a/vim/snippets/ruby-rspec/sce.snippet b/vim/snippets/ruby-rspec/sce.snippet new file mode 100755 index 0000000..1e00d30 --- /dev/null +++ b/vim/snippets/ruby-rspec/sce.snippet @@ -0,0 +1,3 @@ +scenario "${1}" do + ${2} +end diff --git a/vim/snippets/ruby-rspec/sef.snippet b/vim/snippets/ruby-rspec/sef.snippet new file mode 100755 index 0000000..89d3411 --- /dev/null +++ b/vim/snippets/ruby-rspec/sef.snippet @@ -0,0 +1,3 @@ +shared_examples_for "${1:do something}" do + ${2} +end diff --git a/vim/snippets/ruby-rspec/sh.snippet b/vim/snippets/ruby-rspec/sh.snippet new file mode 100755 index 0000000..67530e9 --- /dev/null +++ b/vim/snippets/ruby-rspec/sh.snippet @@ -0,0 +1,2 @@ +${1:target}.should == ${2:value} +${3} diff --git a/vim/snippets/ruby-rspec/shanaf.snippet b/vim/snippets/ruby-rspec/shanaf.snippet new file mode 100755 index 0000000..aac9ed3 --- /dev/null +++ b/vim/snippets/ruby-rspec/shanaf.snippet @@ -0,0 +1 @@ +should_accept_nested_attributes_for :${1:association} diff --git a/vim/snippets/ruby-rspec/shb.snippet b/vim/snippets/ruby-rspec/shb.snippet new file mode 100755 index 0000000..b909d9c --- /dev/null +++ b/vim/snippets/ruby-rspec/shb.snippet @@ -0,0 +1,2 @@ +${1:target}.should be(${2:result}) +${3} diff --git a/vim/snippets/ruby-rspec/shbc.snippet b/vim/snippets/ruby-rspec/shbc.snippet new file mode 100755 index 0000000..9080a3c --- /dev/null +++ b/vim/snippets/ruby-rspec/shbc.snippet @@ -0,0 +1,2 @@ +${1:target}.should be_close(${2:result}, ${3:tolerance}) +${4} diff --git a/vim/snippets/ruby-rspec/shbio.snippet b/vim/snippets/ruby-rspec/shbio.snippet new file mode 100755 index 0000000..98a7389 --- /dev/null +++ b/vim/snippets/ruby-rspec/shbio.snippet @@ -0,0 +1,2 @@ +${1:target}.should be_instance_of(${2:class}) +${3} diff --git a/vim/snippets/ruby-rspec/shbko.snippet b/vim/snippets/ruby-rspec/shbko.snippet new file mode 100755 index 0000000..74bf852 --- /dev/null +++ b/vim/snippets/ruby-rspec/shbko.snippet @@ -0,0 +1,2 @@ +${1:target}.should be_a_kind_of(${2:class}) +${3} diff --git a/vim/snippets/ruby-rspec/shbr.snippet b/vim/snippets/ruby-rspec/shbr.snippet new file mode 100755 index 0000000..887ef80 --- /dev/null +++ b/vim/snippets/ruby-rspec/shbr.snippet @@ -0,0 +1,2 @@ +response.should be_redirect +${1} diff --git a/vim/snippets/ruby-rspec/shbs.snippet b/vim/snippets/ruby-rspec/shbs.snippet new file mode 100755 index 0000000..602074b --- /dev/null +++ b/vim/snippets/ruby-rspec/shbs.snippet @@ -0,0 +1,2 @@ +response.should be_success +${1} diff --git a/vim/snippets/ruby-rspec/shc.snippet b/vim/snippets/ruby-rspec/shc.snippet new file mode 100755 index 0000000..082cb16 --- /dev/null +++ b/vim/snippets/ruby-rspec/shc.snippet @@ -0,0 +1,3 @@ +lambda do + ${1} +end.should change(${2:described_class}, :${3:count}).by(${4:1}) diff --git a/vim/snippets/ruby-rspec/shdm.snippet b/vim/snippets/ruby-rspec/shdm.snippet new file mode 100755 index 0000000..e82d82e --- /dev/null +++ b/vim/snippets/ruby-rspec/shdm.snippet @@ -0,0 +1,2 @@ +${1:target}.should match(/${2:regexp}/) +${3} diff --git a/vim/snippets/ruby-rspec/she.snippet b/vim/snippets/ruby-rspec/she.snippet new file mode 100755 index 0000000..f896a26 --- /dev/null +++ b/vim/snippets/ruby-rspec/she.snippet @@ -0,0 +1,2 @@ +${1:target}.should eql(${2:value}) +${3} diff --git a/vim/snippets/ruby-rspec/sheq.snippet b/vim/snippets/ruby-rspec/sheq.snippet new file mode 100755 index 0000000..e3c389e --- /dev/null +++ b/vim/snippets/ruby-rspec/sheq.snippet @@ -0,0 +1,2 @@ +${1:target}.should equal(${2:value}) +${3} diff --git a/vim/snippets/ruby-rspec/shh.snippet b/vim/snippets/ruby-rspec/shh.snippet new file mode 100755 index 0000000..93189cb --- /dev/null +++ b/vim/snippets/ruby-rspec/shh.snippet @@ -0,0 +1,2 @@ +${1:target}.should have(${2:num}).${3:things} +${4} diff --git a/vim/snippets/ruby-rspec/shhal.snippet b/vim/snippets/ruby-rspec/shhal.snippet new file mode 100755 index 0000000..dabe237 --- /dev/null +++ b/vim/snippets/ruby-rspec/shhal.snippet @@ -0,0 +1,2 @@ +${1:target}.should have_at_least(${2:num}).${3:things} +${4} diff --git a/vim/snippets/ruby-rspec/shham.snippet b/vim/snippets/ruby-rspec/shham.snippet new file mode 100755 index 0000000..7072add --- /dev/null +++ b/vim/snippets/ruby-rspec/shham.snippet @@ -0,0 +1,2 @@ +${1:target}.should have_at_most(${2:num}).${3:things} +${4} diff --git a/vim/snippets/ruby-rspec/shhr.snippet b/vim/snippets/ruby-rspec/shhr.snippet new file mode 100755 index 0000000..b8a8997 --- /dev/null +++ b/vim/snippets/ruby-rspec/shhr.snippet @@ -0,0 +1,2 @@ +${1:target}.should have(${2:n}).records +${3} diff --git a/vim/snippets/ruby-rspec/shn.snippet b/vim/snippets/ruby-rspec/shn.snippet new file mode 100755 index 0000000..b19cbb6 --- /dev/null +++ b/vim/snippets/ruby-rspec/shn.snippet @@ -0,0 +1,2 @@ +${1:target}.should_not == ${2:value} +${3} diff --git a/vim/snippets/ruby-rspec/shnb.snippet b/vim/snippets/ruby-rspec/shnb.snippet new file mode 100755 index 0000000..a34d62e --- /dev/null +++ b/vim/snippets/ruby-rspec/shnb.snippet @@ -0,0 +1,2 @@ +${1:target}.should_not be(${2:result}) +${3} diff --git a/vim/snippets/ruby-rspec/shnbc.snippet b/vim/snippets/ruby-rspec/shnbc.snippet new file mode 100755 index 0000000..55ac6d3 --- /dev/null +++ b/vim/snippets/ruby-rspec/shnbc.snippet @@ -0,0 +1,2 @@ +${1:target}.should_not be_close(${2:result}, ${3:tolerance}) +${4} diff --git a/vim/snippets/ruby-rspec/shnbio.snippet b/vim/snippets/ruby-rspec/shnbio.snippet new file mode 100755 index 0000000..b6f1526 --- /dev/null +++ b/vim/snippets/ruby-rspec/shnbio.snippet @@ -0,0 +1,2 @@ +${1:target}.should_not be_instance_of(${2:klass}) +${3} diff --git a/vim/snippets/ruby-rspec/shnbko.snippet b/vim/snippets/ruby-rspec/shnbko.snippet new file mode 100755 index 0000000..0b0cfc7 --- /dev/null +++ b/vim/snippets/ruby-rspec/shnbko.snippet @@ -0,0 +1,2 @@ +${1:target}.should_not be_a_kind_of(${2:klass}) +${3} diff --git a/vim/snippets/ruby-rspec/shnbr.snippet b/vim/snippets/ruby-rspec/shnbr.snippet new file mode 100755 index 0000000..25519b0 --- /dev/null +++ b/vim/snippets/ruby-rspec/shnbr.snippet @@ -0,0 +1,2 @@ +response.should_not be_redirect +${1} diff --git a/vim/snippets/ruby-rspec/shnbs.snippet b/vim/snippets/ruby-rspec/shnbs.snippet new file mode 100755 index 0000000..7d35ab2 --- /dev/null +++ b/vim/snippets/ruby-rspec/shnbs.snippet @@ -0,0 +1,2 @@ +response.should_not be_success +${1} diff --git a/vim/snippets/ruby-rspec/shnc.snippet b/vim/snippets/ruby-rspec/shnc.snippet new file mode 100755 index 0000000..7baead2 --- /dev/null +++ b/vim/snippets/ruby-rspec/shnc.snippet @@ -0,0 +1,3 @@ +lambda do + ${1} +end.should_not change(${2:target}, :${3:method}) diff --git a/vim/snippets/ruby-rspec/shne.snippet b/vim/snippets/ruby-rspec/shne.snippet new file mode 100755 index 0000000..68a7451 --- /dev/null +++ b/vim/snippets/ruby-rspec/shne.snippet @@ -0,0 +1,2 @@ +${1:target}.should_not eql(${2:value}) +${3} diff --git a/vim/snippets/ruby-rspec/shneq.snippet b/vim/snippets/ruby-rspec/shneq.snippet new file mode 100755 index 0000000..da4f59b --- /dev/null +++ b/vim/snippets/ruby-rspec/shneq.snippet @@ -0,0 +1,2 @@ + ${1:target}.should_not equal(${2:value}) + ${3} diff --git a/vim/snippets/ruby-rspec/shnm.snippet b/vim/snippets/ruby-rspec/shnm.snippet new file mode 100755 index 0000000..ee7b604 --- /dev/null +++ b/vim/snippets/ruby-rspec/shnm.snippet @@ -0,0 +1,2 @@ +${1:target}.should_not match(/${2:regexp}/) +${3} diff --git a/vim/snippets/ruby-rspec/shnp.snippet b/vim/snippets/ruby-rspec/shnp.snippet new file mode 100755 index 0000000..9f1298b --- /dev/null +++ b/vim/snippets/ruby-rspec/shnp.snippet @@ -0,0 +1 @@ +${1:target}.should_not be_${2:predicate} diff --git a/vim/snippets/ruby-rspec/shnr.snippet b/vim/snippets/ruby-rspec/shnr.snippet new file mode 100755 index 0000000..98c0fc0 --- /dev/null +++ b/vim/snippets/ruby-rspec/shnr.snippet @@ -0,0 +1,2 @@ +${1:mock}.should_not_receive(:${2:message})${3} +${4} diff --git a/vim/snippets/ruby-rspec/shnre.snippet b/vim/snippets/ruby-rspec/shnre.snippet new file mode 100755 index 0000000..fbf9604 --- /dev/null +++ b/vim/snippets/ruby-rspec/shnre.snippet @@ -0,0 +1,2 @@ +${1:target}.should_not raise_error(${2:error}) +${3} diff --git a/vim/snippets/ruby-rspec/shnredt.snippet b/vim/snippets/ruby-rspec/shnredt.snippet new file mode 100755 index 0000000..2afb69c --- /dev/null +++ b/vim/snippets/ruby-rspec/shnredt.snippet @@ -0,0 +1,2 @@ +response.should_not redirect_to(${1:url}) +${2} diff --git a/vim/snippets/ruby-rspec/shnrt.snippet b/vim/snippets/ruby-rspec/shnrt.snippet new file mode 100755 index 0000000..c2c5f2c --- /dev/null +++ b/vim/snippets/ruby-rspec/shnrt.snippet @@ -0,0 +1,2 @@ +${1:target}.should_not respond_to(:${2:sym}) +${3} diff --git a/vim/snippets/ruby-rspec/shns.snippet b/vim/snippets/ruby-rspec/shns.snippet new file mode 100755 index 0000000..b73a71c --- /dev/null +++ b/vim/snippets/ruby-rspec/shns.snippet @@ -0,0 +1,2 @@ +${1:target}.should_not satisfy { |${2:obj}| ${3} } +${4} diff --git a/vim/snippets/ruby-rspec/shnt.snippet b/vim/snippets/ruby-rspec/shnt.snippet new file mode 100755 index 0000000..0353376 --- /dev/null +++ b/vim/snippets/ruby-rspec/shnt.snippet @@ -0,0 +1,2 @@ +lambda { ${1} }.should_not throw_symbol(:${2:symbol}) +${3} diff --git a/vim/snippets/ruby-rspec/shp.snippet b/vim/snippets/ruby-rspec/shp.snippet new file mode 100755 index 0000000..9267b61 --- /dev/null +++ b/vim/snippets/ruby-rspec/shp.snippet @@ -0,0 +1 @@ +${1:target}.should be_${2:predicate} diff --git a/vim/snippets/ruby-rspec/shr.snippet b/vim/snippets/ruby-rspec/shr.snippet new file mode 100755 index 0000000..4effa2c --- /dev/null +++ b/vim/snippets/ruby-rspec/shr.snippet @@ -0,0 +1,2 @@ +${1:mock}.should_receive(:${2:message})${3} +${4} diff --git a/vim/snippets/ruby-rspec/shre.snippet b/vim/snippets/ruby-rspec/shre.snippet new file mode 100755 index 0000000..420bbe8 --- /dev/null +++ b/vim/snippets/ruby-rspec/shre.snippet @@ -0,0 +1,2 @@ +${1:target}.should raise_error(${2:error}) +${3} diff --git a/vim/snippets/ruby-rspec/shredt.snippet b/vim/snippets/ruby-rspec/shredt.snippet new file mode 100755 index 0000000..979c1d6 --- /dev/null +++ b/vim/snippets/ruby-rspec/shredt.snippet @@ -0,0 +1,2 @@ +response.should redirect_to(${1:url}) +${2} diff --git a/vim/snippets/ruby-rspec/shrt.snippet b/vim/snippets/ruby-rspec/shrt.snippet new file mode 100755 index 0000000..a796ebd --- /dev/null +++ b/vim/snippets/ruby-rspec/shrt.snippet @@ -0,0 +1,2 @@ +${1:target}.should respond_to(:${2:sym}) +${3} diff --git a/vim/snippets/ruby-rspec/shs.snippet b/vim/snippets/ruby-rspec/shs.snippet new file mode 100755 index 0000000..08eb941 --- /dev/null +++ b/vim/snippets/ruby-rspec/shs.snippet @@ -0,0 +1,2 @@ +${1:target}.should satisfy { |${2:obj}| ${3} } +${4} diff --git a/vim/snippets/ruby-rspec/sht.snippet b/vim/snippets/ruby-rspec/sht.snippet new file mode 100755 index 0000000..86f55fa --- /dev/null +++ b/vim/snippets/ruby-rspec/sht.snippet @@ -0,0 +1,2 @@ +${1:target}.should throw_symble(:${2:symbol}) +${3} diff --git a/vim/snippets/ruby-rspec/shtemp.snippet b/vim/snippets/ruby-rspec/shtemp.snippet new file mode 100755 index 0000000..9b08c10 --- /dev/null +++ b/vim/snippets/ruby-rspec/shtemp.snippet @@ -0,0 +1,2 @@ +response.should render_template(:${1:template}) +${2} diff --git a/vim/snippets/ruby-rspec/shvp.snippet b/vim/snippets/ruby-rspec/shvp.snippet new file mode 100755 index 0000000..13598f8 --- /dev/null +++ b/vim/snippets/ruby-rspec/shvp.snippet @@ -0,0 +1 @@ +should_validate_presence_of :${1:field} diff --git a/vim/snippets/ruby-rspec/spec.snippet b/vim/snippets/ruby-rspec/spec.snippet new file mode 100755 index 0000000..20dcd7b --- /dev/null +++ b/vim/snippets/ruby-rspec/spec.snippet @@ -0,0 +1,5 @@ +require 'spec_helper' + +describe ${1:`Snippet_RubySpecNameFromFilename()`} do + ${2} +end diff --git a/vim/snippets/ruby-rspec/st.snippet b/vim/snippets/ruby-rspec/st.snippet new file mode 100755 index 0000000..3f90aa5 --- /dev/null +++ b/vim/snippets/ruby-rspec/st.snippet @@ -0,0 +1 @@ +stub!(:${1}).and_return(${2}) diff --git a/vim/snippets/ruby-rspec/sub.snippet b/vim/snippets/ruby-rspec/sub.snippet new file mode 100755 index 0000000..57c63d3 --- /dev/null +++ b/vim/snippets/ruby-rspec/sub.snippet @@ -0,0 +1 @@ +subject { ${1} } diff --git a/vim/snippets/ruby-rspec/tw.snippet b/vim/snippets/ruby-rspec/tw.snippet new file mode 100755 index 0000000..6ebb6d4 --- /dev/null +++ b/vim/snippets/ruby-rspec/tw.snippet @@ -0,0 +1 @@ +twice diff --git a/vim/snippets/ruby-rspec/wia.snippet b/vim/snippets/ruby-rspec/wia.snippet new file mode 100755 index 0000000..21eda19 --- /dev/null +++ b/vim/snippets/ruby-rspec/wia.snippet @@ -0,0 +1,2 @@ +with(${1:args}) +${2} diff --git a/vim/snippets/ruby-shoulda/context.snippet b/vim/snippets/ruby-shoulda/context.snippet new file mode 100755 index 0000000..0e5a7fd --- /dev/null +++ b/vim/snippets/ruby-shoulda/context.snippet @@ -0,0 +1,5 @@ +context "${1:context}" do + + ${2} + +end diff --git a/vim/snippets/ruby-shoulda/samao.snippet b/vim/snippets/ruby-shoulda/samao.snippet new file mode 100755 index 0000000..cfd4e59 --- /dev/null +++ b/vim/snippets/ruby-shoulda/samao.snippet @@ -0,0 +1 @@ +should_allow_mass_assignment_of :${1:field} diff --git a/vim/snippets/ruby-shoulda/savf.snippet b/vim/snippets/ruby-shoulda/savf.snippet new file mode 100755 index 0000000..39cfd6f --- /dev/null +++ b/vim/snippets/ruby-shoulda/savf.snippet @@ -0,0 +1 @@ +should_allow_values_for :${1:field}, "${2:value}" diff --git a/vim/snippets/ruby-shoulda/sbt.snippet b/vim/snippets/ruby-shoulda/sbt.snippet new file mode 100755 index 0000000..90d25c8 --- /dev/null +++ b/vim/snippets/ruby-shoulda/sbt.snippet @@ -0,0 +1 @@ +should_belong_to :${1:association} diff --git a/vim/snippets/ruby-shoulda/selal.snippet b/vim/snippets/ruby-shoulda/selal.snippet new file mode 100755 index 0000000..2fc48b4 --- /dev/null +++ b/vim/snippets/ruby-shoulda/selal.snippet @@ -0,0 +1 @@ +should_ensure_length_at_least :${1:field}, ${2:min_length} diff --git a/vim/snippets/ruby-shoulda/seli.snippet b/vim/snippets/ruby-shoulda/seli.snippet new file mode 100755 index 0000000..8bc2bf8 --- /dev/null +++ b/vim/snippets/ruby-shoulda/seli.snippet @@ -0,0 +1 @@ +should_ensure_length_is :${1:field}, ${2:length} diff --git a/vim/snippets/ruby-shoulda/selir.snippet b/vim/snippets/ruby-shoulda/selir.snippet new file mode 100755 index 0000000..1f0bdc9 --- /dev/null +++ b/vim/snippets/ruby-shoulda/selir.snippet @@ -0,0 +1 @@ +should_ensure_length_in_range :${1:field}, ${2:start}..${3:end} diff --git a/vim/snippets/ruby-shoulda/setup.snippet b/vim/snippets/ruby-shoulda/setup.snippet new file mode 100755 index 0000000..68b895c --- /dev/null +++ b/vim/snippets/ruby-shoulda/setup.snippet @@ -0,0 +1,3 @@ +setup do + ${1} +end diff --git a/vim/snippets/ruby-shoulda/sevir.snippet b/vim/snippets/ruby-shoulda/sevir.snippet new file mode 100755 index 0000000..195f748 --- /dev/null +++ b/vim/snippets/ruby-shoulda/sevir.snippet @@ -0,0 +1 @@ +should_ensure_value_in_range :${1:field}, ${2:start}..${3:end} diff --git a/vim/snippets/ruby-shoulda/shabtm.snippet b/vim/snippets/ruby-shoulda/shabtm.snippet new file mode 100755 index 0000000..03c70e2 --- /dev/null +++ b/vim/snippets/ruby-shoulda/shabtm.snippet @@ -0,0 +1 @@ +should_have_and_belong_to_many :${1:association} diff --git a/vim/snippets/ruby-shoulda/shcm.snippet b/vim/snippets/ruby-shoulda/shcm.snippet new file mode 100755 index 0000000..6948aea --- /dev/null +++ b/vim/snippets/ruby-shoulda/shcm.snippet @@ -0,0 +1 @@ +should_have_class_methods :${1:method} diff --git a/vim/snippets/ruby-shoulda/shdc.snippet b/vim/snippets/ruby-shoulda/shdc.snippet new file mode 100755 index 0000000..d841d65 --- /dev/null +++ b/vim/snippets/ruby-shoulda/shdc.snippet @@ -0,0 +1 @@ +should_have_db_columns :${1:field} diff --git a/vim/snippets/ruby-shoulda/shi.snippet b/vim/snippets/ruby-shoulda/shi.snippet new file mode 100755 index 0000000..d6d2b38 --- /dev/null +++ b/vim/snippets/ruby-shoulda/shi.snippet @@ -0,0 +1 @@ +should_have_indices :${1:field} diff --git a/vim/snippets/ruby-shoulda/shim.snippet b/vim/snippets/ruby-shoulda/shim.snippet new file mode 100755 index 0000000..1f44252 --- /dev/null +++ b/vim/snippets/ruby-shoulda/shim.snippet @@ -0,0 +1 @@ +should_have_instance_methods :${1:method} diff --git a/vim/snippets/ruby-shoulda/shm.snippet b/vim/snippets/ruby-shoulda/shm.snippet new file mode 100755 index 0000000..8c98c17 --- /dev/null +++ b/vim/snippets/ruby-shoulda/shm.snippet @@ -0,0 +1 @@ +should_have_many :${1:association} diff --git a/vim/snippets/ruby-shoulda/shns.snippet b/vim/snippets/ruby-shoulda/shns.snippet new file mode 100644 index 0000000..a02046d --- /dev/null +++ b/vim/snippets/ruby-shoulda/shns.snippet @@ -0,0 +1 @@ +should_have_named_scope :${1:scope}, :conditions => {${2:conditions}} diff --git a/vim/snippets/ruby-shoulda/sho.snippet b/vim/snippets/ruby-shoulda/sho.snippet new file mode 100755 index 0000000..a652b4f --- /dev/null +++ b/vim/snippets/ruby-shoulda/sho.snippet @@ -0,0 +1 @@ +should_have_one :${1:association} diff --git a/vim/snippets/ruby-shoulda/shroa.snippet b/vim/snippets/ruby-shoulda/shroa.snippet new file mode 100755 index 0000000..022015d --- /dev/null +++ b/vim/snippets/ruby-shoulda/shroa.snippet @@ -0,0 +1 @@ +should_have_read_only_attributes :${1:field} diff --git a/vim/snippets/ruby-shoulda/snamao.snippet b/vim/snippets/ruby-shoulda/snamao.snippet new file mode 100755 index 0000000..236190b --- /dev/null +++ b/vim/snippets/ruby-shoulda/snamao.snippet @@ -0,0 +1 @@ +should_not_allow_mass_assignment_of :${1:field} diff --git a/vim/snippets/ruby-shoulda/snavf.snippet b/vim/snippets/ruby-shoulda/snavf.snippet new file mode 100755 index 0000000..029c5ba --- /dev/null +++ b/vim/snippets/ruby-shoulda/snavf.snippet @@ -0,0 +1 @@ +should_not_allow_values_for :${1:field}, "${2:value}" diff --git a/vim/snippets/ruby-shoulda/svao.snippet b/vim/snippets/ruby-shoulda/svao.snippet new file mode 100755 index 0000000..8eccb88 --- /dev/null +++ b/vim/snippets/ruby-shoulda/svao.snippet @@ -0,0 +1 @@ +should_validate_acceptance_of :${1:field} diff --git a/vim/snippets/ruby-shoulda/svno.snippet b/vim/snippets/ruby-shoulda/svno.snippet new file mode 100755 index 0000000..a90c1ca --- /dev/null +++ b/vim/snippets/ruby-shoulda/svno.snippet @@ -0,0 +1 @@ +should_validate_numericality_of :${1:field} diff --git a/vim/snippets/ruby-shoulda/svp.snippet b/vim/snippets/ruby-shoulda/svp.snippet new file mode 100755 index 0000000..13598f8 --- /dev/null +++ b/vim/snippets/ruby-shoulda/svp.snippet @@ -0,0 +1 @@ +should_validate_presence_of :${1:field} diff --git a/vim/snippets/ruby-shoulda/svpo.snippet b/vim/snippets/ruby-shoulda/svpo.snippet new file mode 100755 index 0000000..13598f8 --- /dev/null +++ b/vim/snippets/ruby-shoulda/svpo.snippet @@ -0,0 +1 @@ +should_validate_presence_of :${1:field} diff --git a/vim/snippets/ruby-shoulda/svuo.snippet b/vim/snippets/ruby-shoulda/svuo.snippet new file mode 100755 index 0000000..6e26912 --- /dev/null +++ b/vim/snippets/ruby-shoulda/svuo.snippet @@ -0,0 +1 @@ +should_validate_uniqueness_of :${1:field}, :scoped_to => ${2:arrayofnames} diff --git a/vim/snippets/ruby/#!.snippet b/vim/snippets/ruby/#!.snippet new file mode 100755 index 0000000..98daaf1 --- /dev/null +++ b/vim/snippets/ruby/#!.snippet @@ -0,0 +1,2 @@ +#!/usr/bin/env ruby${1: -wKU} +${2} diff --git a/vim/snippets/ruby/#.snippet b/vim/snippets/ruby/#.snippet new file mode 100755 index 0000000..e54e063 --- /dev/null +++ b/vim/snippets/ruby/#.snippet @@ -0,0 +1 @@ +# => diff --git a/vim/snippets/ruby/Md.snippet b/vim/snippets/ruby/Md.snippet new file mode 100755 index 0000000..1c2c9f1 --- /dev/null +++ b/vim/snippets/ruby/Md.snippet @@ -0,0 +1 @@ +File.open(${1:dump_path}, "wb") { |${2:file}| Marshal.dump(${3:obj}, ${4:$2}) } diff --git a/vim/snippets/ruby/Ml.snippet b/vim/snippets/ruby/Ml.snippet new file mode 100755 index 0000000..33c3200 --- /dev/null +++ b/vim/snippets/ruby/Ml.snippet @@ -0,0 +1 @@ +File.open(${1:dump_path}, "rb") { |${2:file}| Marshal.load(${3:$2}) } diff --git a/vim/snippets/ruby/Pn.snippet b/vim/snippets/ruby/Pn.snippet new file mode 100755 index 0000000..e213691 --- /dev/null +++ b/vim/snippets/ruby/Pn.snippet @@ -0,0 +1 @@ +PStore.new(${1}) diff --git a/vim/snippets/ruby/Yd-.snippet b/vim/snippets/ruby/Yd-.snippet new file mode 100755 index 0000000..e667a08 --- /dev/null +++ b/vim/snippets/ruby/Yd-.snippet @@ -0,0 +1 @@ +File.open(${1:path_to_yml}, "w") { |${2:file}| YAML.dump(${3:obj}, ${4:$2}) } diff --git a/vim/snippets/ruby/Yd.snippet b/vim/snippets/ruby/Yd.snippet new file mode 100755 index 0000000..e667a08 --- /dev/null +++ b/vim/snippets/ruby/Yd.snippet @@ -0,0 +1 @@ +File.open(${1:path_to_yml}, "w") { |${2:file}| YAML.dump(${3:obj}, ${4:$2}) } diff --git a/vim/snippets/ruby/Yl-.snippet b/vim/snippets/ruby/Yl-.snippet new file mode 100755 index 0000000..b37d1bb --- /dev/null +++ b/vim/snippets/ruby/Yl-.snippet @@ -0,0 +1 @@ +File.open(${1:path_to_yml}) { |${2:file}| YAML.load(${3:$2}) } diff --git a/vim/snippets/ruby/Yl.snippet b/vim/snippets/ruby/Yl.snippet new file mode 100755 index 0000000..b37d1bb --- /dev/null +++ b/vim/snippets/ruby/Yl.snippet @@ -0,0 +1 @@ +File.open(${1:path_to_yml}) { |${2:file}| YAML.load(${3:$2}) } diff --git a/vim/snippets/ruby/am.snippet b/vim/snippets/ruby/am.snippet new file mode 100755 index 0000000..88a7bc4 --- /dev/null +++ b/vim/snippets/ruby/am.snippet @@ -0,0 +1 @@ +alias :${1:new_name} :${2:old_name} diff --git a/vim/snippets/ruby/anr.snippet b/vim/snippets/ruby/anr.snippet new file mode 100644 index 0000000..633d432 --- /dev/null +++ b/vim/snippets/ruby/anr.snippet @@ -0,0 +1 @@ +assert_nothing_raised(${1:Exception}) { ${2} } diff --git a/vim/snippets/ruby/as.snippet b/vim/snippets/ruby/as.snippet new file mode 100755 index 0000000..a8c7f5c --- /dev/null +++ b/vim/snippets/ruby/as.snippet @@ -0,0 +1 @@ +assert ${1:test}, "${2:failure_message}" diff --git a/vim/snippets/ruby/asam.snippet b/vim/snippets/ruby/asam.snippet new file mode 100755 index 0000000..3c95b31 --- /dev/null +++ b/vim/snippets/ruby/asam.snippet @@ -0,0 +1 @@ +assert_alias_method ${1:object}, ${2:alias_name}, ${3:original_name} diff --git a/vim/snippets/ruby/asb.snippet b/vim/snippets/ruby/asb.snippet new file mode 100755 index 0000000..ab1eff7 --- /dev/null +++ b/vim/snippets/ruby/asb.snippet @@ -0,0 +1 @@ +assert_boolean ${1:actual} diff --git a/vim/snippets/ruby/asc.snippet b/vim/snippets/ruby/asc.snippet new file mode 100755 index 0000000..c6badc3 --- /dev/null +++ b/vim/snippets/ruby/asc.snippet @@ -0,0 +1 @@ +assert_compare ${1:expected}, ${2:operator}, ${3:actual} diff --git a/vim/snippets/ruby/ascd.snippet b/vim/snippets/ruby/ascd.snippet new file mode 100755 index 0000000..bc77908 --- /dev/null +++ b/vim/snippets/ruby/ascd.snippet @@ -0,0 +1 @@ +assert_const_defined ${1:object}, ${2:constant_name} diff --git a/vim/snippets/ruby/ase.snippet b/vim/snippets/ruby/ase.snippet new file mode 100755 index 0000000..5f65099 --- /dev/null +++ b/vim/snippets/ruby/ase.snippet @@ -0,0 +1 @@ +assert_equal ${1:expected}, ${2:actual} diff --git a/vim/snippets/ruby/asem.snippet b/vim/snippets/ruby/asem.snippet new file mode 100755 index 0000000..4642832 --- /dev/null +++ b/vim/snippets/ruby/asem.snippet @@ -0,0 +1 @@ +assert_empty ${1:object} diff --git a/vim/snippets/ruby/asf.snippet b/vim/snippets/ruby/asf.snippet new file mode 100755 index 0000000..27ff6da --- /dev/null +++ b/vim/snippets/ruby/asf.snippet @@ -0,0 +1 @@ +assert_false ${1:actual} diff --git a/vim/snippets/ruby/asfa.snippet b/vim/snippets/ruby/asfa.snippet new file mode 100755 index 0000000..f45fa53 --- /dev/null +++ b/vim/snippets/ruby/asfa.snippet @@ -0,0 +1 @@ +assert_fail_assertion { ${1:block} } diff --git a/vim/snippets/ruby/asi.snippet b/vim/snippets/ruby/asi.snippet new file mode 100755 index 0000000..dedf94d --- /dev/null +++ b/vim/snippets/ruby/asi.snippet @@ -0,0 +1 @@ +assert_include ${1:collection}, ${2:object} diff --git a/vim/snippets/ruby/asid.snippet b/vim/snippets/ruby/asid.snippet new file mode 100755 index 0000000..683fb06 --- /dev/null +++ b/vim/snippets/ruby/asid.snippet @@ -0,0 +1 @@ +assert_in_delta ${1:expected_float}, ${2:actual_float}, ${3:delta_float} diff --git a/vim/snippets/ruby/asie.snippet b/vim/snippets/ruby/asie.snippet new file mode 100755 index 0000000..f13d0a3 --- /dev/null +++ b/vim/snippets/ruby/asie.snippet @@ -0,0 +1 @@ +assert_in_epsilon ${1:expected_float}, ${2:actual_float} diff --git a/vim/snippets/ruby/asio.snippet b/vim/snippets/ruby/asio.snippet new file mode 100755 index 0000000..56f0ab7 --- /dev/null +++ b/vim/snippets/ruby/asio.snippet @@ -0,0 +1 @@ +assert_instance_of ${1:ExpectedClass}, ${2:actual_instance} diff --git a/vim/snippets/ruby/asko.snippet b/vim/snippets/ruby/asko.snippet new file mode 100755 index 0000000..555bf13 --- /dev/null +++ b/vim/snippets/ruby/asko.snippet @@ -0,0 +1 @@ +assert_kind_of ${1:ExpectedKind}, ${2:actual_instance} diff --git a/vim/snippets/ruby/asm.snippet b/vim/snippets/ruby/asm.snippet new file mode 100755 index 0000000..9860b4c --- /dev/null +++ b/vim/snippets/ruby/asm.snippet @@ -0,0 +1 @@ +assert_match /${1:expected_pattern}/, ${2:actual_string} diff --git a/vim/snippets/ruby/asn.snippet b/vim/snippets/ruby/asn.snippet new file mode 100755 index 0000000..36a2898 --- /dev/null +++ b/vim/snippets/ruby/asn.snippet @@ -0,0 +1 @@ +assert_nil ${1:instance} diff --git a/vim/snippets/ruby/asncd.snippet b/vim/snippets/ruby/asncd.snippet new file mode 100755 index 0000000..b4dcd73 --- /dev/null +++ b/vim/snippets/ruby/asncd.snippet @@ -0,0 +1 @@ +assert_not_const_defined ${1:object}, ${2:constant_name} diff --git a/vim/snippets/ruby/asne.snippet b/vim/snippets/ruby/asne.snippet new file mode 100755 index 0000000..91db286 --- /dev/null +++ b/vim/snippets/ruby/asne.snippet @@ -0,0 +1 @@ +assert_not_equal ${1:unexpected}, ${2:actual} diff --git a/vim/snippets/ruby/asnem.snippet b/vim/snippets/ruby/asnem.snippet new file mode 100755 index 0000000..43d0772 --- /dev/null +++ b/vim/snippets/ruby/asnem.snippet @@ -0,0 +1 @@ +assert_not_empty ${1:object} diff --git a/vim/snippets/ruby/asni.snippet b/vim/snippets/ruby/asni.snippet new file mode 100755 index 0000000..d450d9e --- /dev/null +++ b/vim/snippets/ruby/asni.snippet @@ -0,0 +1 @@ +assert_not_include ${1:collection}, ${2:object} diff --git a/vim/snippets/ruby/asnid.snippet b/vim/snippets/ruby/asnid.snippet new file mode 100755 index 0000000..23e039a --- /dev/null +++ b/vim/snippets/ruby/asnid.snippet @@ -0,0 +1 @@ +assert_not_in_delta ${1:expected_float}, ${2:actual_float} diff --git a/vim/snippets/ruby/asnie.snippet b/vim/snippets/ruby/asnie.snippet new file mode 100755 index 0000000..25eb751 --- /dev/null +++ b/vim/snippets/ruby/asnie.snippet @@ -0,0 +1 @@ +assert_not_in_epsilon ${1:expected_float}, ${2:actual_float} diff --git a/vim/snippets/ruby/asnm.snippet b/vim/snippets/ruby/asnm.snippet new file mode 100755 index 0000000..95dbf24 --- /dev/null +++ b/vim/snippets/ruby/asnm.snippet @@ -0,0 +1 @@ +assert_no_match /${1:unexpected_pattern}/, ${2:actual_string} diff --git a/vim/snippets/ruby/asnn.snippet b/vim/snippets/ruby/asnn.snippet new file mode 100755 index 0000000..9227bc8 --- /dev/null +++ b/vim/snippets/ruby/asnn.snippet @@ -0,0 +1 @@ +assert_not_nil ${1:instance} diff --git a/vim/snippets/ruby/asnp.snippet b/vim/snippets/ruby/asnp.snippet new file mode 100755 index 0000000..a540f84 --- /dev/null +++ b/vim/snippets/ruby/asnp.snippet @@ -0,0 +1 @@ +assert_not_predicate ${1:object}, ${2:predicate} diff --git a/vim/snippets/ruby/asnr.snippet b/vim/snippets/ruby/asnr.snippet new file mode 100755 index 0000000..fc9a820 --- /dev/null +++ b/vim/snippets/ruby/asnr.snippet @@ -0,0 +1 @@ +assert_nothing_raised { ${1:block} } diff --git a/vim/snippets/ruby/asnrt.snippet b/vim/snippets/ruby/asnrt.snippet new file mode 100755 index 0000000..fb063d2 --- /dev/null +++ b/vim/snippets/ruby/asnrt.snippet @@ -0,0 +1 @@ +assert_not_respond_to ${1:object}, ${2:method} diff --git a/vim/snippets/ruby/asns.snippet b/vim/snippets/ruby/asns.snippet new file mode 100755 index 0000000..509e467 --- /dev/null +++ b/vim/snippets/ruby/asns.snippet @@ -0,0 +1 @@ +assert_not_same ${1:unexpected}, ${2:actual} diff --git a/vim/snippets/ruby/asnse.snippet b/vim/snippets/ruby/asnse.snippet new file mode 100755 index 0000000..befde12 --- /dev/null +++ b/vim/snippets/ruby/asnse.snippet @@ -0,0 +1 @@ +assert_not_send ${1:send_array} diff --git a/vim/snippets/ruby/asnt.snippet b/vim/snippets/ruby/asnt.snippet new file mode 100755 index 0000000..cb633c2 --- /dev/null +++ b/vim/snippets/ruby/asnt.snippet @@ -0,0 +1 @@ +assert_nothing_thrown { ${1} } diff --git a/vim/snippets/ruby/aso.snippet b/vim/snippets/ruby/aso.snippet new file mode 100755 index 0000000..5b7faf6 --- /dev/null +++ b/vim/snippets/ruby/aso.snippet @@ -0,0 +1 @@ +assert_operator ${1:left}, :${2:operator}, ${3:right} diff --git a/vim/snippets/ruby/asp.snippet b/vim/snippets/ruby/asp.snippet new file mode 100755 index 0000000..c23fd3f --- /dev/null +++ b/vim/snippets/ruby/asp.snippet @@ -0,0 +1 @@ +assert_predicate ${1:object}, ${2:predicate} diff --git a/vim/snippets/ruby/aspe.snippet b/vim/snippets/ruby/aspe.snippet new file mode 100755 index 0000000..3a3eed4 --- /dev/null +++ b/vim/snippets/ruby/aspe.snippet @@ -0,0 +1 @@ +assert_path_exist ${1:path} diff --git a/vim/snippets/ruby/aspne.snippet b/vim/snippets/ruby/aspne.snippet new file mode 100755 index 0000000..f7a8873 --- /dev/null +++ b/vim/snippets/ruby/aspne.snippet @@ -0,0 +1 @@ +assert_path_not_exist ${1:path} diff --git a/vim/snippets/ruby/asr.snippet b/vim/snippets/ruby/asr.snippet new file mode 100755 index 0000000..834038d --- /dev/null +++ b/vim/snippets/ruby/asr.snippet @@ -0,0 +1 @@ +assert_raise(${1:Exception}) { ${2} } diff --git a/vim/snippets/ruby/asrko.snippet b/vim/snippets/ruby/asrko.snippet new file mode 100755 index 0000000..f82820e --- /dev/null +++ b/vim/snippets/ruby/asrko.snippet @@ -0,0 +1 @@ +assert_raise_kind_of(${1:kinds...}) { ${2:block} } diff --git a/vim/snippets/ruby/asrm.snippet b/vim/snippets/ruby/asrm.snippet new file mode 100755 index 0000000..f62f208 --- /dev/null +++ b/vim/snippets/ruby/asrm.snippet @@ -0,0 +1 @@ +assert_raise_message ${1:expected_message} diff --git a/vim/snippets/ruby/asrt.snippet b/vim/snippets/ruby/asrt.snippet new file mode 100755 index 0000000..ca8e84b --- /dev/null +++ b/vim/snippets/ruby/asrt.snippet @@ -0,0 +1 @@ +assert_respond_to ${1:object}, :${2:method} diff --git a/vim/snippets/ruby/ass.snippet b/vim/snippets/ruby/ass.snippet new file mode 100644 index 0000000..923e90d --- /dev/null +++ b/vim/snippets/ruby/ass.snippet @@ -0,0 +1 @@ +assert_send [${1:object}, :${2:message}, ${3:args}] diff --git a/vim/snippets/ruby/asse.snippet b/vim/snippets/ruby/asse.snippet new file mode 100755 index 0000000..4fb9ef9 --- /dev/null +++ b/vim/snippets/ruby/asse.snippet @@ -0,0 +1 @@ +assert_send ${1:send_array} diff --git a/vim/snippets/ruby/ast.snippet b/vim/snippets/ruby/ast.snippet new file mode 100755 index 0000000..8962cfb --- /dev/null +++ b/vim/snippets/ruby/ast.snippet @@ -0,0 +1 @@ +assert_throws(:${1:expected}) { ${2} } diff --git a/vim/snippets/ruby/astr.snippet b/vim/snippets/ruby/astr.snippet new file mode 100755 index 0000000..b9d14f6 --- /dev/null +++ b/vim/snippets/ruby/astr.snippet @@ -0,0 +1 @@ +assert_true ${1:actual} diff --git a/vim/snippets/ruby/begin.snippet b/vim/snippets/ruby/begin.snippet new file mode 100755 index 0000000..d0d2ca3 --- /dev/null +++ b/vim/snippets/ruby/begin.snippet @@ -0,0 +1,6 @@ +begin + ${1} +rescue ${2:Exception} => ${3:e"} + ${4} +end +${5} diff --git a/vim/snippets/ruby/begine.snippet b/vim/snippets/ruby/begine.snippet new file mode 100755 index 0000000..f82f5e1 --- /dev/null +++ b/vim/snippets/ruby/begine.snippet @@ -0,0 +1,8 @@ +begin + ${1} +rescue ${2:Exception} => ${3:e"} + ${4} +ensure + ${5} +end +${6} diff --git a/vim/snippets/ruby/bm.snippet b/vim/snippets/ruby/bm.snippet new file mode 100755 index 0000000..681c562 --- /dev/null +++ b/vim/snippets/ruby/bm.snippet @@ -0,0 +1,4 @@ +TESTS = ${1:10_000} +Benchmark.bmbm do |results| + ${2} +end diff --git a/vim/snippets/ruby/case.snippet b/vim/snippets/ruby/case.snippet new file mode 100755 index 0000000..922dd6a --- /dev/null +++ b/vim/snippets/ruby/case.snippet @@ -0,0 +1,5 @@ +case ${1:object} +when ${2:condition} +else + ${3} +end diff --git a/vim/snippets/ruby/cla/class ... end.snippet b/vim/snippets/ruby/cla/class ... end.snippet new file mode 100755 index 0000000..cb39670 --- /dev/null +++ b/vim/snippets/ruby/cla/class ... end.snippet @@ -0,0 +1,3 @@ +class ${1:`Snippet_RubyClassNameFromFilename()`}${2} + ${3} +end diff --git a/vim/snippets/ruby/cla/class ... initialize ... end.snippet b/vim/snippets/ruby/cla/class ... initialize ... end.snippet new file mode 100755 index 0000000..3d51340 --- /dev/null +++ b/vim/snippets/ruby/cla/class ... initialize ... end.snippet @@ -0,0 +1,5 @@ +class ${1:`Snippet_RubyClassNameFromFilename()`} + def initialize${2} + ${3} + end +end diff --git a/vim/snippets/ruby/class.snippet b/vim/snippets/ruby/class.snippet new file mode 100755 index 0000000..cb39670 --- /dev/null +++ b/vim/snippets/ruby/class.snippet @@ -0,0 +1,3 @@ +class ${1:`Snippet_RubyClassNameFromFilename()`}${2} + ${3} +end diff --git a/vim/snippets/ruby/classe.snippet b/vim/snippets/ruby/classe.snippet new file mode 100755 index 0000000..f683c68 --- /dev/null +++ b/vim/snippets/ruby/classe.snippet @@ -0,0 +1 @@ +class ${1:ErrorClassName} < ${2:StandardError}; end${3} diff --git a/vim/snippets/ruby/col.snippet b/vim/snippets/ruby/col.snippet new file mode 100755 index 0000000..9f7cb8b --- /dev/null +++ b/vim/snippets/ruby/col.snippet @@ -0,0 +1 @@ +collect { |${1:e}| ${2} } diff --git a/vim/snippets/ruby/coldo.snippet b/vim/snippets/ruby/coldo.snippet new file mode 100755 index 0000000..7d4e923 --- /dev/null +++ b/vim/snippets/ruby/coldo.snippet @@ -0,0 +1,4 @@ +collect do |${1:e}| + ${2} +end + diff --git a/vim/snippets/ruby/deec.snippet b/vim/snippets/ruby/deec.snippet new file mode 100755 index 0000000..3248094 --- /dev/null +++ b/vim/snippets/ruby/deec.snippet @@ -0,0 +1 @@ +Marshal.load(Marshal.dump(${1:obj_to_copy})) diff --git a/vim/snippets/ruby/def.snippet b/vim/snippets/ruby/def.snippet new file mode 100755 index 0000000..4e96130 --- /dev/null +++ b/vim/snippets/ruby/def.snippet @@ -0,0 +1,3 @@ +def ${1:method} + ${2} +end diff --git a/vim/snippets/ruby/defi.snippet b/vim/snippets/ruby/defi.snippet new file mode 100755 index 0000000..12c354c --- /dev/null +++ b/vim/snippets/ruby/defi.snippet @@ -0,0 +1,3 @@ +def initialize${1} + ${2} +end diff --git a/vim/snippets/ruby/defmm.snippet b/vim/snippets/ruby/defmm.snippet new file mode 100755 index 0000000..5095226 --- /dev/null +++ b/vim/snippets/ruby/defmm.snippet @@ -0,0 +1,3 @@ +def method_missing(method, *args, &block) + ${1} +end diff --git a/vim/snippets/ruby/defs.snippet b/vim/snippets/ruby/defs.snippet new file mode 100755 index 0000000..837733f --- /dev/null +++ b/vim/snippets/ruby/defs.snippet @@ -0,0 +1,3 @@ +def self.${1:class_method_name} + ${2} +end diff --git a/vim/snippets/ruby/deft.snippet b/vim/snippets/ruby/deft.snippet new file mode 100755 index 0000000..9c2adbf --- /dev/null +++ b/vim/snippets/ruby/deft.snippet @@ -0,0 +1,3 @@ +def test_${1:case_name} + ${2} +end diff --git a/vim/snippets/ruby/del/delete_if do ... end.snippet b/vim/snippets/ruby/del/delete_if do ... end.snippet new file mode 100755 index 0000000..17d70f3 --- /dev/null +++ b/vim/snippets/ruby/del/delete_if do ... end.snippet @@ -0,0 +1,3 @@ +delete_if do |${1:elements}| + ${2} +end diff --git a/vim/snippets/ruby/del/delete_if { ... }.snippet b/vim/snippets/ruby/del/delete_if { ... }.snippet new file mode 100755 index 0000000..b7661d6 --- /dev/null +++ b/vim/snippets/ruby/del/delete_if { ... }.snippet @@ -0,0 +1,2 @@ +delete_if { |${1:e}| ${2} } +${2} diff --git a/vim/snippets/ruby/delt.snippit b/vim/snippets/ruby/delt.snippit new file mode 100755 index 0000000..498db1a --- /dev/null +++ b/vim/snippets/ruby/delt.snippit @@ -0,0 +1 @@ +delegate :${1:method}, to: :${2:object} diff --git a/vim/snippets/ruby/det/detect do ... end.snippet b/vim/snippets/ruby/det/detect do ... end.snippet new file mode 100755 index 0000000..c2eedb3 --- /dev/null +++ b/vim/snippets/ruby/det/detect do ... end.snippet @@ -0,0 +1,3 @@ +detect do |${1:element}| + ${2} +end diff --git a/vim/snippets/ruby/det/detect { ... }.snippet b/vim/snippets/ruby/det/detect { ... }.snippet new file mode 100755 index 0000000..b69bdca --- /dev/null +++ b/vim/snippets/ruby/det/detect { ... }.snippet @@ -0,0 +1,2 @@ +detect { |${1:e}| ${2} } +${3} diff --git a/vim/snippets/ruby/detect.snippet b/vim/snippets/ruby/detect.snippet new file mode 100755 index 0000000..5fc24aa --- /dev/null +++ b/vim/snippets/ruby/detect.snippet @@ -0,0 +1 @@ +detect { |${1:element}| ${2:body} } diff --git a/vim/snippets/ruby/detecto.snippet b/vim/snippets/ruby/detecto.snippet new file mode 100755 index 0000000..904b2a6 --- /dev/null +++ b/vim/snippets/ruby/detecto.snippet @@ -0,0 +1,3 @@ +detect do |${1:element}| + ${2:body} +end diff --git a/vim/snippets/ruby/dglob.snippet b/vim/snippets/ruby/dglob.snippet new file mode 100755 index 0000000..1b834f1 --- /dev/null +++ b/vim/snippets/ruby/dglob.snippet @@ -0,0 +1 @@ +Dir.glob(${1:"<+dir+>"}) { |<+file+>| <++> } diff --git a/vim/snippets/ruby/do.snippet b/vim/snippets/ruby/do.snippet new file mode 100755 index 0000000..596c11a --- /dev/null +++ b/vim/snippets/ruby/do.snippet @@ -0,0 +1,3 @@ +do + ${1} +end diff --git a/vim/snippets/ruby/dop.snippet b/vim/snippets/ruby/dop.snippet new file mode 100755 index 0000000..9bf1898 --- /dev/null +++ b/vim/snippets/ruby/dop.snippet @@ -0,0 +1,3 @@ +do |${1:param}| + ${2} +end diff --git a/vim/snippets/ruby/ea.snippet b/vim/snippets/ruby/ea.snippet new file mode 100755 index 0000000..5f7edec --- /dev/null +++ b/vim/snippets/ruby/ea.snippet @@ -0,0 +1 @@ +each { |${1:element}| ${2:body} } diff --git a/vim/snippets/ruby/ea/each do ... end.snippet b/vim/snippets/ruby/ea/each do ... end.snippet new file mode 100755 index 0000000..2c623a7 --- /dev/null +++ b/vim/snippets/ruby/ea/each do ... end.snippet @@ -0,0 +1,3 @@ +each do |${1:elements}| + ${2} +end diff --git a/vim/snippets/ruby/ea/each { ... }.snippet b/vim/snippets/ruby/ea/each { ... }.snippet new file mode 100755 index 0000000..47a3a7a --- /dev/null +++ b/vim/snippets/ruby/ea/each { ... }.snippet @@ -0,0 +1 @@ +each { |${1:e}| ${2} } diff --git a/vim/snippets/ruby/ea/each_with_index do ... end.snippet b/vim/snippets/ruby/ea/each_with_index do ... end.snippet new file mode 100755 index 0000000..247b1be --- /dev/null +++ b/vim/snippets/ruby/ea/each_with_index do ... end.snippet @@ -0,0 +1,4 @@ +each_with_index do |${1:element}, ${2:i}| + ${3} +end + diff --git a/vim/snippets/ruby/ea/each_with_index { ... }.snippet b/vim/snippets/ruby/ea/each_with_index { ... }.snippet new file mode 100755 index 0000000..2823179 --- /dev/null +++ b/vim/snippets/ruby/ea/each_with_index { ... }.snippet @@ -0,0 +1 @@ +each_with_index { |${1:e}, ${2:i}| ${3} } diff --git a/vim/snippets/ruby/eab.snippet b/vim/snippets/ruby/eab.snippet new file mode 100755 index 0000000..12378e6 --- /dev/null +++ b/vim/snippets/ruby/eab.snippet @@ -0,0 +1,2 @@ +each_byte { |${1:b}| ${2:body} }${3} + diff --git a/vim/snippets/ruby/eac.snippet b/vim/snippets/ruby/eac.snippet new file mode 100755 index 0000000..bb41891 --- /dev/null +++ b/vim/snippets/ruby/eac.snippet @@ -0,0 +1,2 @@ +each_char { |${1:c}| ${2:body} }${3} + diff --git a/vim/snippets/ruby/each.snippet b/vim/snippets/ruby/each.snippet new file mode 100755 index 0000000..7c13342 --- /dev/null +++ b/vim/snippets/ruby/each.snippet @@ -0,0 +1,3 @@ +each do |${1:element}| + ${2:body} +end diff --git a/vim/snippets/ruby/each_with_index.snippet b/vim/snippets/ruby/each_with_index.snippet new file mode 100755 index 0000000..f4d3ef1 --- /dev/null +++ b/vim/snippets/ruby/each_with_index.snippet @@ -0,0 +1 @@ +each_with_index { |${1:element},${2:i}| ${3:} } diff --git a/vim/snippets/ruby/each_with_indexo.snippet b/vim/snippets/ruby/each_with_indexo.snippet new file mode 100755 index 0000000..e4fb708 --- /dev/null +++ b/vim/snippets/ruby/each_with_indexo.snippet @@ -0,0 +1,4 @@ +each_with_index do |${1:element},${2:i}| + ${3:body} +end + diff --git a/vim/snippets/ruby/eacho.snippet b/vim/snippets/ruby/eacho.snippet new file mode 100755 index 0000000..7c13342 --- /dev/null +++ b/vim/snippets/ruby/eacho.snippet @@ -0,0 +1,3 @@ +each do |${1:element}| + ${2:body} +end diff --git a/vim/snippets/ruby/eado.snippet b/vim/snippets/ruby/eado.snippet new file mode 100755 index 0000000..7c13342 --- /dev/null +++ b/vim/snippets/ruby/eado.snippet @@ -0,0 +1,3 @@ +each do |${1:element}| + ${2:body} +end diff --git a/vim/snippets/ruby/eai.snippet b/vim/snippets/ruby/eai.snippet new file mode 100755 index 0000000..2c02fed --- /dev/null +++ b/vim/snippets/ruby/eai.snippet @@ -0,0 +1,2 @@ +each_index { |${1:i}| ${2:body} }${3} + diff --git a/vim/snippets/ruby/eak.snippet b/vim/snippets/ruby/eak.snippet new file mode 100755 index 0000000..ad04122 --- /dev/null +++ b/vim/snippets/ruby/eak.snippet @@ -0,0 +1,2 @@ +each_key { |${1:k}| ${2:body} }${3} + diff --git a/vim/snippets/ruby/eap.snippet b/vim/snippets/ruby/eap.snippet new file mode 100755 index 0000000..fb97583 --- /dev/null +++ b/vim/snippets/ruby/eap.snippet @@ -0,0 +1,2 @@ +each_pair { |${1:k}, ${2:v}| ${3:body} }${4} + diff --git a/vim/snippets/ruby/eav.snippet b/vim/snippets/ruby/eav.snippet new file mode 100755 index 0000000..66cffa7 --- /dev/null +++ b/vim/snippets/ruby/eav.snippet @@ -0,0 +1,2 @@ +each_value { |${1:v}| ${2:body} }${3} + diff --git a/vim/snippets/ruby/eawi.snippet b/vim/snippets/ruby/eawi.snippet new file mode 100755 index 0000000..f4d3ef1 --- /dev/null +++ b/vim/snippets/ruby/eawi.snippet @@ -0,0 +1 @@ +each_with_index { |${1:element},${2:i}| ${3:} } diff --git a/vim/snippets/ruby/eawido.snippet b/vim/snippets/ruby/eawido.snippet new file mode 100755 index 0000000..e4fb708 --- /dev/null +++ b/vim/snippets/ruby/eawido.snippet @@ -0,0 +1,4 @@ +each_with_index do |${1:element},${2:i}| + ${3:body} +end + diff --git a/vim/snippets/ruby/elsif.snippet b/vim/snippets/ruby/elsif.snippet new file mode 100755 index 0000000..84d8134 --- /dev/null +++ b/vim/snippets/ruby/elsif.snippet @@ -0,0 +1,2 @@ +elsif ${1:condition} + ${2} diff --git a/vim/snippets/ruby/fileeach.snippet b/vim/snippets/ruby/fileeach.snippet new file mode 100755 index 0000000..01091a5 --- /dev/null +++ b/vim/snippets/ruby/fileeach.snippet @@ -0,0 +1 @@ +File.foreach(${1:"<+path+>"}) { |<+line+>| <++> } diff --git a/vim/snippets/ruby/fopen.snippet b/vim/snippets/ruby/fopen.snippet new file mode 100755 index 0000000..eaabe72 --- /dev/null +++ b/vim/snippets/ruby/fopen.snippet @@ -0,0 +1,2 @@ +File.open(${1:filename}, '${2:rwab}') { |${3:file}| ${4} } +${5} diff --git a/vim/snippets/ruby/fread.snippet b/vim/snippets/ruby/fread.snippet new file mode 100755 index 0000000..d9e6074 --- /dev/null +++ b/vim/snippets/ruby/fread.snippet @@ -0,0 +1 @@ +File.read(${1}) diff --git a/vim/snippets/ruby/fwrite.snippet b/vim/snippets/ruby/fwrite.snippet new file mode 100755 index 0000000..8fd729a --- /dev/null +++ b/vim/snippets/ruby/fwrite.snippet @@ -0,0 +1,2 @@ +File.open(${1:filename}, '${2:w}') { |file| file << ${3:data} } +${4} diff --git a/vim/snippets/ruby/gem.snippet b/vim/snippets/ruby/gem.snippet new file mode 100755 index 0000000..8ffc6a7 --- /dev/null +++ b/vim/snippets/ruby/gem.snippet @@ -0,0 +1,2 @@ +gem '${1:name}', '${2:version}' +${3} diff --git a/vim/snippets/ruby/http_get.snippet b/vim/snippets/ruby/http_get.snippet new file mode 100755 index 0000000..cba6d58 --- /dev/null +++ b/vim/snippets/ruby/http_get.snippet @@ -0,0 +1,2 @@ +require 'net/http' +res = Net::HTTP.get URI.parse('${1:url}') diff --git a/vim/snippets/ruby/http_post.snippet b/vim/snippets/ruby/http_post.snippet new file mode 100755 index 0000000..3b2036a --- /dev/null +++ b/vim/snippets/ruby/http_post.snippet @@ -0,0 +1,2 @@ +require 'net/http' +res = Net::HTTP.post_form URI.parse('${1:url}')${2:, params} diff --git a/vim/snippets/ruby/if.snippet b/vim/snippets/ruby/if.snippet new file mode 100755 index 0000000..b2d1e39 --- /dev/null +++ b/vim/snippets/ruby/if.snippet @@ -0,0 +1,3 @@ +if ${1:condition} + ${2} +end diff --git a/vim/snippets/ruby/ife.snippet b/vim/snippets/ruby/ife.snippet new file mode 100755 index 0000000..6799290 --- /dev/null +++ b/vim/snippets/ruby/ife.snippet @@ -0,0 +1,5 @@ +if ${1:condition} + ${2} +else + ${3} +end diff --git a/vim/snippets/ruby/init.snippet b/vim/snippets/ruby/init.snippet new file mode 100755 index 0000000..12c354c --- /dev/null +++ b/vim/snippets/ruby/init.snippet @@ -0,0 +1,3 @@ +def initialize${1} + ${2} +end diff --git a/vim/snippets/ruby/inj.snippet b/vim/snippets/ruby/inj.snippet new file mode 100755 index 0000000..90dea0d --- /dev/null +++ b/vim/snippets/ruby/inj.snippet @@ -0,0 +1 @@ +inject(${1:init}) { |${2:total}, ${3:next}| ${4:body} } diff --git a/vim/snippets/ruby/inj/inject do ... end.snippet b/vim/snippets/ruby/inj/inject do ... end.snippet new file mode 100755 index 0000000..5d54a91 --- /dev/null +++ b/vim/snippets/ruby/inj/inject do ... end.snippet @@ -0,0 +1,3 @@ +inject(${1:{}}) do |${2:hash}, ${3:element}| + ${4} +end diff --git a/vim/snippets/ruby/inj/inject { ... }.snippet b/vim/snippets/ruby/inj/inject { ... }.snippet new file mode 100755 index 0000000..2dea26d --- /dev/null +++ b/vim/snippets/ruby/inj/inject { ... }.snippet @@ -0,0 +1 @@ +inject(${1:{}}) { |${2:hash}, ${3:e}| ${4} } diff --git a/vim/snippets/ruby/injdo.snippet b/vim/snippets/ruby/injdo.snippet new file mode 100755 index 0000000..d3235e9 --- /dev/null +++ b/vim/snippets/ruby/injdo.snippet @@ -0,0 +1,3 @@ +inject(${1:init}) do |${2:total}, ${3:next}| + ${4:body} +end diff --git a/vim/snippets/ruby/inject.snippet b/vim/snippets/ruby/inject.snippet new file mode 100755 index 0000000..69735c9 --- /dev/null +++ b/vim/snippets/ruby/inject.snippet @@ -0,0 +1 @@ +inject(${1:[]}) { |${2:mem},${3:item}| ${4:body} } diff --git a/vim/snippets/ruby/injecto.snippet b/vim/snippets/ruby/injecto.snippet new file mode 100755 index 0000000..1631033 --- /dev/null +++ b/vim/snippets/ruby/injecto.snippet @@ -0,0 +1,3 @@ +inject do |${1:total},${2:next}| + ${3:body} +end diff --git a/vim/snippets/ruby/ip.snippet b/vim/snippets/ruby/ip.snippet new file mode 100755 index 0000000..9176976 --- /dev/null +++ b/vim/snippets/ruby/ip.snippet @@ -0,0 +1 @@ +ip_addr = request.env['REMOTE_ADDR'] diff --git a/vim/snippets/ruby/log.snippet b/vim/snippets/ruby/log.snippet new file mode 100755 index 0000000..2450948 --- /dev/null +++ b/vim/snippets/ruby/log.snippet @@ -0,0 +1 @@ +logger.debug "${1:message}"${2} diff --git a/vim/snippets/ruby/map.snippet b/vim/snippets/ruby/map.snippet new file mode 100755 index 0000000..b3e7719 --- /dev/null +++ b/vim/snippets/ruby/map.snippet @@ -0,0 +1 @@ +map { |${1:element}| ${2:body} } diff --git a/vim/snippets/ruby/map/map { ... }.snippet b/vim/snippets/ruby/map/map { ... }.snippet new file mode 100755 index 0000000..987f34d --- /dev/null +++ b/vim/snippets/ruby/map/map { ... }.snippet @@ -0,0 +1 @@ +map { |${1:e}| ${2:body} } diff --git a/vim/snippets/ruby/map/mapd do ... end.snippet b/vim/snippets/ruby/map/mapd do ... end.snippet new file mode 100755 index 0000000..b2ccde2 --- /dev/null +++ b/vim/snippets/ruby/map/mapd do ... end.snippet @@ -0,0 +1,3 @@ +map do |${1:element}| + ${2} +end diff --git a/vim/snippets/ruby/mapdo.snippet b/vim/snippets/ruby/mapdo.snippet new file mode 100755 index 0000000..316e7c7 --- /dev/null +++ b/vim/snippets/ruby/mapdo.snippet @@ -0,0 +1,3 @@ +map do |${1:element}| + ${2:body} +end diff --git a/vim/snippets/ruby/mapo.snippet b/vim/snippets/ruby/mapo.snippet new file mode 100755 index 0000000..316e7c7 --- /dev/null +++ b/vim/snippets/ruby/mapo.snippet @@ -0,0 +1,3 @@ +map do |${1:element}| + ${2:body} +end diff --git a/vim/snippets/ruby/mod.snippet b/vim/snippets/ruby/mod.snippet new file mode 100755 index 0000000..457fd61 --- /dev/null +++ b/vim/snippets/ruby/mod.snippet @@ -0,0 +1,3 @@ +module ${1:`Snippet_RubyClassNameFromFilename()`} + ${2} +end diff --git a/vim/snippets/ruby/mod/module ... ClassMethods ... end.snippet b/vim/snippets/ruby/mod/module ... ClassMethods ... end.snippet new file mode 100755 index 0000000..6e00c92 --- /dev/null +++ b/vim/snippets/ruby/mod/module ... ClassMethods ... end.snippet @@ -0,0 +1,13 @@ +module ${1:`Snippet_RubyClassNameFromFilename()`} + def self.included(base) + base.extend ClassMethods + end + + def ${2:instance_method} + ${3} + end + + module ClassMethods + + end +end diff --git a/vim/snippets/ruby/mod/module ... end.snippet b/vim/snippets/ruby/mod/module ... end.snippet new file mode 100755 index 0000000..457fd61 --- /dev/null +++ b/vim/snippets/ruby/mod/module ... end.snippet @@ -0,0 +1,3 @@ +module ${1:`Snippet_RubyClassNameFromFilename()`} + ${2} +end diff --git a/vim/snippets/ruby/module.snippet b/vim/snippets/ruby/module.snippet new file mode 100755 index 0000000..690a0f4 --- /dev/null +++ b/vim/snippets/ruby/module.snippet @@ -0,0 +1,3 @@ +module ${1:`Snippet_RubyClassNameFromFilename()`} + +end diff --git a/vim/snippets/ruby/nam.snippet b/vim/snippets/ruby/nam.snippet new file mode 100755 index 0000000..19b90a7 --- /dev/null +++ b/vim/snippets/ruby/nam.snippet @@ -0,0 +1,3 @@ +namespace :${1:namespace} do + ${2} +end diff --git a/vim/snippets/ruby/ope.snippet b/vim/snippets/ruby/ope.snippet new file mode 100755 index 0000000..cfe9247 --- /dev/null +++ b/vim/snippets/ruby/ope.snippet @@ -0,0 +1 @@ +open(${1:path}, "${2:rwab}") { |${3:io}| ${4} } diff --git a/vim/snippets/ruby/pathhere.snippet b/vim/snippets/ruby/pathhere.snippet new file mode 100755 index 0000000..f4ed944 --- /dev/null +++ b/vim/snippets/ruby/pathhere.snippet @@ -0,0 +1 @@ +File.join(File.dirname(__FILE__), *%w[${1:rel_path_here}]) diff --git a/vim/snippets/ruby/r.snippet b/vim/snippets/ruby/r.snippet new file mode 100755 index 0000000..f232fc9 --- /dev/null +++ b/vim/snippets/ruby/r.snippet @@ -0,0 +1 @@ +attr_reader :${1:attr_names} diff --git a/vim/snippets/ruby/rej/reject do ... end.snippet b/vim/snippets/ruby/rej/reject do ... end.snippet new file mode 100755 index 0000000..1e3ca7b --- /dev/null +++ b/vim/snippets/ruby/rej/reject do ... end.snippet @@ -0,0 +1,3 @@ +reject do |${1:element}| + ${2} +end diff --git a/vim/snippets/ruby/rej/reject { ... }.snippet b/vim/snippets/ruby/rej/reject { ... }.snippet new file mode 100755 index 0000000..03ac987 --- /dev/null +++ b/vim/snippets/ruby/rej/reject { ... }.snippet @@ -0,0 +1,2 @@ +reject { |${1:e}| ${2} } +${3} diff --git a/vim/snippets/ruby/reject.snippet b/vim/snippets/ruby/reject.snippet new file mode 100755 index 0000000..07d2787 --- /dev/null +++ b/vim/snippets/ruby/reject.snippet @@ -0,0 +1 @@ +reject { |${1:element}| ${2:body} } diff --git a/vim/snippets/ruby/rejecto.snippet b/vim/snippets/ruby/rejecto.snippet new file mode 100755 index 0000000..e906bd7 --- /dev/null +++ b/vim/snippets/ruby/rejecto.snippet @@ -0,0 +1,3 @@ +reject do |${1:element}| + ${2:body} +end diff --git a/vim/snippets/ruby/rep.snippet b/vim/snippets/ruby/rep.snippet new file mode 100755 index 0000000..04b77b0 --- /dev/null +++ b/vim/snippets/ruby/rep.snippet @@ -0,0 +1 @@ +results.report("${1:name}:") { TESTS.times { ${2} } } diff --git a/vim/snippets/ruby/report.snippet b/vim/snippets/ruby/report.snippet new file mode 100755 index 0000000..04b77b0 --- /dev/null +++ b/vim/snippets/ruby/report.snippet @@ -0,0 +1 @@ +results.report("${1:name}:") { TESTS.times { ${2} } } diff --git a/vim/snippets/ruby/req.snippet b/vim/snippets/ruby/req.snippet new file mode 100755 index 0000000..d086457 --- /dev/null +++ b/vim/snippets/ruby/req.snippet @@ -0,0 +1 @@ +require "${1}" diff --git a/vim/snippets/ruby/reqf.snippet b/vim/snippets/ruby/reqf.snippet new file mode 100755 index 0000000..657d020 --- /dev/null +++ b/vim/snippets/ruby/reqf.snippet @@ -0,0 +1,2 @@ +require File.expand_path('../${1:filename}', __FILE__) +${2} diff --git a/vim/snippets/ruby/rw.snippet b/vim/snippets/ruby/rw.snippet new file mode 100755 index 0000000..1862da3 --- /dev/null +++ b/vim/snippets/ruby/rw.snippet @@ -0,0 +1 @@ +attr_accessor :${1:attr_names} diff --git a/vim/snippets/ruby/sel/select do ... end.snippet b/vim/snippets/ruby/sel/select do ... end.snippet new file mode 100755 index 0000000..c08755a --- /dev/null +++ b/vim/snippets/ruby/sel/select do ... end.snippet @@ -0,0 +1,3 @@ +select do |${1:element}| + ${2} +end diff --git a/vim/snippets/ruby/sel/select { ... }.snippet b/vim/snippets/ruby/sel/select { ... }.snippet new file mode 100755 index 0000000..b0e2666 --- /dev/null +++ b/vim/snippets/ruby/sel/select { ... }.snippet @@ -0,0 +1,2 @@ +select { |${1:e}| ${2} } +${3} diff --git a/vim/snippets/ruby/select.snippet b/vim/snippets/ruby/select.snippet new file mode 100755 index 0000000..8ab228c --- /dev/null +++ b/vim/snippets/ruby/select.snippet @@ -0,0 +1 @@ +select { |${1:element}| ${2:body} } diff --git a/vim/snippets/ruby/selecto.snippet b/vim/snippets/ruby/selecto.snippet new file mode 100755 index 0000000..a22a650 --- /dev/null +++ b/vim/snippets/ruby/selecto.snippet @@ -0,0 +1,3 @@ +select do |${1:element}| + ${2:body} +end diff --git a/vim/snippets/ruby/sinc.snippet b/vim/snippets/ruby/sinc.snippet new file mode 100755 index 0000000..20e2c4c --- /dev/null +++ b/vim/snippets/ruby/sinc.snippet @@ -0,0 +1 @@ +class << self; self end diff --git a/vim/snippets/ruby/sor/sort do ... end.snippet b/vim/snippets/ruby/sor/sort do ... end.snippet new file mode 100755 index 0000000..ba7009e --- /dev/null +++ b/vim/snippets/ruby/sor/sort do ... end.snippet @@ -0,0 +1,3 @@ +sort do |${1:x},${2:y}| + ${3} +end diff --git a/vim/snippets/ruby/sor/sort { ... }.snippet b/vim/snippets/ruby/sor/sort { ... }.snippet new file mode 100755 index 0000000..c642a15 --- /dev/null +++ b/vim/snippets/ruby/sor/sort { ... }.snippet @@ -0,0 +1 @@ +sort { |${1:x},${2:y}| ${3} } diff --git a/vim/snippets/ruby/sort.snippet b/vim/snippets/ruby/sort.snippet new file mode 100755 index 0000000..08a67c1 --- /dev/null +++ b/vim/snippets/ruby/sort.snippet @@ -0,0 +1 @@ +sort { |${1:x},${2:y}| ${3:body} } diff --git a/vim/snippets/ruby/sorto.snippet b/vim/snippets/ruby/sorto.snippet new file mode 100755 index 0000000..76c38e4 --- /dev/null +++ b/vim/snippets/ruby/sorto.snippet @@ -0,0 +1,3 @@ +sort do |${1:x},${2:y}| + ${3:body} +end diff --git a/vim/snippets/ruby/tas.snippet b/vim/snippets/ruby/tas.snippet new file mode 100755 index 0000000..d949a6b --- /dev/null +++ b/vim/snippets/ruby/tas.snippet @@ -0,0 +1,4 @@ +desc "${1:Task description}" +task :${2:task_name}${3: => [:dependent, :tasks]} do + ${4} +end diff --git a/vim/snippets/ruby/task.snippet b/vim/snippets/ruby/task.snippet new file mode 100755 index 0000000..5477a7e --- /dev/null +++ b/vim/snippets/ruby/task.snippet @@ -0,0 +1,4 @@ +desc '${1:Task description}' +task ${2:task_name}${3: ['dependent:task', 'other:task2']} do + ${4} +end diff --git a/vim/snippets/ruby/tc.snippet b/vim/snippets/ruby/tc.snippet new file mode 100755 index 0000000..3e28f61 --- /dev/null +++ b/vim/snippets/ruby/tc.snippet @@ -0,0 +1,9 @@ +require "test/unit" + +require "${1:library_file_name}" + +class Test${2:`Snippet_RubyClassNameFromFilename()`} < Test::Unit::TestCase + def test_${3:case_name} + ${4} + end +end diff --git a/vim/snippets/ruby/unless.snippet b/vim/snippets/ruby/unless.snippet new file mode 100755 index 0000000..3495d2b --- /dev/null +++ b/vim/snippets/ruby/unless.snippet @@ -0,0 +1,3 @@ +unless ${1:condition} + ${2} +end diff --git a/vim/snippets/ruby/unlesse.snippet b/vim/snippets/ruby/unlesse.snippet new file mode 100755 index 0000000..d190b45 --- /dev/null +++ b/vim/snippets/ruby/unlesse.snippet @@ -0,0 +1,4 @@ +unless ${1:condition} + ${2} +else +end diff --git a/vim/snippets/ruby/until.snippet b/vim/snippets/ruby/until.snippet new file mode 100755 index 0000000..d5518b8 --- /dev/null +++ b/vim/snippets/ruby/until.snippet @@ -0,0 +1,3 @@ +until ${1:condition} + ${2} +end diff --git a/vim/snippets/ruby/w.snippet b/vim/snippets/ruby/w.snippet new file mode 100755 index 0000000..0650e95 --- /dev/null +++ b/vim/snippets/ruby/w.snippet @@ -0,0 +1 @@ +attr_writer :${1:attr_names} diff --git a/vim/snippets/ruby/when.snippet b/vim/snippets/ruby/when.snippet new file mode 100755 index 0000000..91cf1eb --- /dev/null +++ b/vim/snippets/ruby/when.snippet @@ -0,0 +1,2 @@ +when ${1:condition} + ${2} diff --git a/vim/snippets/ruby/while.snippet b/vim/snippets/ruby/while.snippet new file mode 100755 index 0000000..6e878fa --- /dev/null +++ b/vim/snippets/ruby/while.snippet @@ -0,0 +1,3 @@ +while ${1:condition} + ${2} +end diff --git a/vim/snippets/ruby/xmlr.snippet b/vim/snippets/ruby/xmlr.snippet new file mode 100755 index 0000000..eeb3580 --- /dev/null +++ b/vim/snippets/ruby/xmlr.snippet @@ -0,0 +1 @@ +REXML::Document.new(File.read(${1:path})) diff --git a/vim/snippets/ruby/xpa.snippet b/vim/snippets/ruby/xpa.snippet new file mode 100755 index 0000000..5bff950 --- /dev/null +++ b/vim/snippets/ruby/xpa.snippet @@ -0,0 +1,3 @@ +elements.each(${1}) do |${2:node}| + ${3} +end diff --git a/vim/snippets/ruby/zip.snippet b/vim/snippets/ruby/zip.snippet new file mode 100755 index 0000000..b2c831a --- /dev/null +++ b/vim/snippets/ruby/zip.snippet @@ -0,0 +1 @@ +zip(${1:enums}) { |${2:row}| ${3} } diff --git a/vim/snippets/sh/#!.snippet b/vim/snippets/sh/#!.snippet new file mode 100755 index 0000000..a9bf588 --- /dev/null +++ b/vim/snippets/sh/#!.snippet @@ -0,0 +1 @@ +#!/bin/bash diff --git a/vim/snippets/sh/$#.snippet b/vim/snippets/sh/$#.snippet new file mode 100755 index 0000000..5cc5ff7 --- /dev/null +++ b/vim/snippets/sh/$#.snippet @@ -0,0 +1,6 @@ +if [ $# -lt 1 ]; then + echo "${1:#missing arguments}" + exit 1 +else + ${2:#action} +fi diff --git a/vim/snippets/sh/arr.snippet b/vim/snippets/sh/arr.snippet new file mode 100755 index 0000000..e69de29 diff --git a/vim/snippets/sh/arr/keyed.snippet b/vim/snippets/sh/arr/keyed.snippet new file mode 100755 index 0000000..bc438d6 --- /dev/null +++ b/vim/snippets/sh/arr/keyed.snippet @@ -0,0 +1,4 @@ +${1:array}[0]=${2:value} +$1[1]=${3:value} +$1[2]=${4:value} +${5} diff --git a/vim/snippets/sh/arr/list.snippet b/vim/snippets/sh/arr/list.snippet new file mode 100755 index 0000000..060a6b2 --- /dev/null +++ b/vim/snippets/sh/arr/list.snippet @@ -0,0 +1 @@ +${1:array}=(${2:first} ${3:second} ${4}) ${5} diff --git a/vim/snippets/sh/case.snippet b/vim/snippets/sh/case.snippet new file mode 100755 index 0000000..2ba3cc8 --- /dev/null +++ b/vim/snippets/sh/case.snippet @@ -0,0 +1,4 @@ +case ${1:word} in + ${2:pattern}) + ${3};; +esac diff --git a/vim/snippets/sh/date.snippet b/vim/snippets/sh/date.snippet new file mode 100755 index 0000000..bb38782 --- /dev/null +++ b/vim/snippets/sh/date.snippet @@ -0,0 +1 @@ +`system("date +%m-%d-%Y")` diff --git a/vim/snippets/sh/elif.snippet b/vim/snippets/sh/elif.snippet new file mode 100755 index 0000000..52d1a99 --- /dev/null +++ b/vim/snippets/sh/elif.snippet @@ -0,0 +1,2 @@ +elif [[ ${1:condition} ]]; then + ${2:#statements} diff --git a/vim/snippets/sh/for/c-style.snippet b/vim/snippets/sh/for/c-style.snippet new file mode 100755 index 0000000..fdac70d --- /dev/null +++ b/vim/snippets/sh/for/c-style.snippet @@ -0,0 +1,4 @@ +for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do + ${3:#statements} +done + diff --git a/vim/snippets/sh/for/index-loop.snippet b/vim/snippets/sh/for/index-loop.snippet new file mode 100755 index 0000000..18e4da0 --- /dev/null +++ b/vim/snippets/sh/for/index-loop.snippet @@ -0,0 +1,4 @@ +for ${1:i} in ${!${2:Array}[@]} +do + echo "${$2[$1]}" +done diff --git a/vim/snippets/sh/for/list.snippet b/vim/snippets/sh/for/list.snippet new file mode 100755 index 0000000..acffac4 --- /dev/null +++ b/vim/snippets/sh/for/list.snippet @@ -0,0 +1,3 @@ +for ${1:var} in $${2:list}; do + echo "$$1" +done diff --git a/vim/snippets/sh/for/numargs.snippet b/vim/snippets/sh/for/numargs.snippet new file mode 100755 index 0000000..9cf0a01 --- /dev/null +++ b/vim/snippets/sh/for/numargs.snippet @@ -0,0 +1,5 @@ +numargs=$# +for ((i=1 ; i <= numargs ; i++)); do + echo "$1" + shift +done diff --git a/vim/snippets/sh/for/times-sequence.snippet b/vim/snippets/sh/for/times-sequence.snippet new file mode 100755 index 0000000..49237a6 --- /dev/null +++ b/vim/snippets/sh/for/times-sequence.snippet @@ -0,0 +1,4 @@ +for ${1:i} in {${2:1}..${3:10}} +do + echo "$$1" +done diff --git a/vim/snippets/sh/fore.snippet b/vim/snippets/sh/fore.snippet new file mode 100755 index 0000000..439cef4 --- /dev/null +++ b/vim/snippets/sh/fore.snippet @@ -0,0 +1,4 @@ +for ${2:i} in ${1:array} +do + echo $2 +done diff --git a/vim/snippets/sh/fun.snippet b/vim/snippets/sh/fun.snippet new file mode 100755 index 0000000..b1eefa5 --- /dev/null +++ b/vim/snippets/sh/fun.snippet @@ -0,0 +1,3 @@ +function ${1:name}(){ + ${2:Commands} +} diff --git a/vim/snippets/sh/gt.snippet b/vim/snippets/sh/gt.snippet new file mode 100755 index 0000000..33166cf --- /dev/null +++ b/vim/snippets/sh/gt.snippet @@ -0,0 +1,5 @@ +if [ ${1:$var} -gt ${2:$other} ]; then + echo 'Greater than $2' +else + echo 'Less than $2' +fi diff --git a/vim/snippets/sh/if.snippet b/vim/snippets/sh/if.snippet new file mode 100755 index 0000000..06ebd60 --- /dev/null +++ b/vim/snippets/sh/if.snippet @@ -0,0 +1,3 @@ +if [[ ${1:condition} ]]; then + ${2:#statements} +fi diff --git a/vim/snippets/sh/ifdir.snippet b/vim/snippets/sh/ifdir.snippet new file mode 100755 index 0000000..c0ca9c2 --- /dev/null +++ b/vim/snippets/sh/ifdir.snippet @@ -0,0 +1 @@ +[ -d ${1:namedir} ] || mkdir $1 ; cd $1 diff --git a/vim/snippets/sh/ife.snippet b/vim/snippets/sh/ife.snippet new file mode 100755 index 0000000..4b7fb9b --- /dev/null +++ b/vim/snippets/sh/ife.snippet @@ -0,0 +1,5 @@ +if [[ ${1:condition} ]]; then + ${2:#statements} +else + ${3:#statements} +fi diff --git a/vim/snippets/sh/iffile.snippet b/vim/snippets/sh/iffile.snippet new file mode 100755 index 0000000..1795d15 --- /dev/null +++ b/vim/snippets/sh/iffile.snippet @@ -0,0 +1,4 @@ +if [ ! -e ${1:filename} ]; then + echo "file $1 not present" +fi + diff --git a/vim/snippets/sh/ifroot.snippet b/vim/snippets/sh/ifroot.snippet new file mode 100755 index 0000000..4c5f6bb --- /dev/null +++ b/vim/snippets/sh/ifroot.snippet @@ -0,0 +1,7 @@ +# Need to be logged in as root +if [ "$(id -u)" != "0" ]; then + echo " Need be root" + sleep 2 + exit 1 +fi + diff --git a/vim/snippets/sh/lt.snippet b/vim/snippets/sh/lt.snippet new file mode 100755 index 0000000..30d2c0b --- /dev/null +++ b/vim/snippets/sh/lt.snippet @@ -0,0 +1,5 @@ +if [ ${1:$var} -lt ${2:$other} ]; then + echo 'Less than $2' +else + echo 'Greater than $2' +fi diff --git a/vim/snippets/sh/sh.snippet b/vim/snippets/sh/sh.snippet new file mode 100755 index 0000000..f0c06e6 --- /dev/null +++ b/vim/snippets/sh/sh.snippet @@ -0,0 +1,8 @@ +#!/bin/bash +# Created on: `system("date +%m-%d-%Y")` +# Last Change: `system("date +%m-%d-%Y")` +# vim:ft=sh:fdm=syntax:nu: +# Description: ${1:description} +# Author: ${2:`system("whoami")`} +# Url: ${3:url} + diff --git a/vim/snippets/sh/usage.snippet b/vim/snippets/sh/usage.snippet new file mode 100755 index 0000000..9774b49 --- /dev/null +++ b/vim/snippets/sh/usage.snippet @@ -0,0 +1,5 @@ +usage() +{ + echo "Usage: $(basename $${1:0}) ${2:argument}" + echo "${3:explanation}" +} diff --git a/vim/snippets/sh/while.snippet b/vim/snippets/sh/while.snippet new file mode 100755 index 0000000..911a6a2 --- /dev/null +++ b/vim/snippets/sh/while.snippet @@ -0,0 +1,3 @@ +while [[ ${1:condition} ]]; do + ${2:#statements} +done diff --git a/vim/snippets/sh/yesno/longer.snippet b/vim/snippets/sh/yesno/longer.snippet new file mode 100755 index 0000000..b024f43 --- /dev/null +++ b/vim/snippets/sh/yesno/longer.snippet @@ -0,0 +1,5 @@ +echo -n "Do you wish to ${1:#question}" '[y/n] ' ; read ${2:ans} +case "$$2" in + y*|Y*) ${3:#statement} ;; + *) ${4:#statement};; +esac diff --git a/vim/snippets/sh/yesno/simple.snippet b/vim/snippets/sh/yesno/simple.snippet new file mode 100755 index 0000000..3a6b0c2 --- /dev/null +++ b/vim/snippets/sh/yesno/simple.snippet @@ -0,0 +1,6 @@ +read ${1:yn} +if [[ $$1 =~ [Yy] ]]; then + echo "${2:#statement}" +else + echo "${3:#statement}" +fi diff --git a/vim/snippets/sinatra/get.snippet b/vim/snippets/sinatra/get.snippet new file mode 100755 index 0000000..08f3fd5 --- /dev/null +++ b/vim/snippets/sinatra/get.snippet @@ -0,0 +1,3 @@ +get '${1:/}' do + ${2} +end diff --git a/vim/snippets/sql/add.snippet b/vim/snippets/sql/add.snippet new file mode 100755 index 0000000..0578ae2 --- /dev/null +++ b/vim/snippets/sql/add.snippet @@ -0,0 +1 @@ +ALTER TABLE \`${1:name}\` ADD COLUMN \`${2:column}\` ${3:type}${4: NOT NULL}${5: DEFAULT 0}${6: AUTO_INCREMENT} ${7:AFTER \`name`}; diff --git a/vim/snippets/sql/col.snippet b/vim/snippets/sql/col.snippet new file mode 100755 index 0000000..e859756 --- /dev/null +++ b/vim/snippets/sql/col.snippet @@ -0,0 +1 @@ +\`${1:name}\` ${2:type}${3: NOT NULL}${4: DEFAULT 0}${5:,}${6} diff --git a/vim/snippets/sql/create.snippet b/vim/snippets/sql/create.snippet new file mode 100755 index 0000000..3ebc25b --- /dev/null +++ b/vim/snippets/sql/create.snippet @@ -0,0 +1,5 @@ +DROP TABLE IF EXISTS \`${1:name}\`; +CREATE TABLE \`$1\` ( + \`${2:id}\` ${3:integer unsigned}${4: NOT NULL}${5: AUTO_INCREMENT}${6:,}${10} + ${7:PRIMARY KEY (\`$2\`)} +) ENGINE=${8:MyISAM} DEFAULT CHARSET=${9:latin1}; diff --git a/vim/snippets/sql/drop.snippet b/vim/snippets/sql/drop.snippet new file mode 100755 index 0000000..84441d3 --- /dev/null +++ b/vim/snippets/sql/drop.snippet @@ -0,0 +1 @@ +ALTER TABLE \`${1:name}\` DROP \`${2:column}\`;$3 diff --git a/vim/snippets/sql/index.snippet b/vim/snippets/sql/index.snippet new file mode 100755 index 0000000..401d794 --- /dev/null +++ b/vim/snippets/sql/index.snippet @@ -0,0 +1 @@ +ALTER TABLE \`${1:name}\` ADD${2: UNIQUE} INDEX \`${3:column}\`(\`$3\`);$4 diff --git a/vim/snippets/sql/last4.snippet b/vim/snippets/sql/last4.snippet new file mode 100755 index 0000000..b98ef34 --- /dev/null +++ b/vim/snippets/sql/last4.snippet @@ -0,0 +1,4 @@ +\`creator_id\` integer unsigned NOT NULL DEFAULT '0', +\`modifier_id\` integer unsigned NOT NULL DEFAULT '0', +\`date_created\` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', +\`date_modified\` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,${1} diff --git a/vim/snippets/sql/rename.snippet b/vim/snippets/sql/rename.snippet new file mode 100755 index 0000000..7046be5 --- /dev/null +++ b/vim/snippets/sql/rename.snippet @@ -0,0 +1 @@ +ALTER TABLE \`${1:table}\` CHANGE \`${2:old_name}\` \`${3:new_name}\` ${4:type}${5: NOT NULL}${6: DEFAULT 0}${7: AUTO_INCREMENT};${8} diff --git a/vim/snippets/sshconfig/host.snippet b/vim/snippets/sshconfig/host.snippet new file mode 100755 index 0000000..5992a2d --- /dev/null +++ b/vim/snippets/sshconfig/host.snippet @@ -0,0 +1,3 @@ +Host ${1:name} + Hostname ${2:example.com} + User ${3:username} diff --git a/vim/snippets/support_functions.vim b/vim/snippets/support_functions.vim new file mode 100755 index 0000000..a0bb69b --- /dev/null +++ b/vim/snippets/support_functions.vim @@ -0,0 +1,127 @@ +"ruby {{{1 +function! Snippet_RubyClassNameFromFilename(...) + let name = expand("%:t:r") + if len(name) == 0 + if a:0 == 0 + let name = 'MyClass' + else + let name = a:1 + endif + endif + return Snippet_Camelcase(substitute(name, '_spec$', '', '')) +endfunction + +function! Snippet_RubySpecNameFromFilename(...) + let name = substitute(expand("%:t:r"), '_spec$', '', '') + if len(name) == 0 + if a:0 == 0 + let name = 'MyClass' + else + let name = a:1 + endif + endif + return Snippet_Camelcase(name) +endfunction + +function! Snippet_MigrationNameFromFilename(...) + let name = substitute(expand("%:t:r"), '^.\{-}_', '', '') + if len(name) == 0 + if a:0 == 0 + let name = 'MyClass' + else + let name = a:1 + endif + endif + return Snippet_Camelcase(name) +endfunction + + +"python {{{1 +function! Snippet_PythonClassNameFromFilename(...) + let name = expand("%:t:r") + if len(name) == 0 + if a:0 == 0 + let name = 'MyClass' + else + let name = a:1 + endif + endif + return Snippet_Camelcase(name) +endfunction + +"php {{{1 +function! Snippet_PHPClassNameFromFilename(...) + let name = expand("%:t:r:r") + if len(name) == 0 + if a:0 == 0 + let name = 'MyClass' + else + let name = a:1 + endif + endif + return name +endfunction + +"java {{{1 +function! Snippet_JavaClassNameFromFilename(...) + let name = expand("%:t:r") + if len(name) == 0 + if a:0 == 0 + let name = 'MyClass' + else + let name = a:1 + endif + endif + return name +endfunction + +function! Snippet_JavaInstanceVarType(name) + let oldview = winsaveview() + if searchdecl(a:name) == 0 + normal! B + let old_reg = @" + normal! yaW + let type = @" + let @" = old_reg + call winrestview(oldview) + let type = substitute(type, '\s\+$', '', '') + + "searchdecl treats 'return foo;' as a declaration of foo + if type != 'return' + return type + endif + endif + return "<+type+>" +endfunction + + +"global {{{1 +function! s:start_comment() + return substitute(&commentstring, '^\([^ ]*\)\s*%s\(.*\)$', '\1', '') +endfunction + +function! s:end_comment() + return substitute(&commentstring, '^.*%s\(.*\)$', '\1', '') +endfunction + +function! Snippet_Modeline() + return s:start_comment() . " vim: set ${1:settings}:" . s:end_comment() +endfunction + +function! Snippet_Camelcase(s) + "upcase the first letter + let toReturn = substitute(a:s, '^\(.\)', '\=toupper(submatch(1))', '') + "turn all '_x' into 'X' + return substitute(toReturn, '_\(.\)', '\=toupper(submatch(1))', 'g') +endfunction + +function! Snippet_Underscore(s) + "down the first letter + let toReturn = substitute(a:s, '^\(.\)', '\=tolower(submatch(1))', '') + "turn all 'X' into '_x' + return substitute(toReturn, '\([A-Z]\)', '\=tolower("_".submatch(1))', 'g') +endfunction + + +" modeline {{{1 +" vim: set fdm=marker: diff --git a/vim/snippets/vim/au.snippet b/vim/snippets/vim/au.snippet new file mode 100755 index 0000000..d59720a --- /dev/null +++ b/vim/snippets/vim/au.snippet @@ -0,0 +1 @@ +autocmd ${1:events} ${2:pattern} ${3:command} diff --git a/vim/snippets/vim/com.snippet b/vim/snippets/vim/com.snippet new file mode 100755 index 0000000..b8eeb5b --- /dev/null +++ b/vim/snippets/vim/com.snippet @@ -0,0 +1 @@ +command! -nargs=${1:number_of_args} ${2:other_params} ${2:name} ${2:command} diff --git a/vim/snippets/vim/func.snippet b/vim/snippets/vim/func.snippet new file mode 100755 index 0000000..8591a83 --- /dev/null +++ b/vim/snippets/vim/func.snippet @@ -0,0 +1,8 @@ +"Function: $1 +"Desc: ${3:description} +" +"Arguments: +"${4} +function! ${1:name}(${2}) + ${5} +endfunction diff --git a/vim/snippets/vim/if.snippet b/vim/snippets/vim/if.snippet new file mode 100755 index 0000000..336e7a0 --- /dev/null +++ b/vim/snippets/vim/if.snippet @@ -0,0 +1,3 @@ +if ${1} + ${2} +endif diff --git a/vim/snippets/vim/ife.snippet b/vim/snippets/vim/ife.snippet new file mode 100755 index 0000000..c5d1693 --- /dev/null +++ b/vim/snippets/vim/ife.snippet @@ -0,0 +1,4 @@ +if ${1} + ${2} +else +endif diff --git a/vim/snippets/vim/log.snippet b/vim/snippets/vim/log.snippet new file mode 100755 index 0000000..5a86754 --- /dev/null +++ b/vim/snippets/vim/log.snippet @@ -0,0 +1 @@ +echomsg ${1} diff --git a/vim/snippets/vim/try.snippet b/vim/snippets/vim/try.snippet new file mode 100755 index 0000000..cd4c0e7 --- /dev/null +++ b/vim/snippets/vim/try.snippet @@ -0,0 +1,4 @@ +try + ${2} +catch /${1}/ +endtry diff --git a/vim/snippets/xslt/call.snippet b/vim/snippets/xslt/call.snippet new file mode 100755 index 0000000..2fe4f9d --- /dev/null +++ b/vim/snippets/xslt/call.snippet @@ -0,0 +1,3 @@ + + ${2} + diff --git a/vim/snippets/xslt/choose.snippet b/vim/snippets/xslt/choose.snippet new file mode 100755 index 0000000..1a87754 --- /dev/null +++ b/vim/snippets/xslt/choose.snippet @@ -0,0 +1,7 @@ + + + ${2} + + + + diff --git a/vim/snippets/xslt/mat.snippet b/vim/snippets/xslt/mat.snippet new file mode 100755 index 0000000..a566e0e --- /dev/null +++ b/vim/snippets/xslt/mat.snippet @@ -0,0 +1,3 @@ + + ${2} + diff --git a/vim/snippets/xslt/out.snippet b/vim/snippets/xslt/out.snippet new file mode 100755 index 0000000..88e70c2 --- /dev/null +++ b/vim/snippets/xslt/out.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/xslt/param.snippet b/vim/snippets/xslt/param.snippet new file mode 100755 index 0000000..f4f9a50 --- /dev/null +++ b/vim/snippets/xslt/param.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/xslt/sty.snippet b/vim/snippets/xslt/sty.snippet new file mode 100755 index 0000000..f6751c7 --- /dev/null +++ b/vim/snippets/xslt/sty.snippet @@ -0,0 +1,3 @@ + + ${1} + diff --git a/vim/snippets/xslt/tem.snippet b/vim/snippets/xslt/tem.snippet new file mode 100755 index 0000000..bcd86d6 --- /dev/null +++ b/vim/snippets/xslt/tem.snippet @@ -0,0 +1,3 @@ + + ${2} + diff --git a/vim/snippets/xslt/value.snippet b/vim/snippets/xslt/value.snippet new file mode 100755 index 0000000..9128cc6 --- /dev/null +++ b/vim/snippets/xslt/value.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/xslt/var.snippet b/vim/snippets/xslt/var.snippet new file mode 100755 index 0000000..d21b77c --- /dev/null +++ b/vim/snippets/xslt/var.snippet @@ -0,0 +1,3 @@ + + ${2} + diff --git a/vim/snippets/xslt/wparam.snippet b/vim/snippets/xslt/wparam.snippet new file mode 100755 index 0000000..2284b71 --- /dev/null +++ b/vim/snippets/xslt/wparam.snippet @@ -0,0 +1 @@ + diff --git a/vim/snippets/xslt/xdec.snippet b/vim/snippets/xslt/xdec.snippet new file mode 100755 index 0000000..f1e4420 --- /dev/null +++ b/vim/snippets/xslt/xdec.snippet @@ -0,0 +1,2 @@ + + ${2} diff --git a/vim/snippets/zend/assert.snippet b/vim/snippets/zend/assert.snippet new file mode 100644 index 0000000..ca928f2 --- /dev/null +++ b/vim/snippets/zend/assert.snippet @@ -0,0 +1 @@ +$this->assertTrue(${1:somevar}, '${2:sometext}'); diff --git a/vim/snippets/zend/boolcol.snippet b/vim/snippets/zend/boolcol.snippet new file mode 100644 index 0000000..715fe19 --- /dev/null +++ b/vim/snippets/zend/boolcol.snippet @@ -0,0 +1 @@ +$this->hasColumn('${1:active}', '${2:boolean}', ${3:1}, array('default' => '${4:1}','notnull' => true)); diff --git a/vim/snippets/zend/clac.snippet b/vim/snippets/zend/clac.snippet new file mode 100644 index 0000000..80972a1 --- /dev/null +++ b/vim/snippets/zend/clac.snippet @@ -0,0 +1,20 @@ +_flashMessenger->addMessage("${1}", '${2:error}'); diff --git a/vim/snippets/zend/getconf.snippet b/vim/snippets/zend/getconf.snippet new file mode 100644 index 0000000..10f2b20 --- /dev/null +++ b/vim/snippets/zend/getconf.snippet @@ -0,0 +1 @@ +$${1:conf} = Zend_Registry::get('${2:config}')->${3:general}; diff --git a/vim/snippets/zend/input.snippet b/vim/snippets/zend/input.snippet new file mode 100644 index 0000000..3c4ed27 --- /dev/null +++ b/vim/snippets/zend/input.snippet @@ -0,0 +1,4 @@ +formInput(array( 'type' => '${1:hidden}', + 'name' => '${2}', + 'value' => ${3:}, + 'id' => '${4:}' )); ?> diff --git a/vim/snippets/zend/inputarr.snippet b/vim/snippets/zend/inputarr.snippet new file mode 100644 index 0000000..8e97bee --- /dev/null +++ b/vim/snippets/zend/inputarr.snippet @@ -0,0 +1,6 @@ +formInput(array( 'type' => '${1:dropdown}', + 'name' => '${2}', + 'label' => '${3:}', + 'errors' => ${4:}, + 'value' => ${5:}, + 'valueList' => ${6:} )); ?> diff --git a/vim/snippets/zend/intcol.snippet b/vim/snippets/zend/intcol.snippet new file mode 100644 index 0000000..caacaa6 --- /dev/null +++ b/vim/snippets/zend/intcol.snippet @@ -0,0 +1 @@ +$this->hasColumn('${1:id}', '${2:integer}', ${3:11}, array(${4:'notnull' => true)}); diff --git a/vim/snippets/zend/lib.snippet b/vim/snippets/zend/lib.snippet new file mode 100644 index 0000000..683e22e --- /dev/null +++ b/vim/snippets/zend/lib.snippet @@ -0,0 +1,5 @@ +hasColumn('id', 'integer', 4, array('notnull' => true, + 'primary' => true, + 'autoincrement' => true)); + ${3} + } + +} diff --git a/vim/snippets/zend/navi.snippet b/vim/snippets/zend/navi.snippet new file mode 100644 index 0000000..2724ff9 --- /dev/null +++ b/vim/snippets/zend/navi.snippet @@ -0,0 +1 @@ +$this->view->navigationActive = array('topnavi' => '${1:home}','subnavi' => '${2:index}'); diff --git a/vim/snippets/zend/route.snippet b/vim/snippets/zend/route.snippet new file mode 100644 index 0000000..cdf834b --- /dev/null +++ b/vim/snippets/zend/route.snippet @@ -0,0 +1 @@ +$this->_redirector->gotoRoute(array('controller' => '${1}', 'action' => '${2:index}', 'id' => '${3:}'), '${4:admin_action}'); diff --git a/vim/snippets/zend/rp.snippet b/vim/snippets/zend/rp.snippet new file mode 100644 index 0000000..b5dcd1f --- /dev/null +++ b/vim/snippets/zend/rp.snippet @@ -0,0 +1,2 @@ +partial('${1:somefile}.phtml', + array(${2}))?> diff --git a/vim/snippets/zend/strcol.snippet b/vim/snippets/zend/strcol.snippet new file mode 100644 index 0000000..98d3cf3 --- /dev/null +++ b/vim/snippets/zend/strcol.snippet @@ -0,0 +1 @@ +$this->hasColumn('${1:title}', '${2:string}', ${3:255}, array(${4:'notnull' => true})); diff --git a/vim/syntax/conque_term.vim b/vim/syntax/conque_term.vim new file mode 100644 index 0000000..2f187f0 --- /dev/null +++ b/vim/syntax/conque_term.vim @@ -0,0 +1,113 @@ +" FILE: syntax/conque_term.vim {{{ +" AUTHOR: Nico Raffo +" WEBSITE: http://conque.googlecode.com +" MODIFIED: 2011-09-02 +" VERSION: 2.3, for Vim 7.0 +" LICENSE: +" Conque - Vim terminal/console emulator +" Copyright (C) 2009-2011 Nico Raffo +" +" 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. +" }}} + + +" ******************************************************************************************************************* +" MySQL ************************************************************************************************************* +" ******************************************************************************************************************* + +" TODO Move these to syntax which is only executed for mysql +"syn match MySQLTableBodyG "^\s*\w\+:\(.\+\)\=$" contains=MySQLTableHeadG,MySQLNullG,MySQLBool,MySQLNumberG,MySQLStorageClass oneline skipwhite skipnl +"syn match MySQLTableHeadG "^\s*\w\+:" contains=MySQLTableColon skipwhite contained +"syn match MySQLTableColon ":" contained + +syn match MySQLTableHead "^ *|.*| *$" nextgroup=MySQLTableDivide contains=MySQLTableBar oneline skipwhite skipnl +syn match MySQLTableBody "^ *|.*| *$" nextgroup=MySQLTableBody,MySQLTableEnd contains=MySQLTableBar,MySQLNull,MySQLBool,MySQLNumber,MySQLStorageClass oneline skipwhite skipnl +syn match MySQLTableEnd "^ *+[+=-]\++ *$" oneline +syn match MySQLTableDivide "^ *+[+=-]\++ *$" nextgroup=MySQLTableBody oneline skipwhite skipnl +syn match MySQLTableStart "^ *+[+=-]\++ *$" nextgroup=MySQLTableHead oneline skipwhite skipnl +syn match MySQLNull " NULL " contained contains=MySQLTableBar +syn match MySQLStorageClass " PRI " contained +syn match MySQLStorageClass " MUL " contained +syn match MySQLStorageClass " UNI " contained +syn match MySQLStorageClass " CURRENT_TIMESTAMP " contained +syn match MySQLStorageClass " auto_increment " contained +syn match MySQLTableBar "|" contained +syn match MySQLNumber "|\? *\d\+\(\.\d\+\)\? *|" contained contains=MySQLTableBar +syn match MySQLQueryStat "^\d\+ rows\? in set.*" oneline +syn match MySQLPromptLine "^.\?mysql> .*$" contains=MySQLKeyword,MySQLPrompt,MySQLString oneline +syn match MySQLPromptLine "^ -> .*$" contains=MySQLKeyword,MySQLPrompt,MySQLString oneline +syn match MySQLPrompt "^.\?mysql>" contained oneline +syn match MySQLPrompt "^ ->" contained oneline +syn case ignore +syn keyword MySQLKeyword select count max sum avg date show table tables status like as from left right outer inner join contained +syn keyword MySQLKeyword where group by having limit offset order desc asc show contained and interval is null on +syn case match +syn region MySQLString start=+'+ end=+'+ skip=+\\'+ contained oneline +syn region MySQLString start=+"+ end=+"+ skip=+\\"+ contained oneline +syn region MySQLString start=+`+ end=+`+ skip=+\\`+ contained oneline + + +hi def link MySQLPrompt Identifier +hi def link MySQLTableHead Title +hi def link MySQLTableBody Normal +hi def link MySQLBool Boolean +hi def link MySQLStorageClass StorageClass +hi def link MySQLNumber Number +hi def link MySQLKeyword Keyword +hi def link MySQLString String + +" terms which have no reasonable default highlight group to link to +hi MySQLTableHead term=bold cterm=bold gui=bold +if &background == 'dark' + hi MySQLTableEnd term=NONE cterm=NONE gui=NONE ctermfg=238 guifg=#444444 + hi MySQLTableDivide term=NONE cterm=NONE gui=NONE ctermfg=238 guifg=#444444 + hi MySQLTableStart term=NONE cterm=NONE gui=NONE ctermfg=238 guifg=#444444 + hi MySQLTableBar term=NONE cterm=NONE gui=NONE ctermfg=238 guifg=#444444 + hi MySQLNull term=NONE cterm=NONE gui=NONE ctermfg=238 guifg=#444444 + hi MySQLQueryStat term=NONE cterm=NONE gui=NONE ctermfg=238 guifg=#444444 +elseif &background == 'light' + hi MySQLTableEnd term=NONE cterm=NONE gui=NONE ctermfg=247 guifg=#9e9e9e + hi MySQLTableDivide term=NONE cterm=NONE gui=NONE ctermfg=247 guifg=#9e9e9e + hi MySQLTableStart term=NONE cterm=NONE gui=NONE ctermfg=247 guifg=#9e9e9e + hi MySQLTableBar term=NONE cterm=NONE gui=NONE ctermfg=247 guifg=#9e9e9e + hi MySQLNull term=NONE cterm=NONE gui=NONE ctermfg=247 guifg=#9e9e9e + hi MySQLQueryStat term=NONE cterm=NONE gui=NONE ctermfg=247 guifg=#9e9e9e +endif + + +" ******************************************************************************************************************* +" Bash ************************************************************************************************************** +" ******************************************************************************************************************* + +" Typical Prompt +if g:ConqueTerm_PromptRegex != '' + silent execute "syn match ConquePromptLine '" . g:ConqueTerm_PromptRegex . ".*$' contains=ConquePrompt,ConqueString oneline" + silent execute "syn match ConquePrompt '" . g:ConqueTerm_PromptRegex . "' contained oneline" + hi def link ConquePrompt Identifier +endif + +" Strings +syn region ConqueString start=+'+ end=+'+ skip=+\\'+ contained oneline +syn region ConqueString start=+"+ end=+"+ skip=+\\"+ contained oneline +syn region ConqueString start=+`+ end=+`+ skip=+\\`+ contained oneline +hi def link ConqueString String + +" vim: foldmethod=marker diff --git a/vim/syntax/cucumber.vim b/vim/syntax/cucumber.vim new file mode 100644 index 0000000..abf673f --- /dev/null +++ b/vim/syntax/cucumber.vim @@ -0,0 +1,100 @@ +" Vim syntax file +" Language: Cucumber +" Maintainer: Tim Pope +" Filenames: *.feature + +if exists("b:current_syntax") + finish +endif + +syn case match +syn sync minlines=20 + +let g:cucumber_languages = { + \"en": {"and": "And", "background": "Background", "but": "But", "examples": "Examples|Scenarios", "feature": "Feature", "given": "Given", "scenario": "Scenario", "scenario_outline": "Scenario Outline", "then": "Then", "when": "When"}, + \"ar": {"and": "\\%u0648", "background": "\\%u0627\\%u0644\\%u062e\\%u0644\\%u0641\\%u064a\\%u0629", "but": "\\%u0644\\%u0643\\%u0646", "examples": "\\%u0627\\%u0645\\%u062b\\%u0644\\%u0629", "feature": "\\%u062e\\%u0627\\%u0635\\%u064a\\%u0629", "given": "\\%u0628\\%u0641\\%u0631\\%u0636", "scenario": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648", "scenario_outline": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648 \\%u0645\\%u062e\\%u0637\\%u0637", "then": "\\%u0627\\%u0630\\%u0627\\%u064b|\\%u062b\\%u0645", "when": "\\%u0645\\%u062a\\%u0649|\\%u0639\\%u0646\\%u062f\\%u0645\\%u0627"}, + \"bg": {"and": "\\%u0418", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u0438\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f", "but": "\\%u041d\\%u043e", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442", "given": "\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u043e", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439", "scenario_outline": "\\%u0420\\%u0430\\%u043c\\%u043a\\%u0430 \\%u043d\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439", "then": "\\%u0422\\%u043e", "when": "\\%u041a\\%u043e\\%u0433\\%u0430\\%u0442\\%u043e"}, + \"cat": {"and": "I", "background": "Rerefons|Antecedents", "but": "Per\\%u00f2", "examples": "Exemples", "feature": "Caracter\\%u00edstica", "given": "Donat|Donada", "scenario": "Escenari", "scenario_outline": "Esquema de l\'escenari", "then": "Aleshores", "when": "Quan"}, + \"cy": {"and": "A", "but": "Ond", "examples": "Enghreifftiau", "feature": "Arwedd", "given": "anrhegedig a", "scenario": "Scenario", "then": "Yna", "when": "Pryd"}, + \"cz": {"and": "A", "background": "Pozad\\%u00ed", "but": "Ale", "examples": "P\\%u0159\\%u00edklady", "feature": "Po\\%u017eadavek", "given": "Pokud", "scenario": "Sc\\%u00e9n\\%u00e1\\%u0159", "scenario_outline": "N\\%u00e1\\%u010drt Sc\\%u00e9n\\%u00e1\\%u0159e", "then": "Pak", "when": "Kdy\\%u017e"}, + \"da": {"and": "Og", "background": "Baggrund", "but": "Men", "examples": "Eksempler", "feature": "Egenskab", "given": "Givet", "scenario": "Scenarie", "scenario_outline": "Abstrakt Scenario", "then": "S\\%u00e5", "when": "N\\%u00e5r"}, + \"de": {"and": "Und", "background": "Grundlage", "but": "Aber", "examples": "Beispiele", "feature": "Funktionalit\\%u00e4t", "given": "Gegeben sei", "scenario": "Szenario", "scenario_outline": "Szenariogrundriss", "then": "Dann", "when": "Wenn"}, + \"en-au": {"and": "N", "background": "Background", "but": "Cept", "examples": "Cobber", "feature": "Crikey", "given": "Ya know how", "scenario": "Mate", "scenario_outline": "Blokes", "then": "Ya gotta", "when": "When"}, + \"en-lol": {"and": "AN", "background": "B4", "but": "BUT", "examples": "EXAMPLZ", "feature": "OH HAI", "given": "I CAN HAZ", "scenario": "MISHUN", "scenario_outline": "MISHUN SRSLY", "then": "DEN", "when": "WEN"}, + \"es": {"and": "Y", "background": "Antecedentes", "but": "Pero", "examples": "Ejemplos", "feature": "Caracter\\%u00edstica", "given": "Dado", "scenario": "Escenario", "scenario_outline": "Esquema del escenario", "then": "Entonces", "when": "Cuando"}, + \"et": {"and": "Ja", "background": "Taust", "but": "Kuid", "examples": "Juhtumid", "feature": "Omadus", "given": "Eeldades", "scenario": "Stsenaarium", "scenario_outline": "Raamstsenaarium", "then": "Siis", "when": "Kui"}, + \"fi": {"and": "Ja", "background": "Tausta", "but": "Mutta", "examples": "Tapaukset", "feature": "Ominaisuus", "given": "Oletetaan", "scenario": "Tapaus", "scenario_outline": "Tapausaihio", "then": "Niin", "when": "Kun"}, + \"fr": {"and": "Et", "background": "Contexte", "but": "Mais", "examples": "Exemples", "feature": "Fonctionnalit\\%u00e9", "given": "Soit", "scenario": "Sc\\%u00e9nario", "scenario_outline": "Plan du Sc\\%u00e9nario", "then": "Alors", "when": "Lorsque"}, + \"he": {"and": "\\%u05d5\\%u05d2\\%u05dd", "background": "\\%u05e8\\%u05e7\\%u05e2", "but": "\\%u05d0\\%u05d1\\%u05dc", "examples": "\\%u05d3\\%u05d5\\%u05d2\\%u05de\\%u05d0\\%u05d5\\%u05ea", "feature": "\\%u05ea\\%u05db\\%u05d5\\%u05e0\\%u05d4", "given": "\\%u05d1\\%u05d4\\%u05d9\\%u05e0\\%u05ea\\%u05df", "scenario": "\\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9", "scenario_outline": "\\%u05ea\\%u05d1\\%u05e0\\%u05d9\\%u05ea \\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9", "then": "\\%u05d0\\%u05d6|\\%u05d0\\%u05d6\\%u05d9", "when": "\\%u05db\\%u05d0\\%u05e9\\%u05e8"}, + \"hu": {"and": "\\%u00c9s", "background": "H\\%u00e1tt\\%u00e9r", "but": "De", "examples": "P\\%u00e9ld\\%u00e1k", "feature": "Jellemz\\%u0151", "given": "Ha", "scenario": "Forgat\\%u00f3k\\%u00f6nyv", "scenario_outline": "Forgat\\%u00f3k\\%u00f6nyv v\\%u00e1zlat", "then": "Akkor", "when": "Majd"}, + \"id": {"and": "Dan", "background": "Dasar", "but": "Tapi", "examples": "Contoh", "feature": "Fitur", "given": "Dengan", "scenario": "Skenario", "scenario_outline": "Skenario konsep", "then": "Maka", "when": "Ketika"}, + \"it": {"and": "E", "background": "Contesto", "but": "Ma", "examples": "Esempi", "feature": "Funzionalit\\%u00e0", "given": "Dato", "scenario": "Scenario", "scenario_outline": "Schema dello scenario", "then": "Allora", "when": "Quando"}, + \"ja": {"and": "\\%u304b\\%u3064", "background": "\\%u80cc\\%u666f", "but": "\\%u3057\\%u304b\\%u3057|\\%u4f46\\%u3057", "examples": "\\%u4f8b|\\%u30b5\\%u30f3\\%u30d7\\%u30eb", "feature": "\\%u30d5\\%u30a3\\%u30fc\\%u30c1\\%u30e3|\\%u6a5f\\%u80fd", "given": "\\%u524d\\%u63d0", "scenario": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa", "scenario_outline": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30a2\\%u30a6\\%u30c8\\%u30e9\\%u30a4\\%u30f3|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\%u30fc\\%u30c8|\\%u30c6\\%u30f3\\%u30d7\\%u30ec|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec", "then": "\\%u306a\\%u3089\\%u3070", "when": "\\%u3082\\%u3057"}, + \"ko": {"and": "\\%uadf8\\%ub9ac\\%uace0", "background": "\\%ubc30\\%uacbd", "but": "\\%ud558\\%uc9c0\\%ub9cc", "examples": "\\%uc608", "feature": "\\%uae30\\%ub2a5", "given": "\\%uc870\\%uac74", "scenario": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624", "scenario_outline": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624 \\%uac1c\\%uc694", "then": "\\%uadf8\\%ub7ec\\%uba74", "when": "\\%ub9cc\\%uc77c"}, + \"lt": {"and": "Ir", "background": "Kontekstas", "but": "Bet", "examples": "Pavyzd\\%u017eiai|Scenarijai|Variantai", "feature": "Savyb\\%u0117", "given": "Duota", "scenario": "Scenarijus", "scenario_outline": "Scenarijaus \\%u0161ablonas", "then": "Tada", "when": "Kai"}, + \"lv": {"and": "Un", "background": "Konteksts|Situ\\%u0101cija", "but": "Bet", "examples": "Piem\\%u0113ri|Paraugs", "feature": "Funkcionalit\\%u0101te|F\\%u012b\\%u010da", "given": "Kad", "scenario": "Scen\\%u0101rijs", "scenario_outline": "Scen\\%u0101rijs p\\%u0113c parauga", "then": "Tad", "when": "Ja"}, + \"nl": {"and": "En", "background": "Achtergrond", "but": "Maar", "examples": "Voorbeelden", "feature": "Functionaliteit", "given": "Gegeven", "scenario": "Scenario", "scenario_outline": "Abstract Scenario", "then": "Dan", "when": "Als"}, + \"no": {"and": "Og", "background": "Bakgrunn", "but": "Men", "examples": "Eksempler", "feature": "Egenskap", "given": "Gitt", "scenario": "Scenario", "scenario_outline": "Abstrakt Scenario", "then": "S\\%u00e5", "when": "N\\%u00e5r"}, + \"pl": {"and": "Oraz", "background": "Za\\%u0142o\\%u017cenia", "but": "Ale", "examples": "Przyk\\%u0142ady", "feature": "W\\%u0142a\\%u015bciwo\\%u015b\\%u0107", "given": "Zak\\%u0142adaj\\%u0105c", "scenario": "Scenariusz", "scenario_outline": "Szablon scenariusza", "then": "Wtedy", "when": "Je\\%u017celi"}, + \"pt": {"and": "E", "background": "Contexto", "but": "Mas", "examples": "Exemplos", "feature": "Funcionalidade", "given": "Dado", "scenario": "Cen\\%u00e1rio|Cenario", "scenario_outline": "Esquema do Cen\\%u00e1rio|Esquema do Cenario", "then": "Ent\\%u00e3o|Entao", "when": "Quando"}, + \"ro": {"and": "Si", "but": "Dar", "feature": "Functionalitate", "given": "Daca", "scenario": "Scenariu", "then": "Atunci", "when": "Cand"}, + \"ro2": {"and": "\\%u0218i", "but": "Dar", "feature": "Func\\%u021bionalitate", "given": "Dac\\%u0103", "scenario": "Scenariu", "then": "Atunci", "when": "C\\%u00e2nd"}, + \"ru": {"and": "\\%u0418|\\%u041a \\%u0442\\%u043e\\%u043c\\%u0443 \\%u0436\\%u0435", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u044b\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f", "but": "\\%u041d\\%u043e|\\%u0410", "examples": "\\%u0417\\%u043d\\%u0430\\%u0447\\%u0435\\%u043d\\%u0438\\%u044f", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b", "given": "\\%u0414\\%u043e\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f", "then": "\\%u0422\\%u043e", "when": "\\%u0415\\%u0441\\%u043b\\%u0438"}, + \"se": {"and": "Och", "background": "Bakgrund", "but": "Men", "examples": "Exempel", "feature": "Egenskap", "given": "Givet", "scenario": "Scenario", "scenario_outline": "Abstrakt Scenario", "then": "S\\%u00e5", "when": "N\\%u00e4r"}, + \"sk": {"and": "A", "background": "Pozadie", "but": "Ale", "examples": "Pr\\%u00edklady", "feature": "Po\\%u017eiadavka", "given": "Pokia\\%u013e", "scenario": "Scen\\%u00e1r", "scenario_outline": "N\\%u00e1\\%u010drt Scen\\%u00e1ru", "then": "Tak", "when": "Ke\\%u010f"}, + \"vi": {"and": "V\\%u00e0", "background": "B\\%u1ed1i c\\%u1ea3nh", "but": "Nh\\%u01b0ng", "examples": "D\\%u1eef li\\%u1ec7u", "feature": "T\\%u00ednh n\\%u0103ng", "given": "Bi\\%u1ebft|Cho", "scenario": "T\\%u00ecnh hu\\%u1ed1ng|K\\%u1ecbch b\\%u1ea3n", "scenario_outline": "Khung t\\%u00ecnh hu\\%u1ed1ng|Khung k\\%u1ecbch b\\%u1ea3n", "then": "Th\\%u00ec", "when": "Khi"}, + \"zh-CN": {"and": "\\%u800c\\%u4e14", "background": "\\%u80cc\\%u666f", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50", "feature": "\\%u529f\\%u80fd", "given": "\\%u5047\\%u5982", "scenario": "\\%u573a\\%u666f", "scenario_outline": "\\%u573a\\%u666f\\%u5927\\%u7eb2", "then": "\\%u90a3\\%u4e48", "when": "\\%u5f53"}, + \"zh-TW": {"and": "\\%u800c\\%u4e14|\\%u4e26\\%u4e14", "background": "\\%u80cc\\%u666f", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50", "feature": "\\%u529f\\%u80fd", "given": "\\%u5047\\%u8a2d", "scenario": "\\%u5834\\%u666f|\\%u5287\\%u672c", "scenario_outline": "\\%u5834\\%u666f\\%u5927\\%u7db1|\\%u5287\\%u672c\\%u5927\\%u7db1", "then": "\\%u90a3\\%u9ebc", "when": "\\%u7576"}} + +function! s:pattern(key) + return '\<\%('.join(map(values(g:cucumber_languages),'substitute(get(v:val,a:key,"\\%(a\\&b\\)"),"|","\\\\|","g")'),'\|').'\)\%(\>\|[[:alnum:]]\@]*>" contained containedin=@cucumberStepRegions +syn match cucumberExampleTable "\%(^\s*\)\@<=|.*" contains=cucumberDelimiter +syn match cucumberDelimiter "|" contained +syn match cucumberTags "\%(^\s*\)\@<=\%(@[^@[:space:]]\+\s\+\)*@[^@[:space:]]\+\s*$" +syn region cucumberString start=+\%(^\s*\)\@<="""+ end=+"""+ + +call s:Add('Then') +call s:Add('When') +call s:Add('Given') + +hi def link cucumberComment Comment +hi def link cucumberFeature Macro +hi def link cucumberBackground Define +hi def link cucumberScenario Define +hi def link cucumberScenarioOutline Define +hi def link cucumberExamples Define +hi def link cucumberPlaceholder Constant +hi def link cucumberDelimiter Delimiter +hi def link cucumberTags Tag +hi def link cucumberString String +hi def link cucumberGiven Conditional +hi def link cucumberWhen Function +hi def link cucumberThen Type + +let b:current_syntax = "cucumber" + +" vim:set sts=2 sw=2: diff --git a/vim/syntax/cvsannotate.vim b/vim/syntax/cvsannotate.vim new file mode 100755 index 0000000..4af5809 --- /dev/null +++ b/vim/syntax/cvsannotate.vim @@ -0,0 +1,45 @@ +" Vim syntax file +" Language: CVS annotate output +" Maintainer: Bob Hiestand +" Remark: Used by the cvscommand plugin. Originally written by Mathieu +" Clabaut +" License: +" Copyright (c) 2007 Bob Hiestand +" +" 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. + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn match cvsDate /\d\d-...-\d\d/ contained +syn match cvsName /(\S* /hs=s+1,he=e-1 contained nextgroup=cvsDate +syn match cvsVer /^\d\+\(\.\d\+\)\+/ contained nextgroup=cvsName +syn region cvsHead start="^\d\+\.\d\+" end="):" contains=cvsVer,cvsName,cvsDate + +if !exists("did_cvsannotate_syntax_inits") + let did_cvsannotate_syntax_inits = 1 + hi link cvsDate Comment + hi link cvsName Type + hi link cvsVer Statement +endif + +let b:current_syntax="CVSAnnotate" diff --git a/vim/syntax/eruby.vim b/vim/syntax/eruby.vim new file mode 100644 index 0000000..3477f31 --- /dev/null +++ b/vim/syntax/eruby.vim @@ -0,0 +1,76 @@ +" Vim syntax file +" Language: eRuby +" Maintainer: Tim Pope +" URL: http://vim-ruby.rubyforge.org +" Anon CVS: See above site +" Release Coordinator: Doug Kearns + +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'eruby' +endif + +if !exists("g:eruby_default_subtype") + let g:eruby_default_subtype = "html" +endif + +if !exists("b:eruby_subtype") && main_syntax == 'eruby' + let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$") + let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+') + if b:eruby_subtype == '' + let b:eruby_subtype = matchstr(&filetype,'^eruby\.\zs\w\+') + endif + if b:eruby_subtype == '' + let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\)\+$','',''),'\.\zs\w\+$') + endif + if b:eruby_subtype == 'rhtml' + let b:eruby_subtype = 'html' + elseif b:eruby_subtype == 'rb' + let b:eruby_subtype = 'ruby' + elseif b:eruby_subtype == 'yml' + let b:eruby_subtype = 'yaml' + elseif b:eruby_subtype == 'js' + let b:eruby_subtype = 'javascript' + elseif b:eruby_subtype == 'txt' + " Conventional; not a real file type + let b:eruby_subtype = 'text' + elseif b:eruby_subtype == '' + let b:eruby_subtype = g:eruby_default_subtype + endif +endif + +if !exists("b:eruby_nest_level") + let b:eruby_nest_level = strlen(substitute(substitute(substitute(expand("%:t"),'@','','g'),'\c\.\%(erb\|rhtml\)\>','@','g'),'[^@]','','g')) +endif +if !b:eruby_nest_level + let b:eruby_nest_level = 1 +endif + +if exists("b:eruby_subtype") && b:eruby_subtype != '' + exe "runtime! syntax/".b:eruby_subtype.".vim" + unlet! b:current_syntax +endif +syn include @rubyTop syntax/ruby.vim + +syn cluster erubyRegions contains=erubyOneLiner,erubyBlock,erubyExpression,erubyComment + +exe 'syn region erubyOneLiner matchgroup=erubyDelimiter start="^%\{1,'.b:eruby_nest_level.'\}%\@!" end="$" contains=@rubyTop containedin=ALLBUT,@erubyRegions keepend oneline' +exe 'syn region erubyBlock matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}%\@!-\=" end="[=-]\=%\@" contains=@rubyTop containedin=ALLBUT,@erubyRegions keepend' +exe 'syn region erubyExpression matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}=\{1,4}" end="[=-]\=%\@" contains=@rubyTop containedin=ALLBUT,@erubyRegions keepend' +exe 'syn region erubyComment matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}#" end="%\@" contains=rubyTodo,@Spell containedin=ALLBUT,@erubyRegions keepend' + +" Define the default highlighting. + +hi def link erubyDelimiter Delimiter +hi def link erubyComment Comment + +let b:current_syntax = 'eruby' + +if main_syntax == 'eruby' + unlet main_syntax +endif + +" vim: nowrap sw=2 sts=2 ts=8: diff --git a/vim/syntax/git-diff.vim b/vim/syntax/git-diff.vim new file mode 100644 index 0000000..54a97ec --- /dev/null +++ b/vim/syntax/git-diff.vim @@ -0,0 +1,8 @@ +runtime syntax/diff.vim + +syntax match gitDiffStatLine /^ .\{-}\zs[+-]\+$/ contains=gitDiffStatAdd,gitDiffStatDelete +syntax match gitDiffStatAdd /+/ contained +syntax match gitDiffStatDelete /-/ contained + +highlight gitDiffStatAdd ctermfg=2 +highlight gitDiffStatDelete ctermfg=5 diff --git a/vim/syntax/git-log.vim b/vim/syntax/git-log.vim new file mode 100644 index 0000000..571b28a --- /dev/null +++ b/vim/syntax/git-log.vim @@ -0,0 +1,3 @@ +syntax match gitLogCommit +^commit \x\{40}+ + +highlight link gitLogCommit Statement diff --git a/vim/syntax/git-status.vim b/vim/syntax/git-status.vim new file mode 100644 index 0000000..4cf05e5 --- /dev/null +++ b/vim/syntax/git-status.vim @@ -0,0 +1,18 @@ +runtime syntax/diff.vim +setlocal filetype= + +syntax match gitStatusComment +^#.*+ contains=ALL + +syntax match gitStatusBranch +On branch .\++ + +syntax match gitStatusUndracked +\t\zs.\++ +syntax match gitStatusNewFile +\t\zsnew file: .\++ +syntax match gitStatusModified +\t\zsmodified: .\++ + +highlight link gitStatusComment Comment + +highlight link gitStatusBranch Title + +highlight link gitStatusUndracked diffOnly +highlight link gitStatusNewFile diffAdded +highlight link gitStatusModified diffChanged diff --git a/vim/syntax/git.vim b/vim/syntax/git.vim new file mode 100644 index 0000000..fd76b73 --- /dev/null +++ b/vim/syntax/git.vim @@ -0,0 +1,67 @@ +" Vim syntax file +" Language: generic git output +" Maintainer: Tim Pope +" Last Change: 2008 Mar 21 + +if exists("b:current_syntax") + finish +endif + +syn case match +syn sync minlines=50 + +syn include @gitDiff syntax/diff.vim + +syn region gitHead start=/\%^/ end=/^$/ +syn region gitHead start=/\%(^commit \x\{40\}$\)\@=/ end=/^$/ + +" For git reflog and git show ...^{tree}, avoid sync issues +syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/ +syn match gitHead /^\x\{40\} \x\{40}\t.*/ + +syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff fold +syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff + +syn match gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite +syn match gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite +syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite +syn match gitMode /^\d\{6\}/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite +syn match gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite +syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite +syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite +syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite +syn region gitEmail matchgroup=gitEmailDelimiter start=// keepend oneline contained containedin=gitIdentity + +syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite +syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite +syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity + +syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained +syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained +syn match gitDate /\<\d\+ \l\+ ago\>/ contained +syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHash skipwhite +syn match gitStage /\<\d\t\@=/ contained +syn match gitReference /\S\+\S\@!/ contained +syn match gitHash /\<\x\{40\}\>/ contained nextgroup=gitIdentity,gitStage skipwhite +syn match gitHash /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite +syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite +syn match gitHashAbbrev /\<\x\{40\}\>/ contained nextgroup=gitHashAbbrev skipwhite + +hi def link gitDateHeader gitIdentityHeader +hi def link gitIdentityHeader gitIdentityKeyword +hi def link gitIdentityKeyword Label +hi def link gitReflogHeader gitKeyword +hi def link gitKeyword Keyword +hi def link gitIdentity String +hi def link gitEmailDelimiter Delimiter +hi def link gitEmail Special +hi def link gitDate Number +hi def link gitMode Number +hi def link gitHashAbbrev gitHash +hi def link gitHash Identifier +hi def link gitReflogMiddle gitReference +hi def link gitReference Function +hi def link gitStage gitType +hi def link gitType Type + +let b:current_syntax = "git" diff --git a/vim/syntax/gitannotate.vim b/vim/syntax/gitannotate.vim new file mode 100755 index 0000000..932342d --- /dev/null +++ b/vim/syntax/gitannotate.vim @@ -0,0 +1,44 @@ +" Vim syntax file +" Language: git annotate output +" Maintainer: Bob Hiestand +" Remark: Used by the vcscommand plugin. +" License: +" Copyright (c) 2009 Bob Hiestand +" +" 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. + +if exists("b:current_syntax") + finish +endif + +syn region gitName start="(\@<=" end="\( \d\d\d\d-\)\@=" contained +syn match gitCommit /^\^\?\x\+/ contained +syn match gitDate /\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d [+-]\d\d\d\d/ contained +syn match gitLineNumber /\d\+)\@=/ contained +syn region gitAnnotation start="^" end=") " oneline keepend contains=gitCommit,gitLineNumber,gitDate,gitName + +if !exists("did_gitannotate_syntax_inits") + let did_gitannotate_syntax_inits = 1 + hi link gitName Type + hi link gitCommit Statement + hi link gitDate Comment + hi link gitLineNumber Label +endif + +let b:current_syntax="gitAnnotate" diff --git a/vim/syntax/gitcommit.vim b/vim/syntax/gitcommit.vim new file mode 100644 index 0000000..e75d044 --- /dev/null +++ b/vim/syntax/gitcommit.vim @@ -0,0 +1,65 @@ +" Vim syntax file +" Language: git commit file +" Maintainer: Tim Pope +" Filenames: *.git/COMMIT_EDITMSG +" Last Change: 2008 Apr 09 + +if exists("b:current_syntax") + finish +endif + +syn case match +syn sync minlines=50 + +if has("spell") + syn spell toplevel +endif + +syn include @gitcommitDiff syntax/diff.vim +syn region gitcommitDiff start=/\%(^diff --git \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff + +syn match gitcommitFirstLine "\%^[^#].*" nextgroup=gitcommitBlank skipnl +syn match gitcommitSummary "^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell +syn match gitcommitOverflow ".*" contained contains=@Spell +syn match gitcommitBlank "^[^#].*" contained contains=@Spell +syn match gitcommitComment "^#.*" +syn region gitcommitHead start=/^# / end=/^#$/ contained transparent +syn match gitcommitOnBranch "\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite +syn match gitcommitBranch "\S\+" contained +syn match gitcommitHeader "\%(^# \)\@<=.*:$" contained containedin=gitcommitComment + +syn region gitcommitUntracked start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold +syn match gitcommitUntrackedFile "\t\@<=.*" contained + +syn region gitcommitDiscarded start=/^# Changed but not updated:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold +syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold + +syn match gitcommitDiscardedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite +syn match gitcommitSelectedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite +syn match gitcommitDiscardedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow +syn match gitcommitSelectedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow +syn match gitcommitDiscardedArrow " -> " contained nextgroup=gitcommitDiscardedFile +syn match gitcommitSelectedArrow " -> " contained nextgroup=gitcommitSelectedFile + +hi def link gitcommitSummary Keyword +hi def link gitcommitComment Comment +hi def link gitcommitUntracked gitcommitComment +hi def link gitcommitDiscarded gitcommitComment +hi def link gitcommitSelected gitcommitComment +hi def link gitcommitOnBranch Comment +hi def link gitcommitBranch Special +hi def link gitcommitDiscardedType gitcommitType +hi def link gitcommitSelectedType gitcommitType +hi def link gitcommitType Type +hi def link gitcommitHeader PreProc +hi def link gitcommitUntrackedFile gitcommitFile +hi def link gitcommitDiscardedFile gitcommitFile +hi def link gitcommitSelectedFile gitcommitFile +hi def link gitcommitFile Constant +hi def link gitcommitDiscardedArrow gitcommitArrow +hi def link gitcommitSelectedArrow gitcommitArrow +hi def link gitcommitArrow gitcommitComment +"hi def link gitcommitOverflow Error +hi def link gitcommitBlank Error + +let b:current_syntax = "gitcommit" diff --git a/vim/syntax/gitconfig.vim b/vim/syntax/gitconfig.vim new file mode 100644 index 0000000..e57a32d --- /dev/null +++ b/vim/syntax/gitconfig.vim @@ -0,0 +1,37 @@ +" Vim syntax file +" Language: git config file +" Maintainer: Tim Pope +" Filenames: gitconfig, .gitconfig, *.git/config +" Last Change: 2007 Dec 16 + +if exists("b:current_syntax") + finish +endif + +syn case ignore +setlocal iskeyword+=- +setlocal iskeyword-=_ + +syn match gitconfigComment "[#;].*" +syn match gitconfigSection "\%(^\s*\)\@<=\[[a-z0-9.-]\+\]" +syn match gitconfigSection '\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]' +syn match gitconfigVariable "\%(^\s*\)\@<=\a\k*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite +syn region gitconfigAssignment matchgroup=gitconfigNone start=+=\s*+ skip=+\\+ end=+\s*$+ contained contains=gitconfigBoolean,gitconfigNumber,gitConfigString,gitConfigEscape,gitConfigError,gitconfigComment keepend +syn keyword gitconfigBoolean true false yes no contained +syn match gitconfigNumber "\d\+" contained +syn region gitconfigString matchgroup=gitconfigDelim start=+"+ skip=+\\+ end=+"+ matchgroup=gitconfigError end=+[^\\"]\%#\@!$+ contained contains=gitconfigEscape,gitconfigEscapeError +syn match gitconfigError +\\.+ contained +syn match gitconfigEscape +\\[\\"ntb]+ contained +syn match gitconfigEscape +\\$+ contained + +hi def link gitconfigComment Comment +hi def link gitconfigSection Keyword +hi def link gitconfigVariable Identifier +hi def link gitconfigBoolean Boolean +hi def link gitconfigNumber Number +hi def link gitconfigString String +hi def link gitconfigDelim Delimiter +hi def link gitconfigEscape Delimiter +hi def link gitconfigError Error + +let b:current_syntax = "gitconfig" diff --git a/vim/syntax/gitrebase.vim b/vim/syntax/gitrebase.vim new file mode 100644 index 0000000..080252f --- /dev/null +++ b/vim/syntax/gitrebase.vim @@ -0,0 +1,31 @@ +" Vim syntax file +" Language: git rebase --interactive +" Maintainer: Tim Pope +" Filenames: git-rebase-todo +" Last Change: 2008 Apr 16 + +if exists("b:current_syntax") + finish +endif + +syn case match + +syn match gitrebaseHash "\v<\x{7,40}>" contained +syn match gitrebaseCommit "\v<\x{7,40}>" nextgroup=gitrebaseSummary skipwhite +syn match gitrebasePick "\v^p%(ick)=>" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseEdit "\v^e%(dit)=>" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseSummary ".*" contains=gitrebaseHash contained +syn match gitrebaseComment "^#.*" contains=gitrebaseHash +syn match gitrebaseSquashError "\v%^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite + +hi def link gitrebaseCommit gitrebaseHash +hi def link gitrebaseHash Identifier +hi def link gitrebasePick Statement +hi def link gitrebaseEdit PreProc +hi def link gitrebaseSquash Type +hi def link gitrebaseSummary String +hi def link gitrebaseComment Comment +hi def link gitrebaseSquashError Error + +let b:current_syntax = "gitrebase" diff --git a/vim/syntax/gitsendemail.vim b/vim/syntax/gitsendemail.vim new file mode 100644 index 0000000..d247cda --- /dev/null +++ b/vim/syntax/gitsendemail.vim @@ -0,0 +1,19 @@ +" Vim syntax file +" Language: git send-email message +" Maintainer: Tim Pope +" Filenames: *.msg.[0-9]* (first line is "From ... # This line is ignored.") +" Last Change: 2007 Dec 16 + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/mail.vim +syn case match + +syn match gitsendemailComment "\%^From.*#.*" +syn match gitsendemailComment "^GIT:.*" + +hi def link gitsendemailComment Comment + +let b:current_syntax = "gitsendemail" diff --git a/vim/syntax/haml.vim b/vim/syntax/haml.vim new file mode 100644 index 0000000..aac3ddd --- /dev/null +++ b/vim/syntax/haml.vim @@ -0,0 +1,91 @@ +" Vim syntax file +" Language: Haml +" Maintainer: Tim Pope +" Filenames: *.haml + +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'haml' +endif +let b:ruby_no_expensive = 1 + +runtime! syntax/html.vim +unlet! b:current_syntax +silent! syn include @hamlSassTop syntax/sass.vim +unlet! b:current_syntax +syn include @hamlRubyTop syntax/ruby.vim + +syn case match + +syn cluster hamlComponent contains=hamlAttributes,hamlClassChar,hamlIdChar,hamlObject,hamlDespacer,hamlSelfCloser,hamlRuby,hamlPlainChar,hamlInterpolatable +syn cluster hamlEmbeddedRuby contains=hamlAttributes,hamlObject,hamlRuby,hamlRubyFilter +syn cluster hamlTop contains=hamlBegin,hamlPlainFilter,hamlRubyFilter,hamlSassFilter,hamlComment,hamlHtmlComment + +syn match hamlBegin "^\s*\%([<>]\|&[^=~]\)\@!" nextgroup=hamlTag,hamlAttributes,hamlClassChar,hamlIdChar,hamlObject,hamlRuby,hamlPlainChar,hamlInterpolatable + +syn match hamlTag "%\w\+" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@hamlComponent +syn region hamlAttributes matchgroup=hamlAttributesDelimiter start="{" end="}" contained contains=@hamlRubyTop nextgroup=@hamlComponent +syn region hamlObject matchgroup=hamlObjectDelimiter start="\[" end="\]" contained contains=@hamlRubyTop nextgroup=@hamlComponent +syn match hamlDespacer "[<>]" contained nextgroup=hamlDespacer,hamlSelfCloser,hamlRuby,hamlPlainChar,hamlInterpolatable +syn match hamlSelfCloser "/" contained +syn match hamlClassChar "\." contained nextgroup=hamlClass +syn match hamlIdChar "#" contained nextgroup=hamlId +syn match hamlClass "\%(\w\|-\)\+" contained nextgroup=@hamlComponent +syn match hamlId "\%(\w\|-\)\+" contained nextgroup=@hamlComponent +syn region hamlDocType start="^\s*!!!" end="$" + +syn region hamlRuby matchgroup=hamlRubyOutputChar start="[!&]\==\|\~" end="$" contained contains=@hamlRubyTop keepend +syn region hamlRuby matchgroup=hamlRubyChar start="-" end="$" contained contains=@hamlRubyTop keepend +syn match hamlPlainChar "\\" contained +syn region hamlInterpolatable matchgroup=hamlInterpolatableChar start="!\===" end="$" keepend contained contains=hamlInterpolation,@hamlHtmlTop +syn region hamlInterpolatable matchgroup=hamlInterpolatableChar start="&==" end="$" keepend contained contains=hamlInterpolation +syn region hamlInterpolation matchgroup=hamlInterpolationDelimiter start="#{" end="}" contained contains=@hamlRubyTop +syn region hamlErbInterpolation matchgroup=hamlInterpolationDelimiter start="<%[=-]\=" end="-\=%>" contained contains=@hamlRubyTop + +syn match hamlHelper "\[^]]*]" contained containedin=hamlHtmlComment + +hi def link hamlSelfCloser Special +hi def link hamlDespacer Special +hi def link hamlClassChar Special +hi def link hamlIdChar Special +hi def link hamlTag Special +hi def link hamlClass Type +hi def link hamlId Identifier +hi def link hamlPlainChar Special +hi def link hamlInterpolatableChar hamlRubyChar +hi def link hamlRubyOutputChar hamlRubyChar +hi def link hamlRubyChar Special +hi def link hamlInterpolationDelimiter Delimiter +hi def link hamlDocType PreProc +hi def link hamlFilter PreProc +hi def link hamlAttributesDelimiter Delimiter +hi def link hamlObjectDelimiter Delimiter +hi def link hamlHelper Function +hi def link hamlHtmlComment hamlComment +hi def link hamlComment Comment +hi def link hamlIEConditional SpecialComment +hi def link hamlError Error + +let b:current_syntax = "haml" + +" vim:set sw=2: diff --git a/vim/syntax/hgannotate.vim b/vim/syntax/hgannotate.vim new file mode 100755 index 0000000..cee9a23 --- /dev/null +++ b/vim/syntax/hgannotate.vim @@ -0,0 +1,40 @@ +" Vim syntax file +" Language: HG annotate output +" Maintainer: Bob Hiestand +" Remark: Used by the vcscommand plugin. +" License: +" Copyright (c) 2010 Bob Hiestand +" +" 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. + +if exists("b:current_syntax") + finish +endif + +syn match hgVer /\d\+/ contained +syn match hgName /^\s*\S\+/ contained +syn match hgHead /^\s*\S\+\s\+\d\+:/ contains=hgVer,hgName + +if !exists("did_hgannotate_syntax_inits") + let did_hgannotate_syntax_inits = 1 + hi link hgName Type + hi link hgVer Statement +endif + +let b:current_syntax="hgAnnotate" diff --git a/vim/syntax/less.vim b/vim/syntax/less.vim new file mode 100644 index 0000000..ba6ba34 --- /dev/null +++ b/vim/syntax/less.vim @@ -0,0 +1,305 @@ +" Vim syntax file +" Language: LESS Cascading Style Sheets +" Maintainer: Leaf Corcoran +" Modifier: Bryan J Swift +" URL: http://leafo.net/lessphp/vim/less.vim +" URL: http://gist.github.com/161047 +" Last Change: 2009 August 4 +" LESS by Leaf Corcoran +" CSS2 by Nikolai Weibull +" Full CSS2, HTML4 support by Yeti + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if !exists("main_syntax") + if version < 600 + syntax clear + elseif exists("b:current_syntax") + finish +endif + let main_syntax = 'less' +endif + +syn case ignore + + + +syn keyword cssTagName abbr acronym address applet area a b base +syn keyword cssTagName basefont bdo big blockquote body br button +syn keyword cssTagName caption center cite code col colgroup dd del +syn keyword cssTagName dfn dir div dl dt em fieldset font form frame +syn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i +syn keyword cssTagName iframe img input ins isindex kbd label legend li +syn keyword cssTagName link map menu meta noframes noscript ol optgroup +syn keyword cssTagName option p param pre q s samp script select small +syn keyword cssTagName span strike strong style sub sup tbody td +syn keyword cssTagName textarea tfoot th thead title tr tt ul u var +syn match cssTagName "\" +syn match cssTagName "\*" + +syn match cssTagName "@page\>" nextgroup=cssDefinition + +syn match cssSelectorOp "[+>.]" +syn match cssSelectorOp2 "[~|]\?=" contained +syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ + +try +syn match cssIdentifier "#[A-Za-zУ�-УП_@][A-Za-zУ�-УП0-9_@-]*" +catch /^.*/ +syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*" +endtry + +syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl +syn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl +syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl +syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier + +syn match cssValueInteger "[-+]\=\d\+" +syn match cssValueNumber "[-+]\=\d\+\(\.\d*\)\=" +syn match cssValueLength "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\)" + +syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" +syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" +syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" + +syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl +syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr +syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>" +syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline +syn keyword cssFontDescriptorAttr contained all +syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend +syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+" +syn match cssUnicodeRange contained "U+\x\+-\x\+" + +syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow +" FIXME: These are actually case-insentivie too, but (a) specs recommend using +" mixed-case (b) it's hard to highlight the word `Background' correctly in +" all situations +syn case match +syn keyword cssColor contained ActiveBorder ActiveCaption AppWorkspace ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText GrayText Highlight HighlightText InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Menu MenuText Scrollbar ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Window WindowFrame WindowText Background +syn case ignore +syn match cssColor contained "\" +syn match cssColor contained "\" +syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" +syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" +"syn match cssColor contained "\" + +syn keyword cssCommonAttr contained auto none inherit +syn keyword cssCommonAttr contained top bottom +syn keyword cssCommonAttr contained medium normal + +syn match cssFontProp contained "\\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\>\)\=" +syn match cssFontAttr contained "\<\(sans-\)\=\" +syn match cssFontAttr contained "\\(-\(caps\|caption\)\>\)\=" +syn match cssFontAttr contained "\" +syn match cssFontAttr contained "\" +syn match cssFontAttr contained "\" +syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>" +syn keyword cssFontAttr contained cursive fantasy monospace italic oblique +syn keyword cssFontAttr contained bold bolder lighter larger smaller +syn keyword cssFontAttr contained icon menu +syn match cssFontAttr contained "\" +syn keyword cssFontAttr contained large smaller larger +syn keyword cssFontAttr contained narrower wider + +syn keyword cssColorProp contained color +syn match cssColorProp contained "\" +syn match cssColorAttr contained "\" + +syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>" +syn match cssTextAttr contained "\" +syn match cssTextAttr contained "\" +syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>" +syn keyword cssTextAttr contained underline overline blink sub super middle +syn keyword cssTextAttr contained capitalize uppercase lowercase center justify baseline sub super + +syn match cssBoxProp contained "\<\(margin\|padding\|border\)\(-\(top\|right\|bottom\|left\)\)\=\>" +syn match cssBoxProp contained "\" +syn match cssBoxProp contained "\<\(width\|z-index\)\>" +syn match cssBoxProp contained "\<\(min\|max\)-\(width\|height\)\>" +syn keyword cssBoxProp contained width height float clear overflow clip visibility +syn keyword cssBoxAttr contained thin thick both +syn keyword cssBoxAttr contained dotted dashed solid double groove ridge inset outset +syn keyword cssBoxAttr contained hidden visible scroll collapse + +syn keyword cssGeneratedContentProp contained content quotes +syn match cssGeneratedContentProp contained "\" +syn match cssGeneratedContentProp contained "\" +syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>" +syn match cssAuralAttr contained "\" +syn match cssGeneratedContentAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>" +syn match cssGeneratedContentAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>" +syn match cssGeneratedContentAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>" +syn keyword cssGeneratedContentAttr contained disc circle square hebrew armenian georgian +syn keyword cssGeneratedContentAttr contained inside outside + +syn match cssPagingProp contained "\" +syn keyword cssPagingProp contained size marks inside orphans widows +syn keyword cssPagingAttr contained landscape portrait crop cross always avoid + +syn keyword cssUIProp contained cursor +syn match cssUIProp contained "\" +syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>" +syn keyword cssUIAttr contained default crosshair pointer move wait help +syn keyword cssUIAttr contained thin thick +syn keyword cssUIAttr contained dotted dashed solid double groove ridge inset outset +syn keyword cssUIAttr contained invert + +syn match cssRenderAttr contained "\" +syn match cssRenderProp contained "\<\(display\|marker-offset\|unicode-bidi\|white-space\|list-item\|run-in\|inline-table\)\>" +syn keyword cssRenderProp contained position top bottom direction +syn match cssRenderProp contained "\<\(left\|right\)\>" +syn keyword cssRenderAttr contained block inline compact +syn match cssRenderAttr contained "\" +syn keyword cssRenderAttr contained static relative absolute fixed +syn keyword cssRenderAttr contained ltr rtl embed bidi-override pre nowrap +syn match cssRenderAttr contained "\" + +syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>" +syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>" +syn keyword cssAuralProp contained volume during azimuth elevation stress richness +syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>" +syn keyword cssAuralAttr contained silent +syn match cssAuralAttr contained "\" +syn keyword cssAuralAttr contained non mix +syn match cssAuralAttr contained "\<\(left\|right\)-side\>" +syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>" +syn keyword cssAuralAttr contained leftwards rightwards behind +syn keyword cssAuralAttr contained below level above higher +syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>" +syn keyword cssAuralAttr contained faster slower +syn keyword cssAuralAttr contained male female child code digits continuous + +syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\|speak-header\)\>" +syn keyword cssTableAttr contained fixed collapse separate show hide once always + + + +syn match lessComment "//.*$" contains=@Spell +syn match lessVariable "@[A-Za-z_-][A-Za-z0-9_-]*" contained +syn region lessVariableDefinition start="^@" end=";" contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssDefinition,cssClassName,cssTagName,cssIdentifier,lessComment,lessVariable,lessFunction + +" captures both the definition and the call +syn region lessFunction matchgroup=lessFuncDef start="@[A-Za-z_-][A-Za-z0-9_-]*(" end=")" contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssDefinition,cssClassName,cssTagName,cssIdentifier,lessComment,lessVariable,lessFunction + + + + + +" FIXME: This allows cssMediaBlock before the semicolon, which is wrong. +syn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType +syn match cssBraces contained "[{}]" +syn match cssError contained "{@<>" +syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssDefinition,cssClassName,cssTagName,cssIdentifier,lessComment,lessVariable,lessFunction +" syn match cssBraceError "}" + +syn match cssPseudoClass ":\S*" contains=cssPseudoClassId,cssUnicodeEscape +syn keyword cssPseudoClassId contained link visited active hover focus before after left right +syn match cssPseudoClassId contained "\" +syn region cssPseudoClassLang matchgroup=cssPseudoClassId start=":lang(" end=")" oneline + +syn region cssComment start="/\*" end="\*/" contains=@Spell + +syn match cssUnicodeEscape "\\\x\{1,6}\s\?" +syn match cssSpecialCharQQ +\\"+ contained +syn match cssSpecialCharQ +\\'+ contained +syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ +syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ +syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" + + + + +if main_syntax == "css" + syn sync minlines=10 +endif + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_less_syn_inits") + if version < 508 + let did_less_syn_inits = 1 + command -nargs=+ HiLink hi link + else + command -nargs=+ HiLink hi def link + endif + + HiLink lessComment Comment + HiLink lessVariable Special + HiLink lessFuncDef Function + HiLink cssComment Comment + HiLink cssTagName Statement + HiLink cssSelectorOp Special + HiLink cssSelectorOp2 Special + HiLink cssFontProp StorageClass + HiLink cssColorProp storageClass + HiLink cssTextProp StorageClass + HiLink cssBoxProp StorageClass + HiLink cssRenderProp StorageClass + HiLink cssAuralProp StorageClass + HiLink cssRenderProp StorageClass + HiLink cssGeneratedContentProp StorageClass + HiLink cssPagingProp StorageClass + HiLink cssTableProp StorageClass + HiLink cssUIProp StorageClass + HiLink cssFontAttr Type + HiLink cssColorAttr Type + HiLink cssTextAttr Type + HiLink cssBoxAttr Type + HiLink cssRenderAttr Type + HiLink cssAuralAttr Type + HiLink cssGeneratedContentAttr Type + HiLink cssPagingAttr Type + HiLink cssTableAttr Type + HiLink cssUIAttr Type + HiLink cssCommonAttr Type + HiLink cssPseudoClassId PreProc + HiLink cssPseudoClassLang Constant + HiLink cssValueLength Number + HiLink cssValueInteger Number + HiLink cssValueNumber Number + HiLink cssValueAngle Number + HiLink cssValueTime Number + HiLink cssValueFrequency Number + HiLink cssFunction Constant + HiLink cssURL String + HiLink cssFunctionName Function + HiLink cssColor Constant + HiLink cssIdentifier Function + HiLink cssInclude Include + HiLink cssImportant Special + HiLink cssBraces SpecialChar + HiLink cssBraceError Error + HiLink cssError Error + HiLink cssInclude Include + HiLink cssUnicodeEscape Special + HiLink cssStringQQ String + HiLink cssStringQ String + HiLink cssMedia Special + HiLink cssMediaType Special + HiLink cssMediaComma Normal + HiLink cssFontDescriptor Special + HiLink cssFontDescriptorFunction Constant + HiLink cssFontDescriptorProp StorageClass + HiLink cssFontDescriptorAttr Type + HiLink cssUnicodeRange Constant + HiLink cssClassName Function + delcommand HiLink +endif + +let b:current_syntax = "less" + +if main_syntax == 'less' + unlet main_syntax +endif + + +" vim: ts=8 + diff --git a/vim/syntax/ruby.vim b/vim/syntax/ruby.vim new file mode 100644 index 0000000..4bb6c9f --- /dev/null +++ b/vim/syntax/ruby.vim @@ -0,0 +1,369 @@ +" Vim syntax file +" Language: Ruby +" Maintainer: Doug Kearns +" URL: http://vim-ruby.rubyforge.org +" Anon CVS: See above site +" Release Coordinator: Doug Kearns +" ---------------------------------------------------------------------------- +" +" Previous Maintainer: Mirko Nasato +" Thanks to perl.vim authors, and to Reimer Behrends. :-) (MN) +" ---------------------------------------------------------------------------- + +if exists("b:current_syntax") + finish +endif + +if has("folding") && exists("ruby_fold") + setlocal foldmethod=syntax +endif + +syn cluster rubyNotTop contains=@rubyExtendedStringSpecial,@rubyRegexpSpecial,@rubyDeclaration,rubyConditional,rubyExceptional,rubyMethodExceptional,rubyTodo + +if exists("ruby_space_errors") + if !exists("ruby_no_trail_space_error") + syn match rubySpaceError display excludenl "\s\+$" + endif + if !exists("ruby_no_tab_space_error") + syn match rubySpaceError display " \+\t"me=e-1 + endif +endif + +" Operators +if exists("ruby_operators") + syn match rubyOperator "\%([~!^&|*/%+-]\|\%(class\s*\)\@\|<=\|\%(<\|\>\|>=\|=\@\|\*\*\|\.\.\.\|\.\.\|::\)" + syn match rubyPseudoOperator "\%(-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!=\)" + syn region rubyBracketOperator matchgroup=rubyOperator start="\%(\w[?!]\=\|[]})]\)\@<=\[\s*" end="\s*]" contains=ALLBUT,@rubyNotTop +endif + +" Expression Substitution and Backslash Notation +syn match rubyStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display +syn match rubyStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display +syn match rubyQuoteEscape "\\[\\']" contained display + +syn region rubyInterpolation matchgroup=rubyInterpolationDelimiter start="#{" end="}" contained contains=ALLBUT,@rubyNotTop +syn match rubyInterpolation "#\%(\$\|@@\=\)\w\+" display contained contains=rubyInterpolationDelimiter,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable,rubyPredefinedVariable +syn match rubyInterpolationDelimiter "#\ze\%(\$\|@@\=\)\w\+" display contained +syn match rubyInterpolation "#\$\%(-\w\|\W\)" display contained contains=rubyInterpolationDelimiter,rubyPredefinedVariable,rubyInvalidVariable +syn match rubyInterpolationDelimiter "#\ze\$\%(-\w\|\W\)" display contained +syn region rubyNoInterpolation start="\\#{" end="}" contained +syn match rubyNoInterpolation "\\#{" display contained +syn match rubyNoInterpolation "\\#\%(\$\|@@\=\)\w\+" display contained +syn match rubyNoInterpolation "\\#\$\W" display contained + +syn match rubyDelimEscape "\\[(<{\[)>}\]]" transparent display contained contains=NONE + +syn region rubyNestedParentheses start="(" skip="\\\\\|\\)" matchgroup=rubyString end=")" transparent contained +syn region rubyNestedCurlyBraces start="{" skip="\\\\\|\\}" matchgroup=rubyString end="}" transparent contained +syn region rubyNestedAngleBrackets start="<" skip="\\\\\|\\>" matchgroup=rubyString end=">" transparent contained +syn region rubyNestedSquareBrackets start="\[" skip="\\\\\|\\\]" matchgroup=rubyString end="\]" transparent contained + +" These are mostly Oniguruma ready +syn region rubyRegexpComment matchgroup=rubyRegexpSpecial start="(?#" skip="\\)" end=")" contained +syn region rubyRegexpParens matchgroup=rubyRegexpSpecial start="(\(?:\|?<\=[=!]\|?>\|?<[a-z_]\w*>\|?[imx]*-[imx]*:\=\|\%(?#\)\@!\)" skip="\\)" end=")" contained transparent contains=@rubyRegexpSpecial +syn region rubyRegexpBrackets matchgroup=rubyRegexpCharClass start="\[\^\=" skip="\\\]" end="\]" contained transparent contains=rubyStringEscape,rubyRegexpEscape,rubyRegexpCharClass oneline +syn match rubyRegexpCharClass "\\[DdHhSsWw]" contained display +syn match rubyRegexpCharClass "\[:\^\=\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\):\]" contained +syn match rubyRegexpEscape "\\[].*?+^$|\\/(){}[]" contained +syn match rubyRegexpQuantifier "[*?+][?+]\=" contained display +syn match rubyRegexpQuantifier "{\d\+\%(,\d*\)\=}?\=" contained display +syn match rubyRegexpAnchor "[$^]\|\\[ABbGZz]" contained display +syn match rubyRegexpDot "\." contained display +syn match rubyRegexpSpecial "|" contained display +syn match rubyRegexpSpecial "\\[1-9]\d\=\d\@!" contained display +syn match rubyRegexpSpecial "\\k<\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\=>" contained display +syn match rubyRegexpSpecial "\\k'\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\='" contained display +syn match rubyRegexpSpecial "\\g<\%([a-z_]\w*\|-\=\d\+\)>" contained display +syn match rubyRegexpSpecial "\\g'\%([a-z_]\w*\|-\=\d\+\)'" contained display + +syn cluster rubyStringSpecial contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape +syn cluster rubyExtendedStringSpecial contains=@rubyStringSpecial,rubyNestedParentheses,rubyNestedCurlyBraces,rubyNestedAngleBrackets,rubyNestedSquareBrackets +syn cluster rubyRegexpSpecial contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape,rubyRegexpSpecial,rubyRegexpEscape,rubyRegexpBrackets,rubyRegexpCharClass,rubyRegexpDot,rubyRegexpQuantifier,rubyRegexpAnchor,rubyRegexpParens,rubyRegexpComment + +" Numbers and ASCII Codes +syn match rubyASCIICode "\%(\w\|[]})\"'/]\)\@" display +syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@" display +syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@" display +syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@" display +syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@" display +syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@" display + +" Identifiers +syn match rubyLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display transparent +syn match rubyBlockArgument "&[_[:lower:]][_[:alnum:]]" contains=NONE display transparent + +syn match rubyConstant "\%(\%([.@$]\@\|::\)\@=\%(\s*(\)\@!" +syn match rubyClassVariable "@@\h\w*" display +syn match rubyInstanceVariable "@\h\w*" display +syn match rubyGlobalVariable "$\%(\h\w*\|-.\)" +syn match rubySymbol "[]})\"':]\@\|<=\|<\|===\|==\|=\~\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)" +syn match rubySymbol "[]})\"':]\@_,;:!?/.'"@$*\&+0]\)" +syn match rubySymbol "[]})\"':]\@\@!\)\=" +syn match rubySymbol "\%([{(,]\_s*\)\@<=\l\w*[!?]\=::\@!"he=e-1 +syn match rubySymbol "[]})\"':]\@\|{\)\s*\)\@<=|" end="|" oneline display contains=rubyBlockParameter + +syn match rubyInvalidVariable "$[^ A-Za-z_-]" +syn match rubyPredefinedVariable #$[!$&"'*+,./0:;<=>?@\`~1-9]# +syn match rubyPredefinedVariable "$_\>" display +syn match rubyPredefinedVariable "$-[0FIKadilpvw]\>" display +syn match rubyPredefinedVariable "$\%(deferr\|defout\|stderr\|stdin\|stdout\)\>" display +syn match rubyPredefinedVariable "$\%(DEBUG\|FILENAME\|KCODE\|LOADED_FEATURES\|LOAD_PATH\|PROGRAM_NAME\|SAFE\|VERBOSE\)\>" display +syn match rubyPredefinedConstant "\%(\%(\.\@\%(\s*(\)\@!" +syn match rubyPredefinedConstant "\%(\%(\.\@\%(\s*(\)\@!" +syn match rubyPredefinedConstant "\%(\%(\.\@\%(\s*(\)\@!" +"Obsolete Global Constants +"syn match rubyPredefinedConstant "\%(::\)\=\zs\%(PLATFORM\|RELEASE_DATE\|VERSION\)\>" +"syn match rubyPredefinedConstant "\%(::\)\=\zs\%(NotImplementError\)\>" + +" Normal Regular Expression +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,[>]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial keepend fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold + +" Generalized Regular Expression +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial fold + +" Normal String and Shell Command Output +syn region rubyString matchgroup=rubyStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial fold +syn region rubyString matchgroup=rubyStringDelimiter start="'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape fold +syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial fold + +" Generalized Single Quoted String, Symbol and Array of Strings +syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape +syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape +syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape +syn region rubyString matchgroup=rubyStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape +syn region rubySymbol matchgroup=rubySymbolDelimiter start="%[s]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold +syn region rubySymbol matchgroup=rubySymbolDelimiter start="%[s]{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape +syn region rubySymbol matchgroup=rubySymbolDelimiter start="%[s]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape +syn region rubySymbol matchgroup=rubySymbolDelimiter start="%[s]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape +syn region rubySymbol matchgroup=rubySymbolDelimiter start="%[s](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape + +" Generalized Double Quoted String and Array of Strings and Shell Command Output +" Note: %= is not matched here as the beginning of a double quoted string +syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimEscape fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape fold + +" Here Document +syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@>\|[<>]=\=\|<=>\|===\|==\|=\~\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration + +syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyFunction,rubyBlockParameter + +" Keywords +" Note: the following keywords have already been defined: +" begin case class def do end for if module unless until while +syn match rubyControl "\<\%(and\|break\|in\|next\|not\|or\|redo\|rescue\|retry\|return\)\>[?!]\@!" +syn match rubyOperator "\[?!]\@!" +syn match rubyBoolean "\<\%(true\|false\)\>[?!]\@!" +syn match rubyPseudoVariable "\<\%(nil\|self\|__FILE__\|__LINE__\)\>[?!]\@!" +syn match rubyBeginEnd "\<\%(BEGIN\|END\)\>[?!]\@!" + +" Expensive Mode - match 'end' with the appropriate opening keyword for syntax +" based folding and special highlighting of module/class/method definitions +if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive") + syn match rubyDefine "\" nextgroup=rubyAliasDeclaration skipwhite skipnl + syn match rubyDefine "\" nextgroup=rubyMethodDeclaration skipwhite skipnl + syn match rubyDefine "\" nextgroup=rubyFunction skipwhite skipnl + syn match rubyClass "\" nextgroup=rubyClassDeclaration skipwhite skipnl + syn match rubyModule "\" nextgroup=rubyModuleDeclaration skipwhite skipnl + + syn region rubyMethodBlock start="\" matchgroup=rubyDefine end="\%(\" contains=ALLBUT,@rubyNotTop fold + syn region rubyBlock start="\" matchgroup=rubyClass end="\" contains=ALLBUT,@rubyNotTop fold + syn region rubyBlock start="\" matchgroup=rubyModule end="\" contains=ALLBUT,@rubyNotTop fold + + " modifiers + syn match rubyConditionalModifier "\<\%(if\|unless\)\>" display + syn match rubyRepeatModifier "\<\%(while\|until\)\>" display + + syn region rubyDoBlock matchgroup=rubyControl start="\" end="\" contains=ALLBUT,@rubyNotTop fold + " curly bracket block or hash literal + syn region rubyCurlyBlock start="{" end="}" contains=ALLBUT,@rubyNotTop fold + syn region rubyArrayLiteral matchgroup=rubyArrayDelimiter start="\%(\w\|[\]})]\)\@" end="\" contains=ALLBUT,@rubyNotTop fold + syn region rubyCaseExpression matchgroup=rubyConditional start="\" end="\" contains=ALLBUT,@rubyNotTop fold + syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@" end="\" contains=ALLBUT,@rubyNotTop fold + + syn match rubyConditional "\<\%(then\|else\|when\)\>[?!]\@!" contained containedin=rubyCaseExpression + syn match rubyConditional "\<\%(then\|else\|elsif\)\>[?!]\@!" contained containedin=rubyConditionalExpression + + syn match rubyExceptional "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=rubyBlockExpression + syn match rubyMethodExceptional "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=rubyMethodBlock + + " statements with optional 'do' + syn region rubyOptionalDoLine matchgroup=rubyRepeat start="\[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@" matchgroup=rubyOptionalDo end="\%(\\)" end="\ze\%(;\|$\)" oneline contains=ALLBUT,@rubyNotTop + syn region rubyRepeatExpression start="\[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@" matchgroup=rubyRepeat end="\" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine fold + + if !exists("ruby_minlines") + let ruby_minlines = 50 + endif + exec "syn sync minlines=" . ruby_minlines + +else + syn match rubyControl "\[?!]\@!" nextgroup=rubyMethodDeclaration skipwhite skipnl + syn match rubyControl "\[?!]\@!" nextgroup=rubyClassDeclaration skipwhite skipnl + syn match rubyControl "\[?!]\@!" nextgroup=rubyModuleDeclaration skipwhite skipnl + syn match rubyControl "\<\%(case\|begin\|do\|for\|if\|unless\|while\|until\|else\|elsif\|ensure\|then\|when\|end\)\>[?!]\@!" + syn match rubyKeyword "\<\%(alias\|undef\)\>[?!]\@!" +endif + +" Special Methods +if !exists("ruby_no_special_methods") + syn keyword rubyAccess public protected private module_function + " attr is a common variable name + syn match rubyAttribute "\%(\%(^\|;\)\s*\)\@<=attr\>\(\s*[.=]\)\@!" + syn keyword rubyAttribute attr_accessor attr_reader attr_writer + syn match rubyControl "\<\%(exit!\|\%(abort\|at_exit\|exit\|fork\|loop\|trap\)\>[?!]\@!\)" + syn keyword rubyEval eval class_eval instance_eval module_eval + syn keyword rubyException raise fail catch throw + " false positive with 'include?' + syn match rubyInclude "\[?!]\@!" + syn keyword rubyInclude autoload extend load require + syn keyword rubyKeyword callcc caller lambda proc +endif + +" Comments and Documentation +syn match rubySharpBang "\%^#!.*" display +syn keyword rubyTodo FIXME NOTE TODO OPTIMIZE XXX contained +syn match rubyComment "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell +if !exists("ruby_no_comment_fold") + syn region rubyMultilineComment start="\%(\%(^\s*#.*\n\)\@" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@" transparent contains=NONE + +syn match rubyKeywordAsMethod "\<\%(alias\|begin\|case\|class\|def\|do\|end\)[?!]" transparent contains=NONE +syn match rubyKeywordAsMethod "\<\%(if\|module\|undef\|unless\|until\|while\)[?!]" transparent contains=NONE + +syn match rubyKeywordAsMethod "\%(\%(\.\@" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@" transparent contains=NONE + +" __END__ Directive +syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" fold + +hi def link rubyClass rubyDefine +hi def link rubyModule rubyDefine +hi def link rubyMethodExceptional rubyDefine +hi def link rubyDefine Define +hi def link rubyFunction Function +hi def link rubyConditional Conditional +hi def link rubyConditionalModifier rubyConditional +hi def link rubyExceptional rubyConditional +hi def link rubyRepeat Repeat +hi def link rubyRepeatModifier rubyRepeat +hi def link rubyOptionalDo rubyRepeat +hi def link rubyControl Statement +hi def link rubyInclude Include +hi def link rubyInteger Number +hi def link rubyASCIICode Character +hi def link rubyFloat Float +hi def link rubyBoolean Boolean +hi def link rubyException Exception +if !exists("ruby_no_identifiers") + hi def link rubyIdentifier Identifier +else + hi def link rubyIdentifier NONE +endif +hi def link rubyClassVariable rubyIdentifier +hi def link rubyConstant Type +hi def link rubyGlobalVariable rubyIdentifier +hi def link rubyBlockParameter rubyIdentifier +hi def link rubyInstanceVariable rubyIdentifier +hi def link rubyPredefinedIdentifier rubyIdentifier +hi def link rubyPredefinedConstant rubyPredefinedIdentifier +hi def link rubyPredefinedVariable rubyPredefinedIdentifier +hi def link rubySymbol Constant +hi def link rubyKeyword Keyword +hi def link rubyOperator Operator +hi def link rubyPseudoOperator rubyOperator +hi def link rubyBeginEnd Statement +hi def link rubyAccess Statement +hi def link rubyAttribute Statement +hi def link rubyEval Statement +hi def link rubyPseudoVariable Constant + +hi def link rubyComment Comment +hi def link rubyData Comment +hi def link rubyDataDirective Delimiter +hi def link rubyDocumentation Comment +hi def link rubyTodo Todo + +hi def link rubyQuoteEscape rubyStringEscape +hi def link rubyStringEscape Special +hi def link rubyInterpolationDelimiter Delimiter +hi def link rubyNoInterpolation rubyString +hi def link rubySharpBang PreProc +hi def link rubyRegexpDelimiter rubyStringDelimiter +hi def link rubySymbolDelimiter rubyStringDelimiter +hi def link rubyStringDelimiter Delimiter +hi def link rubyString String +hi def link rubyRegexpEscape rubyRegexpSpecial +hi def link rubyRegexpQuantifier rubyRegexpSpecial +hi def link rubyRegexpAnchor rubyRegexpSpecial +hi def link rubyRegexpDot rubyRegexpCharClass +hi def link rubyRegexpCharClass rubyRegexpSpecial +hi def link rubyRegexpSpecial Special +hi def link rubyRegexpComment Comment +hi def link rubyRegexp rubyString + +hi def link rubyInvalidVariable Error +hi def link rubyError Error +hi def link rubySpaceError rubyError + +let b:current_syntax = "ruby" + +" vim: nowrap sw=2 sts=2 ts=8 noet: diff --git a/vim/syntax/sass.vim b/vim/syntax/sass.vim new file mode 100644 index 0000000..1a2e7a4 --- /dev/null +++ b/vim/syntax/sass.vim @@ -0,0 +1,56 @@ +" Vim syntax file +" Language: Sass +" Maintainer: Tim Pope +" Filenames: *.sass + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/css.vim + +syn case ignore + +syn cluster sassCssProperties contains=cssFontProp,cssFontDescriptorProp,cssColorProp,cssTextProp,cssBoxProp,cssGeneratedContentProp,cssPagingProp,cssUIProp,cssRenderProp,cssAuralProp,cssTableProp +syn cluster sassCssAttributes contains=css.*Attr,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssRenderProp + +syn match sassProperty "^\s*\zs\s\%([[:alnum:]-]\+:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute +syn match sassCssAttribute ".*$" contained contains=@sassCssAttributes,sassConstant +syn match sassConstant "![[:alnum:]_-]\+" +syn match sassConstantAssignment "\%(![[:alnum:]_]\+\s*\)\@<==" nextgroup=sassCssAttribute skipwhite +syn match sassMixin "^=.*" +syn match sassMixing "^\s\+\zs+.*" + +syn match sassEscape "^\s*\zs\\" +syn match sassIdChar "#[[:alnum:]_-]\@=" nextgroup=sassId +syn match sassId "[[:alnum:]_-]\+" contained +syn match sassClassChar "\.[[:alnum:]_-]\@=" nextgroup=sassClass +syn match sassClass "[[:alnum:]_-]\+" contained +syn match sassAmpersand "&" + +" TODO: Attribute namespaces +" TODO: Arithmetic (including strings and concatenation) + +syn region sassInclude start="@import" end=";\|$" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType + +syn keyword sassTodo FIXME NOTE TODO OPTIMIZE XXX contained +syn region sassComment start="^\z(\s*\)//" end="^\%(\z1 \)\@!" contains=sassTodo +syn region sassCssComment start="^\z(\s*\)/\*" end="^\%(\z1 \)\@!" contains=sassTodo + +hi def link sassCssComment sassComment +hi def link sassComment Comment +hi def link sassConstant Identifier +hi def link sassMixing PreProc +hi def link sassMixin PreProc +hi def link sassTodo Todo +hi def link sassInclude Include +hi def link sassEscape Special +hi def link sassIdChar Special +hi def link sassClassChar Special +hi def link sassAmpersand Character +hi def link sassId Identifier +hi def link sassClass Type + +let b:current_syntax = "sass" + +" vim:set sw=2: diff --git a/vim/syntax/svkannotate.vim b/vim/syntax/svkannotate.vim new file mode 100755 index 0000000..3c53c3c --- /dev/null +++ b/vim/syntax/svkannotate.vim @@ -0,0 +1,42 @@ +" Vim syntax file +" Language: SVK annotate output +" Maintainer: Bob Hiestand +" Remark: Used by the vcscommand plugin. +" License: +" Copyright (c) 2007 Bob Hiestand +" +" 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. + +if exists("b:current_syntax") + finish +endif + +syn match svkDate /\d\{4}-\d\{1,2}-\d\{1,2}/ skipwhite contained +syn match svkName /(\s*\zs\S\+/ contained nextgroup=svkDate skipwhite +syn match svkVer /^\s*\d\+/ contained nextgroup=svkName skipwhite +syn region svkHead start=/^/ end="):" contains=svkVer,svkName,svkDate oneline + +if !exists("did_svkannotate_syntax_inits") + let did_svkannotate_syntax_inits = 1 + hi link svkName Type + hi link svkDate Comment + hi link svkVer Statement +endif + +let b:current_syntax="svkAnnotate" diff --git a/vim/syntax/svnannotate.vim b/vim/syntax/svnannotate.vim new file mode 100755 index 0000000..d46f771 --- /dev/null +++ b/vim/syntax/svnannotate.vim @@ -0,0 +1,40 @@ +" Vim syntax file +" Language: SVN annotate output +" Maintainer: Bob Hiestand +" Remark: Used by the vcscommand plugin. +" License: +" Copyright (c) 2007 Bob Hiestand +" +" 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. + +if exists("b:current_syntax") + finish +endif + +syn match svnName /\S\+/ contained +syn match svnVer /^\s\+\zs\d\+/ contained nextgroup=svnName skipwhite +syn match svnHead /^\s\+\d\+\s\+\S\+/ contains=svnVer,svnName + +if !exists("did_svnannotate_syntax_inits") + let did_svnannotate_syntax_inits = 1 + hi link svnName Type + hi link svnVer Statement +endif + +let b:current_syntax="svnAnnotate" diff --git a/vim/syntax/vcscommit.vim b/vim/syntax/vcscommit.vim new file mode 100755 index 0000000..0cd4c5e --- /dev/null +++ b/vim/syntax/vcscommit.vim @@ -0,0 +1,31 @@ +" Vim syntax file +" Language: VCS commit file +" Maintainer: Bob Hiestand (bob.hiestand@gmail.com) +" License: +" Copyright (c) 2007 Bob Hiestand +" +" 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. + +if exists("b:current_syntax") + finish +endif + +syntax region vcsComment start="^VCS: " end="$" +highlight link vcsComment Comment +let b:current_syntax = "vcscommit" diff --git a/vim/syntax_checkers/c.vim b/vim/syntax_checkers/c.vim new file mode 100755 index 0000000..cb81848 --- /dev/null +++ b/vim/syntax_checkers/c.vim @@ -0,0 +1,119 @@ +"============================================================================ +"File: c.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Gregor Uhlenheuer +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +" In order to also check header files add this to your .vimrc: +" (this usually creates a .gch file in your source directory) +" +" let g:syntastic_c_check_header = 1 +" +" To disable the search of included header files after special +" libraries like gtk and glib add this line to your .vimrc: +" +" let g:syntastic_c_no_include_search = 1 +" +" To enable header files being re-checked on every file write add the +" following line to your .vimrc. Otherwise the header files are checked only +" one time on initially loading the file. +" In order to force syntastic to refresh the header includes simply +" unlet b:syntastic_c_includes. Then the header files are being re-checked on +" the next file write. +" +" let g:syntastic_c_auto_refresh_includes = 1 +" +" Alternatively you can set the buffer local variable b:syntastic_c_cflags. +" If this variable is set for the current buffer no search for additional +" libraries is done. I.e. set the variable like this: +" +" let b:syntastic_c_cflags = ' -I/usr/include/libsoup-2.4' +" +" In order to add some custom include directories that should be added to the +" gcc command line you can add those to the global variable +" g:syntastic_c_include_dirs. This list can be used like this: +" +" let g:syntastic_c_include_dirs = [ 'includes', 'headers' ] + +" Moreover it is possible to add additional compiler options to the syntax +" checking execution via the variable 'g:syntastic_c_compiler_options': +" +" let g:syntastic_c_compiler_options = ' -ansi' + +if exists('loaded_c_syntax_checker') + finish +endif +let loaded_c_syntax_checker = 1 + +if !executable('gcc') + finish +endif + +let s:save_cpo = &cpo +set cpo&vim + +let s:default_includes = [ '.', '..', 'include', 'includes', + \ '../include', '../includes' ] + +function! s:GetIncludeDirs() + let include_dirs = s:default_includes + + if exists('g:syntastic_c_include_dirs') + " TODO: check for duplicates + call extend(include_dirs, g:syntastic_c_include_dirs) + endif + + return join(map(copy(include_dirs), '"-I" . v:val'), ' ') +endfunction + +function! SyntaxCheckers_c_GetLocList() + let makeprg = 'gcc -fsyntax-only '.shellescape(expand('%')). + \ ' '.s:GetIncludeDirs() + let errorformat = '%-G%f:%s:,%-G%f:%l: %#error: %#(Each undeclared '. + \ 'identifier is reported only%.%#,%-G%f:%l: %#error: %#for '. + \ 'each function it appears%.%#,%-GIn file included%.%#,'. + \ '%-G %#from %f:%l\,,%f:%l:%c: %m,%f:%l: %trror: %m,%f:%l: %m' + + if expand('%') =~? '.h$' + if exists('g:syntastic_c_check_header') + let makeprg = 'gcc -c '.shellescape(expand('%')). + \ ' '.s:GetIncludeDirs() + else + return [] + endif + endif + + if exists('g:syntastic_c_compiler_options') + let makeprg .= g:syntastic_c_compiler_options + endif + + if !exists('b:syntastic_c_cflags') + if !exists('g:syntastic_c_no_include_search') || + \ g:syntastic_c_no_include_search != 1 + if exists('g:syntastic_c_auto_refresh_includes') && + \ g:syntastic_c_auto_refresh_includes != 0 + let makeprg .= syntastic#SearchHeaders() + else + if !exists('b:syntastic_c_includes') + let b:syntastic_c_includes = syntastic#SearchHeaders() + endif + let makeprg .= b:syntastic_c_includes + endif + endif + else + let makeprg .= b:syntastic_c_cflags + endif + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: set et sts=4 sw=4: diff --git a/vim/syntax_checkers/coffee.vim b/vim/syntax_checkers/coffee.vim new file mode 100755 index 0000000..05c8ff2 --- /dev/null +++ b/vim/syntax_checkers/coffee.vim @@ -0,0 +1,27 @@ +"============================================================================ +"File: coffee.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Lincoln Stoll +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_coffee_syntax_checker") + finish +endif +let loaded_coffee_syntax_checker = 1 + +"bail if the user doesnt have coffee installed +if !executable("coffee") + finish +endif + +function! SyntaxCheckers_coffee_GetLocList() + let makeprg = 'coffee -c -l -o /tmp %' + let errorformat = '%EError: In %f\, Parse error on line %l: %m,%EError: In %f\, %m on line %l,%W%f(%l): lint warning: %m,%-Z%p^,%W%f(%l): warning: %m,%-Z%p^,%E%f(%l): SyntaxError: %m,%-Z%p^,%-G' + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/cpp.vim b/vim/syntax_checkers/cpp.vim new file mode 100755 index 0000000..5c095e4 --- /dev/null +++ b/vim/syntax_checkers/cpp.vim @@ -0,0 +1,94 @@ +"============================================================================ +"File: cpp.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Gregor Uhlenheuer +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +" in order to also check header files add this to your .vimrc: +" (this usually creates a .gch file in your source directory) +" +" let g:syntastic_cpp_check_header = 1 +" +" To disable the search of included header files after special +" libraries like gtk and glib add this line to your .vimrc: +" +" let g:syntastic_cpp_no_include_search = 1 +" +" To enable header files being re-checked on every file write add the +" following line to your .vimrc. Otherwise the header files are checked only +" one time on initially loading the file. +" In order to force syntastic to refresh the header includes simply +" unlet b:syntastic_cpp_includes. Then the header files are being re-checked +" on the next file write. +" +" let g:syntastic_cpp_auto_refresh_includes = 1 +" +" Alternatively you can set the buffer local variable b:syntastic_cpp_cflags. +" If this variable is set for the current buffer no search for additional +" libraries is done. I.e. set the variable like this: +" +" let b:syntastic_cpp_cflags = ' -I/usr/include/libsoup-2.4' +" +" Moreover it is possible to add additional compiler options to the syntax +" checking execution via the variable 'g:syntastic_cpp_compiler_options': +" +" let g:syntastic_cpp_compiler_options = ' -std=c++0x' + +if exists('loaded_cpp_syntax_checker') + finish +endif +let loaded_cpp_syntax_checker = 1 + +if !executable('g++') + finish +endif + +let s:save_cpo = &cpo +set cpo&vim + +function! SyntaxCheckers_cpp_GetLocList() + let makeprg = 'g++ -fsyntax-only '.shellescape(expand('%')) + let errorformat = '%-G%f:%s:,%f:%l:%c: %m,%f:%l: %m' + + if expand('%') =~? '\%(.h\|.hpp\|.hh\)$' + if exists('g:syntastic_cpp_check_header') + let makeprg = 'g++ -c '.shellescape(expand('%')) + else + return [] + endif + endif + + if exists('g:syntastic_cpp_compiler_options') + let makeprg .= g:syntastic_cpp_compiler_options + endif + + if !exists('b:syntastic_cpp_cflags') + if !exists('g:syntastic_cpp_no_include_search') || + \ g:syntastic_cpp_no_include_search != 1 + if exists('g:syntastic_cpp_auto_refresh_includes') && + \ g:syntastic_cpp_auto_refresh_includes != 0 + let makeprg .= syntastic#SearchHeaders() + else + if !exists('b:syntastic_cpp_includes') + let b:syntastic_cpp_includes = syntastic#SearchHeaders() + endif + let makeprg .= b:syntastic_cpp_includes + endif + endif + else + let makeprg .= b:syntastic_cpp_cflags + endif + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: set et sts=4 sw=4: diff --git a/vim/syntax_checkers/css.vim b/vim/syntax_checkers/css.vim new file mode 100755 index 0000000..6cd1dc1 --- /dev/null +++ b/vim/syntax_checkers/css.vim @@ -0,0 +1,34 @@ +"============================================================================ +"File: css.vim +"Description: Syntax checking plugin for syntastic.vim using `csslint` CLI tool (http://csslint.net). +"Maintainer: Ory Band +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +"============================================================================ +if exists("loaded_css_syntax_checker") + finish +endif +let loaded_css_syntax_checker = 1 + +" Bail if the user doesn't have `csslint` installed. +if !executable("csslint") + finish +endif + +function! SyntaxCheckers_css_GetLocList() + let makeprg = 'csslint --format=compact '.shellescape(expand('%')) + + " Print CSS Lint's error/warning messages from compact format. Ignores blank lines. + let errorformat = '%-G,%-G%f: lint free!,%f: line %l\, col %c\, %trror - %m,%f: line %l\, col %c\, %tarning - %m,%f: line %l\, col %c\, %m,' + + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + for i in loclist + let i['bufnr'] = bufnr("") + endfor + + return loclist +endfunction diff --git a/vim/syntax_checkers/cucumber.vim b/vim/syntax_checkers/cucumber.vim new file mode 100755 index 0000000..c9a87e1 --- /dev/null +++ b/vim/syntax_checkers/cucumber.vim @@ -0,0 +1,27 @@ +"============================================================================ +"File: cucumber.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_cucumber_syntax_checker") + finish +endif +let loaded_cucumber_syntax_checker = 1 + +"bail if the user doesnt have cucumber installed +if !executable("cucumber") + finish +endif + +function! SyntaxCheckers_cucumber_GetLocList() + let makeprg = 'cucumber --dry-run --quiet --strict --format pretty '.shellescape(expand('%')) + let errorformat = '%f:%l:%c:%m,%W %.%# (%m),%-Z%f:%l:%.%#,%-G%.%#' + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/cuda.vim b/vim/syntax_checkers/cuda.vim new file mode 100755 index 0000000..0266654 --- /dev/null +++ b/vim/syntax_checkers/cuda.vim @@ -0,0 +1,40 @@ +"============================================================================ +"File: cuda.vim +"Description: Syntax checking plugin for syntastic.vim +" +"Author: Hannes Schulz +" +"============================================================================ + +" in order to also check header files add this to your .vimrc: +" (this creates an empty .syntastic_dummy.cu file in your source directory) +" +" let g:syntastic_cuda_check_header = 1 + +if exists('loaded_cuda_syntax_checker') + finish +endif +let loaded_cuda_syntax_checker = 1 + +if !exists('g:syntastic_nvcc_binary') + let g:syntastic_nvcc_binary = '/usr/local/cuda/bin/nvcc' +endif +if !executable('/usr/local/cuda/bin/nvcc') + finish +endif + +function! SyntaxCheckers_cuda_GetLocList() + let makeprg = g:syntastic_nvcc_binary.' --cuda -O0 -I . -Xcompiler -fsyntax-only '.shellescape(expand('%')).' -o /dev/null' + "let errorformat = '%-G%f:%s:,%f:%l:%c: %m,%f:%l: %m' + let errorformat = '%*[^"]"%f"%*\D%l: %m,"%f"%*\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,"%f"\, line %l%*\D%c%*[^ ] %m,%D%*\a[%*\d]: Entering directory `%f'',%X%*\a[%*\d]: Leaving directory `%f'',%D%*\a: Entering directory `%f'',%X%*\a: Leaving directory `%f'',%DMaking %*\a in %f,%f|%l| %m' + + if expand('%') =~? '\%(.h\|.hpp\|.cuh\)$' + if exists('g:syntastic_cuda_check_header') + let makeprg = 'echo > .syntastic_dummy.cu ; '.g:syntastic_nvcc_binary.' --cuda -O0 -I . .syntastic_dummy.cu -Xcompiler -fsyntax-only -include '.shellescape(expand('%')).' -o /dev/null' + else + return [] + endif + endif + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/docbk.vim b/vim/syntax_checkers/docbk.vim new file mode 100755 index 0000000..8d0b3f4 --- /dev/null +++ b/vim/syntax_checkers/docbk.vim @@ -0,0 +1,29 @@ +"============================================================================ +"File: docbk.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_docbk_syntax_checker") + finish +endif +let loaded_docbk_syntax_checker = 1 + +"bail if the user doesnt have tidy or grep installed +if !executable("xmllint") + finish +endif + +function! SyntaxCheckers_docbk_GetLocList() + + let makeprg="xmllint --xinclude --noout --postvalid %" + let errorformat='%E%f:%l: parser error : %m,%W%f:%l: parser warning : %m,%E%f:%l:%.%# validity error : %m,%W%f:%l:%.%# validity warning : %m,%-Z%p^,%-C%.%#,%-G%.%#' + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + return loclist +endfunction diff --git a/vim/syntax_checkers/eruby.vim b/vim/syntax_checkers/eruby.vim new file mode 100755 index 0000000..366180c --- /dev/null +++ b/vim/syntax_checkers/eruby.vim @@ -0,0 +1,33 @@ +"============================================================================ +"File: eruby.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_eruby_syntax_checker") + finish +endif +let loaded_eruby_syntax_checker = 1 + +"bail if the user doesnt have ruby or cat installed +if !executable("ruby") || !executable("cat") + finish +endif + +function! SyntaxCheckers_eruby_GetLocList() + let makeprg='sed "s/<\%=/<\%/g" '. shellescape(expand("%")) . ' \| RUBYOPT= ruby -e "require \"erb\"; puts ERB.new(ARGF.read, nil, \"-\").src" \| RUBYOPT= ruby -c' + let errorformat='%-GSyntax OK,%E-:%l: syntax error\, %m,%Z%p^,%W-:%l: warning: %m,%Z%p^,%-C%.%#' + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + "the file name isnt in the output so stick in the buf num manually + for i in loclist + let i['bufnr'] = bufnr("") + endfor + + return loclist +endfunction diff --git a/vim/syntax_checkers/go.vim b/vim/syntax_checkers/go.vim new file mode 100755 index 0000000..b5b5ea8 --- /dev/null +++ b/vim/syntax_checkers/go.vim @@ -0,0 +1,27 @@ +"============================================================================ +"File: go.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Sam Nguyen +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_go_syntax_checker") + finish +endif +let loaded_go_syntax_checker = 1 + +"bail if the user doesnt have 6g installed +if !executable("6g") + finish +endif + +function! SyntaxCheckers_go_GetLocList() + let makeprg = '6g -o /dev/null %' + let errorformat = '%E%f:%l: %m' + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/haml.vim b/vim/syntax_checkers/haml.vim new file mode 100755 index 0000000..b9ad6ad --- /dev/null +++ b/vim/syntax_checkers/haml.vim @@ -0,0 +1,26 @@ +"============================================================================ +"File: haml.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_haml_syntax_checker") + finish +endif +let loaded_haml_syntax_checker = 1 + +"bail if the user doesnt have the haml binary installed +if !executable("haml") + finish +endif + +function! SyntaxCheckers_haml_GetLocList() + let makeprg = "haml -c " . shellescape(expand("%")) + let errorformat = 'Haml error on line %l: %m,Syntax error on line %l: %m,%-G%.%#' + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/haskell.vim b/vim/syntax_checkers/haskell.vim new file mode 100755 index 0000000..bf98fe7 --- /dev/null +++ b/vim/syntax_checkers/haskell.vim @@ -0,0 +1,34 @@ +"============================================================================ +"File: haskell.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Anthony Carapetis +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_haskell_syntax_checker") + finish +endif +let loaded_haskell_syntax_checker = 1 + +"bail if the user doesnt have ghc-mod installed +if !executable("ghc-mod") + finish +endif + +function! SyntaxCheckers_haskell_GetLocList() + let makeprg = + \ 'ghc-mod check '. shellescape(expand('%')) . + \ ' && ghc-mod lint ' . shellescape(expand('%')) + let errorformat = '%-G\\s%#,%f:%l:%c:%m,%E%f:%l:%c:,%Z%m,' + + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction + +function! SyntaxCheckers_lhaskell_GetLocList() + return SyntaxCheckers_haskell_GetLocList() +endfunction diff --git a/vim/syntax_checkers/html.vim b/vim/syntax_checkers/html.vim new file mode 100755 index 0000000..ba32ef4 --- /dev/null +++ b/vim/syntax_checkers/html.vim @@ -0,0 +1,55 @@ +"============================================================================ +"File: html.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_html_syntax_checker") + finish +endif +let loaded_html_syntax_checker = 1 + +"bail if the user doesnt have tidy or grep installed +if !executable("tidy") || !executable("grep") + finish +endif + +" TODO: join this with xhtml.vim for DRY's sake? +function! s:TidyEncOptByFenc() + let tidy_opts = { + \'utf-8' : '-utf8', + \'ascii' : '-ascii', + \'latin1' : '-latin1', + \'iso-2022-jp' : '-iso-2022', + \'cp1252' : '-win1252', + \'macroman' : '-mac', + \'utf-16le' : '-utf16le', + \'utf-16' : '-utf16', + \'big5' : '-big5', + \'sjis' : '-shiftjis', + \'cp850' : '-ibm858', + \} + return get(tidy_opts, &fileencoding, '-utf8') +endfunction + +function! SyntaxCheckers_html_GetLocList() + + "grep out the ' lacks "summary" attribute' since it is almost + "always present and almost always useless + let encopt = s:TidyEncOptByFenc() + let makeprg="tidy ".encopt." --new-blocklevel-tags 'section, article, aside, hgroup, header, footer, nav, figure, figcaption' --new-inline-tags 'video, audio, embed, mark, progress, meter, time, ruby, rt, rp, canvas, command, details, datalist' --new-empty-tags 'wbr, keygen' -e ".shellescape(expand('%'))." 2>&1 \\| grep -v '\ lacks \"summary\" attribute' \\| grep -v 'not approved by W3C' \\| grep -v 'attribute \"placeholder\"'" + let errorformat='%Wline %l column %c - Warning: %m,%Eline %l column %c - Error: %m,%-G%.%#,%-G%.%#' + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + "the file name isnt in the output so stick in the buf num manually + for i in loclist + let i['bufnr'] = bufnr("") + endfor + + return loclist +endfunction diff --git a/vim/syntax_checkers/javascript.vim b/vim/syntax_checkers/javascript.vim new file mode 100755 index 0000000..94c0954 --- /dev/null +++ b/vim/syntax_checkers/javascript.vim @@ -0,0 +1,92 @@ +"============================================================================ +"File: javascript.vim +"Description: Syntax checking plugin for syntastic.vim using jslin/jshint +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +" Added changes from Matthew Kitt's javascript.vim to support jshint. +" Will use jsl if it's found, if not it looks for jshint. +"============================================================================ +if exists("loaded_javascript_syntax_checker") + finish +endif +let loaded_javascript_syntax_checker = 1 + +" Use google's gjslint if the user has it installed +if executable("gjslint") + if !exists("g:syntastic_gjslint_conf") + let g:syntastic_gjslint_conf = "" + endif + + function! SyntaxCheckers_javascript_GetLocList() + if empty(g:syntastic_gjslint_conf) + let gjslintconf = "" + else + let gjslintconf = g:syntastic_gjslint_conf + endif + let makeprg = "gjslint" . gjslintconf . " --nosummary --unix_mode --nodebug_indentation --nobeep " . shellescape(expand('%')) + let errorformat="%f:%l:(New Error %n) %m,%f:%l:(%n) %m,%-G1 files checked, no errors found.,%-G%.%#" + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + endfunction + " We're using google gjslint, finished. + finish +endif + +" Use node jslint if the user has it installed +if executable("jslint") + if !exists("g:syntastic_jslint_conf") + let g:syntastic_jslint_conf = "" + endif + + function! SyntaxCheckers_javascript_GetLocList() + if empty(g:syntastic_jslint_conf) + let jslintconf = "" + else + let jslintconf = g:syntastic_jslint_conf + endif + let makeprg = "jslint" . jslintconf . " " . shellescape(expand('%')) + let errorformat='%-P%f,%*[ ]%n %l\,%c: %m,%-G%.%#' + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + endfunction + " We're using node jslint, finished. + finish +endif + +" Use jsl if the user has it installed +if executable("jsl") + if !exists("g:syntastic_jsl_conf") + let g:syntastic_jsl_conf = "" + endif + + function! SyntaxCheckers_javascript_GetLocList() + if empty(g:syntastic_jsl_conf) + let jslconf = "" + else + let jslconf = " -conf " . g:syntastic_jsl_conf + endif + let makeprg = "jsl" . jslconf . " -nologo -nofilelisting -nosummary -nocontext -process ".shellescape(expand('%')) + let errorformat='%W%f(%l): lint warning: %m,%-Z%p^,%W%f(%l): warning: %m,%-Z%p^,%E%f(%l): SyntaxError: %m,%-Z%p^,%-G' + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + endfunction + " We're using jsl, finished. + finish +endif + +" The user didn't have jsl, try with jshint instead +if !executable('jshint') + finish +endif + +function! SyntaxCheckers_javascript_GetLocList() + if exists('s:config') + let makeprg = 'jshint ' . shellescape(expand("%")) . ' --config ' . s:config + else + let makeprg = 'jshint ' . shellescape(expand("%")) + endif + let errorformat = '%f: line %l\, col %c\, %m,%-G%.%#' + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/less.vim b/vim/syntax_checkers/less.vim new file mode 100755 index 0000000..e557949 --- /dev/null +++ b/vim/syntax_checkers/less.vim @@ -0,0 +1,37 @@ +"============================================================================ +"File: less.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Julien Blanchard +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_less_syntax_checker") + finish +endif +let loaded_less_syntax_checker = 1 + +"bail if the user doesnt have the lessc binary installed +if !executable("lessc") + finish +endif + +function! SyntaxCheckers_less_GetLocList() + let makeprg = 'lessc '. shellescape(expand('%')) . ' /dev/null' + let errorformat = 'Syntax %trror on line %l,! Syntax %trror: on line %l: %m,%-G%.%#' + let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + for i in errors + let i['bufnr'] = bufnr("") + + if empty(i['text']) + let i['text'] = "Syntax error" + endif + endfor + + return errors +endfunction + diff --git a/vim/syntax_checkers/lua.vim b/vim/syntax_checkers/lua.vim new file mode 100755 index 0000000..426db88 --- /dev/null +++ b/vim/syntax_checkers/lua.vim @@ -0,0 +1,62 @@ +"============================================================================ +"File: lua.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Gregor Uhlenheuer +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +if exists('loaded_lua_syntax_checker') + finish +endif +let loaded_lua_syntax_checker = 1 + +" check if the lua compiler is installed +if !executable('luac') + finish +endif + +function! SyntaxCheckers_lua_Term(pos) + let near = matchstr(a:pos['text'], "near '[^']\\+'") + let result = '' + if len(near) > 0 + let near = split(near, "'")[1] + if near == '' + let p = getpos('$') + let a:pos['lnum'] = p[1] + let a:pos['col'] = p[2] + let result = '\%'.p[2].'c' + else + let result = '\V'.near + endif + let open = matchstr(a:pos['text'], "(to close '[^']\\+' at line [0-9]\\+)") + if len(open) > 0 + let oline = split(open, "'")[1:2] + let line = 0+strpart(oline[1], 9) + call matchadd('SpellCap', '\%'.line.'l\V'.oline[0]) + endif + endif + return result +endfunction + +function! SyntaxCheckers_lua_GetLocList() + let makeprg = 'luac -p ' . shellescape(expand('%')) + let errorformat = 'luac: %#%f:%l: %m' + + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + let bufn = bufnr('') + for pos in loclist + let pos['bufnr'] = bufn + let pos['type'] = 'E' + endfor + + call syntastic#HighlightErrors(loclist, function("SyntaxCheckers_lua_Term")) + + return loclist +endfunction + diff --git a/vim/syntax_checkers/matlab.vim b/vim/syntax_checkers/matlab.vim new file mode 100755 index 0000000..bbd3921 --- /dev/null +++ b/vim/syntax_checkers/matlab.vim @@ -0,0 +1,34 @@ +"============================================================================ +"File: matlab.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Jason Graham +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +if exists("loaded_matlab_syntax_checker") + finish +endif +let loaded_matlab_syntax_checker = 1 + +"bail if the user doesn't have mlint installed +if !executable("mlint") + finish +endif + +function! SyntaxCheckers_matlab_GetLocList() + let makeprg = 'mlint -id $* '.shellescape(expand('%')) + let errorformat = 'L %l (C %c): %*[a-zA-Z0-9]: %m,L %l (C %c-%*[0-9]): %*[a-zA-Z0-9]: %m' + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + for i in loclist + let i['bufnr'] = bufnr("") + endfor + + return loclist +endfunction + diff --git a/vim/syntax_checkers/perl.vim b/vim/syntax_checkers/perl.vim new file mode 100755 index 0000000..48aa5f3 --- /dev/null +++ b/vim/syntax_checkers/perl.vim @@ -0,0 +1,35 @@ +"============================================================================ +"File: perl.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Anthony Carapetis +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +" This checker requires efm_perl.pl, which is distributed with Vim version +" seven and greater, as far as I know. + +if exists("loaded_perl_syntax_checker") + finish +endif +let loaded_perl_syntax_checker = 1 + +"bail if the user doesnt have perl installed +if !executable("perl") + finish +endif + +if !exists("g:syntastic_perl_efm_program") + let g:syntastic_perl_efm_program = $VIMRUNTIME.'/tools/efm_perl.pl -c' +endif + +function! SyntaxCheckers_perl_GetLocList() + let makeprg = g:syntastic_perl_efm_program . ' ' . shellescape(expand('%')) + let errorformat = '%f:%l:%m' + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/php.vim b/vim/syntax_checkers/php.vim new file mode 100755 index 0000000..1092b75 --- /dev/null +++ b/vim/syntax_checkers/php.vim @@ -0,0 +1,36 @@ +"============================================================================ +"File: php.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_php_syntax_checker") + finish +endif +let loaded_php_syntax_checker = 1 + +"bail if the user doesnt have php installed +if !executable("php") + finish +endif + +function! SyntaxCheckers_php_Term(item) + let unexpected = matchstr(a:item['text'], "unexpected '[^']\\+'") + if len(unexpected) < 1 | return '' | end + return '\V'.split(unexpected, "'")[1] +endfunction + +function! SyntaxCheckers_php_GetLocList() + let makeprg = "php -l ".shellescape(expand('%')) + let errorformat='%-GNo syntax errors detected in%.%#,PHP Parse error: %#syntax %trror\, %m in %f on line %l,PHP Fatal %trror: %m in %f on line %l,%-GErrors parsing %.%#,%-G\s%#,Parse error: %#syntax %trror\, %m in %f on line %l,Fatal %trror: %m in %f on line %l' + let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + call syntastic#HighlightErrors(errors, function('SyntaxCheckers_php_Term')) + + return errors +endfunction diff --git a/vim/syntax_checkers/puppet.vim b/vim/syntax_checkers/puppet.vim new file mode 100755 index 0000000..70f5ea5 --- /dev/null +++ b/vim/syntax_checkers/puppet.vim @@ -0,0 +1,38 @@ +"============================================================================ +"File: puppet.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Eivind Uggedal +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_puppet_syntax_checker") + finish +endif +let loaded_puppet_syntax_checker = 1 + +"bail if the user doesnt have puppet installed +if !executable("puppet") + finish +endif + +function! SyntaxCheckers_puppet_GetLocList() + let l:puppetVersion = system("puppet --version") + let l:digits = split(l:puppetVersion, "\\.") + " + " If it is on the 2.7 series... use new executable + if l:digits[0] == '2' && l:digits[1] == '7' + let makeprg = 'puppet parser validate ' . + \ shellescape(expand('%')) . + \ ' --color=false' + else + let makeprg = 'puppet --color=false --parseonly '.shellescape(expand('%')) + endif + + let errorformat = 'err: Could not parse for environment %*[a-z]: %m at %f:%l' + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/python.vim b/vim/syntax_checkers/python.vim new file mode 100755 index 0000000..5622f34 --- /dev/null +++ b/vim/syntax_checkers/python.vim @@ -0,0 +1,35 @@ +if exists("loaded_python_syntax_checker") + finish +endif +let loaded_python_syntax_checker = 1 + +"bail if the user doesnt have pyflakes installed +if !executable("pyflakes") + finish +endif + +function! SyntaxCheckers_python_Term(i) + if a:i['type'] ==# 'E' + let a:i['text'] = "Syntax error" + endif + if match(a:i['text'], 'is assigned to but never used') > -1 + \ || match(a:i['text'], 'imported but unused') > -1 + \ || match(a:i['text'], 'undefined name') > -1 + \ || match(a:i['text'], 'redefinition of unused') > -1 + + let term = split(a:i['text'], "'", 1)[1] + return '\V'.term + endif + return '' +endfunction + +function! SyntaxCheckers_python_GetLocList() + let makeprg = 'pyflakes '.shellescape(expand('%')) + let errorformat = '%E%f:%l: could not compile,%-Z%p^,%W%f:%l: %m,%-G%.%#' + + let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + call syntastic#HighlightErrors(errors, function('SyntaxCheckers_python_Term')) + + return errors +endfunction diff --git a/vim/syntax_checkers/ruby.vim b/vim/syntax_checkers/ruby.vim new file mode 100755 index 0000000..8c3cd81 --- /dev/null +++ b/vim/syntax_checkers/ruby.vim @@ -0,0 +1,32 @@ +"============================================================================ +"File: ruby.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_ruby_syntax_checker") + finish +endif +let loaded_ruby_syntax_checker = 1 + +"bail if the user doesnt have ruby installed +if !executable("ruby") + finish +endif + +function! SyntaxCheckers_ruby_GetLocList() + " we cannot set RUBYOPT on windows like that + if has('win32') || has('win64') + let makeprg = 'ruby -W1 -T1 -c '.shellescape(expand('%')) + else + let makeprg = 'RUBYOPT= ruby -W1 -c '.shellescape(expand('%')) + endif + let errorformat = '%-GSyntax OK,%E%f:%l: syntax error\, %m,%Z%p^,%W%f:%l: warning: %m,%Z%p^,%W%f:%l: %m,%-C%.%#' + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/sass.vim b/vim/syntax_checkers/sass.vim new file mode 100755 index 0000000..759925d --- /dev/null +++ b/vim/syntax_checkers/sass.vim @@ -0,0 +1,64 @@ +"============================================================================ +"File: sass.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_sass_syntax_checker") + finish +endif +let loaded_sass_syntax_checker = 1 + +"bail if the user doesnt have the sass binary installed +if !executable("sass") + finish +endif + +let g:syntastic_sass_imports = 0 + +function! SyntaxCheckers_sass_GetLocList() + "use compass imports if available + if g:syntastic_sass_imports == 0 && executable("compass") + let g:syntastic_sass_imports = "--compass" + else + let g:syntastic_sass_imports = "" + endif + + let makeprg='sass '.g:syntastic_sass_imports.' --check '.shellescape(expand('%')) + let errorformat = '%ESyntax %trror:%m,%C on line %l of %f,%Z%m' + let errorformat .= ',%Wwarning on line %l:,%Z%m,Syntax %trror on line %l: %m' + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + let bn = bufnr("") + for i in loclist + let i['bufnr'] = bn + endfor + + return loclist +endfunction + +function! SyntaxCheckers_scss_GetLocList() + "use compass imports if available + if g:syntastic_sass_imports == 0 && executable("compass") + let g:syntastic_sass_imports = system("compass imports") + else + let g:syntastic_sass_imports = "" + endif + + let makeprg='sass '.g:syntastic_sass_imports.' --check '.shellescape(expand('%')) + let errorformat = '%ESyntax %trror:%m,%C on line %l of %f,%Z%m' + let errorformat .= ',%Wwarning on line %l:,%Z%m,Syntax %trror on line %l: %m' + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + let bn = bufnr("") + for i in loclist + let i['bufnr'] = bn + endfor + + return loclist +endfunction diff --git a/vim/syntax_checkers/sh.vim b/vim/syntax_checkers/sh.vim new file mode 100755 index 0000000..81b5d93 --- /dev/null +++ b/vim/syntax_checkers/sh.vim @@ -0,0 +1,52 @@ +"============================================================================ +"File: sh.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Gregor Uhlenheuer +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists('loaded_sh_syntax_checker') + finish +endif +let loaded_sh_syntax_checker = 1 + +function! GetShell() + let shebang = getbufline(bufnr('%'), 1)[0] + if len(shebang) > 0 + if match(shebang, 'bash') >= 0 + return 'bash' + elseif match(shebang, 'zsh') >= 0 + return 'zsh' + elseif match(shebang, 'sh') >= 0 + return 'sh' + endif + endif + return '' +endfunction + +function! SyntaxCheckers_sh_GetLocList() + if !exists('b:shell') + let b:shell = GetShell() + endif + if len(b:shell) == 0 || !executable(b:shell) + return [] + endif + let output = split(system(b:shell.' -n '.shellescape(expand('%'))), '\n') + if v:shell_error != 0 + let result = [] + for err_line in output + let line = substitute(err_line, '^[^:]*:\D\{-}\(\d\+\):.*', '\1', '') + let msg = substitute(err_line, '^[^:]*:\D\{-}\d\+: \(.*\)', '\1', '') + call add(result, {'lnum' : line, + \ 'text' : msg, + \ 'bufnr': bufnr(''), + \ 'type': 'E' }) + endfor + return result + endif + return [] +endfunction diff --git a/vim/syntax_checkers/tcl.vim b/vim/syntax_checkers/tcl.vim new file mode 100755 index 0000000..83b5df3 --- /dev/null +++ b/vim/syntax_checkers/tcl.vim @@ -0,0 +1,28 @@ +"============================================================================ +"File: tcl.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Eric Thomas +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +if exists("loaded_tcl_syntax_checker") + finish +endif +let loaded_tcl_syntax_checker = 1 + +"bail if the user doesnt have tclsh installed +if !executable("tclsh") + finish +endif + +function! SyntaxCheckers_tcl_GetLocList() + let makeprg = 'tclsh '.shellescape(expand('%')) + let errorformat = '%f:%l:%m' + + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/tex.vim b/vim/syntax_checkers/tex.vim new file mode 100755 index 0000000..4369f4c --- /dev/null +++ b/vim/syntax_checkers/tex.vim @@ -0,0 +1,26 @@ +"============================================================================ +"File: tex.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_tex_syntax_checker") + finish +endif +let loaded_tex_syntax_checker = 1 + +"bail if the user doesnt have lacheck installed +if !executable("lacheck") + finish +endif + +function! SyntaxCheckers_tex_GetLocList() + let makeprg = 'lacheck '.shellescape(expand('%')) + let errorformat = '%-G** %f:,%E"%f"\, line %l: %m' + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction diff --git a/vim/syntax_checkers/vala.vim b/vim/syntax_checkers/vala.vim new file mode 100755 index 0000000..011398c --- /dev/null +++ b/vim/syntax_checkers/vala.vim @@ -0,0 +1,56 @@ +"============================================================================ +"File: vala.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Konstantin Stepanov (me@kstep.me) +"Notes: Add special comment line into your vala file starting with +" "// modules: " and containing space delimited list of vala +" modules, used by the file, so this script can build correct +" --pkg arguments. +" Valac compiler is not the fastest thing in the world, so you +" may want to disable this plugin with +" let g:syntastic_vala_check_disabled = 1 command in your .vimrc or +" command line. Unlet this variable to set it to 0 to reenable +" this checker. +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +if exists('loaded_vala_syntax_checker') + finish +endif +let loaded_vala_syntax_checker = 1 + +if !executable('valac') + finish +endif + +if exists('g:syntastic_vala_check_disabled') && g:syntastic_vala_check_disabled + finish +endif + +function! SyntaxCheckers_vala_Term(pos) + let strlength = strlen(matchstr(a:pos['text'], '\^\+$')) + return '\%>'.(a:pos.col-1).'c.*\%<'.(a:pos.col+strlength+1).'c' +endfunction + +function! s:GetValaModules() + let modules_line = search('^// modules: ', 'n') + let modules_str = getline(modules_line) + let modules = split(strpart(modules_str, 12), '\s\+') + return modules +endfunction + +function! SyntaxCheckers_vala_GetLocList() + let vala_pkg_args = join(map(s:GetValaModules(), '"--pkg ".v:val'), ' ') + let makeprg = 'valac -C ' . vala_pkg_args . ' ' .shellescape(expand('%')) + let errorformat = '%A%f:%l.%c-%\d%\+.%\d%\+: %t%[a-z]%\+: %m,%C%m,%Z%m' + + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + call syntastic#HighlightErrors(loclist, function("SyntaxCheckers_vala_Term"), 1) + return loclist +endfunction + diff --git a/vim/syntax_checkers/xhtml.vim b/vim/syntax_checkers/xhtml.vim new file mode 100755 index 0000000..409347f --- /dev/null +++ b/vim/syntax_checkers/xhtml.vim @@ -0,0 +1,53 @@ +"============================================================================ +"File: xhtml.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Martin Grenfell +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_xhtml_syntax_checker") + finish +endif +let loaded_xhtml_syntax_checker = 1 + +"bail if the user doesnt have tidy or grep installed +if !executable("tidy") + finish +endif + +" TODO: join this with html.vim DRY's sake? +function! s:TidyEncOptByFenc() + let tidy_opts = { + \'utf-8' : '-utf8', + \'ascii' : '-ascii', + \'latin1' : '-latin1', + \'iso-2022-jp' : '-iso-2022', + \'cp1252' : '-win1252', + \'macroman' : '-mac', + \'utf-16le' : '-utf16le', + \'utf-16' : '-utf16', + \'big5' : '-big5', + \'sjis' : '-shiftjis', + \'cp850' : '-ibm858', + \} + return get(tidy_opts, &fileencoding, '-utf8') +endfunction + +function! SyntaxCheckers_xhtml_GetLocList() + + let encopt = s:TidyEncOptByFenc() + let makeprg="tidy ".encopt." -xml -e ".shellescape(expand('%')) + let errorformat='%Wline %l column %c - Warning: %m,%Eline %l column %c - Error: %m,%-G%.%#,%-G%.%#' + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + "the file name isnt in the output so stick in the buf num manually + for i in loclist + let i['bufnr'] = bufnr("") + endfor + + return loclist +endfunction diff --git a/vim/syntax_checkers/xml.vim b/vim/syntax_checkers/xml.vim new file mode 100755 index 0000000..44038b2 --- /dev/null +++ b/vim/syntax_checkers/xml.vim @@ -0,0 +1,37 @@ +"============================================================================ +"File: xml.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Sebastian Kusnier +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_xml_syntax_checker") + finish +endif +let loaded_xml_syntax_checker = 1 + +"bail if the user doesnt have tidy or grep installed +if !executable("xmllint") + finish +endif + +function! SyntaxCheckers_xml_GetLocList() + + let makeprg="xmllint --xinclude --noout --postvalid %" + let errorformat='%E%f:%l:\ error\ :\ %m, + \%-G%f:%l:\ validity\ error\ :\ Validation\ failed:\ no\ DTD\ found\ %m, + \%W%f:%l:\ warning\ :\ %m, + \%W%f:%l:\ validity\ warning\ :\ %m, + \%E%f:%l:\ validity\ error\ :\ %m, + \%E%f:%l:\ parser\ error\ :\ %m, + \%E%f:%l:\ %m, + \%-Z%p^, + \%-G%.%#' + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + return loclist +endfunction diff --git a/vim/syntax_checkers/xslt.vim b/vim/syntax_checkers/xslt.vim new file mode 100755 index 0000000..fda2cad --- /dev/null +++ b/vim/syntax_checkers/xslt.vim @@ -0,0 +1,38 @@ +"============================================================================ +"File: xslt.vim +"Description: Syntax checking plugin for syntastic.vim +"Maintainer: Sebastian Kusnier +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ +if exists("loaded_xslt_syntax_checker") + finish +endif +let loaded_xslt_syntax_checker = 1 + +"bail if the user doesnt have tidy or grep installed +if !executable("xmllint") + finish +endif + +function! SyntaxCheckers_xslt_GetLocList() + + let makeprg="xmllint --xinclude --noout --postvalid %" + let errorformat='%E%f:%l:\ error\ :\ %m, + \%-G%f:%l:\ validity\ error\ :\ Validation\ failed:\ no\ DTD\ found\ %m, + \%W%f:%l:\ warning\ :\ %m, + \%W%f:%l:\ validity\ warning\ :\ %m, + \%E%f:%l:\ validity\ error\ :\ %m, + \%E%f:%l:\ parser\ error\ :\ %m, + \%E%f:%l:\ namespace\ error\ :\ %m, + \%E%f:%l:\ %m, + \%-Z%p^, + \%-G%.%#' + let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) + + return loclist +endfunction diff --git a/vim/tmp/ruby_debugger b/vim/tmp/ruby_debugger new file mode 100644 index 0000000..9a409ba --- /dev/null +++ b/vim/tmp/ruby_debugger @@ -0,0 +1 @@ +++vim-ruby-debugger separator++++vim-ruby-debugger separator++ diff --git a/vim/tmp/ruby_debugger_log b/vim/tmp/ruby_debugger_log new file mode 100644 index 0000000..c3db8d3 --- /dev/null +++ b/vim/tmp/ruby_debugger_log @@ -0,0 +1,16 @@ +2011/01/25 11:25:22 Toggling window with name: frames +2011/01/25 11:25:22 Opened window with name: frames +2011/01/25 11:25:22 Start displaying data in window with name: frames +2011/01/25 11:25:22 Set focus to window with name: frames +2011/01/25 11:25:22 Inserted data to window with name: frames +2011/01/25 11:25:22 Restored view of window with name: frames +2011/01/25 11:25:22 Complete displaying data in window with name: frames +2011/01/25 11:25:22 Opened frames window +2011/01/25 11:25:28 Toggling window with name: frames +2011/01/25 11:25:28 Opened window with name: frames +2011/01/25 11:25:28 Start displaying data in window with name: frames +2011/01/25 11:25:28 Set focus to window with name: frames +2011/01/25 11:25:28 Inserted data to window with name: frames +2011/01/25 11:25:28 Restored view of window with name: frames +2011/01/25 11:25:28 Complete displaying data in window with name: frames +2011/01/25 11:25:28 Opened frames window diff --git a/vim/tmp/ruby_debugger_output b/vim/tmp/ruby_debugger_output new file mode 100644 index 0000000..0d86424 --- /dev/null +++ b/vim/tmp/ruby_debugger_output @@ -0,0 +1,34 @@ +Fast Debugger (ruby-debug-ide 0.4.16, ruby-debug-base 0.10.4) listens on 127.0.0.1:39767 +=> Booting WEBrick +=> Rails 2.3.6 application starting on http://0.0.0.0:3000 +** [NewRelic] NewRelic Agent Developer Mode enabled. +** [NewRelic] To view performance information, go to http://localhost:3000/newrelic +** [NewRelic] New Relic RPM Agent 2.10.1 Initialized: pid = 95408 +** [NewRelic] Agent Log found in /Users/yan/Sites/git-vamp/log/newrelic_agent.log +=> QueryTrace disabled; CTRL-\ to toggle +=> Call with -d to detach +=> Ctrl-C to shutdown server +[2010-12-11 00:51:22] INFO WEBrick 1.3.1 +[2010-12-11 00:51:22] INFO ruby 1.8.7 (2009-06-12) [universal-darwin10.0] +[2010-12-11 00:51:22] WARN TCPServer Error: Address already in use - bind(2) +Exiting + /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/utils.rb:73:in `initialize' + /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/utils.rb:73:in `new' + /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/utils.rb:73:in `create_listeners' + /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/utils.rb:70:in `each' + /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/utils.rb:70:in `create_listeners' + /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:75:in `listen' + /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:63:in `initialize' + /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/httpserver.rb:24:in `initialize' + /Library/Ruby/Gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:10:in `new' + /Library/Ruby/Gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:10:in `run' + /Users/yan/Sites/git-vamp/vendor/rails/railties/lib/commands/server.rb:111 + /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' + /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' + /Users/yan/Sites/git-vamp/script/server:3 + /Library/Ruby/Gems/1.8/gems/ruby-debug-ide-0.4.16/lib/ruby-debug-ide.rb:112:in `debug_load' + /Library/Ruby/Gems/1.8/gems/ruby-debug-ide-0.4.16/lib/ruby-debug-ide.rb:112:in `debug_program' + /Library/Ruby/Gems/1.8/gems/ruby-debug-ide-0.4.16/bin/rdebug-ide:87 + /usr/bin/rdebug-ide:19:in `load' + /usr/bin/rdebug-ide:19 +Uncaught exception: Address already in use - bind(2) diff --git a/vimrc b/vimrc new file mode 100644 index 0000000..a586cbe --- /dev/null +++ b/vimrc @@ -0,0 +1,362 @@ +" Use tpope's pathogen plugin to manage all other plugins +call pathogen#infect() + +"Use Vim settings, rather then Vi settings (much better!). +"This must be first, because it changes other options as a side effect. +set nocompatible + +" Line numbers are good +set number + +" I don't like code folding +set nofoldenable + +"allow backspacing over everything in insert mode +set backspace=indent,eol,start + +"store lots of :cmdline history +set history=1000 + +set showcmd "show incomplete cmds down the bottom +set showmode "show current mode down the bottom + +set incsearch "find the next match as we type the search +set hlsearch "hilight searches by default +set ignorecase "ignore case when searching + +set nowrap "dont wrap lines +set linebreak "wrap lines at convenient points + +" swapfiles are lame. we have git +set noswapfile +set nobackup +set nowb + +" Better omnicomplete options (use Ctrl-P, Ctrl-N or Tab) +if v:version >= 700 + set omnifunc=syntaxcomplete#Complete " override built-in C omnicomplete with C++ OmniCppComplete plugin + let OmniCpp_GlobalScopeSearch = 1 + let OmniCpp_DisplayMode = 1 + let OmniCpp_ShowScopeInAbbr = 0 "do not show namespace in pop-up + let OmniCpp_ShowPrototypeInAbbr = 1 "show prototype in pop-up + let OmniCpp_ShowAccess = 1 "show access in pop-up + let OmniCpp_SelectFirstItem = 1 "select first item in pop-up + set completeopt=menuone,menu,longest +endif + +" persistent undos - undo after you re-open the file +" but this gives warnings under command line vim +" use only in macvim +if has('gui_running') + set undodir=~/.vim/backups + set undofile +endif + +" indent +set ai " autoindent +set si " smart indent +set smarttab + +"statusline setup +set statusline+=%#warningmsg# +set statusline+=%{SyntasticStatuslineFlag()} +set statusline+=%* +set statusline=%#warningmsg# +set statusline+=%f +set statusline+=%{fugitive#statusline()} +set statusline+=%m "modified flag + +"display a warning if &paste is set +set statusline+=%#error# +set statusline+=%{&paste?'[paste]':''} +set statusline+=%* +set statusline+=%= "left/right separator +set statusline+=%{StatuslineCurrentHighlight()}\ \ "current highlight +set statusline+=%c: "cursor column +set statusline+=%l/%L "cursor line/total lines +"set statusline+=\ %P "percent through file +set laststatus=2 + +"return the syntax highlight group under the cursor '' +function! StatuslineCurrentHighlight() + let name = synIDattr(synID(line('.'),col('.'),1),'name') + if name == '' + return '' + else + return '[' . name . ']' + endif +endfunction + +"indent settings +set shiftwidth=2 +set softtabstop=2 +set tabstop=2 +set expandtab +set autoindent + +"folding settings +set foldmethod=indent "fold based on indent +set foldnestmax=3 "deepest fold is 3 levels +set nofoldenable "dont fold by default + +"make cmdline tab completion similar to bash +set wildmode=list:longest +set wildmenu "enable ctrl-n and ctrl-p to scroll thru matches +set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing + +"display tabs and trailing spaces +set list +set listchars=tab:\ \ ,extends:>,precedes:< + +set formatoptions-=o "dont continue comments when pushing o/O + +"vertical/horizontal scroll off settings +set scrolloff=3 +set sidescrolloff=7 +set sidescroll=1 + +"load ftplugins and indent files +filetype plugin on +filetype indent on + +"turn on syntax highlighting +syntax on + +"some stuff to get the mouse going in term +set mouse=a +set ttymouse=xterm2 + +"hide buffers when not displayed +set hidden + +" Make it beautiful - colors and fonts +if has("gui_running") + "tell the term has 256 colors + set t_Co=256 + + if has("gui_gnome") + set term=gnome-256color + colorscheme desert + else + colorscheme railscasts + set guitablabel=%M%t + set lines=60 + set columns=190 + endif + if has("gui_mac") || has("gui_macvim") + set guifont=Monaco:h17 + endif + if has("gui_win32") || has("gui_win32s") + set guifont=Consolas:h12 + set enc=utf-8 + endif +else + "dont load csapprox if we no gui support - silences an annoying warning + let g:CSApprox_loaded = 1 +endif + +"make Y consistent with C and D +nnoremap Y y$ + +"mark syntax errors with :signs +let g:syntastic_enable_signs=1 +"automatically jump to the error when saving the file +let g:syntastic_auto_jump=1 +"show the error list automatically +let g:syntastic_auto_loc_list=1 +"don't care about warnings +let g:syntastic_quiet_warnings=1 + +"jump to last cursor position when opening a file +"dont do it when writing a commit log entry +autocmd BufReadPost * call SetCursorPosition() +function! SetCursorPosition() + if &filetype !~ 'commit\c' + if line("'\"") > 0 && line("'\"") <= line("$") + exe "normal! g`\"" + normal! zz + endif + end +endfunction + +" Open the project tree and expose current file in the nerdtree with Ctrl-\ +" the winfixwidth call ensures that nerdtree will not resize +" if we create or remove other windows +nnoremap :call FindInNERDTree():set winfixwidth + +" move up/down quickly by using Ctrl-j, Ctrl-k +" which will move us around by functions +nnoremap } +nnoremap { + +" Move between split windows by using the four directions H, L, I, M +" (note that I use I and M instead of J and K because J already does +" line joins and K is mapped to GitGrep the current word +nnoremap H h +nnoremap L l +nnoremap I k +nnoremap M j + +" Create window splits easier. The default +" way is Ctrl-w,v and Ctrl-w,s. I remap +" this to vv and ss +nnoremap vv v +nnoremap ss s + +" Remap Q to close a window +nnoremap Q c + +" Use \Q to kill the buffer entirely +nnoremap Q :bw + +"open the taglist (method browser) using T +nnoremap T :TlistToggle + +" taglist defaults +let Tlist_Auto_Highlight_Tag=0 +let Tlist_Auto_Open=0 +let Tlist_Compact_Format = 1 +let Tlist_Exist_OnlyWindow = 1 +let Tlist_WinWidth = 40 +let Tlist_GainFocus_On_ToggleOpen = 1 +let Tlist_Show_Menu = 1 +let Tlist_Use_Right_Window = 1 +let Tlist_Use_Horiz_Window = 0 +let Tlist_Close_On_Select = 1 +let Tlist_Show_One_File = 1 +let Tlist_Enable_Fold_Column = 0 +let Tlist_Display_Prototype = 0 + +" automaticaly reload files changed outside of vim +set autoread + +" save up to 100 marks and f1 means global marks (capital letters) are enabled +set viminfo='100,f1 + +" hit F to find the definition of the current class +" this uses ctags. the standard way to get this is Ctrl-] +nnoremap F + +"open buf explorer with B +map B bv +let g:bufExplorerShowRelativePath=1 " Show relative paths. +let g:bufExplorerDefaultHelp=0 + +"toggle between last two buffers with Z (normally ctrl-shift-6) +nnoremap Z + +"git grep the current word using K (mnemonic Kurrent) +nnoremap K :GitGrep + +"open up a git grep line, with a quote started for the search +"mnemonic: the letter O looks like a magnifying glass or goggles (search) +nnoremap O :GitGrep " + +" create <%= foo %> erb tags using Ctrl-k in edit mode +imap <%= %>3hi + +" create <%= foo %> erb tags using Ctrl-j in edit mode +imap <% %>2hi +imap _ + +" hit \t to run current test +nmap t :RunRubyFocusedContext + +" set up automatic ctags +let Tlist_Ctags_Cmd='/opt/local/bin/ctags' +source ~/.vim/plugin/autotag.vim + +" Run the current file in a ConqueTerm, great for ruby tests +let g:ConqueTerm_InsertOnEnter = 0 +let g:ConqueTerm_CWInsert = 1 +let g:ConqueTerm_Color = 2 + +" Open up a variety of commands in the ConqueTerm +nmap r :call RunRubyCurrentFileConque() +nmap S :call RunRspecCurrentFileConque() +nmap R :call RunRakeConque() +nmap c :execute 'ConqueTermSplit script/console --irb=pry' +nmap i :execute 'ConqueTermSplit pry' +nmap b :execute 'ConqueTermSplit /bin/bash --login' + +function RunRubyCurrentFileConque() + execute "ConqueTermSplit ruby" bufname('%') +endfunction + +function RunRspecCurrentFileConque() + execute "ConqueTermSplit rspec" bufname('%') " --color --format doc" +endfunction + +function RunRakeConque() + execute "ConqueTermSplit rake" +endfunction + +let g:ConqueTerm_SendVisKey = 'e' + +" prevent auto insert mode, which is helpful when using conque +" term for running tests +autocmd WinEnter * stopinsert + +" Disable the scrollbars (NERDTree) +set guioptions-=r +set guioptions-=L + +" Disable the macvim toolbar +set guioptions-=T + +" Set up nicer coloring +hi LineNr guifg=#505050 guibg=#101010 +hi Normal guifg=White guibg=#101010 +hi StatusLine guibg=#111111 guifg=#313131 +hi Search guibg=#333333 guifg=#E05133 +hi StatusLineNC guibg=#111111 guifg=#313131 +hi VertSplit guibg=#101010 guifg=#313131 +hi treeDir guifg=#5285b4 +hi Directory guifg=#5285b4 +hi NonText guifg=#101010 "hide the blank line ~ marks +hi rubyClass guifg=lightgreen gui=bold + +" show this many lines around what i'm editing +set so=8 + +" Find references to the currently opened partial (file) +" by pressing P in command mode +function GitGrepCurrentPartial() + " :call GitGrep(substitute(substitute(expand('%<'),'.*\/_','','g'),'.html','','g')) + :call GitGrep(substitute(substitute(substitute(expand('%<'),'.*\/','','g'), '$_','','g'),'.html','','g')) +endfunction +command! GitGrepCurrentPartial call GitGrepCurrentPartial() +nnoremap P :GitGrepCurrentPartial + + +" Remember cursor position and etc when you leave windows +au BufWinLeave * silent! mkview "make vim save view (state) (folds, cursor, etc) +au BufWinEnter * silent! loadview "make vim load view (state) (folds, cursorrsor, etc) + +" Make nerdtree look nice +let NERDTreeMinimalUI = 1 +let NERDTreeDirArrows = 1 + +" Don't have to use Shift to get into command mode, just hit semicolon +nnoremap ; : + +"Clear current search highlight by double tapping // +nmap // :nohlsearch + +" Use EasyMotion by double tapping comma +nmap ,, \\w + +" User LustyJuggler buffer switcher by hitting S +" and then using the homerow keys to select the file +" double tap the home row key to go to the file or hit +" once to just select it in the juggler +nmap S \lj +let g:LustyJugglerSuppressRubyWarning = 1 +let g:LustyJugglerAltTabMode = 1 + +" Show me all my marks (using showmarks plugin) +nnoremap M :PreviewMarks + +" copy current filename into system clipboard - mnemonic: (c)urrent(f)ilename +" this is helpful to paste someone the path you're looking at +nnoremap cf :let @* = expand("%:p")