Форматтер кода XML и С++
- Author
- Message
-
Offline
- Posts: 41
- Joined: Tue Mar 27, 2012 4:25 pm
Я создал файл version.js где написал вышеупомянутый код, но запуск такого скрипта ничего не дает (ничего не происходит). Что я делаю не так?Infocatcher wrote: И еще дело может быть в старой версии JScript.
Что выводит вот такой version.js:?Code: Select all
ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion()
У меня там 5.8.
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Ай, это я по-другому запускал и забыл добавить собственно вывод:CleriC wrote:но запуск такого скрипта ничего не дает
Code: Select all
WScript.Echo(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion());
Что-то меня на http://webdrive.reborn.ru/403.html посылает.CleriC wrote:Положил сюда свой xml файлик для примера.
-
Offline
- Posts: 41
- Joined: Tue Mar 27, 2012 4:25 pm
Infocatcher wrote: Ай, это я по-другому запускал и забыл добавить собственно вывод:Code: Select all
WScript.Echo(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion());
Положил на rghost.Infocatcher wrote:Что-то меня на http://webdrive.reborn.ru/403.html посылает.
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Ага, теперь вижу. Это баг оригинального скрипта.CleriC wrote:Положил на rghost.
Как-то так:
Bugs with HTML and XML
-
Offline
- Posts: 41
- Joined: Tue Mar 27, 2012 4:25 pm
Спасибо за отправленный баг-репорт. Будем ждать исправления.Infocatcher wrote:Ага, теперь вижу. Это баг оригинального скрипта.CleriC wrote:Положил на rghost.
Как-то так:
Bugs with HTML and XML
Не могли бы вы написать в этой теме, когда выйдет поправленная версия скрипта?
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 13
- Joined: Sat Oct 26, 2013 7:19 pm
- Location: Russian
У меня astyle в конец отформатированного текста, выводит ошибки и предупреждения.
Обязательно следующее:
Тестовый сырец, сохранил в кодировке cp1251 и набил его только на латинице.
Поставил в команде ключик "--quiet", но не помогло.
А вообще, можно ли куда-нибудь перенаправить stder? "2> nul"?
Сейчас, запускаю через cmd-файл:
Наверное надо на скрипт переделать?
Обязательно следующее:
Даже не пойму, на что он ругается.Cannot convert to multi-byte string, reverting to English
Тестовый сырец, сохранил в кодировке cp1251 и набил его только на латинице.
Поставил в команде ключик "--quiet", но не помогло.
А вообще, можно ли куда-нибудь перенаправить stder? "2> nul"?
Сейчас, запускаю через cmd-файл:
Code: Select all
@echo off
AStyle.exe --style=allman --pad-paren-in --unpad-paren --align-pointer=type --align-reference=type --add-brackets --convert-tabs --lineend=windows 2> "%temp%\AStyle.log"
-
Offline
- Posts: 41
- Joined: Tue Mar 27, 2012 4:25 pm
Я не знаю как написать на GitHub, напишу сюда.
Возможно, я не до конца разобрался в настройках, возможно — баги.
Версия jsBeautifier 0.2.7 - 2015-01-10
Параметры вызова:
Форматирую текст, получаю:
Почему </p> не в одной строке с <p>?
Почему обрамляющие теги <p> в разных строках?
Почему к тега <link_row to=...> параметр «to=» уехал на другую строку?
Тем не менее, в первой строке, где встречается этот тег — все нормально.
Уточнение.
На первый раз форматирует так:
Если нажать форматирование еще раз, получится так (нормально):
Тут почему-то возникает много пробелов и знаков табуляции перед словом «Инженерные».
Возможно, я не до конца разобрался в настройках, возможно — баги.
Версия jsBeautifier 0.2.7 - 2015-01-10
Параметры вызова:
Code: Select all
Call("Scripts::Main", 1, "jsBeautifier.js", "-unformattedTags=['td','link','li','link_row','b','i','a','h4'] -maxChar=95")
Code: Select all
<p><b>1 Конфигурация ЗОНД – КОНТРОЛЛЕР К4</b>
</p>
Code: Select all
<p><i>4-х канальные зонды А4 (с датчиком порового давления) поставляются по отдельным заявкам.</i>
</p>
Почему </p> не в одной строке с <p>?
Code: Select all
<p>
<h4>Технические характеристики контроллера ТЕСТ-К4.</h4>
</p>
Code: Select all
<p>ТЕКСТ ТЕКСТ ТЕКСТ
без калибровки аппаратуры. <link_row to="ДОСМ 3-50">Динамометр ДОСМ 3–50У</link_row> и
<link_row
to="УСЗН.93.00.00.00-01">Устройство Т</link_row> предназначены для проверки работоспособности комплекта.
</p>
Тем не менее, в первой строке, где встречается этот тег — все нормально.
Уточнение.
На первый раз форматирует так:
Code: Select all
<p>ТЕКСТ ТЕКСТ ТЕКСТ
<link_row
to="РК.05.01.01">Радиокнопки РК-11</link_row>.
</p>
Code: Select all
<p>ТЕКСТ ТЕКСТ ТЕКСТ
<link_row to="РК.05.01.01">Радиокнопки РК-11</link_row>.
</p>
Code: Select all
<p><a href="/docs/ii03_test.pdf" target="_blank">Комплекты оборудования для статического зондирования грунтов серии ТЕСТ.</a> Инженерные изыскания. Апрель 2008.</p>
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
CleriC
Лучше исходные данные тоже приводить.
Прямо вот такое
у меня не воспроизводится. Разве что там особо обрабатывается при наличии текста, вот так нормально:
=>
А вот тут попытается не сломать текст:
=>
Насчет переноса, видимо, -maxChar отрабатывает. И вместо последнего лучше -wrapLineLength использовать, из-за изменений в используемой библиотеке:
А вот
у меня только впеределывает, дальше без изменений.
Может версия JScript влиять... Вроде, вот так можно определить, version.js:
Лучше исходные данные тоже приводить.
Прямо вот такое
Code: Select all
<p><b>1 Конфигурация ЗОНД – КОНТРОЛЛЕР К4</b>
</p>
Code: Select all
<x><y><z></z></y></x>
Code: Select all
<x>
<y>
<z></z>
</y>
</x>
Code: Select all
<x><y><z></z></y>text</x>
Code: Select all
<x>
<y>
<z></z>
</y>text</x>
Code: Select all
// backwards compatibility to 1.3.4
if ((options.wrap_line_length === undefined || parseInt(options.wrap_line_length, 10) === 0) &&
(options.max_char !== undefined && parseInt(options.max_char, 10) !== 0)) {
options.wrap_line_length = options.max_char;
}
Code: Select all
<p>ТЕКСТ ТЕКСТ ТЕКСТ
<link_row
to="РК.05.01.01">Радиокнопки РК-11</link_row>.
</p>
Code: Select all
<p>ТЕКСТ ТЕКСТ ТЕКСТ
<link_row to="РК.05.01.01">Радиокнопки РК-11</link_row>.
</p>
Может версия JScript влиять... Вроде, вот так можно определить, version.js:
Code: Select all
WScript.Echo(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion());
-
Offline
- Posts: 41
- Joined: Tue Mar 27, 2012 4:25 pm
Infocatcher
Выдает 5.8.
-wrapLineLength буду тестировать
Вот файл, к которому я применяю форматирование.
Открываю файл, делаю
Вопросы по строкам (после применения скрипта):
35: появляются 3 знака табуляции перед словами «Инженерные изыскания»
49-50, 96-97, 116-117: на новую строку переносится </p>
51-53 и 71-73: <p> и </p> в разных строках
112-113: параметр to тега <link_row уехал на новую строку
125: слишком длинная строка, 183 символа
ЗЫ С -wrapLineLength тоже самое.
Code: Select all
WScript.Echo(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion());
-wrapLineLength буду тестировать
Вот файл, к которому я применяю форматирование.
Открываю файл, делаю
Code: Select all
Call("Scripts::Main", 1, "jsBeautifier.js", "-unformattedTags=['td','link','li','link_row','b','i','a','h4'] -maxChar=95")
35: появляются 3 знака табуляции перед словами «Инженерные изыскания»
49-50, 96-97, 116-117: на новую строку переносится </p>
51-53 и 71-73: <p> и </p> в разных строках
112-113: параметр to тега <link_row уехал на новую строку
125: слишком длинная строка, 183 символа
ЗЫ С -wrapLineLength тоже самое.
-
Offline
- Posts: 1161
- Joined: Sun Oct 20, 2013 11:44 am
CleriC
Несмотря на то, что этот скрипт - лучшее, что я увидел и попробовал для причёсывания XML, все проблемы наверняка не удастся решить. Если интересно, можете посмотреть мои попытки использовать скрипт для FB2 отсюда и далее, только возможностями (ключами) скрипта обойтись не удалось и всё закончилось подобными дополнительными вызовами Multi_SR.js и добавлением AkelPad.ScriptNoMutex + обязательное условие: конец выделения должен быть не далее, чем между тегами </body> и <binary> (показать окончательный вариант и команду меню могу показать попозже).
Несмотря на то, что этот скрипт - лучшее, что я увидел и попробовал для причёсывания XML, все проблемы наверняка не удастся решить. Если интересно, можете посмотреть мои попытки использовать скрипт для FB2 отсюда и далее, только возможностями (ключами) скрипта обойтись не удалось и всё закончилось подобными дополнительными вызовами Multi_SR.js и добавлением AkelPad.ScriptNoMutex + обязательное условие: конец выделения должен быть не далее, чем между тегами </body> и <binary> (показать окончательный вариант и команду меню могу показать попозже).
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Раньше (пару версий как) думал, что случайность какая-то, теперь вижу, что вроде как поломалось.
Эти строки:не выводят сообщение в окошко Log::Output.
Сейчас текст файла полностью заменяется сообщением об ошибке, т.е. вставка производится в текущее окно редактирования.
Раньше текст с ошибками добавлялся в конец файла, и это происходило без прокрутки, - было непонятно, почему же ничего не происходит, но потом обнаруживалось, что запись была в этот же файл.
P.S. Tidy та же самая. Вышеуказанные строки вызова те же, что когда-то давал Instructor.
Подскажите пожалуйста, как поправить?
Эти строки:
Code: Select all
-"Tidy форматирование XML" Call("Log::Output", 1, `"%a\AkelFiles\Tools\Tidy.exe" -utf8 -xml --indent auto --indent-spaces 3 --quiet yes --wrap 0 --show-errors 0`, "", "", "", 65001, 65001, 1052673)
-"Tidy форматирование HTML" Call("Log::Output", 1, `"%a\AkelFiles\Tools\Tidy.exe" -utf8 --indent auto --indent-spaces 3 --quiet yes --wrap 0 --show-errors 1`, "", "", "", 65001, 65001, 1052673)
Сейчас текст файла полностью заменяется сообщением об ошибке, т.е. вставка производится в текущее окно редактирования.
Раньше текст с ошибками добавлялся в конец файла, и это происходило без прокрутки, - было непонятно, почему же ничего не происходит, но потом обнаруживалось, что запись была в этот же файл.
P.S. Tidy та же самая. Вышеуказанные строки вызова те же, что когда-то давал Instructor.
Подскажите пожалуйста, как поправить?