Scripts plugin
- Author
- Message
-
Offline
- Posts: 267
- Joined: Mon Mar 12, 2007 3:45 pm
AkelPad.GetSelStart вместо начала выделения возвращает ближайшую к началу текста границу выделения, аналогично AkelPad.GetSelEnd вместо конца выделения возвращает ближайшую к концу границу выделения.
Получается что, например, невозможно верно восстановить выделение!
Уточняю:
Ставим курсор на позицию 2:1, нажимаем Shift+Left.
AkelPad.GetSelStart возвращает 0, а должон 1;
AkelPad.GetSelEnd возвращает 1, а должон 0.
Получается что, например, невозможно верно восстановить выделение!
Уточняю:
Ставим курсор на позицию 2:1, нажимаем Shift+Left.
AkelPad.GetSelStart возвращает 0, а должон 1;
AkelPad.GetSelEnd возвращает 1, а должон 0.
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Спасибо за код!Instructor wrote:Code: Select all
/// Запуск открытого на редактирование скрипта...
Но есть ещё одна неприятная вещь - при ошибке в вызываемом с помощью eval(AkelPad.ReadFile(...)) скрипте, сообщается об ошибке на строке вызова, а хотелось бы чтобы определялась строка ошибки в подключаемом файле, а в идеале - его открытие и установка курсора на этой строке.
ReplaceSet усовершенствовали - здорово!
Вот ещё несколько предложений по унификации некоторых функций.
1. SaveFile:
Code: Select all
AkelPad.ReadFile(pFile[, nFlags][, nCodePage][, bBOM]);
OpenFile(pFile[, nFlags][, nCodePage][, bBOM]);
SaveFile(hHandle, pFile, nCodePage, bBOM[, nFlags]);
Code: Select all
AkelPad.SaveFile(hWndEdit, pMenuFile, AkelPad.GetEditCodePage(hWndEdit), AkelPad.GetEditBOM(hWndEdit));
Code: Select all
SaveFile(hHandle, pFile[, nFlags][, nCodePage][, bBOM]);
Сейчас метод возвращает только имя файла текущей вкладки, т.е.
Code: Select all
var pEditFile = AkelPad.GetEditFile(0);
3. InputBox: (отредактировано с учётом комментов Infocatcher и FeyFre)
Для однообразия поменять местами pCaption, pText, как это сделано у MessageBox и в оригинальном InputBox:
Code: Select all
MessageBox(hHandle, pText, pCaption, nType);
InputBox(hHandle, pCaption, pLabel, pEdit);
а). Всё-таки добавить метод, который если есть выделение, то работает как GetSelText, а если нет - получает весь текст. Для ленивых ))
б). Т.к. есть функции, позволяющие вернуть индексы, то иногда хотелось бы получить текст без его выделения, по индексам...
5. TextFind:
Баг: когда файл открыт на экране и уже что-то было найдено с помощью "0x00000001 //FR_DOWN Найти вниз.", то флаг "0x00200000 //FR_BEGINNING Поиск с начала (использование: FR_DOWN|FR_BEGINNING)." не ищет с начала, а продолжает искать как-то непонятно... Приходится перед каждым новым поиском делать SetSel(0, 0).
Примечание: вопрос снимается, т.к. флаг на самом деле 0x00200001.
6. TextReplace:
7. SetSel:VladSh wrote:следующие параметры можно было бы сделать опциональными:
а). DWORD dwFlags
- если есть выделенный текст, то значение по умолчанию FR_DOWN|FR_SELECTION
- если нет - FR_DOWN|FR_BEGINNING
б). BOOL bAll
значение по умолчанию true
VladSh wrote:1. В методе SetSel 2-й параметр сделать необязательным для простой установки курсора
EDITED: в Hotkeys-плагине добавил вызов скрипта, да назвал скрипт неверно (случайно добавил -OLD в конец, т.е. получилось MyScript.js-OLD), потом при вызове выдалось сообщение с красным крестом:
Можно ли отркорректировать сообщение в более понятное, а то я долго маялся, не понимая что произошло...Scripts плагин wrote:---------------------------
Сервер сценариев не найден.
---------------------------
ОК
---------------------------
Last edited by VladSh on Mon Jul 26, 2010 9:42 am, edited 5 times in total.
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Это плохо для обратной совместимости.VladSh wrote:Для однообразия поменять местами pText, pCaption, как это сделано у InputBox:
Лучше добавить GetAllText какой-нибудь. А за логику пусть скрипты сами отвечают.Всё-таки добавить метод, который если есть выделение, то работает как GetSelText, а если нет - получает весь текст. Для ленивых ))
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Да, я это понимаю.. но ради унификации готов переделать все свои скрипты.Infocatcher wrote:Это плохо для обратной совместимости.
Просто потом будет легче...
Точно!Лучше добавить GetAllText какой-нибудь. А за логику пусть скрипты сами отвечают.
Правда у меня это был GetText

-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Менять не нужно. Это дело привычки. Вам было удобно когда я шаблоны к Templates положил не там где Вы ожидали? Нет. Я даю гарантию, никому не будет удобно если сменят3. MessageBox:
Для однообразия поменять местами pText, pCaption, как это сделано у InputBox:
MessageBox(hHandle, pText, pCaption, nType)
на
MessageBox(hHandle, pCaption, pText, nType)
никто не будет рад. Эта форма продержалась больше 18 лет, и продержится ещё столько же.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
FeyFre
Ага, теперь я понял о чём говорил Infocatcher!
Свою неправоту осознал.. Спасибо за качественную аргументацию!
Кстати, зашёл в доку глянуть, это, оказывается, у InputBox'а надо эти же параметры менять местами!Сейчас в предложениях выше поменяю наоборот.
Ага, теперь я понял о чём говорил Infocatcher!
Свою неправоту осознал.. Спасибо за качественную аргументацию!
Кстати, зашёл в доку глянуть, это, оказывается, у InputBox'а надо эти же параметры менять местами!
Code: Select all
InputBox[$] ( prompt [ , [ title ] [ , [ default ] [ , xpos , ypos ] ] ] )
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
В данном случае я конкретного аргумента не привел, а именно: прототип этого MessageBox - системный вызов MessageBox из WIN32 API. И аргументы именно в этом порядке. И существует он со времён Windows NT 3.1 (релиз 1993 года). Вот вам и 18 лет. Такие привычки люди так просто не меняют(пусть даже и виртуальные).Спасибо за качественную аргументацию!
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 876
- Joined: Tue Jul 24, 2007 8:54 am
http://www.script-coding.info/WSH.html
справка по WSH, причем есть и в CHM формате. Полезная вещь.
справка по WSH, причем есть и в CHM формате. Полезная вещь.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact: