Scripts discussion (1)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Infocatcher wrote:Назначить хоткей и быстро запускать редактируемый скрипт.
У меня для этого существует и используется TestCurrentScript.js (посажен на Alt+T), правда без агрументов, но они и не нужны, т.к. проще уже создать вызов в ContextMenu.
Infocatcher wrote:Или есть скрипт, но лень его сохранять (вдруг не очень полезный ) – можно быстро посмотреть.
Такое у меня обитает в одном единственном скрипте test.js, на который раз и навсегда назначена Ctrl+T.

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

VladSh wrote:т.к. проще уже создать вызов в ContextMenu.
А я кнопки делаю – меньше кликов. :D Но все равно надоедает, если надо протестировать несколько аргументов. И пару раз я забывал, что там у меня не просто так, а с аргументами (например, ищу, почему не работает, а сам же аргументом отключил).

А аргумент я все же добавил.

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Infocatcher wrote:А я кнопки делаю – меньше кликов. :D Но все равно надоедает, если надо протестировать несколько аргументов. И пару раз я забывал, что там у меня не просто так, а с аргументами (например, ищу, почему не работает, а сам же аргументом отключил).
Почему бы не заюзать тогда ShowMenuEx.js? Пишем несколько строк с разными параметрами, а потом выбираем из меню? По моему, идеально.

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »


Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

VladSh wrote:Почему бы не заюзать тогда ShowMenuEx.js? Пишем несколько строк с разными параметрами, а потом выбираем из меню? По моему, идеально.
Так ведь получится, что мы просто в другом месте пишем. :D
se7h wrote:WinMerge.js v0.2
А почему не %ProgramFiles% и %ProgramFiles (x86)%?

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Infocatcher
и правда, недосмотрел (VladSh :))

WinMerge.js 0.2.1

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

toggleComments.js
Fixed redraw.
Added -saveLastExt argument.

highlighter.js
Added -saveLastExt argument.

insertTag.js
Added -saveLastTag argument.

All: now used AkelPad.ScriptSettings() to store data.


Instructor
Пришло время спросить еще раз. :)
Будет ли во встроенный скрипт включено что-нибудь из LinesFilter_mod.js/LinesFilter_mod2.js?


Как программно и без перевода фокуса на окно сделать переход в начало/конец файла (аналог Ctrl+Home/Ctrl+End)?
А то я только неправильно могу – через

Code: Select all

AkelPad.SendMessage(hMainWnd, 1206 /*AKD_GOTOW*/, 0x1 /*GT_LINE*/, AkelPad.MemStrPtr(gotoStr));

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

In scripts:
SortInColumns.js
SortLines.js
SortList.js
SortWords.js
added:
- saving settings,
- Polish translation,
changed: shortcut keys.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

VladSh
По поводу CommentsAdd.js.

Имеем такой кусок css-файла:

Code: Select all

.pageslist {
list-style:none;
list-style-image: none;
margin-left: 1em;
}
.submenu>.pageslist {
margin-left: 0em;
}
Выделяем первые пять приведенных строк, месте с концевым переносом строки. На выходе получаем так закомментированное:

Code: Select all

/*
.pageslist {
list-style:none;
list-style-image: none;
margin-left: 1em;
}
.submenu>.pageslist {
*/
А хотелось бы, чтоб было так:

Code: Select all

/*
.pageslist {
list-style:none;
list-style-image: none;
margin-left: 1em;
}
*/
А если выделяем те же пять строк, но без завершающего перевода каретки, то хотелось бы такое комментирование:

Code: Select all

/*.pageslist {
list-style:none;
list-style-image: none;
margin-left: 1em;
}*/
Можете сделать такое поведение?

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Хоть просили и не меня... :D

toggleComments.js
Changed -blockCommentsEntireLines argument.


Lenchik
Теперь при

Code: Select all

Call("Scripts::Main", 1, "toggleComments.js", "-addSpaces=false -blockCommentsEntireLines=-1")
, вроде бы, получается именно то, что требовалось.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Infocatcher, спасибо. Работает. А как-то можно сделать так, чтобы в настроечном toggleComments-options.js можно было бы задать дефолтовые настройки для вызова скрипта (чтобы можно было бы назначать горячую клавишу на скрипт, через Scripts плагин)

И подскажите непонимающему в js человеку, каким образом дописать посредствам toggleComments-options.js в структуру commentsSets значение

Code: Select all

tpl: [ ["{*"], ["*}"], ["//"] ],
Кстати, выделение этой или подобной строчки в этом js файле (подсказанными мне настройками), от начала и до конца, без захвата символа переноса строки не приводит к комментированию, а выделяет некую группу символов. Так и должно быть? А то я ещё с настройками не разобрался.
Чуть понаблюдав - это он удаляет // из строки. Может сделать какую-то настройку/проверку на наличие симоволов рядом с // таким комментарием? А то на php бываает встречаются куски кода вида

