diff --git a/src/Spectre.Console.Analyzer/Fixes/CodeActions/SwitchToAnsiConsoleAction.cs b/src/Spectre.Console.Analyzer/Fixes/CodeActions/SwitchToAnsiConsoleAction.cs index c1c9e77..d742b23 100644 --- a/src/Spectre.Console.Analyzer/Fixes/CodeActions/SwitchToAnsiConsoleAction.cs +++ b/src/Spectre.Console.Analyzer/Fixes/CodeActions/SwitchToAnsiConsoleAction.cs @@ -107,8 +107,9 @@ namespace Spectre.Console.Analyzer.CodeActions SyntaxKind.SimpleMemberAccessExpression, IdentifierName(ansiConsoleIdentifier), IdentifierName(originalCaller))) - .WithArgumentList( - _originalInvocation.ArgumentList)) + .WithArgumentList(_originalInvocation.ArgumentList) + .WithTrailingTrivia(_originalInvocation.GetTrailingTrivia()) + .WithLeadingTrivia(_originalInvocation.GetLeadingTrivia())) .Expression; } } diff --git a/test/Spectre.Console.Analyzer.Tests/Unit/Fixes/UseInstanceOfStaticAnsiConsoleTests.cs b/test/Spectre.Console.Analyzer.Tests/Unit/Fixes/UseInstanceOfStaticAnsiConsoleTests.cs index 16730e2..4137129 100644 --- a/test/Spectre.Console.Analyzer.Tests/Unit/Fixes/UseInstanceOfStaticAnsiConsoleTests.cs +++ b/test/Spectre.Console.Analyzer.Tests/Unit/Fixes/UseInstanceOfStaticAnsiConsoleTests.cs @@ -47,6 +47,46 @@ class TestClass .ConfigureAwait(false); } + [Fact] + public async Task Static_call_replaced_with_field_call_Should_Preserve_Trivia() + { + const string Source = @" +using Spectre.Console; + +class TestClass +{ + IAnsiConsole _ansiConsole = AnsiConsole.Console; + + void TestMethod() + { + var foo = 1; + + AnsiConsole.Write(""this is fine""); + _ansiConsole.Write(""Hello, World""); + } +}"; + + const string FixedSource = @" +using Spectre.Console; + +class TestClass +{ + IAnsiConsole _ansiConsole = AnsiConsole.Console; + + void TestMethod() + { + var foo = 1; + + _ansiConsole.Write(""this is fine""); + _ansiConsole.Write(""Hello, World""); + } +}"; + + await SpectreAnalyzerVerifier + .VerifyCodeFixAsync(Source, _expectedDiagnostic.WithLocation(12, 9), FixedSource) + .ConfigureAwait(false); + } + [Fact] public async Task Static_call_replaced_with_parameter_call() {