Skip to content

Commit 7cbac27

Browse files
committed
Mock IRemoteHostClientProvider to silence some of the warnings
1 parent c58a91a commit 7cbac27

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/CSharpLanguageServer/RoslynHelpers.fs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ open Microsoft.CodeAnalysis.Text
2525
open CSharpLanguageServer
2626
open CSharpLanguageServer.Conversions
2727
open CSharpLanguageServer.Logging
28-
open CSharpLanguageServer.Types
2928

3029
type 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+
291306
type 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

Comments
 (0)