diff options
Diffstat (limited to 'vim/bundle/vim-addon-mw-utils/autoload/tovl/scratch_buffer.vim')
m--------- | vim/bundle/vim-addon-mw-utils | 0 | ||||
-rw-r--r-- | vim/bundle/vim-addon-mw-utils/autoload/tovl/scratch_buffer.vim | 103 |
2 files changed, 0 insertions, 103 deletions
diff --git a/vim/bundle/vim-addon-mw-utils b/vim/bundle/vim-addon-mw-utils new file mode 160000 +Subproject 0c5612fa31ee434ba055e21c76f456244b3b510 diff --git a/vim/bundle/vim-addon-mw-utils/autoload/tovl/scratch_buffer.vim b/vim/bundle/vim-addon-mw-utils/autoload/tovl/scratch_buffer.vim deleted file mode 100644 index 217dca1..0000000 --- a/vim/bundle/vim-addon-mw-utils/autoload/tovl/scratch_buffer.vim +++ /dev/null @@ -1,103 +0,0 @@ -" old code - -augroup TOVLWrite -augroup end - -" =========== scratch buffer ========================================= -" a scratch buffer is a temporary buffer where the user can enter some text -" It can be used to get commit messages, edit configuration options and so on - -function! tovl#scratch_buffer#KeepIntactLineNr() - let i = 0 - while getline(i)!= b:keepIntact && i < line('$') - let i = i+1 - endwhile - if i > line('$') - return -1 - else - return i - endif -endfunction - -" opens a buffer and runs an action when the buffer is written -" keys: -" name : the name of the buffer -" onWrite : will be called on write -" onWrite is responsible for setlocal nomodified to indicate that -" saving has been successful -" help : callback returning additional information lines -" getContent : callback returning lines -" cmds : extra commands to be run (optional) -" (maybe you prefer adding them the default way afer the -" ScratchBuffer call. They'll be rerun on GetContents -" sp_cmd : the command to use to create the new buffer. Defaults to :e -" buftype : ... -" modifiable : 1 / 0 defaults to 1 -function! tovl#scratch_buffer#ScratchBuffer(opts) - let a:opts['name'] = get(a:opts,'name', 'strach_buffer_without_name') - exec get(a:opts, 'sp_cmd', 'e').' '.escape(a:opts['name'],' ') - let b:settings = a:opts - let b:settings['modifiable'] = get(a:opts,'modifiable', 1) - setlocal buftype=acwrite - command! -buffer -nargs=0 Help call tovl#scratch_buffer#Help() - - " setup write notification - au TOVLWrite BufWriteCmd <buffer> call tovl#scratch_buffer#Write() - - if has_key(a:opts,'getContent') - command! -buffer -nargs=0 GetContents call tovl#scratch_buffer#GetContents() - GetContents - if !b:settings['modifiable'] - setlocal nomodifiable - endif - endif - "let u=&undolevels - "setlocal undolevels=-1 - "exec 'setlocal undolevels='.u - - " mark buffer as not modified - setlocal nomodified - - au BufReadCmd <buffer> GetContents - - " run addittional commands - for cmd in get(a:opts,'cmds',[]) - exec cmd - endfor - silent echo get(a:opts,'echo_help', "type :Help for help") -endfunction - -" =========== utility functions ====================================== - -function! tovl#scratch_buffer#Write() - if has_key(b:settings, 'onWrite') - call funcref#Call(b:settings['onWrite']) - else - echo "don't know how to write. Option hasn't been passed" - endif -endfunction - -function! tovl#scratch_buffer#GetContents() - setlocal modifiable - " empty buffer - %g!//d - call append(0, funcref#Call(b:settings['getContent'])) - if !b:settings['modifiable'] - setlocal nomodifiable - endif - for cmd in get(b:settings,'cmds',[]) - exec cmd - endfor -endfunction - -function! tovl#scratch_buffer#Help() - let help = ["use :e! to reload contents, ZZ or :w(q) to write and quit" - \ ,"" - \ ,"Help for this scratch buffer:" - \ ,"=======================================================","",""] - \ + funcref#Call(get(b:settings, 'help', [])) - call tovl#scratch_buffer#ScratchBuffer({ - \ 'name' : "return Help of ".b:settings['name'], - \ 'getContent' : help - \ }) -endfunction |