Нужно больше входных данных, не могу воспроизвести.private_joker wrote:Возвращаюсь в обычный режим, вхождения остаются подсвеченными даже если слово не выделено
Должно быть, это зависит от конкретных настроек QSearch + Coder + AkelPad.
Code: Select all
BOOL g_bOnDlgStart=FALSE;
// Plugin extern function
void __declspec(dllexport) QSearch(PLUGINDATA* pd)
{
...
g_bOnDlgStart=TRUE;
pd->nUnload = doQSearch(pd, FALSE);
g_bOnDlgStart=FALSE;
}
Code: Select all
extern BOOL g_bOnDlgStart;
...
case WM_SHOWWINDOW:
{
if ( wParam && g_bOnDlgStart)
...
Правильно ли я понимаю, что в момент нажатия Ctrl+R диалог поиска всё ещё виден (т.е. не был предварительно закрыт)?VladSh wrote:Гляньте пожалуйста, можно ли это поправить?
Именно.DV wrote:Правильно ли я понимаю, что в момент нажатия Ctrl+R диалог поиска всё ещё виден (т.е. не был предварительно закрыт)?
Когда кликнули по диалогу поиска - это чуть другая ситуация, и тогда описанный алгоритм совершенно правильный, т.к. я явно, тыкая в диалог, показываю, что набранное в диалоге поиска значение мне и далее нужно.DV wrote:Пусть мы нажали Ctrl+F и ввели в строку AAA; затем в редакторе выделили текст BBB; затем кликнули по диалогу поиска, чтобы фокус ввода оказался на нём, и нажали Ctrl+R. Получается, что в редакторе выделен текст BBB, а в строке поиска (у которой фокус ввода) - текст AAA. И теперь в диалоге замены должен быть AAA или BBB?
По моему, просто не подхватывать. И галка подхвата в настройках плага в этом случае, наверное, должна игнорироваться.DV wrote:Что делать, когда в диалоге Поиска или Замены отмечено Направление "В выделении"? Дело в том, что в этом случае выделенный в редакторе текст не подхватывается диалогом автоматически...
Бывают ещё случаи, когда стандартный диалог не производит подхват, кроме поиска в выделении? /не знаю просто/ Если такие есть, наверное надо разбирать каждый индивидуально.DV wrote:В общем случае вопрос таков: что делать при переключении диалога, когда стандартный вызов диалога не предполагает автоматическое подхватывание выделенного в редакторе текста?
У меня в одном скрипте тоже была такая дилема. Можно пойти на соглашение - вытягивать определённое количество символов (я брал вроде 200). Также можно добавить параметр в ini для ручного регулирования этой цифрой (для тех, кто ищет большие повторяющиеся блоки xml).DV wrote:И вопрос технического плана: как можно выяснить, подхватил диалог выделенный текст или нет? Не хотелось бы для этого вытаскивать весь выделенный текст из редактора и диалога поиска и сравнивать их между собой...
Скорбной доли получения текста покоряясь, может ли грешник лелеять надежду на ограничение запрашиваемого выделенного текста определённым количеством символов? Ибо AKD_GETSELTEXTW, подобно EM_GETSELTEXTW, весь выделенный текст едино возвращает. Что в глубокую печаль вводит, если очень много текста выделено.VladSh wrote:вытягивать определённое количество символов (я брал вроде 200)