@@ -65,54 +65,14 @@ function! s:StdioFindRH(Callback, response) abort
65
65
if g: OmniSharp_lookup_metadata
66
66
\ && type (body) == type ({})
67
67
\ && 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)
69
70
else
70
71
call a: Callback (0 , 1 )
71
72
endif
72
73
endif
73
74
endfunction
74
75
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
-
116
76
function ! s: StdioMetadataFind (Callback, metadata) abort
117
77
let opts = {
118
78
\ ' ResponseHandler' : function (' s:StdioMetadataFindRH' , [a: Callback , a: metadata ]),
@@ -126,7 +86,7 @@ function! s:StdioMetadataFindRH(Callback, metadata, response) abort
126
86
call a: Callback (a: response .Body, a: metadata )
127
87
endfunction
128
88
129
- function ! s: CBMetadataFind (callback , response, metadata) abort
89
+ function ! s: CBMetadataFind (Callback , response, metadata) abort
130
90
let host = OmniSharp#GetHost ()
131
91
let metadata_filename = fnamemodify (
132
92
\ OmniSharp#util#TranslatePathForClient (a: response .SourceName), ' :t' )
@@ -142,7 +102,36 @@ function! s:CBMetadataFind(callback, response, metadata) abort
142
102
\ ' lnum' : a: metadata .Line,
143
103
\ ' col' : a: metadata .Column
144
104
\}
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
146
135
endfunction
147
136
148
137
let &cpoptions = s: save_cpo
0 commit comments