Форматирование кода в Roslyn SDK Preview
В более ранней версии (Roslyn CTP) я использовал следующий код для форматирования моего сгенерированного кода, и он работал отлично:
SyntaxNode.Format(FormattingOptions.GetDefaultOptions()).GetFormattedRoot()
С новой версией Roslyn она больше не работает, так что эквивалентно приведенному выше коду в новой версии (SDK Preview)?
Ответы
Ответ 1
Вы можете отформатировать SyntaxNodes
с помощью Microsoft.CodeAnalysis.Formatting.Formatter
, как это (если у вас есть рабочее пространство):
using Microsoft.CodeAnalysis.Formatting;
var formattedResult = Formatter.Format(syntaxNode, workspace);
EDIT: как писал Jeroen в комментарии, если у вас нет рабочей области и не нужны настройки форматирования для конкретного рабочего пространства, вы можете просто создать ее:
var workspace = MSBuildWorkspace.Create();
Ответ 2
Рослин сильно изменился со времени CTP.
Документация теперь находится здесь: https://roslyn.codeplex.com/
Перейдите по ссылке https://roslyn.codeplex.com/documentation, нажмите "Образцы и пошаговые руководства", затем откройте демонстрационное решение "FormatSolution - консольное приложение который форматирует все исходные файлы С# и VB в решении.".
К сожалению, я не думаю, что его можно быстро заставить работать с форматированием, так как вам нужно добавить код в новое решение.