Skip to content

Commit 2da657f

Browse files
committed
chore(Server.ServerState): drop ServerRequestContext.GetUserDocument()
1 parent ed55371 commit 2da657f

File tree

10 files changed

+70
-19
lines changed

10 files changed

+70
-19
lines changed

src/CSharpLanguageServer/Handlers/DocumentFormatting.fs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ open Ionide.LanguageServerProtocol.JsonRpc
77
open CSharpLanguageServer.State
88
open CSharpLanguageServer.Util
99
open CSharpLanguageServer.Roslyn.Document
10+
open CSharpLanguageServer.Lsp.Workspace
1011

11-
[<RequireQualifiedAccess>]
1212

13+
[<RequireQualifiedAccess>]
1314
module DocumentFormatting =
1415
let provider (_cc: ClientCapabilities) : U2<bool, DocumentFormattingOptions> option = Some(U2.C1 true)
1516

@@ -27,7 +28,9 @@ module DocumentFormatting =
2728
|> context.State.Settings.GetEffectiveFormattingOptions
2829
|> formatDocument
2930

30-
context.GetUserDocument p.TextDocument.Uri
31+
p.TextDocument.Uri
32+
|> workspaceDocument context.Workspace UserDocument
33+
|> Option.map fst
3134
|> async.Return
3235
|> Async.bindOption formatDocument
3336
|> Async.map LspResult.success

src/CSharpLanguageServer/Handlers/DocumentOnTypeFormatting.fs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ open Ionide.LanguageServerProtocol.JsonRpc
1010
open CSharpLanguageServer.State
1111
open CSharpLanguageServer.Roslyn.Conversions
1212
open CSharpLanguageServer.Roslyn.Document
13+
open CSharpLanguageServer.Lsp.Workspace
14+
1315

1416
[<RequireQualifiedAccess>]
1517
module DocumentOnTypeFormatting =
@@ -48,7 +50,12 @@ module DocumentOnTypeFormatting =
4850
else
4951
None
5052

51-
match context.GetUserDocument p.TextDocument.Uri with
53+
let docForUri =
54+
p.TextDocument.Uri
55+
|> workspaceDocument context.Workspace UserDocument
56+
|> Option.map fst
57+
58+
match docForUri with
5259
| None -> return None |> LspResult.success
5360
| Some doc ->
5461
let! options = getDocumentFormattingOptionSet doc lspFormattingOptions

src/CSharpLanguageServer/Handlers/DocumentRangeFormatting.fs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ open Ionide.LanguageServerProtocol.JsonRpc
88
open CSharpLanguageServer.State
99
open CSharpLanguageServer.Roslyn.Conversions
1010
open CSharpLanguageServer.Roslyn.Document
11+
open CSharpLanguageServer.Lsp.Workspace
1112

1213
[<RequireQualifiedAccess>]
1314
module DocumentRangeFormatting =
@@ -20,7 +21,12 @@ module DocumentRangeFormatting =
2021
else
2122
None
2223

23-
match context.GetUserDocument p.TextDocument.Uri with
24+
let docForUri =
25+
p.TextDocument.Uri
26+
|> workspaceDocument context.Workspace UserDocument
27+
|> Option.map fst
28+
29+
match docForUri with
2430
| None -> return None |> LspResult.success
2531
| Some doc ->
2632
let! ct = Async.CancellationToken

src/CSharpLanguageServer/Handlers/InlayHint.fs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ open Ionide.LanguageServerProtocol.JsonRpc
1313
open CSharpLanguageServer.State
1414
open CSharpLanguageServer.Roslyn.Conversions
1515
open CSharpLanguageServer.Util
16+
open CSharpLanguageServer.Lsp.Workspace
17+
1618

1719
[<RequireQualifiedAccess>]
1820
module InlayHint =
@@ -239,7 +241,12 @@ module InlayHint =
239241
Some(U3.C2 inlayHintOptions)
240242

241243
let handle (context: ServerRequestContext) (p: InlayHintParams) : AsyncLspResult<InlayHint[] option> = async {
242-
match context.GetUserDocument p.TextDocument.Uri with
244+
let docForUri =
245+
p.TextDocument.Uri
246+
|> workspaceDocument context.Workspace UserDocument
247+
|> Option.map fst
248+
249+
match docForUri with
243250
| None -> return None |> LspResult.success
244251
| Some doc ->
245252
let! ct = Async.CancellationToken

src/CSharpLanguageServer/Handlers/Rename.fs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ open CSharpLanguageServer.State
1414
open CSharpLanguageServer.Logging
1515
open CSharpLanguageServer.Roslyn.Conversions
1616
open CSharpLanguageServer.Util
17+
open CSharpLanguageServer.Lsp.Workspace
18+
1719

1820
[<RequireQualifiedAccess>]
1921
module Rename =
@@ -86,7 +88,13 @@ module Rename =
8688
| false -> Some(U2.C1 true)
8789

8890
let prepare (context: ServerRequestContext) (p: PrepareRenameParams) : AsyncLspResult<PrepareRenameResult option> = async {
89-
match context.GetUserDocument p.TextDocument.Uri with
91+
92+
let docForUri =
93+
p.TextDocument.Uri
94+
|> workspaceDocument context.Workspace UserDocument
95+
|> Option.map fst
96+
97+
match docForUri with
9098
| None -> return None |> LspResult.success
9199
| Some doc ->
92100
let! ct = Async.CancellationToken

src/CSharpLanguageServer/Handlers/SemanticTokens.fs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ open Microsoft.CodeAnalysis.Text
1010
open CSharpLanguageServer.State
1111
open CSharpLanguageServer.Util
1212
open CSharpLanguageServer.Roslyn.Conversions
13+
open CSharpLanguageServer.Lsp.Workspace
14+
1315

1416
[<RequireQualifiedAccess>]
1517
module SemanticTokens =
@@ -113,7 +115,8 @@ module SemanticTokens =
113115
(range: Range option)
114116
: AsyncLspResult<SemanticTokens option> =
115117
async {
116-
let docMaybe = context.GetUserDocument uri
118+
let docMaybe =
119+
uri |> workspaceDocument context.Workspace UserDocument |> Option.map fst
117120

118121
match docMaybe with
119122
| None -> return None |> LspResult.success

src/CSharpLanguageServer/Handlers/SignatureHelp.fs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ open CSharpLanguageServer.State
1414
open CSharpLanguageServer.Util
1515
open CSharpLanguageServer.Roslyn.Conversions
1616
open CSharpLanguageServer.Types
17+
open CSharpLanguageServer.Lsp.Workspace
18+
1719

1820
module SignatureInformation =
1921
let internal fromMethod (m: IMethodSymbol) =
@@ -56,14 +58,19 @@ module SignatureHelp =
5658
else
5759
Seq.zip types m.Parameters |> Seq.map (uncurry score) |> Seq.sum
5860

61+
5962
let provider (_: ClientCapabilities) : SignatureHelpOptions option =
6063
{ TriggerCharacters = Some([| "("; ","; "<"; "{"; "[" |])
6164
WorkDoneProgress = None
6265
RetriggerCharacters = None }
6366
|> Some
6467

68+
6569
let handle (context: ServerRequestContext) (p: SignatureHelpParams) : AsyncLspResult<SignatureHelp option> = async {
66-
let docMaybe = context.GetUserDocument p.TextDocument.Uri
70+
let docMaybe =
71+
p.TextDocument.Uri
72+
|> workspaceDocument context.Workspace UserDocument
73+
|> Option.map fst
6774

6875
match docMaybe with
6976
| None -> return None |> LspResult.success

src/CSharpLanguageServer/Handlers/TextDocumentSync.fs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,11 @@ module TextDocumentSync =
8686

8787
| None -> Ok() |> async.Return
8888

89-
let didChange (context: ServerRequestContext) (changeParams: DidChangeTextDocumentParams) : Async<LspResult<unit>> = async {
90-
let docMaybe = context.GetUserDocument changeParams.TextDocument.Uri
89+
let didChange (context: ServerRequestContext) (p: DidChangeTextDocumentParams) : Async<LspResult<unit>> = async {
90+
let docMaybe =
91+
p.TextDocument.Uri
92+
|> workspaceDocument context.Workspace UserDocument
93+
|> Option.map fst
9194

9295
match docMaybe with
9396
| None -> ()
@@ -98,8 +101,7 @@ module TextDocumentSync =
98101
//logMessage (sprintf "TextDocumentDidChange: sourceText: %s" (string sourceText))
99102

100103
let updatedSourceText =
101-
sourceText
102-
|> applyLspContentChangesOnRoslynSourceText changeParams.ContentChanges
104+
sourceText |> applyLspContentChangesOnRoslynSourceText p.ContentChanges
103105

104106
let updatedDoc = doc.WithText(updatedSourceText)
105107

@@ -108,7 +110,7 @@ module TextDocumentSync =
108110
let updatedSolution = updatedDoc.Project.Solution
109111

110112
context.Emit(SolutionChange updatedSolution)
111-
context.Emit(OpenDocAdd(changeParams.TextDocument.Uri, changeParams.TextDocument.Version, DateTime.Now))
113+
context.Emit(OpenDocAdd(p.TextDocument.Uri, p.TextDocument.Version, DateTime.Now))
112114

113115
return Ok()
114116
}

src/CSharpLanguageServer/Handlers/Workspace.fs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ open Microsoft.CodeAnalysis.Text
1111
open CSharpLanguageServer
1212
open CSharpLanguageServer.State
1313
open CSharpLanguageServer.State.ServerState
14-
open CSharpLanguageServer.Roslyn.Symbol
1514
open CSharpLanguageServer.Roslyn.Solution
1615
open CSharpLanguageServer.Logging
1716
open CSharpLanguageServer.Types
17+
open CSharpLanguageServer.Lsp.Workspace
18+
1819

1920
[<RequireQualifiedAccess>]
2021
module 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)

src/CSharpLanguageServer/State/ServerRequestContext.fs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@ type ServerRequestContext(requestId: int, state: ServerState, emitServerEvent) =
3535
)
3636
| None -> async.Return()
3737

38-
member this.GetUserDocument(u: string) =
39-
u |> workspaceDocument state.Workspace UserDocument |> Option.map fst
40-
4138
member _.Emit ev =
4239
match ev with
4340
| SolutionChange newSolution -> solutionMaybe <- Some newSolution

0 commit comments

Comments
 (0)