QSearch plugin
- Author
- Message
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Что-то я в упор не понимаю, почему в
https://github.com/d0vgan/AkelPad-Plugs ... Dlg.c#L274
вычисляется неправильная позиция в перенесенной строке при включенном переносе строк.
Наверное, надо, чтобы Instructor глянул.
https://github.com/d0vgan/AkelPad-Plugs ... Dlg.c#L274
вычисляется неправильная позиция в перенесенной строке при включенном переносе строк.
Наверное, надо, чтобы Instructor глянул.
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Если так сделать, то номер строки неправильныйInstructor wrote:DVnLineStartPos = (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. |
---------------------------------------------
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Тестовая версия:
https://github.com/d0vgan/AkelPad-Plugs ... fea-190123
Качаем архив QSearch-dev-df05fea-190123.zip.
В настройках плагина (QSearch.ini) указываем:
https://github.com/d0vgan/AkelPad-Plugs ... fea-190123
Качаем архив QSearch-dev-df05fea-190123.zip.
В настройках плагина (QSearch.ini) указываем:
Code: Select all
new_ui=2
-
Offline
- Posts: 276
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
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 такое же поведение. Значит так и должно быть?
Искал в файле 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 такое же поведение. Значит так и должно быть?
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Значит, экономим память, но проигрываем по скорости. При малом количестве вхождений это оправдано.
Активная галочка "Подсветить все" воспринимается как руководство к действию, чтобы текст в строке поиска совпадал с тем, что подсвечено. По этой же причине галочки "Учитывать регистр" и "Слово целиком" могут изменить подсвеченный текст, когда прежде подсвеченный текст перестаёт совпадать с настройками поиска.
P.S.
Какую бы комбинацию клавиш назначить на "Найти все"? Ctrl+Shift+Enter, что ли?
Активная галочка "Подсветить все" воспринимается как руководство к действию, чтобы текст в строке поиска совпадал с тем, что подсвечено. По этой же причине галочки "Учитывать регистр" и "Слово целиком" могут изменить подсвеченный текст, когда прежде подсвеченный текст перестаёт совпадать с настройками поиска.
P.S.
Какую бы комбинацию клавиш назначить на "Найти все"? Ctrl+Shift+Enter, что ли?
-
Offline
- Posts: 276
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
Ясно, спасибо. Все верно, логично. А то у меня сложилось представление, что галки – это только предварительный выбор функций, а применение функций должно происходить по нажатию на кнопку Ok, Run, в нашем случае Find. Поэтому и срефлексировал.
Shift с инверсией ассоциируется. Enter = поиск вперед, Shift+Enter = поиск назад.
А у нас уже есть Alt+Enter = поиск сначала. Тогда Ctrl+Alt+Enter = поиск сначала и всех вхождений. Вроде последовательно получается
Может Ctrl+Alt+Enter?Ctrl+Shift+Enter, что ли?
Shift с инверсией ассоциируется. Enter = поиск вперед, Shift+Enter = поиск назад.
А у нас уже есть Alt+Enter = поиск сначала. Тогда Ctrl+Alt+Enter = поиск сначала и всех вхождений. Вроде последовательно получается

-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
Подскажите как привязать горячие клавиши к параметрам QSearch::Plugin, которые отображаются в меню по Правому-Клику-Мышки на панели плагина?
Интересуют вкл/выкл параметров:
- Поиск: использовать всегда спец.симв
- Поиск: использовать регулярные выражения
- Поиск: захватывает \n в регулярных выражениях
- Поиск: подхватывать выделенный текст
Интересуют вкл/выкл параметров:
- Поиск: использовать всегда спец.симв
- Поиск: использовать регулярные выражения
- Поиск: захватывает \n в регулярных выражениях
- Поиск: подхватывать выделенный текст
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Меня смущает, что Notepad++ справляется с той же задачей раз в 10-20 быстрее. Явно надо что-то оптимизировать.yozhic wrote:Искал в файле 59 Мб, пока только литерально (...) Для нахождения 51289 совпадений плагину (как и скрипту) понадобилась 1 минута – все это время интерфейс был недоступен. С 317130 совпадениями плагин справился за 7,5 минут, а скрипт за 5 минут.
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
DV,DV wrote:Спасибо, нашёл, в чём ошибка.
На данный момент результаты поиска выглядят вот так:
Пока что вылавливаю ошибки, мультипоточность ещё не прикручивал.
При поиске в большом файле (10 - 100 МБ) при большом количестве найденных результатов (2000 и более) интерфейс замирает секунд на 10-15.
могли бы вы поделится: как вы настроили данный вывод результатов поиска QSearch::Plugin в Log::Output?