@@ -92,29 +92,26 @@ export function registerRazorEndpoints(
92
92
const documentManager = new HtmlDocumentManager ( platformInfo , razorLogger ) ;
93
93
context . subscriptions . push ( documentManager . register ( ) ) ;
94
94
95
- registerRequestHandler < HtmlUpdateParameters , void > ( 'razor/updateHtml' , async ( params ) => {
95
+ registerMethodHandler < HtmlUpdateParameters , void > ( 'razor/updateHtml' , async ( params ) => {
96
96
const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
97
97
await documentManager . updateDocumentText ( uri , params . text ) ;
98
98
} ) ;
99
99
100
- registerRequestHandler < DocumentColorParams , ColorInformation [ ] > ( DocumentColorRequest . method , async ( params ) => {
100
+ registerRequestHandler ( DocumentColorRequest . type , async ( params ) => {
101
101
const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
102
102
const document = await documentManager . getDocument ( uri ) ;
103
103
104
104
return await DocumentColorHandler . doDocumentColorRequest ( document . uri ) ;
105
105
} ) ;
106
106
107
- registerRequestHandler < ColorPresentationParams , ColorPresentation [ ] > (
108
- ColorPresentationRequest . method ,
109
- async ( params ) => {
110
- const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
111
- const document = await documentManager . getDocument ( uri ) ;
107
+ registerRequestHandler ( ColorPresentationRequest . type , async ( params ) => {
108
+ const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
109
+ const document = await documentManager . getDocument ( uri ) ;
112
110
113
- return await ColorPresentationHandler . doColorPresentationRequest ( document . uri , params ) ;
114
- }
115
- ) ;
111
+ return await ColorPresentationHandler . doColorPresentationRequest ( document . uri , params ) ;
112
+ } ) ;
116
113
117
- registerRequestHandler < FoldingRangeParams , FoldingRange [ ] > ( FoldingRangeRequest . method , async ( params ) => {
114
+ registerRequestHandler ( FoldingRangeRequest . type , async ( params ) => {
118
115
const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
119
116
const document = await documentManager . getDocument ( uri ) ;
120
117
@@ -126,7 +123,7 @@ export function registerRazorEndpoints(
126
123
return FoldingRangeHandler . convertFoldingRanges ( results , razorLogger ) ;
127
124
} ) ;
128
125
129
- registerRequestHandler < HoverParams , Hover | undefined > ( HoverRequest . method , async ( params ) => {
126
+ registerRequestHandler ( HoverRequest . type , async ( params ) => {
130
127
const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
131
128
const document = await documentManager . getDocument ( uri ) ;
132
129
@@ -140,23 +137,20 @@ export function registerRazorEndpoints(
140
137
return rewriteHover ( applicableHover ) ;
141
138
} ) ;
142
139
143
- registerRequestHandler < DocumentHighlightParams , DocumentHighlight [ ] > (
144
- DocumentHighlightRequest . method ,
145
- async ( params ) => {
146
- const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
147
- const document = await documentManager . getDocument ( uri ) ;
140
+ registerRequestHandler ( DocumentHighlightRequest . type , async ( params ) => {
141
+ const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
142
+ const document = await documentManager . getDocument ( uri ) ;
148
143
149
- const results = await vscode . commands . executeCommand < vscode . DocumentHighlight [ ] > (
150
- 'vscode.executeDocumentHighlights' ,
151
- document . uri ,
152
- params . position
153
- ) ;
144
+ const results = await vscode . commands . executeCommand < vscode . DocumentHighlight [ ] > (
145
+ 'vscode.executeDocumentHighlights' ,
146
+ document . uri ,
147
+ params . position
148
+ ) ;
154
149
155
- return rewriteHighlight ( results ) ;
156
- }
157
- ) ;
150
+ return rewriteHighlight ( results ) ;
151
+ } ) ;
158
152
159
- registerRequestHandler < CompletionParams , CompletionList > ( CompletionRequest . method , async ( params ) => {
153
+ registerRequestHandler ( CompletionRequest . type , async ( params ) => {
160
154
const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
161
155
const document = await documentManager . getDocument ( uri ) ;
162
156
@@ -167,7 +161,7 @@ export function registerRazorEndpoints(
167
161
) ;
168
162
} ) ;
169
163
170
- registerRequestHandler < ReferenceParams , Location [ ] > ( ReferencesRequest . method , async ( params ) => {
164
+ registerRequestHandler ( ReferencesRequest . type , async ( params ) => {
171
165
const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
172
166
const document = await documentManager . getDocument ( uri ) ;
173
167
@@ -180,7 +174,7 @@ export function registerRazorEndpoints(
180
174
return rewriteLocations ( results ) ;
181
175
} ) ;
182
176
183
- registerRequestHandler < ImplementationParams , Location [ ] > ( ImplementationRequest . method , async ( params ) => {
177
+ registerRequestHandler ( ImplementationRequest . type , async ( params ) => {
184
178
const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
185
179
const document = await documentManager . getDocument ( uri ) ;
186
180
@@ -193,7 +187,7 @@ export function registerRazorEndpoints(
193
187
return rewriteLocations ( results ) ;
194
188
} ) ;
195
189
196
- registerRequestHandler < DefinitionParams , Location [ ] > ( DefinitionRequest . method , async ( params ) => {
190
+ registerRequestHandler ( DefinitionRequest . type , async ( params ) => {
197
191
const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
198
192
const document = await documentManager . getDocument ( uri ) ;
199
193
@@ -206,77 +200,68 @@ export function registerRazorEndpoints(
206
200
return rewriteLocations ( results ) ;
207
201
} ) ;
208
202
209
- registerRequestHandler < SignatureHelpParams , SignatureHelp | undefined > (
210
- SignatureHelpRequest . method ,
211
- async ( params ) => {
212
- const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
213
- const document = await documentManager . getDocument ( uri ) ;
214
-
215
- const results = await vscode . commands . executeCommand < vscode . SignatureHelp > (
216
- 'vscode.executeSignatureHelpProvider' ,
217
- document . uri ,
218
- params . position
219
- ) ;
203
+ registerRequestHandler ( SignatureHelpRequest . type , async ( params ) => {
204
+ const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
205
+ const document = await documentManager . getDocument ( uri ) ;
220
206
221
- if ( ! results ) {
222
- return undefined ;
223
- }
207
+ const results = await vscode . commands . executeCommand < vscode . SignatureHelp > (
208
+ 'vscode.executeSignatureHelpProvider' ,
209
+ document . uri ,
210
+ params . position
211
+ ) ;
224
212
225
- return rewriteSignatureHelp ( results ) ;
213
+ if ( ! results ) {
214
+ return undefined ;
226
215
}
227
- ) ;
228
216
229
- registerRequestHandler < DocumentFormattingParams , TextEdit [ ] | undefined > (
230
- DocumentFormattingRequest . method ,
231
- async ( params ) => {
232
- const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
233
- const document = await documentManager . getDocument ( uri ) ;
217
+ return rewriteSignatureHelp ( results ) ;
218
+ } ) ;
234
219
235
- const content = document . getContent ( ) ;
236
- const options = < vscode . FormattingOptions > params . options ;
220
+ registerRequestHandler ( DocumentFormattingRequest . type , async ( params ) => {
221
+ const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
222
+ const document = await documentManager . getDocument ( uri ) ;
237
223
238
- const response = await FormattingHandler . getHtmlFormattingResult ( document . uri , content , options ) ;
239
- return response ?. edits ;
240
- }
241
- ) ;
224
+ const content = document . getContent ( ) ;
225
+ const options = < vscode . FormattingOptions > params . options ;
242
226
243
- registerRequestHandler < DocumentOnTypeFormattingParams , TextEdit [ ] | undefined > (
244
- DocumentOnTypeFormattingRequest . method ,
245
- async ( params ) => {
246
- const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
247
- const document = await documentManager . getDocument ( uri ) ;
248
-
249
- const content = document . getContent ( ) ;
250
- const options = < vscode . FormattingOptions > params . options ;
251
-
252
- const response = await FormattingHandler . getHtmlOnTypeFormattingResult (
253
- document . uri ,
254
- content ,
255
- params . position ,
256
- params . ch ,
257
- options
258
- ) ;
259
- return response ?. edits ;
260
- }
261
- ) ;
227
+ const response = await FormattingHandler . getHtmlFormattingResult ( document . uri , content , options ) ;
228
+ return response ?. edits ;
229
+ } ) ;
230
+
231
+ registerRequestHandler ( DocumentOnTypeFormattingRequest . type , async ( params ) => {
232
+ const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
233
+ const document = await documentManager . getDocument ( uri ) ;
234
+
235
+ const content = document . getContent ( ) ;
236
+ const options = < vscode . FormattingOptions > params . options ;
237
+
238
+ const response = await FormattingHandler . getHtmlOnTypeFormattingResult (
239
+ document . uri ,
240
+ content ,
241
+ params . position ,
242
+ params . ch ,
243
+ options
244
+ ) ;
245
+ return response ?. edits ;
246
+ } ) ;
262
247
}
263
248
264
249
function registerNonCohostingEndpoints ( ) {
265
- registerRequestHandler < ProvideDynamicFileParams , ProvideDynamicFileResponse > (
250
+ registerMethodHandler < ProvideDynamicFileParams , ProvideDynamicFileResponse > (
266
251
'razor/provideDynamicFileInfo' ,
267
252
async ( params ) =>
268
253
vscode . commands . executeCommand ( DynamicFileInfoHandler . provideDynamicFileInfoCommand , params )
269
254
) ;
270
255
271
- registerRequestHandler < ProvideDynamicFileParams , ProvideDynamicFileResponse > (
256
+ registerMethodHandler < ProvideDynamicFileParams , ProvideDynamicFileResponse > (
272
257
'razor/removeDynamicFileInfo' ,
273
258
async ( params ) =>
274
259
vscode . commands . executeCommand ( DynamicFileInfoHandler . provideDynamicFileInfoCommand , params )
275
260
) ;
276
- registerRequestHandler < RazorMapSpansParams , RazorMapSpansResponse > ( 'razor/mapSpans' , async ( params ) => {
261
+ registerMethodHandler < RazorMapSpansParams , RazorMapSpansResponse > ( 'razor/mapSpans' , async ( params ) => {
277
262
return await vscode . commands . executeCommand < RazorMapSpansResponse > ( MappingHandler . MapSpansCommand , params ) ;
278
263
} ) ;
279
- registerRequestHandler < RazorMapTextChangesParams , RazorMapTextChangesResponse > (
264
+ registerMethodHandler < RazorMapTextChangesParams , RazorMapTextChangesResponse > (
280
265
'razor/mapTextChanges' ,
281
266
async ( params ) => {
282
267
return await vscode . commands . executeCommand < RazorMapTextChangesResponse > (
@@ -288,7 +273,14 @@ export function registerRazorEndpoints(
288
273
}
289
274
290
275
// Helper method that registers a request handler, and logs errors to the Razor logger.
291
- function registerRequestHandler < Params , Result > ( method : string , invocation : ( params : Params ) => Promise < Result > ) {
276
+ function registerRequestHandler < Params , Result , Error > (
277
+ type : RequestType < Params , Result , Error > ,
278
+ invocation : ( params : Params ) => Promise < Result >
279
+ ) {
280
+ return registerMethodHandler < Params , Result > ( type . method , invocation ) ;
281
+ }
282
+
283
+ function registerMethodHandler < Params , Result > ( method : string , invocation : ( params : Params ) => Promise < Result > ) {
292
284
const requestType = new RequestType < Params , Result , Error > ( method ) ;
293
285
roslynLanguageServer . registerOnRequest ( requestType , async ( params ) => {
294
286
try {
0 commit comments