| View previous topic :: View next topic |
| Author |
Message |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Fri Jul 16, 2010 11:40 am Post subject: |
|
|
| Подскажите пожалуйста, как на скрипте узнать какое "правило" подсветки/автодополнения было применено к текущему файлу? |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1889 Location: Vinnitsa, Ukraine
|
Posted: Fri Jul 16, 2010 12:44 pm Post subject: |
|
|
VladSh
Сейчас никак. Scripts может взаимодействовать с плагинами не круче чем ContextMenu, ToolBar, HotKeys, т.е. только вызвать с дополнительными параметрами. Что-то вернуть пока не может. Разве что что-то в буфере обмена оставит(кстати, можете попросить Инструктора что-бы добавил такую подфункцию). Мне, например, не помешала бы возможность программно вызвать ContextMenu(из SpellCheck) со списком дополнительных пунктов, и что-бы он вернул мне выбор из этого списка(если таков есть). |
|
| Back to top |
|
 |
Tony
Joined: 03 Jul 2008 Posts: 98
|
Posted: Fri Jul 16, 2010 12:46 pm Post subject: |
|
|
FeyFre
При открытии скрипта "zen_wrapwithabbreviation" появляется окно, при сорачивании которго сворачивается и программа. При разворачивании AkelPad'а окно скрипта нормально отображается, а окно AkelPad'a неправельно. В скриптах LinesFilter, RenameFile, SearchReplace этого непроисходит. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1889 Location: Vinnitsa, Ukraine
|
Posted: Fri Jul 16, 2010 1:12 pm Post subject: |
|
|
Tony
Фикс готов. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Fri Jul 16, 2010 2:23 pm Post subject: |
|
|
| FeyFre wrote: | | (кстати, можете попросить Инструктора что-бы добавил такую подфункцию). Мне, например, не помешала бы возможность программно вызвать ContextMenu(из SpellCheck) со списком дополнительных пунктов, и что-бы он вернул мне выбор из этого списка(если таков есть). | А чего сами не попросите?
Я уже прошу это 2 года.
Меню, о котором Вы говорите, - это частный случай - выбор только одного значения из списка.
Пока что мы имеем ShowMenu.js из дистрибутива плагина, но его не совсем удобно, вернее идеологически неправильно, использовать, т.к. данные должны сохраняться ВНЕ скрипта (в виде списка, как в ini), чтобы их мог корректировать любой пользователь, не боясь задеть скрипт! Я хотел переделать его, сделать более универсальным, спрашивал, как это сделать, но мне так никто и не ответил...
Но всё же считаю, что это должен быть не скрипт, а именно встроенная функция, принимающая массив. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4640
|
Posted: Fri Jul 16, 2010 2:39 pm Post subject: |
|
|
| VladSh wrote: | | Я хотел переделать его, сделать более универсальным, спрашивал, как это сделать, но мне так никто и не ответил... | Так?
| Code: | var lpItems=[];
var nItem;
var lpArrayName=new Array("JS", "LSS", "VBS");
var lpArrayExt=new Array("js", "lss", "vbs");
for (nItem=0; nItem < lpArrayName.length; ++nItem)
lpItems[nItem]=[lpArrayName[nItem], MF_NORMAL, lpArrayExt[nItem]]; |
|
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1889 Location: Vinnitsa, Ukraine
|
Posted: Fri Jul 16, 2010 2:46 pm Post subject: |
|
|
| Quote: | | А чего сами не попросите? | Попрошу когда буду считать нужным и возможным.
| Quote: | | спрашивал, как это сделать, но мне так никто и не ответил... | Может я и идиот, но помоему AkelPad.ReadFile() может прочитать любой текстовый файл. А в скрипте его распарсить можно любым известным вам способом: от написания парсера в лоб, до трёх-этажных регулярных выражений. Чего же тут сложного? |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Fri Jul 16, 2010 4:05 pm Post subject: |
|
|
FeyFre
Никто не идиот
Просто смешивать данные с кодом это ещё хуже, чем смешивать бизнеслогику с интерфейсом. В идеале данные должны быть в отдельном файле, чтобы любой ОБЫЧНЫЙ пользователь мог преспокойно менять данные, не боясь что-то зацепить.
Пример: файл с типами файлов для диалога создания и других меню:
По такому же принципу должно быть построено всё.
Ещё пример: пользователь часто вводит какое-то команды для какого-то скрипта исполнения (стараться особо не буду выдумывая команды):
| Code: | cmd
regedit
msconfig | так вто это должны быть просто команды, чтобы пользователь зашёл и добавил то, что он хочет, а не занимался в скрипте каждый раз "распарсиванием", т.е. должен быть общий механизм, который вызывает такие файлы и налету создаёт меню для выбора.
Чтобы унифицировать это, я предлагал в папке Scripts создать папку Params, а в ней либо файлы с именем скрипта (допустим MyScript.param) или папку по названию скрипта (когда у одного скрипта может быть несколько файлов), так мы и сделали для newFileTemplate. Вот так должно быть унифицировано всё. Но только надо написать общий механизм формирования меню, а затем уже дёргать ShowMenu.js, а по наименованию текущего скрипта меню будет само формироваться...
Спасибо за код  |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Sat Jul 17, 2010 12:25 pm Post subject: |
|
|
Наблюдение:
- для скрипта, который получает текст из выделения методом GetSelText(), преобразование содержимого в массив строк производится так:
| Quote: | | var arrContent = strContent.split('\r'); |
- для скрипта, который получает текст путём чтения другого файла методом ReadFile(), преобразование содержимого в массив строк производится так:
| Quote: | | var arrContent = strContent.split('\r\n'); |
|
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Sat Jul 17, 2010 1:52 pm Post subject: |
|
|
Коллеги, подскажите!
Как из скрипта определить, был ли он вызван по комбинации клавиш или кликом мыши? |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1889 Location: Vinnitsa, Ukraine
|
Posted: Sun Jul 18, 2010 5:20 am Post subject: |
|
|
VladSh
Никак
Как определить почему кусок железа тёплое: его на огне/солнце держали, или по нему кувалдой долбанули?
Если так нужно - добавьте доп. параметр, и ставьте его разным при разных вызовах. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Sun Jul 18, 2010 7:24 am Post subject: |
|
|
FeyFre
Из скрипта я могу узнать, какой скрипт его вызвал (какой был запущен изначально). По идее почему бы не определять что инициировало запуск скрипта: ContextMenu, Hotkeys или просто Scripts? Ведь эта информация есть у редактора, и даже какой скриптовый файл был запущен.
Я всё же думаю, что можно, только не знаю как...
Про параметр знаю, сам так делал, но это как-то не элегантно...  |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1889 Location: Vinnitsa, Ukraine
|
Posted: Sun Jul 18, 2010 9:24 am Post subject: |
|
|
| Quote: | Ведь эта информация есть у редактора, и даже какой скриптовый файл был запущен.
Я всё же думаю, что можно, только не знаю как... | Метода, как взять эту информацию нету. Ждите ответа Инструктора если не верите мне.
| Quote: | | Про параметр знаю, сам так делал, но это как-то не элегантно... | Когда задача делается только однояко, то вопрос об элегантности обычно не поднимают.  |
|
| Back to top |
|
 |
Tony
Joined: 03 Jul 2008 Posts: 98
|
Posted: Sun Jul 18, 2010 9:42 am Post subject: |
|
|
se7h
Данный скрипт "LanguageHelp" работает немного неправильно, упращённо. И поэтому поддерживаются далеко не все CHM документации (например по PHP). Правильно былол бы указывать ключевое слово для поиска в разделе "Указатель". Возможно такое реализовать? |
|
| Back to top |
|
 |
KDJ
Joined: 06 Mar 2010 Posts: 1067 Location: Poland
|
Posted: Sun Jul 18, 2010 12:19 pm Post subject: Method AkelPad.GetSelText() |
|
|
I have a question.
What do the different arguments in the method AkelPad.GetSelText()?
What is the difference obtained strings?
| Quote: | GetSelText([nNewLine]);
Arguments
nNewLine (only for AkelPad 4.x.x)
1 //"\r" new line (default).
2 //"\n" new line.
3 //"\r\n" new line.
Return Value
String. Selected text. |
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|