QuickSearch — инкрементальный поиск в редакторе
Re: QuickSearch — инкрементальный поиск в редакторе
тема меня весьма интересует, поэтому поизучал плагин не откладывая.
юникод это плюс. и f3 — плюс.
а вот выделенный текст не подхватывается в отличие от конкурента, который хотя бы в некоторых случаях подхватывает.
вставить из клипборда строку нельзя, в отличие от конкурента.
чего мне не хватает (нет в конкуренте, не появилось в этом) — так это единого буфера строки поиска, т.е. совмещенного с буфером обычного поиска.
(а еще: в хелпе написано про tab, но это не работает, а плагин впадает в странное состояние.)
плагин проверялся в w7hb x64 / far2 b1482 x86
еще раз повторю, я заинтересован в таком плагине, исходя из этого и писал замечания.
юникод это плюс. и f3 — плюс.
а вот выделенный текст не подхватывается в отличие от конкурента, который хотя бы в некоторых случаях подхватывает.
вставить из клипборда строку нельзя, в отличие от конкурента.
чего мне не хватает (нет в конкуренте, не появилось в этом) — так это единого буфера строки поиска, т.е. совмещенного с буфером обычного поиска.
(а еще: в хелпе написано про tab, но это не работает, а плагин впадает в странное состояние.)
плагин проверялся в w7hb x64 / far2 b1482 x86
еще раз повторю, я заинтересован в таком плагине, исходя из этого и писал замечания.
Фар делают добрые люди
Re: QuickSearch — инкрементальный поиск в редакторе
Что-то в этом есть 
Предложение: на Shift-Tab можно повесить возвращение к поиску того, что определило начало выделяемого блока. Это, ведь, может оказаться не тот блок, которого хочется, что, однако, становится ясно лишь после того, как был найден его конец.

