@@ -11,10 +11,11 @@ open Microsoft.CodeAnalysis.Text
1111open CSharpLanguageServer
1212open CSharpLanguageServer.State
1313open CSharpLanguageServer.State .ServerState
14- open CSharpLanguageServer.Roslyn .Symbol
1514open CSharpLanguageServer.Roslyn .Solution
1615open CSharpLanguageServer.Logging
1716open CSharpLanguageServer.Types
17+ open CSharpLanguageServer.Lsp .Workspace
18+
1819
1920[<RequireQualifiedAccess>]
2021module Workspace =
@@ -25,12 +26,14 @@ module Workspace =
2526 FileOperations = None }
2627 |> Some
2728
29+
2830 let dynamicRegistrationForDidChangeWatchedFiles ( clientCapabilities : ClientCapabilities ) =
2931 clientCapabilities.Workspace
3032 |> Option.bind _. DidChangeWatchedFiles
3133 |> Option.bind _. DynamicRegistration
3234 |> Option.defaultValue false
3335
36+
3437 let didChangeWatchedFilesRegistration ( clientCapabilities : ClientCapabilities ) : Registration option =
3538 match dynamicRegistrationForDidChangeWatchedFiles clientCapabilities with
3639 | false -> None
@@ -47,8 +50,11 @@ module Workspace =
4750 Method = " workspace/didChangeWatchedFiles"
4851 RegisterOptions = registerOptions |> serialize |> Some }
4952
53+
5054 let private tryReloadDocumentOnUri logger ( context : ServerRequestContext ) uri = async {
51- match context.GetUserDocument uri with
55+ let doc = uri |> workspaceDocument context.Workspace UserDocument |> Option.map fst
56+
57+ match doc with
5258 | Some doc ->
5359 let fileText = uri |> Util.parseFileUri |> File.ReadAllText
5460 let updatedDoc = SourceText.From( fileText) |> doc.WithText
@@ -70,15 +76,19 @@ module Workspace =
7076 | None -> ()
7177 }
7278
79+
7380 let private removeDocument ( context : ServerRequestContext ) uri =
74- match context.GetUserDocument uri with
81+ let doc = uri |> workspaceDocument context.Workspace UserDocument |> Option.map fst
82+
83+ match doc with
7584 | Some existingDoc ->
7685 let updatedProject = existingDoc.Project.RemoveDocument( existingDoc.Id)
7786
7887 context.Emit( SolutionChange updatedProject.Solution)
7988 context.Emit( OpenDocRemove uri)
8089 | None -> ()
8190
91+
8292 let didChangeWatchedFiles
8393 ( context : ServerRequestContext )
8494 ( p : DidChangeWatchedFilesParams )
@@ -107,6 +117,7 @@ module Workspace =
107117 return Ok()
108118 }
109119
120+
110121 let didChangeConfiguration
111122 ( context : ServerRequestContext )
112123 ( configParams : DidChangeConfigurationParams )
0 commit comments