Skip to content

Commit cafd80b

Browse files
authored
Merge pull request #748 from e82eric/master
Add FZF support for find members
2 parents b3c9c14 + 7ad4411 commit cafd80b

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

autoload/OmniSharp/actions/members.vim

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,11 @@ endfunction
9292
function! s:CBFindMembers(locations) abort
9393
let numMembers = len(a:locations)
9494
if numMembers > 0
95-
call OmniSharp#locations#SetQuickfixWithVerticalAlign(a:locations, 'Members')
95+
if get(g:, 'OmniSharp_selector_findmembers', '') == 'fzf'
96+
call fzf#OmniSharp#FindMembers(a:locations, 'Members')
97+
else
98+
call OmniSharp#locations#SetQuickfixWithVerticalAlign(a:locations, 'Members')
99+
endif
96100
endif
97101
return numMembers
98102
endfunction

autoload/fzf/OmniSharp.vim

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,17 @@ function! fzf#OmniSharp#FindUsages(quickfixes, target) abort
9999
\ 'sink': function('s:location_sink')})))
100100
endfunction
101101

102+
function! fzf#OmniSharp#FindMembers(quickfixes, target) abort
103+
let s:quickfixes = a:quickfixes
104+
let usages = []
105+
for quickfix in s:quickfixes
106+
call add(usages, s:format_line(quickfix))
107+
endfor
108+
let fzf_options = copy(get(g:, 'OmniSharp_fzf_options', { 'down': '40%' }))
109+
call fzf#run(fzf#wrap(
110+
\ extend(fzf_options, {
111+
\ 'source': usages,
112+
\ 'sink': function('s:location_sink')})))
113+
endfunction
114+
102115
" vim:et:sw=2:sts=2

doc/omnisharp-vim.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,10 @@ Default: '' >
394394
let g:OmniSharp_selector_findusages = 'fzf'
395395
<or >
396396
let g:OmniSharp_selector_findusages = 'clap'
397+
<
398+
*g:OmniSharp_selector_findmembers*
399+
Use this to allow fzf to control :OmniSharpFindMembers >
400+
let g:OmniSharp_selector_findmembers = 'fzf'
397401
<
398402
*g:OmniSharp_fzf_options*
399403
Use this to pass custom options to fzf >

0 commit comments

Comments
 (0)