Я занимаюсь разработкой небольшого хобби-проекта, пытающегося сделать C # доступным для компиляции в NES в этом хранилище .На момент коммита 9b532f739be некоторые из модульных тестов моего первого провайдера исправлений кода не сработали только потому, что Рослин игнорирует пустые места в пробелах, которые поступают с узла, который я хочу заменить, в строке 90 строкиФайл ForbidMuliplicationCodeFixProvider.cs .Я также пробовал NormalizeWhiteSpace на новом узле с тем же размером отступа WhiteSpaceTrivia и пару других неудачных попыток, только чтобы всегда иметь стандартные отступы размера табуляции в измененном документе.Придется ли мне мириться с этой маленькой ошибкой?
var assignment = SyntaxFactory.AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, variableIdentifier, invocation);
assignment = assignment.WithTriviaFrom(node);
var syntaxRoot = await document.GetSyntaxRootAsync();
var modifiedRoot = syntaxRoot.ReplaceNode(node, assignment);
var modifiedDocument = document.WithSyntaxRoot(modifiedRoot);
modifiedDocument = await AddUsingStatementAsync(cancelToken, modifiedDocument);
return modifiedDocument;
Переменная node
взята из исходного документа с 6 пробелами (3 уровня отступа) WhiteSpaceTrivia, которые должны быть скопированы в заменуузел, но выходные данные измененного документа вместо этого имеют 3 вкладки отступа.
Мой тест завершается неудачно с этим сообщением:
The checked string has different spaces than expected one. At line 7, col 12, expected '... test = NESMath....' was '... test = NE...'.
The checked string:
["using NINNES.Platform.Shims;
namespace NINNES.RoslynAnalyzers.Tests.Assets {
class MultiplicationAssignment {
public void Multiply() {
var test = 2;
test = NESMath.Multiply(test, 42);
}
}
}
"]
The expected string:
["using NINNES.Platform.Shims;
namespace NINNES.RoslynAnalyzers.Tests.Assets {
class MultiplicationAssignment {
public void Multiply() {
var test = 2;
test = NESMath.Multiply(test, 42);
}
}
}
"]
В качестве отступления: Комментарий к коду Roslyn был бы очень признателен, просто изучая все, что связано с модификацией кода.