@@ -25,7 +25,6 @@ open Microsoft.CodeAnalysis.Text
2525open CSharpLanguageServer
2626open CSharpLanguageServer.Conversions
2727open CSharpLanguageServer.Logging
28- open CSharpLanguageServer.Types
2928
3029type DocumentSymbolCollectorForMatchingSymbolName
3130 ( documentUri, sym: ISymbol) =
@@ -288,6 +287,22 @@ type MoveStaticMembersOptionsServiceInterceptor (_logMessage) =
288287 | _ ->
289288 NotImplementedException( string invocation.Method) |> raise
290289
290+ type RemoteHostClientProviderInterceptor ( _logMessage ) =
291+ interface IInterceptor with
292+ member __.Intercept ( invocation : IInvocation ) =
293+
294+ match invocation.Method.Name with
295+ | " TryGetRemoteHostClientAsync" ->
296+ let workspacesAssembly = Assembly.Load( " Microsoft.CodeAnalysis.Workspaces" )
297+ let remoteHostClientType = workspacesAssembly.GetType( " Microsoft.CodeAnalysis.Remote.RemoteHostClient" )
298+ let methodInfo = typeof< Task>. GetMethod( " FromResult" , BindingFlags.Static ||| BindingFlags.Public)
299+ let genericMethod = methodInfo.MakeGenericMethod( remoteHostClientType)
300+ let nullResultTask = genericMethod.Invoke( null , [| null |])
301+ invocation.ReturnValue <- nullResultTask
302+
303+ | _ ->
304+ NotImplementedException( string invocation.Method) |> raise
305+
291306type WorkspaceServicesInterceptor () =
292307 let logger = LogProvider.getLoggerByName " WorkspaceServicesInterceptor"
293308
@@ -321,6 +336,10 @@ type WorkspaceServicesInterceptor () =
321336 let interceptor = MoveStaticMembersOptionsServiceInterceptor()
322337 generator.CreateInterfaceProxyWithoutTarget( serviceType, interceptor)
323338
339+ | " Microsoft.CodeAnalysis.Remote.IRemoteHostClientProvider" ->
340+ let interceptor = RemoteHostClientProviderInterceptor()
341+ generator.CreateInterfaceProxyWithoutTarget( serviceType, interceptor)
342+
324343 | _ ->
325344 logger.debug (
326345 Log.setMessage " GetService failed for {serviceType}"
0 commit comments