Неудовлетворительный перенос слов в редакторе Visual Studio XAML - есть ли облегчение в 2010 году?

Просто интересно, если редактор XAML лучше подходит для автоматического форматирования и обертывания атрибутов в Visual Studio 2010.

Здесь, как редактор автоматически переносит атрибуты в VS 2008:

<StackPanel Grid.Row="0" Grid.ColumnSpan="3">
    <StackPanel Orientation="Horizontal">
        <TextBlock VerticalAlignment="Center" FontWeight="Bold"
Text="Current User:" />
        <ComboBox x:Name="_usersComboBox" Margin="5,0,0,0" Width="200"
ItemsSource="{Binding Users}" SelectedValuePath="Name"
SelectedValue="System Administration">
            <ComboBox.ItemTemplate>
                <DataTemplate>

Здесь, как бы я хотел, чтобы редактор автоматически обертывал атрибуты:

<StackPanel Grid.Row="0" Grid.ColumnSpan="3">
    <StackPanel Orientation="Horizontal">
        <TextBlock VerticalAlignment="Center" FontWeight="Bold"
            Text="Current User:" />
        <ComboBox x:Name="_usersComboBox" Margin="5,0,0,0" Width="200"
            ItemsSource="{Binding Users}" SelectedValuePath="Name"
            SelectedValue="System Administration">
            <ComboBox.ItemTemplate>
                <DataTemplate>

Предоставляет ли VS 2010 мое желание?

Ответ 2

Что-то близко к этому.

Новый редактор в VS2010 поддерживает auto-indent режим переноса слов. Невозможно активировать его внутри продукта, но PM в нашей команде написал быстрое расширение, которое позволяет этот режим. Вы можете загрузить его из галереи VS или загрузить его из диспетчера расширений в VS2010, выполнив поиск по имени ( "перенос слов" должен быть достаточно) или поиск Бриттани Беренс, который написал расширение.

Ответ 3

Я только что нашел этот вопрос, уже положив запрос на форум предложений VS 2010.

Это видео (первые 20 секунд должны это сделать) показывает, что XAML постоянно переформатируется, пока он редактируется без вмешательства пользователя - XAML просто "переплачивает" во время набора текста, перетаскивания и т.д.

Мое предложение идет немного дальше, потому что я предлагаю полностью автоматическое "виртуальное форматирование", используя поля вместо вкладок/пробелов, это означает, что word-wrap всегда будет работать так же, как в текстовом процессоре. Пример скриншота показывает это - ведущие символы пробелов (с желтым фоном) присутствуют только в блоке сохранения xml: space:

enter image description here

Word-wrap и форматирование довольно сложны - на скриншоте происходит несколько вещей:

  • RTF включает форматирование вставляемого отступа для содержимого элемента или атрибута, поэтому у обернутого текста будет дополнительный отступ - чтобы было ясно, что оно завернуто (см. обернутое значение entation и атрибуты поля и ширины)

  • Все атрибуты выравниваются друг под другом

  • Если значение атрибута имеет линейные фиды, новые строки будут выровнены с первой строкой.

  • Обязательные пробелы в предварительно отформатированном тексте сохраняются при сохранении отступов.

  • [Важно] Все форматирование выполняется одновременно с раскраской синтаксиса, основываясь на позиции строк в контексте XAML. Word-wrap просто работает как текстовый процессор из-за данных отступа, переносимых в линейных каналах.

Если это невозможно сделать для Visual Studio, возможно, мы могли бы увидеть это первым в Kaxaml?.