Js-beautify: HTML: добавлена ​​возможность сохранения переноса атрибутов вручную.

Созданный на 4 февр. 2017  ·  19Комментарии  ·  Источник: beautify-web/js-beautify

--wrap-attributes имеет следующие возможные значения: auto|force|force-aligned|force-expand-multiline
Это позволяет объединить все атрибуты в одну строку или автоматически переносить каждый из них.

Можно ли просто сохранить первоначальную упаковку?

html enhancement

Самый полезный комментарий

Это отличная идея, ни один из вариантов не позволяет оборачивать вручную.

Было бы здорово иметь опцию, которая выполняла бы force|force-aligned|force-expand-multiline только в том случае, если длина строки переноса (по умолчанию 120) была достигнута, поскольку auto переносит только столько атрибутов, сколько необходимо. Что-то вроде вариантов auto-expand-multiline|auto-aligned ?

Все 19 Комментарий

Это отличная идея, ни один из вариантов не позволяет оборачивать вручную.

Было бы здорово иметь опцию, которая выполняла бы force|force-aligned|force-expand-multiline только в том случае, если длина строки переноса (по умолчанию 120) была достигнута, поскольку auto переносит только столько атрибутов, сколько необходимо. Что-то вроде вариантов auto-expand-multiline|auto-aligned ?

@Робула
Пожалуйста, откройте новую проблему для того, что у вас есть во втором абзаце.

@Montago , @Andikki - то, что вы описываете, - это вариант с именем что-то вроде unchanged или preserve , верно?

@bitwiseman нет, просто еще один вариант, например «Принудительное выравнивание» ... но вместо этого «автовыравнивание»

Что он должен сделать, так это просто выровнять все атрибуты, которые были упакованы вручную.
все остальные элементы/атрибуты остаются нетронутыми.

@Montago - А, так больше похоже на align-only .

да смысл есть :)

бей за это!

Было бы здорово вручную иметь некоторые атрибуты в новой строке, а некоторые в той же строке. Затем я могу решить, какой из них мне нужен, а все остальное автоматически форматируется. Спасибо

@bitwiseman Я не думаю, что выравнивание необходимо, но если это необходимо, должно быть два варианта: один для применения обычного размера indent_size, другой для выравнивания — и все это при сохранении начальных разрывов строк.

Пример
Источник:

<input type="text"     class="form-control"  autocomplete="off" 
      [(ngModel)]="myValue"          [disabled]="isDisabled" [placeholder]="placeholder" 
  [typeahead]="suggestionsSource" [typeaheadOptionField]="suggestionValueField" [typeaheadItemTemplate]="suggestionTemplate"   [typeaheadWaitMs]="300"
                        (typeaheadOnSelect)="onSuggestionSelected($event)" />

Только принудительный отступ:

<input type="text" class="form-control" autocomplete="off" 
  [(ngModel)]="myValue" [disabled]="isDisabled" [placeholder]="placeholder" 
  [typeahead]="suggestionsSource" [typeaheadOptionField]="suggestionValueField" [typeaheadItemTemplate]="suggestionTemplate" [typeaheadWaitMs]="300"
  (typeaheadOnSelect)="onSuggestionSelected($event)" />

Только принудительное выравнивание:

<input type="text" class="form-control" autocomplete="off" 
       [(ngModel)]="myValue" [disabled]="isDisabled" [placeholder]="placeholder" 
       [typeahead]="suggestionsSource" [typeaheadOptionField]="suggestionValueField" [typeaheadItemTemplate]="suggestionTemplate" [typeaheadWaitMs]="300"
       (typeaheadOnSelect)="onSuggestionSelected($event)" />

Не уверен, что это правильная проблема, чтобы запросить это, но я чувствую, что опция auto-align должна действовать как auto ; перенос после определенного обрезания столбца, и если строка переносится, она обрабатывает тег как force-align .

Пример
Принудительное выравнивание, когда длина строки больше, чем wrapLineLength:

<div [isWrapped]="false" [attributesAligned]="false"></div>

<really-long-angular-component-that-would-force-wrapping class="wrapped"
                                                         [isWrapped]="true"
                                                         [attributesAligned]="true">

Почти прошерстил 5 или 6 тем, где люди с нетерпением ждут реализации этой функции. Поскольку это не так, было бы здорово иметь это на vscode с запросами обертывания и принудительным выравниванием для этой соответствующей строки по сравнению с .

😞

@kaankucukx Не уверен, что ты имеешь в виду? Описано ли это в предыдущих примерах?

+1 за это, в настоящее время у меня лучшие результаты с force для рулей, но это все равно приводит к нежелательному переносу в моем блоке рулей:

   </label>
     {{#artdeco-hoverable-trigger placement="right"
      as
      |card|}}

и

  <ul class="text-ad-edit-panel__dropdown-list">
    {{#each yourCompanyPageTypes
      as
      |companyPageType
      index|}}

Мне просто нужно сохранить новые строки атрибутов с новой строкой вручную, но получить правильный отступ.

FWIW это не работает ни в одном редакторе, который я нашел, кроме Intellij. Хотя хотелось бы, чтобы это было реализовано!

FWIW это не работает ни в одном редакторе, который я нашел, кроме Intellij. Хотя хотелось бы, чтобы это было реализовано!

Работает и в Netbeans.

FWIW не может заставить это работать в VSCode
Разработка с помощью Vue
Расширения: Prettier, Vetur
Форматирование продолжает возвращать все теги и атрибуты html в одну строку. Я перебрал множество предложенных решений.
Было бы здорово узнать, работает ли это в файле .vue в VSCode.

@christoferd вот о чем этот выпуск. Это не работает. js-beautify не может сохранять разрывы строк. Он всегда будет устанавливать его в одну строку.

Я продолжаю возвращаться к использованию WebStorm, потому что у них есть собственный модуль форматирования, и он работает с разрывами строк.

Похожие на #1404

Спасибо за работу над исправлением @MacKLess! С нетерпением жду нового релиза, чтобы попробовать 😃

Была ли эта страница полезной?
0 / 5 - 0 рейтинги