Page 6 of 7

Posted: Tue Jan 20, 2015 5:04 pm
by Infocatcher
CleriC wrote:Выдает 5.8.
Хм, ну, вроде, новый, у меня такую же версию выводит.
CleriC wrote:35: появляются 3 знака табуляции перед словами «Инженерные изыскания»
Угу, вижу. Если получится сделать компактный пример для демонстрации, можно будет пожаловаться сюда.
CleriC wrote:49-50, 96-97, 116-117: на новую строку переносится </p>
По идее, это нормальное поведение для не строчных тэгов, был бы в конце текст, а не закрывающий тэг, не перенесло бы.
CleriC wrote:51-53 и 71-73: <p> и </p> в разных строках
Хм, у меня там

Code: Select all

		<p>
			<h4>Основные параметры зондов, используемых в комплекте ТЕСТ-К4.</h4>
		</p>
выходит, вполне ожидаемо развернуло.
Разве что можно попробовать добавить "p" в -unformattedTags, но результаты могут быть странными.
CleriC wrote:112-113: параметр to тега <link_row уехал на новую строку
125: слишком длинная строка, 183 символа
Ага, вижу, тоже надо авторам библиотеки жаловаться.
CleriC wrote:ЗЫ С -wrapLineLength тоже самое.
Ну да, это просто замена для -maxChar, работать должно точно так же.

Posted: Tue Jan 20, 2015 5:25 pm
by Infocatcher
Пока что вот так:
https://github.com/beautify-web/js-beautify/issues/607
Во всяком случае стало понятно, что проблема в принудительных переносах после задания wrap_line_length.

Posted: Tue Jan 20, 2015 5:49 pm
by CleriC
Infocatcher wrote:По идее, это нормальное поведение для не строчных тэгов, был бы в конце текст, а не закрывающий тэг, не перенесло бы.
Ну вот эти переносы </p> расстраивают. И <p> то добавлять в unformattedTags не хочется, внутри <p> надо ведь порядок наводить. Возможно есть какая-то настройка, что бы пример вида:

Code: Select all

<p><h4>test</h4></p>
Оставлять в таком же виде? (не разность открывающий и закрывающий теги <p> на разные строки).
Ну и в примере вида:

Code: Select all

<p>Тест <b>Тест</b></p>
Не уносить </p> на новую строку?

Проблема
112-113: параметр to тега <link_row уехал на новую строку
Решается ПОВТОРНЫМ запуском скрипта. Уж не знаю в чем тут дело.
Оригинальный текст:

Code: Select all

		<p>После подачи питания, контроллер проводит самодиагностику, и автоматически переходит в РАБОЧИЙ РЕЖИМ.</p>
		<p>В РАБОЧЕМ РЕЖИМЕ, после ввода параметров опыта (номер, шаг отсчетов и глубина зондирования), текущие
			отсчеты сохраняются в контроллере при нажатии кнопки «ПУСК». Одновременно, они распечатываются
			на минипринтере. Управлять контроллером для записи данных зондирования можно при помощи <link_row to="РК.05.01.01">Радиокнопки РК-11</link_row>.</p>
Форматируем 1 раз:

Code: Select all

		<p>После подачи питания, контроллер проводит самодиагностику, и автоматически переходит в РАБОЧИЙ
			РЕЖИМ.</p>
		<p>В РАБОЧЕМ РЕЖИМЕ, после ввода параметров опыта (номер, шаг отсчетов и глубина зондирования), текущие
			отсчеты сохраняются в контроллере при нажатии кнопки «ПУСК». Одновременно, они распечатываются
			на минипринтере. Управлять контроллером для записи данных зондирования можно при помощи
			<link_row
			to="РК.05.01.01">Радиокнопки РК-11</link_row>.</p>
Форматируем второй раз:

