Skip to content

FSharpSynchronousIndentationService is, well, UI synchronous #10156

@dsyme

Description

@dsyme

I'm debugging UI freeze ups when hitting "Return" in scripts and pasting into some scripts.

This is a devenv.exe UI callstack featuring "FSharpSynchronousIndentationService.GetIndentation" which is resulting in a synchronous reactor call

I'll look into fixing it

>	FSharp.Core.dll!Microsoft.FSharp.Control.AsyncPrimitives.ResultCell<Microsoft.FSharp.Control.AsyncResult<Microsoft.CodeAnalysis.ExternalAccess.FSharp.Editor.FSharpIndentationResult?>>.TryWaitForResultSynchronously(Microsoft.FSharp.Core.FSharpOption<int> timeout) Line 792	F#
 	FSharp.Core.dll!Microsoft.FSharp.Control.FSharpAsync.RunSynchronously<Microsoft.CodeAnalysis.ExternalAccess.FSharp.Editor.FSharpIndentationResult?>(Microsoft.FSharp.Control.FSharpAsync<Microsoft.CodeAnalysis.ExternalAccess.FSharp.Editor.FSharpIndentationResult?> computation, Microsoft.FSharp.Core.FSharpOption<int> timeout, Microsoft.FSharp.Core.FSharpOption<System.Threading.CancellationToken> cancellationToken) Line 1139	F#
 	Microsoft.CodeAnalysis.ExternalAccess.FSharp.dll!Microsoft.CodeAnalysis.ExternalAccess.FSharp.Internal.Editor.FSharpSynchronousIndentationService.GetIndentation(Microsoft.CodeAnalysis.Document document, int lineNumber, Microsoft.CodeAnalysis.Formatting.FormattingOptions.IndentStyle indentStyle, System.Threading.CancellationToken cancellationToken)	Unknown
 	Microsoft.CodeAnalysis.Workspaces.dll!Microsoft.CodeAnalysis.Indentation.IIndentationServiceExtensions.GetIndentation(Microsoft.CodeAnalysis.Indentation.IIndentationService service, Microsoft.CodeAnalysis.Document document, int lineNumber, System.Threading.CancellationToken cancellationToken)	Unknown
 	Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Editor.Implementation.SmartIndent.SmartIndent.GetDesiredIndentation(Microsoft.VisualStudio.Text.ITextSnapshotLine lineToBeIndented, System.Threading.CancellationToken cancellationToken)	Unknown
 	Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Editor.Implementation.SmartIndent.SmartIndent.GetDesiredIndentation(Microsoft.VisualStudio.Text.ITextSnapshotLine line)	Unknown
 	Microsoft.VisualStudio.Platform.VSEditor.dll!Microsoft.VisualStudio.Text.Editor.Implementation.SmartIndentationService.GetDesiredIndentation(Microsoft.VisualStudio.Text.Editor.ITextView textView, Microsoft.VisualStudio.Text.ITextSnapshotLine line)	Unknown
 	Microsoft.VisualStudio.Platform.VSEditor.dll!Microsoft.VisualStudio.Text.Operations.Implementation.EditorOperations.PositionCaretWithSmartIndent(Microsoft.VisualStudio.Text.ISelectionTransformer transformer, bool useOnlyVirtualSpace, bool extendSelection)	Unknown
 	Microsoft.VisualStudio.Platform.VSEditor.dll!Microsoft.VisualStudio.Text.Operations.Implementation.EditorOperations.InsertNewLine.AnonymousMethod__1(Microsoft.VisualStudio.Text.ISelectionTransformer transformer)	Unknown

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-LangService-APIBugImpact-High(Internal MS Team use only) Describes an issue with extreme impact on existing code.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions