Merge pull request #21 from craigjb/master

smartcase, ignorecase, and visual selection
This commit is contained in:
John Remmen 2018-08-13 21:55:08 -07:00 committed by GitHub
commit 63df8132f5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -24,10 +24,27 @@ if !exists('g:rg_window_location')
let g:rg_window_location = 'botright'
endif
fun! g:RgVisual() range
call s:RgGrepContext(function('s:RgSearch'), s:RgGetVisualSelection())
endfun
fun! s:Rg(txt)
call s:RgGrepContext(function('s:RgSearch'), s:RgSearchTerm(a:txt))
endfun
fun! s:RgGetVisualSelection()
" Why is this not a built-in Vim script function?!
let [line_start, column_start] = getpos("'<")[1:2]
let [line_end, column_end] = getpos("'>")[1:2]
let lines = getline(line_start, line_end)
if len(lines) == 0
return ''
endif
let lines[-1] = lines[-1][: column_end - (&selection == 'inclusive' ? 1 : 2)]
let lines[0] = lines[0][column_start - 1:]
return join(lines, "\n")
endfun
fun! s:RgSearchTerm(txt)
if empty(a:txt)
return expand("<cword>")
@ -37,7 +54,14 @@ fun! s:RgSearchTerm(txt)
endfun
fun! s:RgSearch(txt)
silent! exe 'grep! ' . a:txt
let l:rgopts = ' '
if &ignorecase == 1
let l:rgopts = l:rgopts . '-i '
endif
if &smartcase == 1
let l:rgopts = l:rgopts . '-S '
endif
silent! exe 'grep! ' . l:rgopts . '"' . a:txt . '"'
if len(getqflist())
exe g:rg_window_location 'copen'
redraw!