Code: Select all

str_replace("//", "/", $result);
Или это как-то другими настройками или разделением на снятие и постановку комментов решить можно?

и о чём говорит там запись "..php..": - к файлам какого вида она применяется?
И заодно, может быть вписать эту посоветованную комбинацию в комментарии к скрипту, при следующем релизе, как пример возможной рабочей комбинации?
Что дают настройки ignoreBlockCommentsInSel, multipleEnabled? О каких расширениях идёт речь в saveLastExt и как это практически применимо?

[offtop] У Акельпада и его скриптов оказывается довольно много неочевидных настроек или возможностей, к которым потом быстро привыкаешь. И начинаешь искать новые - вдруг еще что-то очень удобное пропустил. [/offtop]

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Lenchik wrote:А как-то можно сделать так, чтобы в настроечном toggleComments-options.js можно было бы задать дефолтовые настройки для вызова скрипта (чтобы можно было бы назначать горячую клавишу на скрипт, через Scripts плагин)
А Hotkeys плагин не нравится? :)
Сейчас toggleComments-options.js выполняется до чтения аргументов, так что пока что нельзя (точнее, можно, но для этого придется переопределить функцию для чтения аргументов). Тут проще переместить чтение настроек.
Lenchik wrote:дописать посредствам toggleComments-options.js в структуру commentsSets значение

Code: Select all

commentsSets.tpl = [ ["{*"], ["*}"], ["//"] ];
Lenchik wrote:Кстати, выделение этой или подобной строчки в этом js файле (подсказанными мне настройками), от начала и до конца, без захвата символа переноса строки не приводит к комментированию, а выделяет некую группу символов. Так и должно быть? А то я ещё с настройками не разобрался.
Да, так и должно – это особенности переключения комметирования (а по умолчанию именно переключение) – сначала проверяется, нельзя ли удалить комментирование.
Lenchik wrote:Чуть понаблюдав - это он удаляет // из строки. Может сделать какую-то настройку/проверку на наличие симоволов рядом с // таким комментарием?
Теоретически можно исключать строки ("..." и '...') перед поиском комментариев. В принципе, ссылки (http://example.com/) и регулярки (/\//i) там уже вырезаются перед поиском. :)
И можно принудительно задавать добавление комментирования (-method=1).
Lenchik wrote:и о чём говорит там запись "..php..": - к файлам какого вида она применяется?
Если разрешен поиск регионов в тексте, то настройки для php перезаписываются:

Code: Select all

if(commentsMultipleEnabled)
	commentsSets.php = commentsSets.html;
Lenchik wrote:Что дают настройки ignoreBlockCommentsInSel, multipleEnabled? О каких расширениях идёт речь в saveLastExt и как это практически применимо?
ignoreBlockCommentsInSel
Там хитрая проверка в удалялке блочных комментариев. Если в выделении обнаружится несколько блочных комментариев, так что не понятно, что удалять, то может или выдать предупреждение и прекратить обработку, или проигнорировать (и добавить комментарий при -method=0).

multipleEnabled
Разрешает поиск регионов в тексте вроде <?php тут PHP ?> и <style> тут CSS </style>. Такой поиск может сказаться на производительности, так что на всякий случай предусмотрено отключение.

saveLastExt
Используется только при попытках комментирования несохраненных файлов. При этом спрашивается расширение у пользователя. И в результате можно ничего не запоминать, можно запоминать только введенное пользователем, а можно сохранять каждое расширение (последнее пока что просто по аналогии с другими скриптами, впрочем, это я скорее недосмотрел :D).

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Тестовая: toggleComments-test.js
Добавлена возможность предварительной обработки строк перед поиском в них комментариев:

Code: Select all

var commentsExcludes = { ... };
Пока используется только для удаления единичных однострочных комментариев.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Infocatcher wrote:Будет ли во встроенный скрипт включено что-нибудь из LinesFilter_mod.js/LinesFilter_mod2.js?
Кое-что добавил.
Как программно и без перевода фокуса на окно сделать переход в начало/конец файла (аналог Ctrl+Home/Ctrl+End)?
AkelPad.SetSel(0, 0) и AkelPad.SetSel(-1, -1).

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

AkelPad.SetSel(0, 0) и AkelPad.SetSel(-1, -1).
Не догадался. :)
А «внутри» аналогично сделано? И кто гарантирует прокрутку к позиции каретки? То есть если реализовать некий гипотетический контрол, не делающий прокрутку, то что в нем будет после Ctrl+Home/Ctrl+End?
Locked