2010-02-10 8 views
5

В моей команде стиль кода в .xaml-файлах в настоящее время не очень согласован. Мы просмотрели автоформат Visual Studio, чтобы он форматировал код во что-то, что нам нравится. Однако для одного варианта нам не хватает дополнительного условия. Параметры, о которых я говорю, находятся в разделе Инструменты -> Параметры -> Текстовый редактор -> XAML -> Форматирование.VS2008 XAML код форматирования

Мы хотим, чтобы каждый атрибут находился на отдельной строке. Первоначально, мы также хотели первый атрибут в новой строке (ниже в начале тега) следующим образом:

<MyFooBarButton 
    Attrib1="a" 
    Attrib2="b" /> 

Но мы быстро поняли, что работает с этими правилами бы теги, только набор один атрибут выглядеть ужасно, особенно если они были вложены:

<MyFooBarButton 
    Attrib1="a" /> 
    <NestedFoo 
     Attrib="b" /> 
     <NestedFoo2 
      Attrib="c" /> 

Итак, мы попытались позиционировать первый атрибут в той же строке, что и начальный тег. Сохраняя при этом два важных правила (по одному атрибуту на строку, по вертикали). Он выглядел достойно в обоих случаях:

<MyFooBarButton Attrib1="a" 
       Attrib2="b" /> 

<MyFooBarButton Attrib1="a" /> 
    <NestedFoo Attrib="b" /> 
     <NestedFoo2 Attrib="c" /> 

Сейчас проблема заключается в том, что Visual Studio, кажется, испытывает недостаток в состоянии иметь и другое. I.e .:

  • Если установлен только один атрибут: держите его на одной линии.
  • Если установлено более одного атрибута: поместите первый атрибут в новую строку, по одному атрибуту на строку и выровняйте их по вертикали.

Может ли Visual Studio 2008 сделать это? А если нет, может ли форматировать код в ReSharper сделать это (может ли это стоить)?

ответ

2

может быть, это поможет вам:

http://weblogs.asp.net/fmarguerie/archive/2008/06/07/xaml-markup-formatting-in-visual-studio.aspx

http://geekswithblogs.net/lbugnion/archive/2007/09/29/Cleaning-up-XAML-code-and-improving-parsing-time-with-Blend.aspx#lbu_note2

http://dimebrain.com/2008/05/automating-read.html

(последние две ссылки упоминаются в тексте под первой ссылке)

EDIT: Я проверил варианты в ReSharper и я не мог найти никаких параметров только для форматирования XAML (там есть re для C#, vb.net и XML)

EDIT2: Я проверил параметры форматирования в VS, и есть что-то, что кажется именно тем, что вам нужно. В «Интервале» есть опция «Поместить каждый атрибут на отдельной строке», и у него есть флажок «Первой атрибут позиции в той же строке, что и начальный тег». По-моему, он должен делать то, что вам нужно.

+0

Относительно «Расположить каждый атрибут на отдельной строке», то, что я хочу, если предполагается, что существует более одного атрибута, в противном случае нет. Я попытался объяснить разницу в моем первоначальном вопросе. Может быть, я должен его пересмотреть. – Mizipzor

+0

какой об этом флажок я упоминал? если у вас есть только один атрибут, он должен поместить его в ту же строку, что и тег, и если есть больше атрибутов, они должны быть помещены в отдельные строки из-за опции «разместить каждый атрибут на отдельной строке».Может быть, я что-то не понимаю, но описание этих вариантов предполагает работу в соответствии с вашими потребностями. – grapkulec

+0

и @mizipzor, флажок, который вы упомянули, делает именно то, что хочет OP, хотя я тестировал его только на VS2010. –

3

Попробуйте http://xamlstyler.codeplex.com/, этот форматировщик xaml не будет разбивать атрибуты на разные строки, если элемент имеет только 2 или менее 2 атрибута, также этот форматер имеет возможность сортировать атрибуты элемента в предопределенном правиле, которые значительно улучшают внешний вид вашей разметки.

Смежные вопросы