Initial commit.
This commit is contained in:
69
vim/autoload/railmoon/oscan/extractor/paste.vim
Normal file
69
vim/autoload/railmoon/oscan/extractor/paste.vim
Normal file
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user