Page 40 of 50
Posted: Sat Dec 29, 2018 1:07 pm
by VladSh
DV
И выздоравливай! Ну его, это, болеть...
Posted: Mon Jan 14, 2019 12:20 pm
by DV
Что-то я в упор не понимаю, почему в
https://github.com/d0vgan/AkelPad-Plugs ... Dlg.c#L274
вычисляется неправильная позиция в перенесенной строке при включенном переносе строк.
Наверное, надо, чтобы
Instructor глянул.
Posted: Tue Jan 15, 2019 6:58 pm
by Instructor
DV
nLineStartPos = (INT_X) SendMessage(hWndEdit, EM_LINEINDEX, pcrFound->ciMin.nLine, 0);
Posted: Wed Jan 16, 2019 11:02 am
by DV
Instructor wrote:DV
nLineStartPos = (INT_X) SendMessage(hWndEdit, EM_LINEINDEX, pcrFound->ciMin.nLine, 0);
Если так сделать, то номер строки неправильный

Получается так (при поиске wxy):
Code: Select all
---------------------------------------------
| 1| abc def ghi jkl mno pqr stu vwx yza bcd |
| | efg hij klm nop qrs tuv wxy zab |
| 2| abc def ghi jkl mno pqr stu vwx yza bcd |
| | efg hij klm nop qrs tuv wxy zab |
| | |
|---------------------------------------------|
|Log::Output [x]|
|---------------------------------------------|
|(1,25) efg hij klm nop qrs tuv wxy zab |
|(2,25) efg hij klm nop qrs tuv wxy zab |
|2 occurrence(s) found. |
---------------------------------------------
Posted: Thu Jan 17, 2019 8:58 am
by Instructor
nLineStartPos = (INT_X) SendMessage(hWndEdit, AEM_GETRICHOFFSET, AEGI_WRAPLINEBEGIN, (LPARAM)nLinePos);
или
nLineStartPos = (INT_X) SendMessage(hWndEdit, AEM_GETRICHOFFSET, AEGI_RICHOFFSETFROMUNWRAPLINE, (LPARAM)nUnwrappedLine);
Не проверял.
Posted: Tue Jan 22, 2019 9:23 pm
by DV
Спасибо, нашёл, в чём ошибка.
На данный момент результаты поиска выглядят вот так:
Пока что вылавливаю ошибки, мультипоточность ещё не прикручивал.
При поиске в большом файле (10 - 100 МБ) при большом количестве найденных результатов (2000 и более) интерфейс замирает секунд на 10-15.
Posted: Wed Jan 23, 2019 8:01 pm
by DV
Тестовая версия:
https://github.com/d0vgan/AkelPad-Plugs ... fea-190123
Качаем архив QSearch-dev-df05fea-190123.zip.
В настройках плагина (QSearch.ini) указываем:
Posted: Wed Jan 23, 2019 9:48 pm
by yozhic
DV
Искал в файле 59 Мб, пока только литерально (с регулярками пока не пробовал). Скорость поиска такая же, как у скрипта
FindReplaceEx.js. Для нахождения 51289 совпадений плагину (как и скрипту) понадобилась 1 минута – все это время интерфейс был недоступен. С 317130 совпадениями плагин справился за 7,5 минут, а скрипт за 5 минут.
Но обратило внимание другое. Если нажать галку Highlight all, то курсор перемещается на первое совпадение и выделяет его. Т.е. не на кнопку Find next, а именно на галку.

Если галка Highlight all отмечена, то так же срабатывает нажатие на галки Match case и Whole word, т.е. выделение в тексте переносится на первое совпадение. Если Highlight all не отмечена, то нажатие на другие галки не влияет на выделение в тексте. У версий 7.0 и 7.1 такое же поведение. Значит так и должно быть?
Posted: Thu Jan 24, 2019 11:22 am
by DV
Значит, экономим память, но проигрываем по скорости. При малом количестве вхождений это оправдано.
Активная галочка "Подсветить все" воспринимается как руководство к действию, чтобы текст в строке поиска совпадал с тем, что подсвечено. По этой же причине галочки "Учитывать регистр" и "Слово целиком" могут изменить подсвеченный текст, когда прежде подсвеченный текст перестаёт совпадать с настройками поиска.
P.S.
Какую бы комбинацию клавиш назначить на "Найти все"? Ctrl+Shift+Enter, что ли?
Posted: Thu Jan 24, 2019 4:52 pm
by yozhic
Ясно, спасибо. Все верно, логично. А то у меня сложилось представление, что галки – это только предварительный выбор функций, а применение функций должно происходить по нажатию на кнопку Ok, Run, в нашем случае Find. Поэтому и срефлексировал.
Ctrl+Shift+Enter, что ли?
Может Ctrl+Alt+Enter?
Shift с инверсией ассоциируется. Enter = поиск вперед, Shift+Enter = поиск назад.
А у нас уже есть Alt+Enter = поиск сначала. Тогда Ctrl+Alt+Enter = поиск сначала и всех вхождений. Вроде последовательно получается

Posted: Tue Feb 05, 2019 5:17 pm
by Eskander88
Подскажите как привязать горячие клавиши к параметрам QSearch::Plugin, которые отображаются в меню по Правому-Клику-Мышки на панели плагина?
Интересуют вкл/выкл параметров:
- Поиск: использовать всегда спец.симв
- Поиск: использовать регулярные выражения
- Поиск: захватывает \n в регулярных выражениях
- Поиск: подхватывать выделенный текст
Posted: Wed Feb 06, 2019 2:24 pm
by DV
Eskander88 wrote:Подскажите как привязать горячие клавиши к параметрам
Думаю, что никак.
Posted: Mon Feb 11, 2019 10:02 am
by DV
yozhic wrote:Искал в файле 59 Мб, пока только литерально (...) Для нахождения 51289 совпадений плагину (как и скрипту) понадобилась 1 минута – все это время интерфейс был недоступен. С 317130 совпадениями плагин справился за 7,5 минут, а скрипт за 5 минут.
Меня смущает, что Notepad++ справляется с той же задачей раз в 10-20 быстрее. Явно надо что-то оптимизировать.
Posted: Wed Feb 13, 2019 5:58 am
by Eskander88
DV wrote:Спасибо, нашёл, в чём ошибка.
На данный момент результаты поиска выглядят вот так:
Пока что вылавливаю ошибки, мультипоточность ещё не прикручивал.
При поиске в большом файле (10 - 100 МБ) при большом количестве найденных результатов (2000 и более) интерфейс замирает секунд на 10-15.
DV,
могли бы вы поделится: как вы настроили данный вывод результатов поиска
QSearch::Plugin в
Log::Output?
Posted: Wed Feb 13, 2019 10:20 am
by opk44
Eskander88 wrote:могли бы вы поделится...
Так, вроде ничего ни от кого не спрятано:
ссылка.
Только, это если вы Си-код разбирать готовы...