QuickSearch — инкрементальный поиск в редакторе

Анонсы новых плагинов. Обсуждение плагинов ведется ниже.
Post Reply
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

QuickSearch — инкрементальный поиск в редакторе

Post by Centaur » Fri 09 Apr, 2010 14:02

Сделал инкрементальный поиск для FAR 2.0.



Поиск запускается из меню плагинов в редакторе (рекомендуется макрос).
  • Набираем текст — плагин его тут же находит и выделяет блоком.
  • Нажимаем F3 или ShiftF3 — плагин находит следующее/предыдущее вхождение.
  • Дополнительная фича: набираем foo Tab bar — выделяется блок между вхождениями foo и bar.
  • Enter и Esc закрывают поиск соответственно с сохранением или восстановлением позиции.
  • Все клавиши, не обрабатываемые плагином, закрывают поиск и проваливаются в FAR для дальнейшей обработки — в том числе срабатывают повешенные на них макросы. (Сделано, чтобы можно было прямо из поиска нажать, скажем, AltD, который, скажем, обернёт выделенный текст в <dfn>…</dfn>.)
GPLv3, C++, makefile для Visual Studio 2008.
x86 минимально тестирую сам, для x64 нужны помощники.

http://plugring.farmanager.com/plugin.php?pid=847

Багрепортить | Обсуждать

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: QuickSearch — инкрементальный поиск в редакторе

Post by Centaur » Wed 14 Apr, 2010 07:41

Версия 0.0.2

* Не снимаем выделение блока при запуске поиска.
+ Если перед запуском поиска был выделен вертикальный блок, результат поиска выделяем тоже вертикальным.
+ Вставка из буфера в паттерн по Shift+Ins и Ctrl+V.
* Поменялась архитектура обработки событий (см.) Опасайтесь макросов на Tab, F3 и ShiftF3; также интересно, как это будет работать с другими плагинами, перехватывающими Tab.

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: QuickSearch — инкрементальный поиск в редакторе

Post by Centaur » Wed 14 Apr, 2010 11:26

0.0.2.1

* Если после очередного изменения паттерна ничего не нашлось, остаёмся там, где нашли в прошлый раз.
- Падали при вставке из буфера, если там оказывался не-текст или пусто.

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: QuickSearch — инкрементальный поиск в редакторе

Post by Centaur » Wed 14 Apr, 2010 15:21

0.0.2.3

- Не перерисовывались при выходе из поиска.
- Поведение после двух Tab отличалось от того, что до первого Tab’а.

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: QuickSearch — инкрементальный поиск в редакторе

Post by Centaur » Thu 15 Apr, 2010 15:55

0.0.2.4

- Падали, если поиск запускался с позиции курсора за концом строки.
- Нерезультативный поиск прокручивал текущую строку на верхний (нижний) край экрана.
* Боремся с лишними перерисовками.
* Оптимизирована реализация регистронезависимости.

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: QuickSearch — инкрементальный поиск в редакторе

Post by Centaur » Thu 22 Apr, 2010 11:10

0.0.2.5

- Если поиск запускали за концом строки, при стирании паттерна не возвращались в исходную позицию. (Toxa)
* При повторном запуске, когда плагин уже активен, завершаем активный поиск и начинаем с пустого паттерна.

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: QuickSearch — инкрементальный поиск в редакторе

Post by Centaur » Wed 27 Oct, 2010 10:17

0.0.2.6

+ Techinfo: [Plugins\QuickSearch] "RestrictInput"=dword:00000000 — стандартное поведение, любое ненулевое значение — не даёт вводить символы, приводящие к «not found».

Post Reply

Return to “Анонсы новых плагинов”