Существуют ли для AkelPad плагины, которые форматируют код документов XML (расставляют отступы и пр.)?
Существуют ли плагины, которые делают тоже самое с кодом С++?
Posted: Tue Mar 27, 2012 5:32 pm
by VladSh
Смотрите сюда. На сколько я понимаю, Вам нужны HTML Tidy и AStyle.
Posted: Wed Mar 28, 2012 5:17 am
by CleriC
Что-то у меня не получилось, подскажите, пожалуйста.
По поводу HTML TiDy:
Положил HTMLTidy.js и reformat.cfg в папку AkelPad\AkelFiles\Tools\HTMLTidy\ (как было указано в описании) но скрипт отказался вызываться, написал что должен лежать в \AkelFiles\Plugs\Scripts\ перенес файлы туда.
Еще положил ShowMenuEx.js в папку скриптов и ShowMenuCommon.js в папку AkelFiles\Plugs\Scripts\Include\ - без них тоже не работал.
Еще вот этот файл положил \AkelFiles\Plugs\Scripts\Params\HTMLTidy.param
tidy.exe скачал и положил в в \AkelFiles\Tools\HTMLTidy\
С AStyle примерно тоже самое.
AStyle.js в скрипты, AStyle.param в параметры, AStyle.exe в AkelPad\AkelFiles\Tools\AStyle\
Запускаю скрипт, появляется контекстное меню. Нажимаю хоткей: курсор убегает в конец документа но с кодом не происходит никаких изменений, как был сдвинут к левому краю, так и остался.
Что я делаю не так? Судя по всему скрипт то запускается, но как сделать так что бы он сработал? Возможно что-то с настройками не так? AkelPad 4.7.3 x86.
Posted: Wed Mar 28, 2012 9:29 am
by DV
Как по мне, то jsBeautifier.js отлично справляется. И не требует внешних программ.
Posted: Wed Mar 28, 2012 9:55 am
by Infocatcher
Еще есть tabifier.js, отложенный до создания окошка с галочками, только вот что-то все никак не собраться.
А так мне хватает jsBeautifier.js, вот и ленюсь.
Posted: Wed Mar 28, 2012 10:04 am
by VladSh
CleriC
Наверное se7h не перепилил скрипты под Include, т.к. ShowMenuEx.js должен находиться в ..\Scripts\Include\.
Вот рабочая (в т.ч. и с использованием меню) версия скрипта
if (! AkelPad.Include("ShowMenuEx.js")) WScript.Quit();
И, возможно (я его просто не использую, потому точно не знаю), параметры передать по другому. Тут поэкспериментировать придётся или se7h как-то потрусить))
DV
Возможно, я не пробовал.
Posted: Thu Mar 29, 2012 5:04 am
by CleriC
jsBeautifier.js заработал - действительно самый просто вариант - всего один файл положить в папку скрипты. Посмотрю на что он способен.
Можно настроить таким образом, что бы после форматирования документа он не выделял текст и оставлял курсор на том месте где он и был? А то весь текст выделен и теряешь место где стоял курсор.
Умеет ли jsBeautifier проверять целостность кода? Хотя бы предупреждать, если какой-то тег не закрыт?
Posted: Thu Mar 29, 2012 7:43 am
by Infocatcher
Можно настроить таким образом, что бы после форматирования документа он не выделял текст и оставлял курсор на том месте где он и был? А то весь текст выделен и теряешь место где стоял курсор.
Положение прокрутки должно сохраняться.
С восстановлением курсора сложнее. Теоретически – сделать можно, надо пробовать.
Только вот для точного восстановления надо или метки добавлять (а чтобы не сломать парсер, надо при этом учитывать синтаксис, так что восстановится в пределах «слова»), или запоминать, что находится слева (причем или без пробелов, или с заменой группы пробелов на один). Во втором случае это дополнительное выделение памяти. Впрочем, кого это сейчас волнует?
При форматировании текста С++ ...
С этим ничего не поделаешь – все же скрипт предназначен для JavaScript. Все-таки это всего лишь побочный эффект от схожего синтаксиса.
Умеет ли jsBeautifier проверять целостность кода? Хотя бы предупреждать, если какой-то тег не закрыт?
HTML:
1. Скачиваем HTML Tidy.
2. Помещаем файл Tidy.exe в папку "[AkelPad]\AkelFiles\Tools".
3. Создаем вызов в ToolBar или ContextMenu или HotKeys плагине:
XML:
1. Скачиваем HTML Tidy.
2. Помещаем файл Tidy.exe в папку "[AkelPad]\AkelFiles\Tools".
3. Создаем вызов в ToolBar или ContextMenu или HotKeys плагине:
Infocatcher wrote:Положение прокрутки должно сохраняться.
Да, оно действительно сохраняется. Если с курсором все так сложно - фиг с ним.
Еще пару вопросов:
Можно ли настроить jsBeautifier таким образом, что бы содержимое внутри тега не переносилось на следующиую строку.
Вот поясняющий скриншот: http://s1.ipicture.ru/uploads/20120329/csfhHy2s.png
У меня есть длинный тег <group id="СЗ" name="Статическое зондирование" fullname="Оборудование для статического зондирования" img="" order="1">
jsBeautifier переносит кусок img="" order="1"> на следующую строку (см. скрин 4 и 5 строчки). Этого можно избежать?
Второй вопрос, возможно не к бьютифаеру, а к настройкам самого акельпада. Можно ли сделать так, что бы длинный текст в одну строчку, при включении опции "Перенос по словам", начинался не с самого левого края, а с того места какому тегу он принадлежит. Опять же скриншот: http://s1.ipicture.ru/uploads/20120329/ZWHtxWin.png
Строка №7 очень длинная, но мне нужно видеть ее на экране. При этом сбивается выравнивание по тегам (то, чего я собственно добивался от бьютифаера). Можно ли настроить так, что бы текст шел от нарисованной красной линии?
Posted: Thu Mar 29, 2012 8:19 am
by Infocatcher
что бы содержимое внутри тега не переносилось на следующиую строку
Можно, надо запустить с дополнительным аргументом
-maxChar=число
При особом желании можно даже
-maxChar=Infinity
возможно не к бьютифаеру, а к настройкам самого акельпада
Пожалуй, было бы удобно. Лишь бы отключить можно было.
Впрочем, ни AkelPad, ни jsBeautifier такого не умеют.
Posted: Thu Mar 29, 2012 8:43 am
by CleriC
Infocatcher wrote:
Можно, надо запустить с дополнительным аргументом
-maxChar=число
При особом желании можно даже
-maxChar=Infinity
Поэкспериментирую.
Впрочем, ни AkelPad, ни jsBeautifier такого не умеют.
Жалко, ну да ладно.
Вот еще вопрос. Когда работаешь файлами где есть какая-то отбивка справа (например XML), хотелось, что бы курсор переводился не на начало строки, а выравнивался по тегу внутри которого он находится.
Вот скриншот: http://s1.ipicture.ru/uploads/20120329/AZYb7XAe.png
Находясь на строчке 253 я нажимаю Enter и курсор переводится на новую строку - в начало 254. А хотелось бы что бы он переводился на уровень тега (помечено красным). Такое возможно?
Где в AkelPad-е можно посмотреть путь до открытого файла? (в заголовке только имя)
Posted: Thu Mar 29, 2012 9:35 am
by Infocatcher
что бы курсор переводился не на начало строки, а выравнивался по тегу внутри которого он находится
меню Настройки – Сохранять отступы слева
Где в AkelPad-е можно посмотреть путь до открытого файла? (в заголовке только имя)
Если включить (P)MDI-режим, в заголовке будет путь:
Настройки – Оконный режим
Posted: Thu Mar 29, 2012 10:45 am
by Infocatcher
CleriC wrote:Если с курсором все так сложно - фиг с ним.