Beispiel #1
0
        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);
            }
        }
Beispiel #3
0
        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());
        }
Beispiel #5
0
        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);
            }
        }
Beispiel #7
0
        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);
            }
        }