Skip to content

Commit 9fa205b

Browse files
amosonnnickspoons
authored andcommitted
Remove indirection of s:MetadataFind
1 parent 2f9ac7f commit 9fa205b

File tree

1 file changed

+33
-44
lines changed

1 file changed

+33
-44
lines changed

autoload/OmniSharp/actions/definition.vim

Lines changed: 33 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -65,54 +65,14 @@ function! s:StdioFindRH(Callback, response) abort
6565
if g:OmniSharp_lookup_metadata
6666
\ && type(body) == type({})
6767
\ && type(body.MetadataSource) == type({})
68-
call s:MetadataFind(a:Callback, body)
68+
let Callback = function('s:CBMetadataFind', [a:Callback])
69+
call s:StdioMetadataFind(Callback, body)
6970
else
7071
call a:Callback(0, 1)
7172
endif
7273
endif
7374
endfunction
7475

75-
function! s:CBGotoDefinition(opts, location, fromMetadata) abort
76-
if type(a:location) != type({}) " Check whether a dict was returned
77-
echo 'Not found'
78-
let found = 0
79-
else
80-
let found = OmniSharp#locations#Navigate(a:location, get(a:opts, 'editcommand', 'edit'))
81-
if found && a:fromMetadata
82-
setlocal nomodifiable readonly
83-
endif
84-
endif
85-
if has_key(a:opts, 'Callback')
86-
call a:opts.Callback(found)
87-
endif
88-
return found
89-
endfunction
90-
91-
function! s:CBPreviewDefinition(location, fromMetadata) abort
92-
if type(a:location) != type({}) " Check whether a dict was returned
93-
echo 'Not found'
94-
else
95-
let jumped_from_preview = &previewwindow
96-
call OmniSharp#locations#Preview(a:location)
97-
echo OmniSharp#locations#Modify(a:location).filename
98-
if a:fromMetadata && !jumped_from_preview && &previewwindow
99-
silent wincmd p
100-
endif
101-
endif
102-
endfunction
103-
104-
function! s:MetadataFind(callback, metadata) abort
105-
if g:OmniSharp_server_stdio
106-
let Callback = function('s:CBMetadataFind', [a:callback])
107-
call s:StdioMetadataFind(Callback, a:metadata)
108-
return 1
109-
else
110-
echomsg 'GotoMetadata is not supported with the HTTP OmniSharp server. '
111-
\ . 'Please consider upgrading to the stdio version.'
112-
return 0
113-
endif
114-
endfunction
115-
11676
function! s:StdioMetadataFind(Callback, metadata) abort
11777
let opts = {
11878
\ 'ResponseHandler': function('s:StdioMetadataFindRH', [a:Callback, a:metadata]),
@@ -126,7 +86,7 @@ function! s:StdioMetadataFindRH(Callback, metadata, response) abort
12686
call a:Callback(a:response.Body, a:metadata)
12787
endfunction
12888

129-
function! s:CBMetadataFind(callback, response, metadata) abort
89+
function! s:CBMetadataFind(Callback, response, metadata) abort
13090
let host = OmniSharp#GetHost()
13191
let metadata_filename = fnamemodify(
13292
\ OmniSharp#util#TranslatePathForClient(a:response.SourceName), ':t')
@@ -142,7 +102,36 @@ function! s:CBMetadataFind(callback, response, metadata) abort
142102
\ 'lnum': a:metadata.Line,
143103
\ 'col': a:metadata.Column
144104
\}
145-
call a:callback(location, 1)
105+
call a:Callback(location, 1)
106+
endfunction
107+
108+
function! s:CBGotoDefinition(opts, location, fromMetadata) abort
109+
if type(a:location) != type({}) " Check whether a dict was returned
110+
echo 'Not found'
111+
let found = 0
112+
else
113+
let found = OmniSharp#locations#Navigate(a:location, get(a:opts, 'editcommand', 'edit'))
114+
if found && a:fromMetadata
115+
setlocal nomodifiable readonly
116+
endif
117+
endif
118+
if has_key(a:opts, 'Callback')
119+
call a:opts.Callback(found)
120+
endif
121+
return found
122+
endfunction
123+
124+
function! s:CBPreviewDefinition(location, fromMetadata) abort
125+
if type(a:location) != type({}) " Check whether a dict was returned
126+
echo 'Not found'
127+
else
128+
let jumped_from_preview = &previewwindow
129+
call OmniSharp#locations#Preview(a:location)
130+
echo OmniSharp#locations#Modify(a:location).filename
131+
if a:fromMetadata && !jumped_from_preview && &previewwindow
132+
silent wincmd p
133+
endif
134+
endif
146135
endfunction
147136

148137
let &cpoptions = s:save_cpo

0 commit comments

Comments
 (0)