Code: Select all

		<p>После подачи питания, контроллер проводит самодиагностику, и автоматически переходит в РАБОЧИЙ
			РЕЖИМ.
		</p>
		<p>В РАБОЧЕМ РЕЖИМЕ, после ввода параметров опыта (номер, шаг отсчетов и глубина зондирования), текущие
			отсчеты сохраняются в контроллере при нажатии кнопки «ПУСК». Одновременно, они распечатываются
			на минипринтере. Управлять контроллером для записи данных зондирования можно при помощи
			<link_row to="РК.05.01.01">Радиокнопки РК-11</link_row>.</p>
Правда закрывающий тег </p> после слова «РЕЖИМ» уехал на новую строку (почему, кстати?)

Posted: Wed Jan 21, 2015 8:42 am
by CleriC
Можно ли, еще, как-то избежать того, что закрывающая часть тега «/>» уезжает на другую строку?

Code: Select all

<row param="Диапазон измерения удельного сопротивления грунта по конусу (исполнение 1), МПа" val="0,2-50"
			/>
Я понимаю, что это с -wrapLineLength связано, но все-таки, выглядит очень странно.

Posted: Sun Jan 25, 2015 10:19 am
by Instructor
VladSh wrote:

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)
не выводят сообщение в окошко Log::Output.
У вас используется --show-errors 1 для HTML, а не выводятся в панель вывода потому-что "1052673".

Для тестирования HTML можете использовать следующий вызов:

Code: Select all

-"HTML tester" Call("Log::Output", 1, `"%a\AkelFiles\Tools\Tidy.exe" -utf8 --indent auto --quiet yes --wrap 0 -errors`, "", "^line (\d+) column (\d+)", "/GOTOLINE=\1:\2", 65001, 65001, 4096) Icon(0)

Posted: Wed Feb 04, 2015 4:55 pm
by VladSh
Instructor wrote:Для тестирования HTML можете использовать следующий вызов:

Code: Select all

-"HTML tester" Call("Log::Output", 1, `"%a\AkelFiles\Tools\Tidy.exe" -utf8 --indent auto --quiet yes --wrap 0 -errors`, "", "^line (\d+) column (\d+)", "/GOTOLINE=\1:\2", 65001, 65001, 4096) Icon(0)
Подскажите пожалуйста, как сделать то же самое на скрипте, но чтобы если валидация пройдена, то консоль не выводить, а выдать сообщение "всё ok"?

Posted: Mon Feb 09, 2015 4:53 pm
by Instructor
VladSh wrote:...если валидация пройдена, то консоль не выводить, а выдать сообщение "всё ok"?
Требуется Log плагин версии 4.5 или выше:

Code: Select all

var hMainWnd=AkelPad.GetMainWnd();

AkelPad.Call("Log::Output", 1, '"' + AkelPad.GetAkelDir() + '\\AkelFiles\\Tools\\Tidy.exe" -utf8 --indent auto --quiet yes --wrap 0 -errors', "", "^line (\\d+) column (\\d+)", "/GOTOLINE=\\1:\\2", 65001, 65001, 4160 /*64+4096*/)
while (GetExecState())
  WScript.Sleep(100);
if (GetExitCode() == 0)
{
  AkelPad.Call("Log::Output", 6);
  WScript.Echo("OK");
}
else AkelPad.SendMessage(hMainWnd, 1278 /*AKD_DOCK*/, 0x200 /*DK_SHOW*/, GetOutputDock());

function GetExecState()
{
  var lpState;
  var nState=0;

  if (lpState=AkelPad.MemAlloc(4 /*sizeof(DWORD)*/))
  {
    AkelPad.Call("Log::Output", 3, lpState);
    nState=AkelPad.MemRead(lpState, 3 /*DT_DWORD*/);
    AkelPad.MemFree(lpState);
  }
  return nState;
}

