@@ -24,51 +24,94 @@ import { DocumentColorHandler } from '../../razor/src/documentColor/documentColo
2424import { razorOptions } from '../../shared/options' ;
2525import { ColorPresentationHandler } from '../../razor/src/colorPresentation/colorPresentationHandler' ;
2626import { ColorPresentation } from 'vscode-html-languageservice' ;
27+ import { DynamicFileInfoHandler } from '../../razor/src/dynamicFile/dynamicFileInfoHandler' ;
28+ import { ProvideDynamicFileParams } from '../../razor/src/dynamicFile/provideDynamicFileParams' ;
29+ import { ProvideDynamicFileResponse } from '../../razor/src/dynamicFile/provideDynamicFileResponse' ;
30+ import { RazorMapSpansParams } from '../../razor/src/mapping/razorMapSpansParams' ;
31+ import { RazorMapSpansResponse } from '../../razor/src/mapping/razorMapSpansResponse' ;
32+ import { MappingHandler } from '../../razor/src/mapping/mappingHandler' ;
33+ import { RazorMapTextChangesParams } from '../../razor/src/mapping/razorMapTextChangesParams' ;
34+ import { RazorMapTextChangesResponse } from '../../razor/src/mapping/razorMapTextChangesResponse' ;
2735
2836export function registerRazorEndpoints (
2937 context : vscode . ExtensionContext ,
30- languageServer : RoslynLanguageServer ,
38+ roslynLanguageServer : RoslynLanguageServer ,
3139 razorLogger : RazorLogger ,
3240 platformInfo : PlatformInformation
3341) {
3442 const logNotificationType = new NotificationType < LogMessageParams > ( 'razor/log' ) ;
35- languageServer . registerOnNotificationWithParams ( logNotificationType , ( params ) =>
43+ roslynLanguageServer . registerOnNotificationWithParams ( logNotificationType , ( params ) =>
3644 razorLogger . log ( params . message , params . type )
3745 ) ;
3846
39- if ( ! razorOptions . cohostingEnabled ) {
40- return ;
47+ if ( razorOptions . cohostingEnabled ) {
48+ registerCohostingEndpoints ( ) ;
49+ } else {
50+ registerNonCohostingEndpoints ( ) ;
4151 }
4252
43- const documentManager = new HtmlDocumentManager ( platformInfo , razorLogger ) ;
44- context . subscriptions . push ( documentManager . register ( ) ) ;
53+ return ;
4554
46- registerRequestHandler < HtmlUpdateParameters , void > ( 'razor/updateHtml' , async ( params ) => {
47- const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
48- await documentManager . updateDocumentText ( uri , params . text ) ;
49- } ) ;
55+ //
56+ // Local Functions
57+ //
58+ function registerCohostingEndpoints ( ) {
59+ const documentManager = new HtmlDocumentManager ( platformInfo , razorLogger ) ;
60+ context . subscriptions . push ( documentManager . register ( ) ) ;
5061
51- registerRequestHandler < DocumentColorParams , ColorInformation [ ] > ( DocumentColorRequest . method , async ( params ) => {
52- const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
53- const document = await documentManager . getDocument ( uri ) ;
54-
55- return await DocumentColorHandler . doDocumentColorRequest ( document . uri ) ;
56- } ) ;
62+ registerRequestHandler < HtmlUpdateParameters , void > ( 'razor/updateHtml' , async ( params ) => {
63+ const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
64+ await documentManager . updateDocumentText ( uri , params . text ) ;
65+ } ) ;
5766
58- registerRequestHandler < ColorPresentationParams , ColorPresentation [ ] > (
59- ColorPresentationRequest . method ,
60- async ( params ) => {
67+ registerRequestHandler < DocumentColorParams , ColorInformation [ ] > ( DocumentColorRequest . method , async ( params ) => {
6168 const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
6269 const document = await documentManager . getDocument ( uri ) ;
6370
64- return await ColorPresentationHandler . doColorPresentationRequest ( document . uri , params ) ;
65- }
66- ) ;
71+ return await DocumentColorHandler . doDocumentColorRequest ( document . uri ) ;
72+ } ) ;
73+
74+ registerRequestHandler < ColorPresentationParams , ColorPresentation [ ] > (
75+ ColorPresentationRequest . method ,
76+ async ( params ) => {
77+ const uri = UriConverter . deserialize ( params . textDocument . uri ) ;
78+ const document = await documentManager . getDocument ( uri ) ;
79+
80+ return await ColorPresentationHandler . doColorPresentationRequest ( document . uri , params ) ;
81+ }
82+ ) ;
83+ }
84+
85+ function registerNonCohostingEndpoints ( ) {
86+ registerRequestHandler < ProvideDynamicFileParams , ProvideDynamicFileResponse > (
87+ 'razor/provideDynamicFileInfo' ,
88+ async ( params ) =>
89+ vscode . commands . executeCommand ( DynamicFileInfoHandler . provideDynamicFileInfoCommand , params )
90+ ) ;
91+
92+ registerRequestHandler < ProvideDynamicFileParams , ProvideDynamicFileResponse > (
93+ 'razor/removeDynamicFileInfo' ,
94+ async ( params ) =>
95+ vscode . commands . executeCommand ( DynamicFileInfoHandler . provideDynamicFileInfoCommand , params )
96+ ) ;
97+ registerRequestHandler < RazorMapSpansParams , RazorMapSpansResponse > ( 'razor/mapSpans' , async ( params ) => {
98+ return await vscode . commands . executeCommand < RazorMapSpansResponse > ( MappingHandler . MapSpansCommand , params ) ;
99+ } ) ;
100+ registerRequestHandler < RazorMapTextChangesParams , RazorMapTextChangesResponse > (
101+ 'razor/mapTextChanges' ,
102+ async ( params ) => {
103+ return await vscode . commands . executeCommand < RazorMapTextChangesResponse > (
104+ MappingHandler . MapChangesCommand ,
105+ params
106+ ) ;
107+ }
108+ ) ;
109+ }
67110
68111 // Helper method that registers a request handler, and logs errors to the Razor logger.
69112 function registerRequestHandler < Params , Result > ( method : string , invocation : ( params : Params ) => Promise < Result > ) {
70113 const requestType = new RequestType < Params , Result , Error > ( method ) ;
71- languageServer . registerOnRequest ( requestType , async ( params ) => {
114+ roslynLanguageServer . registerOnRequest ( requestType , async ( params ) => {
72115 try {
73116 return await invocation ( params ) ;
74117 } catch ( error ) {
0 commit comments