You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
187 lines
4.8 KiB
VimL
187 lines
4.8 KiB
VimL
" command-t.vim
|
|
" Copyright 2010-2012 Wincent Colaiuta. All rights reserved.
|
|
"
|
|
" Redistribution and use in source and binary forms, with or without
|
|
" modification, are permitted provided that the following conditions are met:
|
|
"
|
|
" 1. Redistributions of source code must retain the above copyright notice,
|
|
" this list of conditions and the following disclaimer.
|
|
" 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
" this list of conditions and the following disclaimer in the documentation
|
|
" and/or other materials provided with the distribution.
|
|
"
|
|
" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
|
|
" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
" POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
if exists("g:command_t_loaded") || &cp
|
|
finish
|
|
endif
|
|
let g:command_t_loaded = 1
|
|
|
|
command CommandTBuffer call <SID>CommandTShowBufferFinder()
|
|
command CommandTJump call <SID>CommandTShowJumpFinder()
|
|
command CommandTTag call <SID>CommandTShowTagFinder()
|
|
command -nargs=? -complete=dir CommandT call <SID>CommandTShowFileFinder(<q-args>)
|
|
command CommandTFlush call <SID>CommandTFlush()
|
|
|
|
if !hasmapto(':CommandT<CR>')
|
|
silent! nnoremap <unique> <silent> <Leader>t :CommandT<CR>
|
|
endif
|
|
|
|
if !hasmapto(':CommandTBuffer<CR>')
|
|
silent! nnoremap <unique> <silent> <Leader>b :CommandTBuffer<CR>
|
|
endif
|
|
|
|
function s:CommandTRubyWarning()
|
|
echohl WarningMsg
|
|
echo "command-t.vim requires Vim to be compiled with Ruby support"
|
|
echo "For more information type: :help command-t"
|
|
echohl none
|
|
endfunction
|
|
|
|
function s:CommandTShowBufferFinder()
|
|
if has('ruby')
|
|
ruby $command_t.show_buffer_finder
|
|
else
|
|
call s:CommandTRubyWarning()
|
|
endif
|
|
endfunction
|
|
|
|
function s:CommandTShowFileFinder(arg)
|
|
if has('ruby')
|
|
ruby $command_t.show_file_finder
|
|
else
|
|
call s:CommandTRubyWarning()
|
|
endif
|
|
endfunction
|
|
|
|
function s:CommandTShowJumpFinder()
|
|
if has('ruby')
|
|
ruby $command_t.show_jump_finder
|
|
else
|
|
call s:CommandTRubyWarning()
|
|
endif
|
|
endfunction
|
|
|
|
function s:CommandTShowTagFinder()
|
|
if has('ruby')
|
|
ruby $command_t.show_tag_finder
|
|
else
|
|
call s:CommandTRubyWarning()
|
|
endif
|
|
endfunction
|
|
|
|
function s:CommandTFlush()
|
|
if has('ruby')
|
|
ruby $command_t.flush
|
|
else
|
|
call s:CommandTRubyWarning()
|
|
endif
|
|
endfunction
|
|
|
|
if !has('ruby')
|
|
finish
|
|
endif
|
|
|
|
function CommandTHandleKey(arg)
|
|
ruby $command_t.handle_key
|
|
endfunction
|
|
|
|
function CommandTBackspace()
|
|
ruby $command_t.backspace
|
|
endfunction
|
|
|
|
function CommandTDelete()
|
|
ruby $command_t.delete
|
|
endfunction
|
|
|
|
function CommandTAcceptSelection()
|
|
ruby $command_t.accept_selection
|
|
endfunction
|
|
|
|
function CommandTAcceptSelectionTab()
|
|
ruby $command_t.accept_selection :command => 'tabe'
|
|
endfunction
|
|
|
|
function CommandTAcceptSelectionSplit()
|
|
ruby $command_t.accept_selection :command => 'sp'
|
|
endfunction
|
|
|
|
function CommandTAcceptSelectionVSplit()
|
|
ruby $command_t.accept_selection :command => 'vs'
|
|
endfunction
|
|
|
|
function CommandTRefresh()
|
|
ruby $command_t.refresh
|
|
endfunction
|
|
|
|
function CommandTToggleFocus()
|
|
ruby $command_t.toggle_focus
|
|
endfunction
|
|
|
|
function CommandTCancel()
|
|
ruby $command_t.cancel
|
|
endfunction
|
|
|
|
function CommandTSelectNext()
|
|
ruby $command_t.select_next
|
|
endfunction
|
|
|
|
function CommandTSelectPrev()
|
|
ruby $command_t.select_prev
|
|
endfunction
|
|
|
|
function CommandTClear()
|
|
ruby $command_t.clear
|
|
endfunction
|
|
|
|
function CommandTCursorLeft()
|
|
ruby $command_t.cursor_left
|
|
endfunction
|
|
|
|
function CommandTCursorRight()
|
|
ruby $command_t.cursor_right
|
|
endfunction
|
|
|
|
function CommandTCursorEnd()
|
|
ruby $command_t.cursor_end
|
|
endfunction
|
|
|
|
function CommandTCursorStart()
|
|
ruby $command_t.cursor_start
|
|
endfunction
|
|
|
|
ruby << EOF
|
|
# require Ruby files
|
|
begin
|
|
# prepare controller
|
|
require 'command-t/vim'
|
|
require 'command-t/controller'
|
|
$command_t = CommandT::Controller.new
|
|
rescue LoadError
|
|
load_path_modified = false
|
|
::VIM::evaluate('&runtimepath').to_s.split(',').each do |path|
|
|
lib = "#{path}/ruby"
|
|
if !$LOAD_PATH.include?(lib) and File.exist?(lib)
|
|
$LOAD_PATH << lib
|
|
load_path_modified = true
|
|
end
|
|
end
|
|
retry if load_path_modified
|
|
|
|
# could get here if C extension was not compiled, or was compiled
|
|
# for the wrong architecture or Ruby version
|
|
require 'command-t/stub'
|
|
$command_t = CommandT::Stub.new
|
|
end
|
|
EOF
|