public async Task DoesntOrganizeImportsWhenDisabled() { var testFile = new TestFile("dummy.cs", @" using System.IO; using Dummy; using System; namespace Bar { class Foo { } }"); using (var host = CreateOmniSharpHost(new[] { testFile }, configurationData: new Dictionary <string, string> { ["FormattingOptions:OrganizeImports"] = "false" })) { var requestHandler = host.GetRequestHandler <CodeFormatService>(OmniSharpEndpoints.CodeFormat); var request = new CodeFormatRequest { FileName = testFile.FileName }; var response = await requestHandler.Handle(request); Assert.Equal(@" using System.IO; using Dummy; using System; namespace Bar { class Foo { } }", response.Buffer); } }
public async Task CanBeDisabled(string filename) { var testFile = new TestFile(Path.Combine(TestAssets.Instance.TestFilesFolder, filename), @" class Foo { } class Bar : Foo { } "); var expected = @" class Foo { } class Bar : Foo { } "; using (var host = CreateOmniSharpHost(new[] { testFile }, new Dictionary <string, string> { ["FormattingOptions:EnableEditorConfigSupport"] = "false" }, TestAssets.Instance.TestFilesFolder)) { var requestHandler = host.GetRequestHandler <CodeFormatService>(OmniSharpEndpoints.CodeFormat); var request = new CodeFormatRequest { FileName = testFile.FileName }; var response = await requestHandler.Handle(request); Assert.Equal(expected, response.Buffer); } }
public async Task FormatRespectsIndentationSize() { var testFile = new TestFile("dummy.cs", "namespace Bar\n{\n class Foo {}\n}"); using (var host = CreateOmniSharpHost(testFile)) { var optionsProvider = new CSharpWorkspaceOptionsProvider(); host.Workspace.Options = optionsProvider.Process(host.Workspace.Options, new FormattingOptions { NewLine = "\n", IndentationSize = 1 }); var requestHandler = host.GetRequestHandler <CodeFormatService>(OmniSharpEndpoints.CodeFormat); var request = new CodeFormatRequest { FileName = testFile.FileName }; var response = await requestHandler.Handle(request); Assert.Equal("namespace Bar\n{\n class Foo { }\n}", response.Buffer); } }
public override async Task <TextEditContainer> Handle(DocumentFormattingParams request, CancellationToken cancellationToken) { var omnisharpRequest = new CodeFormatRequest() { FileName = Helpers.FromUri(request.TextDocument.Uri), WantsTextChanges = true }; var omnisharpResponse = await _codeFormatHandler.Handle(omnisharpRequest); return(omnisharpResponse.Changes.Select(change => new TextEdit() { NewText = change.NewText, Range = new Range(new Position(change.StartLine, change.StartColumn), new Position(change.EndLine, change.EndColumn)) }).ToArray()); }
public async Task FormatRespectsIndentationSize() { var testFile = new TestFile("dummy.cs", "namespace Bar\n{\n class Foo {}\n}"); using var host = CreateOmniSharpHost(new[] { testFile }, new Dictionary <string, string> { ["FormattingOptions:NewLine"] = "\n", ["FormattingOptions:IndentationSize"] = "1" }); var requestHandler = host.GetRequestHandler <CodeFormatService>(OmniSharpEndpoints.CodeFormat); var request = new CodeFormatRequest { FileName = testFile.FileName }; var response = await requestHandler.Handle(request); Assert.Equal("namespace Bar\n{\n class Foo { }\n}", response.Buffer); }
public async Task RespectsDefaultFormatSettings(string filename) { var testFile = new TestFile(filename, "class Foo\n{\n public Foo()\n}\n}"); var expected = "class Foo\n{\n public Foo()\n}\n}"; using (var host = CreateOmniSharpHost(new[] { testFile }, new Dictionary <string, string> { ["FormattingOptions:EnableEditorConfigSupport"] = "true" }, TestAssets.Instance.TestFilesFolder)) { var requestHandler = host.GetRequestHandler <CodeFormatService>(OmniSharpEndpoints.CodeFormat); var request = new CodeFormatRequest { FileName = testFile.FileName }; var response = await requestHandler.Handle(request); Assert.Equal(expected, response.Buffer); } }
public async Task FormatRespectsIndentationSize() { var testFile = new TestFile("dummy.cs", "namespace Bar\n{\n class Foo {}\n}"); using (var host = CreateOmniSharpHost(testFile)) { var optionsProvider = new CSharpFormattingWorkspaceOptionsProvider(); var omnisharpOptions = new OmniSharpOptions(); omnisharpOptions.FormattingOptions.NewLine = "\n"; omnisharpOptions.FormattingOptions.IndentationSize = 1; host.Workspace.TryApplyChanges(host.Workspace.CurrentSolution.WithOptions(optionsProvider.Process(host.Workspace.Options, omnisharpOptions, new OmniSharpEnvironment()))); var requestHandler = host.GetRequestHandler <CodeFormatService>(OmniSharpEndpoints.CodeFormat); var request = new CodeFormatRequest { FileName = testFile.FileName }; var response = await requestHandler.Handle(request); Assert.Equal("namespace Bar\n{\n class Foo { }\n}", response.Buffer); } }