public async Task <TextEditContainer?> Handle(DocumentFormattingParams request, CancellationToken cancellationToken) { if (!_optionsMonitor.CurrentValue.EnableFormatting) { return(null); } var document = await _projectSnapshotManagerDispatcher.RunOnDispatcherThreadAsync(() => { _documentResolver.TryResolveDocument(request.TextDocument.Uri.GetAbsoluteOrUNCPath(), out var documentSnapshot); return(documentSnapshot); }, cancellationToken).ConfigureAwait(false); if (document is null || cancellationToken.IsCancellationRequested) { return(null); } var codeDocument = await document.GetGeneratedOutputAsync(); if (codeDocument.IsUnsupported()) { return(null); } var span = TextSpan.FromBounds(0, codeDocument.Source.Length); var range = span.AsRange(codeDocument.GetSourceText()); var edits = await _razorFormattingService.FormatAsync(request.TextDocument.Uri, document, range, request.Options, cancellationToken); var editContainer = new TextEditContainer(edits); return(editContainer); }
public async Task <TextEditContainer> Handle(DocumentFormattingParams request, CancellationToken cancellationToken) { if (!_optionsMonitor.CurrentValue.EnableFormatting) { return(null); } var document = await Task.Factory.StartNew(() => { _documentResolver.TryResolveDocument(request.TextDocument.Uri.GetAbsoluteOrUNCPath(), out var documentSnapshot); return(documentSnapshot); }, cancellationToken, TaskCreationOptions.None, _foregroundDispatcher.ForegroundScheduler); if (document is null || cancellationToken.IsCancellationRequested) { return(null); } var codeDocument = await document.GetGeneratedOutputAsync(); if (codeDocument.IsUnsupported()) { return(null); } var span = TextSpan.FromBounds(0, codeDocument.Source.Length); var range = span.AsRange(codeDocument.GetSourceText()); var edits = await _razorFormattingService.FormatAsync(request.TextDocument.Uri, document, range, request.Options, cancellationToken); var editContainer = new TextEditContainer(edits); return(editContainer); }
public async Task CanSendFormattingRequest() { Skip.If( TestsFixture.RunningInConstainedLanguageMode && TestsFixture.IsWindowsPowerShell, "Windows PowerShell doesn't trust PSScriptAnalyzer by default so it won't load."); string scriptPath = NewTestFile(@" gci | % { Get-Process } "); TextEditContainer textEdits = await LanguageClient.SendRequest <TextEditContainer>( "textDocument/formatting", new DocumentFormattingParams { TextDocument = new TextDocumentIdentifier { Uri = new Uri(scriptPath) }, Options = new FormattingOptions { TabSize = 4, InsertSpaces = false } }); TextEdit textEdit = Assert.Single(textEdits); // If we have a tab, formatting ran. Assert.Contains("\t", textEdit.NewText); }
public async Task CanSendFormattingRequest() { string scriptPath = NewTestFile(@" gci | % { Get-Process } "); TextEditContainer textEdits = await LanguageClient.SendRequest <TextEditContainer>( "textDocument/formatting", new DocumentFormattingParams { TextDocument = new TextDocumentIdentifier { Uri = new Uri(scriptPath) }, Options = new FormattingOptions { TabSize = 4, InsertSpaces = false } }); TextEdit textEdit = Assert.Single(textEdits); // If we have a tab, formatting ran. Assert.Contains("\t", textEdit.NewText); }
public async Task <TextEditContainer> Handle(DocumentOnTypeFormattingParams request, CancellationToken cancellationToken) { var document = await Task.Factory.StartNew(() => { _documentResolver.TryResolveDocument(request.TextDocument.Uri.GetAbsoluteOrUNCPath(), out var documentSnapshot); return(documentSnapshot); }, cancellationToken, TaskCreationOptions.None, _foregroundDispatcher.ForegroundScheduler); if (document is null || cancellationToken.IsCancellationRequested) { return(null); } var codeDocument = await document.GetGeneratedOutputAsync(); if (codeDocument.IsUnsupported()) { return(null); } var edits = await _razorFormattingService.FormatOnTypeAsync(request.TextDocument.Uri, codeDocument, request.Position, request.Character, request.Options); var editContainer = new TextEditContainer(edits); return(editContainer); }
public async Task CanSendRangeFormattingRequestAsync() { Skip.If( PsesStdioProcess.RunningInConstainedLanguageMode && PsesStdioProcess.IsWindowsPowerShell, "Windows PowerShell doesn't trust PSScriptAnalyzer by default so it won't load."); string scriptPath = NewTestFile(@" gci | % { Get-Process } "); TextEditContainer textEdits = await PsesLanguageClient .SendRequest <DocumentRangeFormattingParams>( "textDocument/formatting", new DocumentRangeFormattingParams { Range = new Range { Start = new Position { Line = 2, Character = 0 }, End = new Position { Line = 3, Character = 0 } }, TextDocument = new TextDocumentIdentifier { Uri = new Uri(scriptPath) }, Options = new FormattingOptions { TabSize = 4, InsertSpaces = false } }) .Returning <TextEditContainer>(CancellationToken.None).ConfigureAwait(false); TextEdit textEdit = Assert.Single(textEdits); // If we have a tab, formatting ran. Assert.Contains("\t", textEdit.NewText); }
public static CompletionItem WithAdditionalEdits(this CompletionItem item, TextEditContainer editContainer) { item.AdditionalTextEdits = editContainer; return(item); }
public CompletionItemBuilder WithAdditionalEdits(TextEditContainer editContainer) { this.additionalTextEdits = editContainer; return(this); }