Предложение: на Shift-Tab можно повесить возвращение к поиску того, что определило начало выделяемого блока. Это, ведь, может оказаться не тот блок, которого хочется, что, однако, становится ясно лишь после того, как был найден его конец.
Съешь мыша – стань настоящим клавишником!
-
- Posts: 1515
- Joined: Wed 16 Mar, 2005 06:26
- Location: Новосибирск
- Been thanked: 1 time
- Contact:
Re: QuickSearch — инкрементальный поиск в редакторе
+1 за подхватку строки из клипборда (в идеале так — как сделано в инксеарч).
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
Re: QuickSearch — инкрементальный поиск в редакторе
а можно пояснить, почему инксёч — идеал?Kildor wrote:+1 за подхватку строки из клипборда (в идеале так — как сделано в инксеарч).
Фар делают добрые люди
- Centaur
- Posts: 1083
- Joined: Tue 05 Apr, 2005 20:09
- Location: Novosibirsk, Russia
- Been thanked: 2 times
Re: QuickSearch — инкрементальный поиск в редакторе
Я вообще ориентировался на использование в качестве «быстро переместить курсор в пределах видимости по двум-трём буквам» и «быстро выделить блок по известным двум-трём буквам начала и конца». Поэтому у плагина нет истории, нет редактирования паттерна (кроме Backspace) и режим поиска закрывается чуть менее чем сразу.
Non-goal: поиск следующего/предыдущего вхождения текущего слова/выделенного блока/содержимого буфера. Поскольку в этом случае искомый текст у нас уже есть, желаемое тривиально макросится через обычный поиск:(обкусать начало по вкусу).
Исходников IncSearch у меня [тоже] нет, поэтому давайте говорить в конкретных терминах пользовательских сценариев «чего хотим/что делаем/что ожидается», можно с примерами.
Пока вижу это так: ShiftIns в режиме быстрого поиска добавляет содержимое буфера в формате text/unicode в конец паттерна. Если в буфере встречаются переводы строки, поведение не определено (варианты: все переводы строки заменяем на пробелы; все последовательности переводов строк заменяем на пробелы; все последовательности whitespace заменяем на одиночные пробелы).
Non-goal: поиск следующего/предыдущего вхождения текущего слова/выделенного блока/содержимого буфера. Поскольку в этом случае искомый текст у нас уже есть, желаемое тривиально макросится через обычный поиск:
Code: Select all
$If (Editor.Sel(0,4) == 0) $SelWord $End
Clip(5,2) CtrlIns
F7 ShiftIns AltL Add AltV {Add|Subtract} Enter
ccaid wrote:выделенный текст не подхватывается в отличие от конкурента, который хотя бы в некоторых случаях подхватывает. вставить из клипборда строку нельзя, в отличие от конкурента.
Вставку из буфера, наверно, сделаю. Подхват выделенного в этом случае будет тривиально реализуем макросом.Kildor wrote:+1 за подхватку строки из клипборда (в идеале так — как сделано в инксеарч).
Исходников IncSearch у меня [тоже] нет, поэтому давайте говорить в конкретных терминах пользовательских сценариев «чего хотим/что делаем/что ожидается», можно с примерами.
Пока вижу это так: ShiftIns в режиме быстрого поиска добавляет содержимое буфера в формате text/unicode в конец паттерна. Если в буфере встречаются переводы строки, поведение не определено (варианты: все переводы строки заменяем на пробелы; все последовательности переводов строк заменяем на пробелы; все последовательности whitespace заменяем на одиночные пробелы).
Юзкейсы в студию. Разве что найти следующее вхождение того, что нашли инкрементальным поиском?ccaid wrote:чего мне не хватает (нет в конкуренте, не появилось в этом) — так это единого буфера строки поиска, т.е. совмещенного с буфером обычного поиска.
У меня всё нормально. Как именно не работает, какое странное состояние?ccaid wrote:(а еще: в хелпе написано про tab, но это не работает, а плагин впадает в странное состояние.)
Уже висит на Tab, или я чего-то не понял?Тигрёнок wrote:Предложение: на Shift-Tab можно повесить возвращение к поиску того, что определило начало выделяемого блока.
Казалось бы, начало выделяется сразу по мере поиска, почему сразу не видно, что это не то начало?Тигрёнок wrote:Это, ведь, может оказаться не тот блок, которого хочется, что, однако, становится ясно лишь после того, как был найден его конец.
Это как/зачем?Ann wrote:Ещё хорошо бы иметь возможность не прерывая поиска выйти из редактора в панели/просмотр/другойФайл..., а затем вновь вернуться в ту же позицию поиска.
Re: QuickSearch — инкрементальный поиск в редакторе
то что надо.Centaur wrote: у плагина нет истории, нет редактирования паттерна (кроме Backspace) и режим поиска закрывается чуть менее чем сразу.
замены смысла не имеют, все равно не найдет. можно вообще ничего не заменять, и получим разумное поведение естественным образом — будет искаться подстрока до первого перевода строки.Centaur wrote:Если в буфере встречаются переводы строки, поведение не определено (варианты: все переводы строки заменяем на пробелы; все последовательности переводов строк заменяем на пробелы; все последовательности whitespace заменяем на одиночные пробелы).
именно. нашли первое вхождение, в его окрестности выполнили какие-то действия, хотим продолжить.Centaur wrote:Юзкейсы в студию. Разве что найти следующее вхождение того, что нашли инкрементальным поиском?ccaid wrote:чего мне не хватает (нет в конкуренте, не появилось в этом) — так это единого буфера строки поиска, т.е. совмещенного с буфером обычного поиска.
„любые предложения люди понимают иначе, чем тот, кто их вносит.“Centaur wrote:У меня всё нормально. Как именно не работает, какое странное состояние?ccaid wrote:(а еще: в хелпе написано про tab, но это не работает, а плагин впадает в странное состояние.)
теперь я разобрался, все работает.
в документации не указано, до этого нужно еще додуматься.Centaur wrote:Уже висит на Tab, или я чего-то не понял?Тигрёнок wrote:Предложение: на Shift-Tab можно повесить возвращение к поиску того, что определило начало выделяемого блока.
Фар делают добрые люди
- Centaur
- Posts: 1083
- Joined: Tue 05 Apr, 2005 20:09
- Location: Novosibirsk, Russia
- Been thanked: 2 times
Re: QuickSearch — инкрементальный поиск в редакторе
Не уверен, что смогу запихать строку в не принадлежащую мне историю. Кажется, у FAR’а нет соответствующего API, а ковыряться во внутренностях не хочу.ccaid wrote:именно. нашли первое вхождение, в его окрестности выполнили какие-тоCentaur wrote:найти следующее вхождение того, что нашли инкрементальным поиском?
действия, хотим продолжить.
В принципе можно сделать плагину минимум истории — помнить последнюю пару паттернов и по отдельному пункту в меню их переискивать. Но это надо реализовать и потыкать пальцами, а то пока непонятно, в каком виде будет удобно.
Пока что в моём основном юзкейсе паттерны сменяются с неимоверной быстротой, так что высока вероятность, что к следующему поиску паттерна он уже успеет пару раз смениться => нужна(?) более длинная история => гемор.
Да, фича неинтуитивнаяя получилась. Есть идеи, как её удачнее документировать?ccaid wrote:„любые предложения люди понимают иначе, чем тот, кто их вносит.“ccaid wrote:(а еще: в хелпе написано про tab, но это не работает, а плагин впадает в странное состояние.)
теперь я разобрался, все работает.
Re: QuickSearch — инкрементальный поиск в редакторе
отдельное кнопкосочетание не рулит. в идеале, одна и та же комбинация должна продолжать поиск и обычный, и быстрый.Centaur wrote:Не уверен, что смогу запихать строку в не принадлежащую мне историю. Кажется, у FAR’а нет соответствующего API, а ковыряться во внутренностях не хочу.
В принципе можно сделать плагину минимум истории — помнить последнюю пару паттернов и по отдельному пункту в меню их переискивать.
Remember the current position and search for another second pattern.Centaur wrote:Да, фича неинтуитивнаяя получилась. Есть идеи, как её удачнее документировать?ccaid wrote:„любые предложения люди понимают иначе, чем тот, кто их вносит.“ccaid wrote:(а еще: в хелпе написано про tab, но это не работает, а плагин впадает в странное состояние.)
теперь я разобрался, все работает.
и в конце добавить, что повторное нажатие Tab вернет к поиску/редактированию первого патерна.
Фар делают добрые люди
Re: QuickSearch — инкрементальный поиск в редакторе
Прошу прощения. Это я не понял.Centaur wrote:Уже висит на Tab, или я чего-то не понял?
Съешь мыша – стань настоящим клавишником!
Re: QuickSearch — инкрементальный поиск в редакторе
Установил, плагин очень порадовал возможностями, но не хватает (было в старом incsearch):
1. подхват уже выделенного фрагмента (при вызове плагина).
2. поиск по вставке из буфера (сейчас поиск просто закрывается).
3. прекратить ввод символов, если дальше ничего не найдено (сейчакс плагин просто пишет "no found" но буквы продолжают вводиться).
4. подсветка слова "Не найдено" появрче (просто восприниматься будет лучше).
5. учет регистра
можно все это сделать настраиваемым (из настроек плагина)
И это просто пример, подобный поиск часто нужен не только в реестре.
на счет что делать с переводом строки.. может заменять на Tab (:). поиск в несколько строк в IncSearch небыло, как его использовать не знаю
по этому можно вообще искать только 1 строку. переносы и пробелы в начале лучше удалять.
1. подхват уже выделенного фрагмента (при вызове плагина).
2. поиск по вставке из буфера (сейчас поиск просто закрывается).
3. прекратить ввод символов, если дальше ничего не найдено (сейчакс плагин просто пишет "no found" но буквы продолжают вводиться).
4. подсветка слова "Не найдено" появрче (просто восприниматься будет лучше).
5. учет регистра
можно все это сделать настраиваемым (из настроек плагина)
скорее удобство и привычкаccaid wrote:а можно пояснить, почему инксёч — идеал?Kildor wrote:+1 за подхватку строки из клипборда (в идеале так — как сделано в инксеарч).
это нужно в случае если у меня в буфере длинная строка, которая не полностью есть в данном файле, например хотя бы потому что это просто ключ реестра, с другим значением. по этому простой поиск не подходит.Centaur wrote:Поскольку в этом случае искомый текст у нас уже есть, желаемое тривиально макросится через обычный поиск:
И это просто пример, подобный поиск часто нужен не только в реестре.
на счет что делать с переводом строки.. может заменять на Tab (:). поиск в несколько строк в IncSearch небыло, как его использовать не знаю

в режиме поиска нажимаем Shift+Ins или Ctrl+V - из буфера вставляется по 1 букве, и идет поиск. если при добавлении следующего символа, паттерн уже не найден - останавливать вставку из бувера, либо вообще прекратить поиск (см мой п.3)Centaur wrote:поэтому давайте говорить в конкретных терминах пользовательских сценариев «чего хотим/что делаем/что ожидается», можно с примерами.
- Centaur
- Posts: 1083
- Joined: Tue 05 Apr, 2005 20:09
- Location: Novosibirsk, Russia
- Been thanked: 2 times
Re: QuickSearch — инкрементальный поиск в редакторе
Тогда из легальных вариантов остаётся только… при закрытии быстрого поиска запостить макрос F7 "текст паттерна" Enter. Что уже тоже немножечко изврат.ccaid wrote:отдельное кнопкосочетание не рулит. в идеале, одна и та же комбинация должна продолжать поиск и обычный, и быстрый.
Вот с подхватом выделенного фрагмента у меня есть конфликтующая идея. А именно, чтобы при выделенном блоке и нажатии Tab сразу после начала быстрого поиска текущее выделение расширялось.DeeZ wrote:1. подхват уже выделенного фрагмента (при вызове плагина).
Если же кому-то надо именно поиск выделенного текста, макросы вам в руки. Clip(5,2) CtrlIns F11 q f ShiftIns, например.
Спорно. Текущее поведение полностью соответствует привычке после ошибочного нажатия сразу давить Backspace. Если ввод прекращать, эта привычка ломается — Backspace будет стирать не то, что ожидается (последний правильно набранный символ).DeeZ wrote:3. прекратить ввод символов, если дальше ничего не найдено (сейчакс плагин просто пишет "no found" но буквы продолжают вводиться).
ECTL_SETTITLE не предоставляет возможностей выделения. Гадить прямо в консоль — не хочу, ибо не оберёшься потом багрепортов про выключенную строку состояния; про редакторы, открытые из других плагинов не на полный экран; и т.д.DeeZ wrote:4. подсветка слова "Не найдено" появрче (просто восприниматься будет лучше).
В принципе можно, надо только придумать, как. Долговременная настройка (с диалогом) и/или горячая клавиша в режиме поиска (какая).DeeZ wrote:5. учет регистра
Re: QuickSearch — инкрементальный поиск в редакторе
учитывая, что сейчас я использую плагин поиска Max Rusov'а, такой вшитый макрос не решит задачу. по-хорошему, быстрый поиск надо бы совместить с обычным поиском. некоторые сложности рассосались бы сами собой. кстати, может быть Max Rusov что посоветует по этому вопросу?Centaur wrote:Тогда из легальных вариантов остаётся только… при закрытии быстрого поиска запостить макрос F7 "текст паттерна" Enter. Что уже тоже немножечко изврат.ccaid wrote:отдельное кнопкосочетание не рулит. в идеале, одна и та же комбинация должна продолжать поиск и обычный, и быстрый.
не понял идею.Centaur wrote:Вот с подхватом выделенного фрагмента у меня есть конфликтующая идея. А именно, чтобы при выделенном блоке и нажатии Tab сразу после начала быстрого поиска текущее выделение расширялось.
а стандартный вызов конфигурации плагина Alt-Shift-F9 нельзя ли здесь использовать?Centaur wrote:В принципе можно, надо только придумать, как. Долговременная настройка (с диалогом) и/или горячая клавиша в режиме поиска (какая).
Фар делают добрые люди