Форматирование кода в 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 в решении.".

К сожалению, я не думаю, что его можно быстро заставить работать с форматированием, так как вам нужно добавить код в новое решение.