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]);
а). Сделать параметры nCodePage и bBOM необязательными, т.к. всё равно чаще всего приходится делать:
Code: Select all
AkelPad.SaveFile(hWndEdit, pMenuFile, AkelPad.GetEditCodePage(hWndEdit), AkelPad.GetEditBOM(hWndEdit));
б). У последней для однообразия лучше поменять параметры местами, т.е.
Code: Select all
SaveFile(hHandle, pFile[, nFlags][, nCodePage][, bBOM]);
2. GetEditFile:
Сейчас метод возвращает только имя файла текущей вкладки, т.е.
Code: Select all
var pEditFile = AkelPad.GetEditFile(0);
Предлагаю всё-таки сделать, чтобы GetEditFile возвращала массив наименований файлов либо структуру [hEditWnd, pFileName], тогда можно было бы находить нужный хэндл и реализовать метод передачи фокуса без OpenFile (с проблемами мы уже
столкнулись), по хэндлу.
3. InputBox: (отредактировано с учётом комментов
Infocatcher и
FeyFre)
Для однообразия поменять местами
pCaption,
pText, как это сделано у MessageBox и в оригинальном InputBox:
Code: Select all
MessageBox(hHandle, pText, pCaption, nType);
InputBox(hHandle, pCaption, pLabel, pEdit);
4. Получение текста:
а). Всё-таки добавить метод, который если есть выделение, то работает как GetSelText, а если нет - получает весь текст. Для ленивых ))
б). Т.к. есть функции, позволяющие вернуть индексы, то иногда хотелось бы получить текст без его выделения, по индексам...
5. TextFind:
Баг: когда файл открыт на экране и уже что-то было найдено с помощью "
0x00000001 //FR_DOWN Найти вниз.", то флаг "
0x00200000 //FR_BEGINNING Поиск с начала (использование: FR_DOWN|FR_BEGINNING)." не ищет с начала, а продолжает искать как-то непонятно... Приходится перед каждым новым поиском делать SetSel(0, 0).
Примечание: вопрос снимается, т.к. флаг на самом деле 0x00200001.
6. TextReplace:
VladSh wrote:следующие параметры можно было бы сделать опциональными:
а). DWORD dwFlags
- если есть выделенный текст, то значение по умолчанию FR_DOWN|FR_SELECTION
- если нет - FR_DOWN|FR_BEGINNING
б). BOOL bAll
значение по умолчанию true
7. SetSel:
VladSh wrote:1. В методе SetSel 2-й параметр сделать необязательным для простой установки курсора
EDITED: в Hotkeys-плагине добавил вызов скрипта, да назвал скрипт неверно (случайно добавил -OLD в конец, т.е. получилось MyScript.js-OLD), потом при вызове выдалось сообщение с красным крестом:
Scripts плагин wrote:---------------------------
Сервер сценариев не найден.
---------------------------
ОК
---------------------------
Можно ли отркорректировать сообщение в более понятное, а то я долго маялся, не понимая что произошло...