Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd8fa763

Browse files
authored
Added more logging in completion provider (#4869)
1 parente71069d commitd8fa763

File tree

6 files changed

+56
-2
lines changed

6 files changed

+56
-2
lines changed

‎src/fsharp/Logger.fs‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,16 @@ type FSharpCompilerEventSource() =
3131
if this.IsEnabled()then
3232
this.WriteEvent(3, int functionId)
3333

34+
[<Event(4)>]
35+
memberthis.BlockMessageStart(message:string,functionId:LogCompilerFunctionId)=
36+
if this.IsEnabled()then
37+
this.WriteEvent(4, message, int functionId)
38+
39+
[<Event(5)>]
40+
memberthis.BlockMessageStop(message:string,functionId:LogCompilerFunctionId)=
41+
if this.IsEnabled()then
42+
this.WriteEvent(5, message, int functionId)
43+
3444
[<RequireQualifiedAccess>]
3545
moduleLogger=
3646

@@ -45,3 +55,9 @@ module Logger =
4555
{new IDisposablewith
4656
member__.Dispose()=
4757
FSharpCompilerEventSource.Instance.BlockStop(functionId)}
58+
59+
letLogBlockMessage message functionId=
60+
FSharpCompilerEventSource.Instance.BlockMessageStart(message, functionId)
61+
{new IDisposablewith
62+
member__.Dispose()=
63+
FSharpCompilerEventSource.Instance.BlockMessageStop(message, functionId)}

‎src/fsharp/Logger.fsi‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,5 @@ module internal Logger =
1919
valLogBlockStop:LogCompilerFunctionId->unit
2020

2121
valLogBlock:LogCompilerFunctionId->IDisposable
22+
23+
valLogBlockMessage:message:string->LogCompilerFunctionId->IDisposable

‎src/fsharp/service/service.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2656,7 +2656,7 @@ type BackgroundCompiler(legacyReferenceResolver, projectCacheSize, keepAssemblyC
26562656
letexecWithReactorAsync action= reactor.EnqueueAndAwaitOpAsync(userOpName,"ParseAndCheckFileInProject", filename, action)
26572657
async{
26582658
try
2659-
use _logBlock= Logger.LogBlock(LogCompilerFunctionId.ParseAndCheckFileInProject)
2659+
use _logBlock= Logger.LogBlockMessage filenameLogCompilerFunctionId.ParseAndCheckFileInProject
26602660

26612661
if implicitlyStartBackgroundWorkthen
26622662
reactor.CancelBackgroundOp()// cancel the background work, since we will start new work after we're done

‎vsintegration/src/FSharp.Editor/Common/Logger.fs‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ type LogEditorFunctionId =
99
| SemanticClassification=1
1010
| SyntacticClassification=2
1111
| HandleCommandLineArgs=3
12+
| Completion_ShouldTrigger=4
13+
| Completion_ProvideCompletionsAsync=5
14+
| Completion_GetDescriptionAsync=6
15+
| Completion_GetChangeAsync=7
1216

1317
/// This is for ETW tracing across FSharp.Editor.
1418
[<Sealed;EventSource(Name="FSharpEditor")>]
@@ -33,6 +37,16 @@ type FSharpEditorEventSource() =
3337
if this.IsEnabled()then
3438
this.WriteEvent(3, int functionId)
3539

40+
[<Event(4)>]
41+
memberthis.BlockMessageStart(message:string,functionId:LogEditorFunctionId)=
42+
if this.IsEnabled()then
43+
this.WriteEvent(4, message, int functionId)
44+
45+
[<Event(5)>]
46+
memberthis.BlockMessageStop(message:string,functionId:LogEditorFunctionId)=
47+
if this.IsEnabled()then
48+
this.WriteEvent(5, message, int functionId)
49+
3650
[<RequireQualifiedAccess>]
3751
moduleLogger=
3852

@@ -47,4 +61,10 @@ module Logger =
4761
{new IDisposablewith
4862
member__.Dispose()=
4963
FSharpEditorEventSource.Instance.BlockStop(functionId)}
64+
65+
letLogBlockMessage message functionId=
66+
FSharpEditorEventSource.Instance.BlockMessageStart(message, functionId)
67+
{new IDisposablewith
68+
member__.Dispose()=
69+
FSharpEditorEventSource.Instance.BlockMessageStop(message, functionId)}
5070

‎vsintegration/src/FSharp.Editor/Common/Logger.fsi‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ type (* internal *) LogEditorFunctionId =
1010
| SemanticClassification=1
1111
| SyntacticClassification=2
1212
| HandleCommandLineArgs=3
13+
| Completion_ShouldTrigger=4
14+
| Completion_ProvideCompletionsAsync=5
15+
| Completion_GetDescriptionAsync=6
16+
| Completion_GetChangeAsync=7
1317

1418
[<RequireQualifiedAccess>]
1519
moduleinternalLogger=
@@ -21,3 +25,5 @@ module internal Logger =
2125
valLogBlockStop:LogEditorFunctionId->unit
2226

2327
valLogBlock:LogEditorFunctionId->IDisposable
28+
29+
valLogBlockMessage:message:string->LogEditorFunctionId->IDisposable

‎vsintegration/src/FSharp.Editor/Completion/CompletionProvider.fs‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ open Microsoft.FSharp.Compiler.SourceCodeServices
2323
openSystem.Runtime.Caching
2424
openSystem.Collections.Concurrent
2525

26+
moduleLogger= Microsoft.VisualStudio.FSharp.Editor.Logger
27+
2628
typeinternalFSharpCompletionProvider
2729
(
2830
workspace: Workspace,
@@ -206,6 +208,8 @@ type internal FSharpCompletionProvider
206208
}
207209

208210
overridethis.ShouldTriggerCompletion(sourceText:SourceText,caretPosition:int,trigger:CompletionTrigger,_:OptionSet)=
211+
use _logBlock= Logger.LogBlockMessage this.Name LogEditorFunctionId.Completion_ShouldTrigger
212+
209213
letgetInfo()=
210214
letdocumentId= workspace.GetDocumentIdInCurrentContext(sourceText.Container)
211215
letdocument= workspace.CurrentSolution.GetDocument(documentId)
@@ -216,6 +220,8 @@ type internal FSharpCompletionProvider
216220

217221
overridethis.ProvideCompletionsAsync(context:Completion.CompletionContext)=
218222
asyncMaybe{
223+
use _logBlock= Logger.LogBlockMessage context.Document.Name LogEditorFunctionId.Completion_ProvideCompletionsAsync
224+
219225
letdocument= context.Document
220226
let!sourceText= context.Document.GetTextAsync(context.CancellationToken)
221227
letdefines= projectInfoManager.GetCompilationDefinesForEditingDocument(document)
@@ -233,8 +239,10 @@ type internal FSharpCompletionProvider
233239
context.AddItems(results)
234240
}|> Async.Ignore|> RoslynHelpers.StartAsyncUnitAsTask context.CancellationToken
235241

236-
overridethis.GetDescriptionAsync(_:Document,completionItem:Completion.CompletionItem,cancellationToken:CancellationToken):Task<CompletionDescription>=
242+
overridethis.GetDescriptionAsync(document:Document,completionItem:Completion.CompletionItem,cancellationToken:CancellationToken):Task<CompletionDescription>=
237243
async{
244+
use _logBlock= Logger.LogBlockMessage document.Name LogEditorFunctionId.Completion_GetDescriptionAsync
245+
238246
match declarationItemsData.TryGetValue(completionItem.DisplayText)with
239247
|true, declarationItem->
240248
let!description= declarationItem.StructuredDescriptionTextAsync
@@ -249,6 +257,8 @@ type internal FSharpCompletionProvider
249257

250258
overridethis.GetChangeAsync(document,item,_,cancellationToken):Task<CompletionChange>=
251259
async{
260+
use _logBlock= Logger.LogBlockMessage document.Name LogEditorFunctionId.Completion_GetChangeAsync
261+
252262
letfullName=
253263
match item.Properties.TryGetValue FullNamePropNamewith
254264
|true, x-> Some x

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp