_From @hhubik 28 августа 2016 г., 20:37_
Действия по воспроизведению:
_Копировано из оригинального выпуска: Microsoft / vscode # 11069_
Мы используем html beautifier из beautify-web / js-beautify.
Пример на http://jsbeautifier.org/ показывает, что проблема связана с форматированием.
Можете ли вы предоставить более компактный ввод для воспроизведения?
@bitwiseman - боюсь, что нет. Форматирование у меня работает большую часть времени. Это не работает только с этим конкретным файлом шаблона. Возможно даже, что проблема связана с некомпактностью ввода.
Как уже отмечалось, это файл шаблона Angular 2, недействительный html, поэтому это может быть частью проблемы. Если вы удалите Angular, улучшится.
Но похоже, что основная проблема связана с тегами span. Этот ввод также воспроизводит проблему:
<div class="ui-grid-row ">
<div class="ui-grid-col-12">
<p-editor formControlName="voteDescriptionControl" [style]="{'height':'320px'}">
<header>
<span class="ql-formats">
<select class="ql-header">
<option selected></option>
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</span>
<span class="ql-formats">
<button class="ql-bold"></button>
<button class="ql-italic"></button>
<button class="ql-underline"></button>
<button class="ql-strike"></button>
</span>
<span class="ql-formats">
<button class="ql-list" value="ordered"></button>
<button class="ql-list" value="bullet"></button>
</span>
<span class="ql-formats">
<select class="ql-align">
<option selected></option>
<option value="center"></option>
<option value="right"></option>
<option value="justify"></option>
</select>
</span>
</header>
</p-editor>
</div>
</div>
Если вы замените <span>
s на <div>
s, все станет лучше, но теги <select>
также будут воспроизводить:
<div class="ui-grid-row ">
<div class="ui-grid-col-12">
<p-editor formControlName="voteDescriptionControl" [style]="{'height':'320px'}">
<header>
<div class="ql-formats">
<select class="ql-header">
<option selected></option>
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</div>
<div class="ql-formats">
<button class="ql-bold"></button>
<button class="ql-italic"></button>
<button class="ql-underline"></button>
<button class="ql-strike"></button>
</div>
<div class="ql-formats">
<button class="ql-list" value="ordered"></button>
<button class="ql-list" value="bullet"></button>
</div>
<div class="ql-formats">
<select class="ql-align">
<option selected></option>
<option value="center"></option>
<option value="right"></option>
<option value="justify"></option>
</select>
</div>
</header>
</p-editor>
</div>
</div>
Я тоже это тестировал. Допускается замена промежутков на блоки div. Шаблон по-прежнему работает в Angular2. Форматирование оператора select по-прежнему не работает, даже с div. По крайней мере, это нужно исправить.
Но если подумать ... Я не ожидаю, что beautify подтвердит мой HTML. Я использую для этого другие инструменты. Я просто ожидаю, что это упростит чтение моего кода. Учитывая это, я думаю, что форматирование исходных тестовых данных (с промежутками) также должно работать.
Вероятно, это вызвано тем фактом, что span
и select
находятся в списке по умолчанию для "unformatted"
.
@HookyQR - это то, что я, как пользователь Visual Studio Code, могу изменить? Если да, то как? Я был бы счастлив попробовать это.
Да, конечно. Вы можете изменить "html.format.unformatted"
в своих настройках. При добавлении он должен автоматически заполниться значениями по умолчанию. Затем удалите span
и select
и все готово.
Спасибо, @HookyQR. Удаление select и span из списка unformatted
устранило проблему для меня.
Спасибо, @HookyQR. Это верный путь. Замена промежутков на div, какой глупый совет. Это все равно, что предлагать заменить обувь коньками. Технически вы их всех ставите на ноги, не так ли?
Я сделал:
"html.format.contentUnformatted": "",
"html.format.unformatted": "",
Теперь все мои теги хорошо отформатированы.
Кажется, это было решено (по крайней мере, примеры ввода bitewiseman) в v1.8.0-rc4
Вывод для обоих примеров:
<div class="ui-grid-row ">
<div class="ui-grid-col-12">
<p-editor formControlName="voteDescriptionControl" [style]="{'height':'320px'}">
<header>
<div class="ql-formats">
<select class="ql-header">
<option selected></option>
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</div>
<div class="ql-formats">
<button class="ql-bold"></button>
<button class="ql-italic"></button>
<button class="ql-underline"></button>
<button class="ql-strike"></button>
</div>
<div class="ql-formats">
<button class="ql-list" value="ordered"></button>
<button class="ql-list" value="bullet"></button>
</div>
<div class="ql-formats">
<select class="ql-align">
<option selected></option>
<option value="center"></option>
<option value="right"></option>
<option value="justify"></option>
</select>
</div>
</header>
</p-editor>
</div>
</div>
@aeschli Пожалуйста, посмотрите и подтвердите на http://jsbeautifier.org/
Самый полезный комментарий
Да, конечно. Вы можете изменить
"html.format.unformatted"
в своих настройках. При добавлении он должен автоматически заполниться значениями по умолчанию. Затем удалитеspan
иselect
и все готово.