@@ -2,7 +2,7 @@ import { MessageReader, MessageWriter, Message, Event, DataCallback, Disposable,
22import {
33 MonacoLanguageClient , Middleware , ErrorHandler , IConnectionProvider , MessageTransports
44} from 'monaco-languageclient'
5- import { InitializeParams , InitializeRequest , RegistrationParams , RegistrationRequest , UnregistrationParams , UnregistrationRequest } from 'vscode-languageserver-protocol'
5+ import { InitializeParams , InitializeRequest } from 'vscode-languageserver-protocol'
66import { LanguageClientId , LanguageClientOptions } from './languageClientOptions'
77import { Infrastructure } from './infrastructure'
88
@@ -61,44 +61,13 @@ class MiddlewareMessageReader implements MessageReader {
6161
6262/**
6363 * Add some hacks on transform for:
64- * - Dedup server capability registrations (for omnisharp roslyn)
6564 * - Fix paths on windows
6665 * @param transports The original transports
6766 * @returns The transformed transports
6867 */
6968function hackTransports ( transports : MessageTransports ) : MessageTransports {
70- const existingRegistrations = new Set < string > ( )
7169 return {
7270 reader : new MiddlewareMessageReader ( transports . reader , message => {
73- if ( Message . isRequest ( message ) ) {
74- if ( message . method === RegistrationRequest . type . method ) {
75- const registrationParams = message . params as RegistrationParams
76- const filteredRegistrations = registrationParams . registrations . filter ( registration => {
77- const alreadyExisting = existingRegistrations . has ( registration . id )
78- if ( alreadyExisting ) {
79- console . warn ( 'Registration already existing' , registration . id , registration . method )
80- }
81- return ! alreadyExisting
82- } )
83- registrationParams . registrations . forEach ( registration => {
84- existingRegistrations . add ( registration . id )
85- } )
86- const fixedParams : RegistrationParams = {
87- ...registrationParams ,
88- registrations : filteredRegistrations
89- }
90- return {
91- ...message ,
92- params : fixedParams
93- }
94- }
95- if ( message . method === UnregistrationRequest . type . method ) {
96- const unregistrationParams = message . params as UnregistrationParams
97- for ( const unregistration of unregistrationParams . unregisterations ) {
98- existingRegistrations . delete ( unregistration . id )
99- }
100- }
101- }
10271 return message
10372 } ) ,
10473 writer : new MiddlewareMessageWriter ( transports . writer , message => {
0 commit comments