function GetExitCode()
{
  var lpCode;
  var nCode=0;

  if (lpCode=AkelPad.MemAlloc(4 /*sizeof(DWORD)*/))
  {
    AkelPad.Call("Log::Output", 3, 0, 0, 0, 0, lpCode);
    nCode=AkelPad.MemRead(lpCode, 3 /*DT_DWORD*/);
    AkelPad.MemFree(lpCode);
  }
  return nCode;
}

function GetOutputDock()
{
  var lpDock;
  var hDock=0;

  if (lpDock=AkelPad.MemAlloc(_X64?8:4 /*sizeof(DOCK *)*/))
  {
    AkelPad.Call("Log::Output", 2, 0, lpDock);
    hDock=AkelPad.MemRead(lpDock, 2 /*DT_QWORD*/);
    AkelPad.MemFree(lpDock);
  }
  return hDock;
}

Posted: Wed Feb 11, 2015 3:52 pm
by VladSh
Instructor wrote:ValidateTidy.js
Запрос потянул серьёзные изменения в Log-плагине, но, думаю, это полезно. Огромное Вам спасибо!

Подшаманил чуток скрипт, чтобы он ещё и форматирование делал (оно работает, только если файл проходит валидацию). Почему-то AkelPad на вызове Log-плагина для форматирования (вызов на первом else) либо ничего не делает, либо падает (чаще всего).
Но если взять из вставленного ниже скрипта несколько строк, которые делают только форматирование, то всё отрабатывает отлично.

tidy.js
Подскажите пожалуйста, как поправить?

Добавлено:
Ещё заметил, даже при старом Log-плагине, - вызов из контекстного меню приводит к переходу к строке в окне редактирования при даблклике на "ошибке" в панели Log-плагина, а вызов из скрипта формирует текст в панели Log-плагина, но при даблклике на "ошибке" перехода к нужной строке не происходит.

Posted: Thu Feb 12, 2015 6:41 am
by Instructor
VladSh
В ValidateTidy.js была не экранирована обратная косая черта:
AkelPad.Call("Log::Output", 1, '"' + AkelPad.GetAkelDir() + '\\AkelFiles\\Tools\\Tidy.exe" -utf8 --indent auto --quiet yes --wrap 0 -errors', "", "^line (\\d+) column (\\d+)", "/GOTOLINE=\\1:\\2", 65001, 65001, 4160 /*64+4096*/)

Posted: Thu Feb 12, 2015 7:20 am
by CleriC
Есть ли какие-то новости по моим сообщениям раз и два?
Почему текст форматируется первый раз одним образом, а второй раз — другим? Ну и прочее, по оформлению, переносам...

Posted: Thu Feb 12, 2015 2:32 pm
by Infocatcher
CleriC
Да там почти все связано с принудительным переносом, вроде бы как, а насчет него разработчики пока только метки развесили – стало быть, воспроизвели, но еще не починили.

Posted: Fri Feb 13, 2015 12:16 pm
by VladSh
Instructor wrote:не экранирована обратная косая черта
Да, спасибо, теперь переход происходит.
А на втором вызове AkelPad всё же продолжает крэшиться.

Posted: Sat Feb 14, 2015 5:58 am
by Instructor
VladSh
Не воспроизводится. Какой код, на каком тексте?

Posted: Mon Feb 16, 2015 8:55 pm
by VladSh
Instructor wrote:Какой код, на каком тексте?
Код чуть выше давал - tidy.js (я в нём уже удвоил слэши).

На тексте - вставляю любой xml-шаблон с помощью Template-плагина, затем вызываю скрипт "Убрать все переводы строк", после чего запускаю жму кнопку:

Code: Select all

-"Formatting test" Call("Scripts::Main", 1, "tidy.js", `-action=1 -filetype="-xml"`)
и на строке 29 (что внутри блока else) AkelPad крэшится.

Posted: Thu Feb 19, 2015 7:06 am
by Instructor
VladSh
Исправлено. Будет доступно после релиза 4.9.3.