diff vim/vimfiles/autoload/ctrlp/line.vim @ 0:48859d9c82c5

Initial commit, based on settings used at work (minus NERD tree & some tagging plugins).
author Brian Neal <bgneal@gmail.com>
date Tue, 03 Jan 2012 20:53:13 -0600
parents
children 92af3257a261
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/vimfiles/autoload/ctrlp/line.vim	Tue Jan 03 20:53:13 2012 -0600
@@ -0,0 +1,61 @@
+" =============================================================================
+" File:          autoload/ctrlp/line.vim
+" Description:   Line extension - find a line in any buffer.
+" Author:        Kien Nguyen <github.com/kien>
+" =============================================================================
+
+" Init {{{1
+if exists('g:loaded_ctrlp_line') && g:loaded_ctrlp_line
+	fini
+en
+let g:loaded_ctrlp_line = 1
+
+let s:line_var = ['ctrlp#line#init()', 'ctrlp#line#accept', 'lines', 'line']
+
+let g:ctrlp_ext_vars = exists('g:ctrlp_ext_vars') && !empty(g:ctrlp_ext_vars)
+	\ ? add(g:ctrlp_ext_vars, s:line_var) : [s:line_var]
+
+let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
+" Public {{{1
+fu! ctrlp#line#init()
+	let [bufs, lines] = [[], []]
+	for each in range(1, bufnr('$'))
+		if getbufvar(each, '&bl')
+			let bufname = bufname(each)
+			if strlen(bufname) && bufname != 'ControlP'
+				cal add(bufs, fnamemodify(bufname, ':p'))
+			en
+		en
+	endfo
+	cal filter(bufs, 'filereadable(v:val)')
+	for each in bufs
+		let from_file = readfile(each)
+		cal map(from_file, 'tr(v:val, ''	'', '' '')')
+		let [id, len_ff, bufnr] = [1, len(from_file), bufnr(each)]
+		wh id <= len_ff
+			let from_file[id-1] .= '	#:'.bufnr.':'.id
+			let id += 1
+		endw
+		cal filter(from_file, 'v:val !~ ''^\s*\t#:\d\+:\d\+$''')
+		cal extend(lines, from_file)
+	endfo
+	sy match CtrlPTabExtra '\zs\t.*\ze$'
+	hi link CtrlPTabExtra Comment
+	retu lines
+endf
+
+fu! ctrlp#line#accept(mode, str)
+	let info   = get(split(a:str, '\t#:\ze\d\+:\d\+$'), 1, 0)
+	let bufnr  = str2nr(get(split(info, ':'), 0, 0))
+	let linenr = get(split(info, ':'), 1, 0)
+	if bufnr
+		cal ctrlp#acceptfile(a:mode, fnamemodify(bufname(bufnr), ':p'), linenr)
+	en
+endf
+
+fu! ctrlp#line#id()
+	retu s:id
+endf
+"}}}
+
+" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2