Updated plugins
This commit is contained in:
parent
687184f0bb
commit
630b462208
16 changed files with 287 additions and 147 deletions
|
@ -1,24 +0,0 @@
|
||||||
bufexplorer bufexplorer.txt /*bufexplorer*
|
|
||||||
bufexplorer-changelog bufexplorer.txt /*bufexplorer-changelog*
|
|
||||||
bufexplorer-credits bufexplorer.txt /*bufexplorer-credits*
|
|
||||||
bufexplorer-customization bufexplorer.txt /*bufexplorer-customization*
|
|
||||||
bufexplorer-installation bufexplorer.txt /*bufexplorer-installation*
|
|
||||||
bufexplorer-todo bufexplorer.txt /*bufexplorer-todo*
|
|
||||||
bufexplorer-usage bufexplorer.txt /*bufexplorer-usage*
|
|
||||||
bufexplorer-windowlayout bufexplorer.txt /*bufexplorer-windowlayout*
|
|
||||||
bufexplorer.txt bufexplorer.txt /*bufexplorer.txt*
|
|
||||||
buffer-explorer bufexplorer.txt /*buffer-explorer*
|
|
||||||
g:bufExplorerChgWin bufexplorer.txt /*g:bufExplorerChgWin*
|
|
||||||
g:bufExplorerDefaultHelp bufexplorer.txt /*g:bufExplorerDefaultHelp*
|
|
||||||
g:bufExplorerDetailedHelp bufexplorer.txt /*g:bufExplorerDetailedHelp*
|
|
||||||
g:bufExplorerFindActive bufexplorer.txt /*g:bufExplorerFindActive*
|
|
||||||
g:bufExplorerFuncRef bufexplorer.txt /*g:bufExplorerFuncRef*
|
|
||||||
g:bufExplorerReverseSort bufexplorer.txt /*g:bufExplorerReverseSort*
|
|
||||||
g:bufExplorerShowDirectories bufexplorer.txt /*g:bufExplorerShowDirectories*
|
|
||||||
g:bufExplorerShowRelativePath bufexplorer.txt /*g:bufExplorerShowRelativePath*
|
|
||||||
g:bufExplorerShowTabBuffer bufexplorer.txt /*g:bufExplorerShowTabBuffer*
|
|
||||||
g:bufExplorerShowUnlisted bufexplorer.txt /*g:bufExplorerShowUnlisted*
|
|
||||||
g:bufExplorerSortBy bufexplorer.txt /*g:bufExplorerSortBy*
|
|
||||||
g:bufExplorerSplitBelow bufexplorer.txt /*g:bufExplorerSplitBelow*
|
|
||||||
g:bufExplorerSplitOutPathName bufexplorer.txt /*g:bufExplorerSplitOutPathName*
|
|
||||||
g:bufExplorerSplitRight bufexplorer.txt /*g:bufExplorerSplitRight*
|
|
|
@ -1,62 +0,0 @@
|
||||||
'Tlist_Auto_Highlight_Tag' taglist.txt /*'Tlist_Auto_Highlight_Tag'*
|
|
||||||
'Tlist_Auto_Open' taglist.txt /*'Tlist_Auto_Open'*
|
|
||||||
'Tlist_Auto_Update' taglist.txt /*'Tlist_Auto_Update'*
|
|
||||||
'Tlist_Close_On_Select' taglist.txt /*'Tlist_Close_On_Select'*
|
|
||||||
'Tlist_Compact_Format' taglist.txt /*'Tlist_Compact_Format'*
|
|
||||||
'Tlist_Ctags_Cmd' taglist.txt /*'Tlist_Ctags_Cmd'*
|
|
||||||
'Tlist_Display_Prototype' taglist.txt /*'Tlist_Display_Prototype'*
|
|
||||||
'Tlist_Display_Tag_Scope' taglist.txt /*'Tlist_Display_Tag_Scope'*
|
|
||||||
'Tlist_Enable_Fold_Column' taglist.txt /*'Tlist_Enable_Fold_Column'*
|
|
||||||
'Tlist_Exit_OnlyWindow' taglist.txt /*'Tlist_Exit_OnlyWindow'*
|
|
||||||
'Tlist_File_Fold_Auto_Close' taglist.txt /*'Tlist_File_Fold_Auto_Close'*
|
|
||||||
'Tlist_GainFocus_On_ToggleOpen' taglist.txt /*'Tlist_GainFocus_On_ToggleOpen'*
|
|
||||||
'Tlist_Highlight_Tag_On_BufEnter' taglist.txt /*'Tlist_Highlight_Tag_On_BufEnter'*
|
|
||||||
'Tlist_Inc_Winwidth' taglist.txt /*'Tlist_Inc_Winwidth'*
|
|
||||||
'Tlist_Max_Submenu_Items' taglist.txt /*'Tlist_Max_Submenu_Items'*
|
|
||||||
'Tlist_Max_Tag_Length' taglist.txt /*'Tlist_Max_Tag_Length'*
|
|
||||||
'Tlist_Process_File_Always' taglist.txt /*'Tlist_Process_File_Always'*
|
|
||||||
'Tlist_Show_Menu' taglist.txt /*'Tlist_Show_Menu'*
|
|
||||||
'Tlist_Show_One_File' taglist.txt /*'Tlist_Show_One_File'*
|
|
||||||
'Tlist_Sort_Type' taglist.txt /*'Tlist_Sort_Type'*
|
|
||||||
'Tlist_Use_Horiz_Window' taglist.txt /*'Tlist_Use_Horiz_Window'*
|
|
||||||
'Tlist_Use_Right_Window' taglist.txt /*'Tlist_Use_Right_Window'*
|
|
||||||
'Tlist_Use_SingleClick' taglist.txt /*'Tlist_Use_SingleClick'*
|
|
||||||
'Tlist_WinHeight' taglist.txt /*'Tlist_WinHeight'*
|
|
||||||
'Tlist_WinWidth' taglist.txt /*'Tlist_WinWidth'*
|
|
||||||
:TlistAddFiles taglist.txt /*:TlistAddFiles*
|
|
||||||
:TlistAddFilesRecursive taglist.txt /*:TlistAddFilesRecursive*
|
|
||||||
:TlistClose taglist.txt /*:TlistClose*
|
|
||||||
:TlistDebug taglist.txt /*:TlistDebug*
|
|
||||||
:TlistHighlightTag taglist.txt /*:TlistHighlightTag*
|
|
||||||
:TlistLock taglist.txt /*:TlistLock*
|
|
||||||
:TlistMessages taglist.txt /*:TlistMessages*
|
|
||||||
:TlistOpen taglist.txt /*:TlistOpen*
|
|
||||||
:TlistSessionLoad taglist.txt /*:TlistSessionLoad*
|
|
||||||
:TlistSessionSave taglist.txt /*:TlistSessionSave*
|
|
||||||
:TlistShowPrototype taglist.txt /*:TlistShowPrototype*
|
|
||||||
:TlistShowTag taglist.txt /*:TlistShowTag*
|
|
||||||
:TlistToggle taglist.txt /*:TlistToggle*
|
|
||||||
:TlistUndebug taglist.txt /*:TlistUndebug*
|
|
||||||
:TlistUnlock taglist.txt /*:TlistUnlock*
|
|
||||||
:TlistUpdate taglist.txt /*:TlistUpdate*
|
|
||||||
Tlist_Get_Tag_Prototype_By_Line() taglist.txt /*Tlist_Get_Tag_Prototype_By_Line()*
|
|
||||||
Tlist_Get_Tagname_By_Line() taglist.txt /*Tlist_Get_Tagname_By_Line()*
|
|
||||||
Tlist_Set_App() taglist.txt /*Tlist_Set_App()*
|
|
||||||
Tlist_Update_File_Tags() taglist.txt /*Tlist_Update_File_Tags()*
|
|
||||||
taglist-commands taglist.txt /*taglist-commands*
|
|
||||||
taglist-debug taglist.txt /*taglist-debug*
|
|
||||||
taglist-extend taglist.txt /*taglist-extend*
|
|
||||||
taglist-faq taglist.txt /*taglist-faq*
|
|
||||||
taglist-functions taglist.txt /*taglist-functions*
|
|
||||||
taglist-install taglist.txt /*taglist-install*
|
|
||||||
taglist-internet taglist.txt /*taglist-internet*
|
|
||||||
taglist-intro taglist.txt /*taglist-intro*
|
|
||||||
taglist-keys taglist.txt /*taglist-keys*
|
|
||||||
taglist-license taglist.txt /*taglist-license*
|
|
||||||
taglist-menu taglist.txt /*taglist-menu*
|
|
||||||
taglist-options taglist.txt /*taglist-options*
|
|
||||||
taglist-requirements taglist.txt /*taglist-requirements*
|
|
||||||
taglist-session taglist.txt /*taglist-session*
|
|
||||||
taglist-todo taglist.txt /*taglist-todo*
|
|
||||||
taglist-using taglist.txt /*taglist-using*
|
|
||||||
taglist.txt taglist.txt /*taglist.txt*
|
|
|
@ -1,10 +0,0 @@
|
||||||
expand-region-about expand_region.txt /*expand-region-about*
|
|
||||||
expand-region-contents expand_region.txt /*expand-region-contents*
|
|
||||||
expand-region-global-options expand_region.txt /*expand-region-global-options*
|
|
||||||
expand-region-intro expand_region.txt /*expand-region-intro*
|
|
||||||
expand-region-mappings expand_region.txt /*expand-region-mappings*
|
|
||||||
expand-region-usage expand_region.txt /*expand-region-usage*
|
|
||||||
expand_region_text_objects expand_region.txt /*expand_region_text_objects*
|
|
||||||
expand_region_use_select_mode expand_region.txt /*expand_region_use_select_mode*
|
|
||||||
vim-expand-region.txt expand_region.txt /*vim-expand-region.txt*
|
|
||||||
vim-expand-regions expand_region.txt /*vim-expand-regions*
|
|
|
@ -21,14 +21,15 @@ in `after/syntax/css.vim` or `after/syntax/css/*.vim`.
|
||||||
$ cd ~/.vim/bundle
|
$ cd ~/.vim/bundle
|
||||||
$ git clone https://github.com/groenewege/vim-less
|
$ git clone https://github.com/groenewege/vim-less
|
||||||
|
|
||||||
|
- OR use [vundle](https://github.com/gmarik/vundle), adding this line to your `~/.vimrc`:
|
||||||
|
|
||||||
|
Bundle 'lunaru/vim-less'
|
||||||
|
|
||||||
- OR use git submodules:
|
- OR use git submodules:
|
||||||
|
|
||||||
$ git submodule add https://github.com/groenewege/vim-less.git bundle/vim-less
|
$ git submodule add https://github.com/groenewege/vim-less.git bundle/vim-less
|
||||||
$ git submodule init
|
$ git submodule init
|
||||||
|
|
||||||
That's it. Pathogen should handle the rest. Opening a file with a `.less`
|
|
||||||
extension will load everything.
|
|
||||||
|
|
||||||
### Map
|
### Map
|
||||||
.less to .css , lessc is required.
|
.less to .css , lessc is required.
|
||||||
|
|
||||||
|
@ -39,3 +40,7 @@ extension will load everything.
|
||||||
Inspiration from [vim-haml](https://github.com/tpope/vim-haml),
|
Inspiration from [vim-haml](https://github.com/tpope/vim-haml),
|
||||||
[scss-syntax.vim](https://github.com/cakebaker/scss-syntax.vim) and
|
[scss-syntax.vim](https://github.com/cakebaker/scss-syntax.vim) and
|
||||||
[vim-less](https://github.com/lunaru/vim-less)
|
[vim-less](https://github.com/lunaru/vim-less)
|
||||||
|
|
||||||
|
## License ##
|
||||||
|
|
||||||
|
MIT : [groenewege.mit-license.org](http://groenewege.mit-license.org/)
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
## 2.1 (04/26/2013)
|
||||||
|
|
||||||
|
Bugfixes:
|
||||||
|
- Fix 1 regression where cursors could potentially get out of sync in insert mode
|
||||||
|
|
||||||
|
Features:
|
||||||
|
- Added some logic to debug latency. Fanning out to 30 cursors in insert mode with my vimrc took over 300ms. It's like than 20ms with a plain vimrc. Need to debug what setting is causing the slowing down in insert mode and inform users.
|
||||||
|
|
||||||
## 2.0 (04/24/2013)
|
## 2.0 (04/24/2013)
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
|
|
|
@ -87,8 +87,8 @@ highlight link multiple_cursors_visual Visual
|
||||||
|
|
||||||
## Issues
|
## Issues
|
||||||
- Multi key commands like `ciw` do not work at the moment
|
- Multi key commands like `ciw` do not work at the moment
|
||||||
|
- Insert mode can be slow. If you are using Neobundle and have many plugins, try switching to Vundle to see if it helps. See https://github.com/Shougo/neobundle.vim/issues/84 for additional info.
|
||||||
- All user input typed before Vim is able to fan out the last operation to all cursors is lost. This is a implementation decision to keep the input perfectly synced in all locations, at the cost of potentially losing user input.
|
- All user input typed before Vim is able to fan out the last operation to all cursors is lost. This is a implementation decision to keep the input perfectly synced in all locations, at the cost of potentially losing user input.
|
||||||
- Performance in terminal vim degrades significantly with more cursors
|
|
||||||
- Select mode is not implemented
|
- Select mode is not implemented
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
require 'rspec/core/rake_task'
|
require 'rspec/core/rake_task'
|
||||||
|
|
||||||
RSpec::Core::RakeTask.new(:spec)
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
||||||
|
t.pattern = 'spec/multiple_cursors_spec.rb'
|
||||||
|
end
|
||||||
|
|
||||||
|
RSpec::Core::RakeTask.new(:benchmark) do |t|
|
||||||
|
t.pattern = 'spec/benchmark_spec.rb'
|
||||||
|
end
|
||||||
|
|
||||||
task :default => :spec
|
task :default => :spec
|
||||||
|
|
|
@ -82,6 +82,10 @@ function! multiple_cursors#debug()
|
||||||
call s:cm.debug()
|
call s:cm.debug()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! multiple_cursors#get_latency_debug_file()
|
||||||
|
return s:latency_debug_file
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Creates a new cursor. Different logic applies depending on the mode the user
|
" Creates a new cursor. Different logic applies depending on the mode the user
|
||||||
" is in and the current state of the buffer.
|
" is in and the current state of the buffer.
|
||||||
" 1. In normal mode, a new cursor is created at the end of the word under Vim's
|
" 1. In normal mode, a new cursor is created at the end of the word under Vim's
|
||||||
|
@ -352,6 +356,7 @@ function! s:CursorManager.reset(restore_view) dict
|
||||||
let self.starting_index = -1
|
let self.starting_index = -1
|
||||||
let self.saved_winview = []
|
let self.saved_winview = []
|
||||||
let self.start_from_find = 0
|
let self.start_from_find = 0
|
||||||
|
let s:char = ''
|
||||||
call self.restore_user_settings()
|
call self.restore_user_settings()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
@ -425,7 +430,7 @@ function! s:CursorManager.update_current() dict
|
||||||
" Sets the cursor at the right place
|
" Sets the cursor at the right place
|
||||||
exec "normal! gv\<Esc>"
|
exec "normal! gv\<Esc>"
|
||||||
call cur.update_visual_selection(s:get_visual_region(s:pos('.')))
|
call cur.update_visual_selection(s:get_visual_region(s:pos('.')))
|
||||||
else
|
elseif s:from_mode ==# 'v' || s:from_mode ==# 'V'
|
||||||
call cur.remove_visual_selection()
|
call cur.remove_visual_selection()
|
||||||
endif
|
endif
|
||||||
let vdelta = line('$') - s:saved_linecount
|
let vdelta = line('$') - s:saved_linecount
|
||||||
|
@ -714,9 +719,6 @@ function! s:revert_mode(from, to)
|
||||||
call s:cm.reapply_visual_selection()
|
call s:cm.reapply_visual_selection()
|
||||||
normal! V
|
normal! V
|
||||||
endif
|
endif
|
||||||
if a:to ==# 'i'
|
|
||||||
startinsert
|
|
||||||
endif
|
|
||||||
if a:to ==# 'n' && a:from ==# 'i'
|
if a:to ==# 'n' && a:from ==# 'i'
|
||||||
stopinsert
|
stopinsert
|
||||||
endif
|
endif
|
||||||
|
@ -768,9 +770,9 @@ function! s:process_user_inut()
|
||||||
" FIXME(terryma): Undo always places the cursor at the beginning of the line.
|
" FIXME(terryma): Undo always places the cursor at the beginning of the line.
|
||||||
" Figure out why.
|
" Figure out why.
|
||||||
if s:from_mode ==# 'i' || s:to_mode ==# 'i'
|
if s:from_mode ==# 'i' || s:to_mode ==# 'i'
|
||||||
silent! undojoin | call feedkeys(s:char."\<Plug>(a)")
|
silent! undojoin | call s:feedkeys(s:char."\<Plug>(a)")
|
||||||
else
|
else
|
||||||
call feedkeys(s:char."\<Plug>(a)")
|
call s:feedkeys(s:char."\<Plug>(a)")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Even when s:char produces invalid input, this method is always called. The
|
" Even when s:char produces invalid input, this method is always called. The
|
||||||
|
@ -809,9 +811,6 @@ function! s:apply_user_input_next(mode)
|
||||||
" Advance the cursor index
|
" Advance the cursor index
|
||||||
call s:cm.next()
|
call s:cm.next()
|
||||||
|
|
||||||
" Update Vim's cursor
|
|
||||||
call cursor(s:cm.get_current().position)
|
|
||||||
|
|
||||||
" We're done if we're made the full round
|
" We're done if we're made the full round
|
||||||
if s:cm.loop_done()
|
if s:cm.loop_done()
|
||||||
if s:to_mode ==# 'v' || s:to_mode ==# 'V'
|
if s:to_mode ==# 'v' || s:to_mode ==# 'V'
|
||||||
|
@ -941,6 +940,37 @@ function! s:display_error()
|
||||||
let s:bad_input = 0
|
let s:bad_input = 0
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
let s:latency_debug_file = ''
|
||||||
|
function! s:start_latency_measure()
|
||||||
|
if g:multi_cursor_debug_latency
|
||||||
|
let s:start_time = reltime()
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:skip_latency_measure()
|
||||||
|
if g:multi_cursor_debug_latency
|
||||||
|
let s:skip_latency_measure = 1
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:end_latency_measure()
|
||||||
|
if g:multi_cursor_debug_latency && !empty(s:char)
|
||||||
|
if empty(s:latency_debug_file)
|
||||||
|
let s:latency_debug_file = tempname()
|
||||||
|
exec 'redir >> '.s:latency_debug_file
|
||||||
|
silent! echom "Starting latency debug at ".reltimestr(reltime())
|
||||||
|
redir END
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !s:skip_latency_measure
|
||||||
|
exec 'redir >> '.s:latency_debug_file
|
||||||
|
silent! echom "Processing '".s:char."' took ".string(str2float(reltimestr(reltime(s:start_time)))*1000).' ms in '.s:cm.size().' cursors. mode = '.s:from_mode
|
||||||
|
redir END
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
let s:skip_latency_measure = 0
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:wait_for_user_input(mode)
|
function! s:wait_for_user_input(mode)
|
||||||
let s:from_mode = a:mode
|
let s:from_mode = a:mode
|
||||||
if empty(a:mode)
|
if empty(a:mode)
|
||||||
|
@ -958,8 +988,12 @@ function! s:wait_for_user_input(mode)
|
||||||
" Immediately revert the change to leave the user's buffer unchanged
|
" Immediately revert the change to leave the user's buffer unchanged
|
||||||
call s:revert_highlight_fix()
|
call s:revert_highlight_fix()
|
||||||
|
|
||||||
|
call s:end_latency_measure()
|
||||||
|
|
||||||
let s:char = s:get_char()
|
let s:char = s:get_char()
|
||||||
|
|
||||||
|
call s:start_latency_measure()
|
||||||
|
|
||||||
" Clears any echoes we might've added
|
" Clears any echoes we might've added
|
||||||
normal! :<Esc>
|
normal! :<Esc>
|
||||||
|
|
||||||
|
@ -970,6 +1004,7 @@ function! s:wait_for_user_input(mode)
|
||||||
" If the key is a special key and we're in the right mode, handle it
|
" If the key is a special key and we're in the right mode, handle it
|
||||||
if index(get(s:special_keys, s:from_mode, []), s:char) != -1
|
if index(get(s:special_keys, s:from_mode, []), s:char) != -1
|
||||||
call s:handle_special_key(s:char, s:from_mode)
|
call s:handle_special_key(s:char, s:from_mode)
|
||||||
|
call s:skip_latency_measure()
|
||||||
else
|
else
|
||||||
call s:cm.start_loop()
|
call s:cm.start_loop()
|
||||||
call s:feedkeys("\<Plug>(i)")
|
call s:feedkeys("\<Plug>(i)")
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
MultipleCursorsFind multiple_cursors.txt /*MultipleCursorsFind*
|
|
||||||
g:multi_cursor_exit_from_insert_mode multiple_cursors.txt /*g:multi_cursor_exit_from_insert_mode*
|
|
||||||
g:multi_cursor_exit_from_visual_mode multiple_cursors.txt /*g:multi_cursor_exit_from_visual_mode*
|
|
||||||
g:multi_cursor_next_key multiple_cursors.txt /*g:multi_cursor_next_key*
|
|
||||||
g:multi_cursor_prev_key multiple_cursors.txt /*g:multi_cursor_prev_key*
|
|
||||||
g:multi_cursor_quit_key multiple_cursors.txt /*g:multi_cursor_quit_key*
|
|
||||||
g:multi_cursor_skip_key multiple_cursors.txt /*g:multi_cursor_skip_key*
|
|
||||||
g:multi_cursor_start_key multiple_cursors.txt /*g:multi_cursor_start_key*
|
|
||||||
g:multi_cursor_use_default_mapping multiple_cursors.txt /*g:multi_cursor_use_default_mapping*
|
|
||||||
multiple-cursors-contents multiple_cursors.txt /*multiple-cursors-contents*
|
|
||||||
multiple-cursors-contributing multiple_cursors.txt /*multiple-cursors-contributing*
|
|
||||||
multiple-cursors-credit multiple_cursors.txt /*multiple-cursors-credit*
|
|
||||||
multiple-cursors-global-options multiple_cursors.txt /*multiple-cursors-global-options*
|
|
||||||
multiple-cursors-intro multiple_cursors.txt /*multiple-cursors-intro*
|
|
||||||
multiple-cursors-issues multiple_cursors.txt /*multiple-cursors-issues*
|
|
||||||
multiple-cursors-license multiple_cursors.txt /*multiple-cursors-license*
|
|
||||||
multiple-cursors-mappings multiple_cursors.txt /*multiple-cursors-mappings*
|
|
||||||
multiple-cursors-references multiple_cursors.txt /*multiple-cursors-references*
|
|
||||||
multiple-cursors-usage multiple_cursors.txt /*multiple-cursors-usage*
|
|
||||||
vim-multiple-cursors multiple_cursors.txt /*vim-multiple-cursors*
|
|
||||||
vim-multiple-cursors.txt multiple_cursors.txt /*vim-multiple-cursors.txt*
|
|
|
@ -30,6 +30,7 @@ let s:settings = {
|
||||||
\ 'exit_from_visual_mode': 1,
|
\ 'exit_from_visual_mode': 1,
|
||||||
\ 'exit_from_insert_mode': 1,
|
\ 'exit_from_insert_mode': 1,
|
||||||
\ 'use_default_mapping': 1,
|
\ 'use_default_mapping': 1,
|
||||||
|
\ 'debug_latency': 0,
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
let s:settings_if_default = {
|
let s:settings_if_default = {
|
||||||
|
|
141
sources_non_forked/vim-multiple-cursors/spec/benchmark_spec.rb
Normal file
141
sources_non_forked/vim-multiple-cursors/spec/benchmark_spec.rb
Normal file
|
@ -0,0 +1,141 @@
|
||||||
|
require 'vimrunner'
|
||||||
|
require 'vimrunner/rspec'
|
||||||
|
|
||||||
|
Vimrunner::RSpec.configure do |config|
|
||||||
|
|
||||||
|
# Use a single Vim instance for the test suite. Set to false to use an
|
||||||
|
# instance per test (slower, but can be easier to manage).
|
||||||
|
config.reuse_server = false
|
||||||
|
|
||||||
|
# Decide how to start a Vim instance. In this block, an instance should be
|
||||||
|
# spawned and set up with anything project-specific.
|
||||||
|
config.start_vim do
|
||||||
|
# vim = Vimrunner.start
|
||||||
|
# vim = Vimrunner::Server.new("/usr/local/bin/vim").start
|
||||||
|
|
||||||
|
# Or, start a GUI instance:
|
||||||
|
vim = Vimrunner.start_gvim
|
||||||
|
|
||||||
|
# Setup your plugin in the Vim instance
|
||||||
|
plugin_path = File.expand_path('../..', __FILE__)
|
||||||
|
vim.add_plugin(plugin_path, 'plugin/multiple_cursors.vim')
|
||||||
|
|
||||||
|
# The returned value is the Client available in the tests.
|
||||||
|
vim
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_file_content(string)
|
||||||
|
string = normalize_string_indent(string)
|
||||||
|
File.open(filename, 'w'){ |f| f.write(string) }
|
||||||
|
vim.edit filename
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_file_content()
|
||||||
|
vim.write
|
||||||
|
IO.read(filename).strip
|
||||||
|
end
|
||||||
|
|
||||||
|
def before(string)
|
||||||
|
set_file_content(string)
|
||||||
|
end
|
||||||
|
|
||||||
|
def after(string)
|
||||||
|
get_file_content().should eq normalize_string_indent(string)
|
||||||
|
type ":q<CR>"
|
||||||
|
end
|
||||||
|
|
||||||
|
def type(string)
|
||||||
|
string.scan(/<.*?>|./).each do |key|
|
||||||
|
if /<.*>/.match(key)
|
||||||
|
vim.feedkeys "\\#{key}"
|
||||||
|
else
|
||||||
|
vim.feedkeys key
|
||||||
|
end
|
||||||
|
end
|
||||||
|
sleep 0.2
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "Multiple Cursors" do
|
||||||
|
let(:filename) { 'test.txt' }
|
||||||
|
|
||||||
|
specify "#benchmark" do
|
||||||
|
before <<-EOF
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# type ':profile start /tmp/test.result<CR>'
|
||||||
|
# type ':profile! file *multiple_cursors.vim<CR>'
|
||||||
|
type ':let g:multi_cursor_debug_latency=1<CR>'
|
||||||
|
|
||||||
|
type 'VG<C-n>Vchellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello<Esc>'
|
||||||
|
|
||||||
|
type ':echo multiple_cursors#get_latency_debug_file()<CR>'
|
||||||
|
sleep 3
|
||||||
|
latency_file = vim.command 'echo multiple_cursors#get_latency_debug_file()'
|
||||||
|
puts 'latency file = ' + latency_file
|
||||||
|
|
||||||
|
after <<-EOF
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||||
|
EOF
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -256,4 +256,18 @@ describe "Multiple Cursors" do
|
||||||
hell
|
hell
|
||||||
EOF
|
EOF
|
||||||
end
|
end
|
||||||
|
|
||||||
|
specify "#multiline visual mode" do
|
||||||
|
before <<-EOF
|
||||||
|
hello
|
||||||
|
hello
|
||||||
|
EOF
|
||||||
|
|
||||||
|
type 'Vj<C-n>A world<Esc>'
|
||||||
|
|
||||||
|
after <<-EOF
|
||||||
|
hello world
|
||||||
|
hello world
|
||||||
|
EOF
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,7 +14,7 @@ In other words: upstream of snipmate is almost dead. (Better to say Marc Weber i
|
||||||
:Author: `Michael Sanders`_
|
:Author: `Michael Sanders`_
|
||||||
:Maintainer: `Adnan Zafar`_ & `Rok Garbas`_ & `Marc Weber`_
|
:Maintainer: `Adnan Zafar`_ & `Rok Garbas`_ & `Marc Weber`_
|
||||||
:Homepage: http://www.vim.org/scripts/script.php?script_id=2540
|
:Homepage: http://www.vim.org/scripts/script.php?script_id=2540
|
||||||
:Contributors: `MarcWeber`_, `lilydjwg`_, `henrik`_, `steveno`_, `asymmetric`_, `jherdman`_, `ironcamel`_, `honza`_, `jb55`_, `robhudson`_, `kozo2`_, `MicahElliott`_, `darkwise`_, `redpill`_, `thisgeek`_, `sickill`_, `pose`_, `marutanm`_, `r00k`_, `jbernard`_, `holizz`_, `muffinresearch`_, `statik`_, `taq`_, `alderz`_, `radicalbit`_, `pielgrzym`_
|
:Contributors: `MarcWeber`_, `lilydjwg`_, `henrik`_, `steveno`_, `asymmetric`_, `jherdman`_, `ironcamel`_, `honza`_, `jb55`_, `robhudson`_, `kozo2`_, `MicahElliott`_, `darkwise`_, `redpill`_, `thisgeek`_, `sickill`_, `pose`_, `marutanm`_, `r00k`_, `jbernard`_, `holizz`_, `muffinresearch`_, `statik`_, `taq`_, `alderz`_, `radicalbit`_, `pielgrzym`_, `hpesoj`_
|
||||||
|
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
|
@ -255,3 +255,4 @@ TODO / Future
|
||||||
.. _`vim.org`: http://www.vim.org/scripts/script.php?script_id=2540
|
.. _`vim.org`: http://www.vim.org/scripts/script.php?script_id=2540
|
||||||
.. _`GitHub`: http://github.com/msanders/snipmate.vim
|
.. _`GitHub`: http://github.com/msanders/snipmate.vim
|
||||||
.. _`radicalbit`: https://github.com/radicalbit
|
.. _`radicalbit`: https://github.com/radicalbit
|
||||||
|
.. _`hpesoj`: https://github.com/hpesoj
|
||||||
|
|
|
@ -324,9 +324,7 @@ function! s:state_proto.update_changes()
|
||||||
let col = col('.')
|
let col = col('.')
|
||||||
if line('.') != self.cur_stop[0] || col < self.start_col || col > self.end_col
|
if line('.') != self.cur_stop[0] || col < self.start_col || col > self.end_col
|
||||||
call self.remove()
|
call self.remove()
|
||||||
endif
|
elseif self.has_vars
|
||||||
|
|
||||||
if self.has_vars
|
|
||||||
call self.update_vars(change_len)
|
call self.update_vars(change_len)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,41 @@ Historical notes
|
||||||
unfortunately abandoned the project. [Rok Garbas][3] is now maintaining a
|
unfortunately abandoned the project. [Rok Garbas][3] is now maintaining a
|
||||||
[fork][4] of the project in hopes of improving the existing code base.
|
[fork][4] of the project in hopes of improving the existing code base.
|
||||||
|
|
||||||
|
Versions / dialects / ..
|
||||||
|
========================
|
||||||
|
There are some issues, such as newer language versions may require other
|
||||||
|
snippets than older. If this exists we currently recommend doing this:
|
||||||
|
|
||||||
|
add snippets/ruby.snippets (common snippets)
|
||||||
|
add snippets/ruby-1.8.snippets (1.8 only)
|
||||||
|
add snippets/ruby-1.9.snippets (1.9 only)
|
||||||
|
|
||||||
|
then configure github.com/garbas/vim-snipmate this way:
|
||||||
|
|
||||||
|
let g:snipMate = {}
|
||||||
|
let g:snipMate.scope_aliases = {}
|
||||||
|
let g:snipMate.scope_aliases['ruby'] = 'ruby,ruby-rails,ruby-1.9'
|
||||||
|
|
||||||
|
or github.com/MarcWeber/UltiSnips this way:
|
||||||
|
|
||||||
|
|
||||||
|
let g:UltiSnips = {}
|
||||||
|
|
||||||
|
let g:UltiSnips.snipmate_ft_filter = {
|
||||||
|
\ 'default' : {'filetypes': ["FILETYPE"] },
|
||||||
|
\ 'ruby' : {'filetypes': ["ruby", "ruby-rails", "ruby-1.9"] },
|
||||||
|
|
||||||
|
|
||||||
|
If it happens that you work on a project requiring ruby-1.8 snippets instead,
|
||||||
|
consider using vim-addon-local-vimrc and override the filetypes.
|
||||||
|
|
||||||
|
Well - of course it may not make sense to create a new file for each
|
||||||
|
ruby-library-version triplet. Sometimes postfixing a name such as
|
||||||
|
|
||||||
|
migrate_lib_20_down
|
||||||
|
migrate_lib_20_up
|
||||||
|
|
||||||
|
will do it then if syntax has changed.
|
||||||
|
|
||||||
Language maintainers
|
Language maintainers
|
||||||
--------------------
|
--------------------
|
||||||
|
@ -76,6 +111,11 @@ Language maintainers
|
||||||
No one can really be proficient in all programming languages. If you would like
|
No one can really be proficient in all programming languages. If you would like
|
||||||
to maintain snippets for a language, please get in touch.
|
to maintain snippets for a language, please get in touch.
|
||||||
|
|
||||||
|
Notes: People are interested in snippets - and their interest may stop again
|
||||||
|
at will. So its ok if people maintain a language only for a short period of
|
||||||
|
time - or jump in and get things done - don't let the flow stop :)
|
||||||
|
vim-snippets is not like the "linux kernel".
|
||||||
|
|
||||||
* Python - [honza](http://github.com/honza)
|
* Python - [honza](http://github.com/honza)
|
||||||
* Javascript - [honza](http://github.com/honza)
|
* Javascript - [honza](http://github.com/honza)
|
||||||
* HTML Django - [honza](http://github.com/honza)
|
* HTML Django - [honza](http://github.com/honza)
|
||||||
|
|
|
@ -589,6 +589,8 @@ snippet bf
|
||||||
before_filter :${1:method}
|
before_filter :${1:method}
|
||||||
snippet bt
|
snippet bt
|
||||||
belongs_to :${1:association}
|
belongs_to :${1:association}
|
||||||
|
snippet btp
|
||||||
|
belongs_to :${1:association}, :polymorphic => true${2}
|
||||||
snippet crw
|
snippet crw
|
||||||
cattr_accessor :${1:attr_names}
|
cattr_accessor :${1:attr_names}
|
||||||
snippet defcreate
|
snippet defcreate
|
||||||
|
@ -890,22 +892,27 @@ snippet mrnc
|
||||||
rename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}
|
rename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}
|
||||||
snippet mcc
|
snippet mcc
|
||||||
change_column :${1:table}, :${2:column}, :${3:type}
|
change_column :${1:table}, :${2:column}, :${3:type}
|
||||||
snippet mccc
|
snippet mnc
|
||||||
t.column :${1:title}, :${2:string}
|
t.${1:string} :${2:title}${3:, null: false}${4}
|
||||||
snippet mct
|
snippet mct
|
||||||
create_table :${1:table_name} do |t|
|
create_table :${1:table_name} do |t|
|
||||||
t.column :${2:name}, :${3:type}
|
${2}
|
||||||
end
|
end
|
||||||
snippet migration
|
snippet migration class .. < ActiveRecord::Migration .. def up .. def down .. end
|
||||||
class ${1:class_name} < ActiveRecord::Migration
|
class ${1:class_name} < ActiveRecord::Migration
|
||||||
def self.up
|
def up
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.down
|
def down
|
||||||
|
end
|
||||||
|
end
|
||||||
|
snippet migration class .. < ActiveRecord::Migration .. def change .. end
|
||||||
|
class ${1:class_name} < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
${2}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
snippet trc
|
snippet trc
|
||||||
t.remove :${1:column}
|
t.remove :${1:column}
|
||||||
snippet tre
|
snippet tre
|
||||||
|
@ -913,7 +920,6 @@ snippet tre
|
||||||
${3}
|
${3}
|
||||||
snippet tref
|
snippet tref
|
||||||
t.references :${1:model}
|
t.references :${1:model}
|
||||||
|
|
||||||
#rspec
|
#rspec
|
||||||
snippet it
|
snippet it
|
||||||
it "${1:spec_name}" do
|
it "${1:spec_name}" do
|
||||||
|
@ -944,7 +950,9 @@ snippet aft
|
||||||
${2}
|
${2}
|
||||||
end
|
end
|
||||||
snippet let
|
snippet let
|
||||||
let(:${1:method}) { ${2} }
|
let(:${1:object}) ${2:block}
|
||||||
|
snippet let!
|
||||||
|
let!(:${1:object}) ${2:block}
|
||||||
snippet subj
|
snippet subj
|
||||||
subject { ${1} }
|
subject { ${1} }
|
||||||
snippet spec
|
snippet spec
|
||||||
|
|
Loading…
Reference in a new issue