kvichans

|
Posted: Fri Jun 01, 2012 10:37 Post subject: |
|
|
1. Уточнения про Историю поисков. Нужно не забыть про поиск из буфера и диалог БыстрыйПоиск.
Попробую описать ситуацию. В Син сейчас есть следующие контексты поиска:
- СЛВ: слово/выделение в табе
- ПоПоПо: повторить последний поиск в табе
- ДиБыст: диалог БыстрыйПоиск в табе
- ДиПоЗа: диалог Поиск/Замена в табе
- ДиПоФа: диалог ПоФайлам
- ДиДер: диалог в Дереве
- ПоДер: повторить последний поиск в Дереве
- ДиРез: диалог в Результатах
- ПоРез: повторить последний поиск в Результатах
- БУФ: из буфера
Вот что требуется от общей Истории
- Накапливать последние поисковые строки от: СЛВ, ДиПоЗа, ДиБыст, ДиПоФа, ДиДер, ДиРез, БУФ
- Предоставлять список Историю для: ДиПоЗа, ДиПоФа, ДиДер, ДиРез
- Предоставлять голову Истории для: ПоПоПо, ДиБыст, ПоДер, ПоРез
При создании общей Истории возникает проблема с учетом спец.разметки в поисковых строках.
Начну с общих наблюдений
- В Быстром, Дереве и Результатах нет RegExp. Сейчас нет. Потом могут появиться.
- Поиски СЛВ и БУФ не нуждаются в спец.разметке - они всегда ищут буквальное совпадение.
- Буквальный поиск и RE-поиск по "поправленной" (доп. \) строке дают одинаковые результаты
У меня есть два варианта решения проблемы: кардинальный и терпимый(=консервативный).
Сначала кардинальный. Предлагаю в Истории хранить обе строки: и исходную и поправленную. В каждый контекст передавать подходящий вариант. Например, при [х]RE после поиска из буфера в ДиБыст, ДиДер, ДиРез появится исходная строка, а в ДиПоЗа, ДиПоФа - поправленная. Если когда-нибудь какой-то диалог получит возможность обрабатывать RE, в него станет передаваться поправленная.
Из всех контекстов поиска сохранить сразу две подходящие строки не получится только в тех случаях, когда исходная строка только с разметкой - это в ДиПоЗа и ДиПоФа. Не вижу другого выхода: сохранять строку поиска и как исходную и как поправленную. Конечно контексты без RE не смогут повторить такой поиск. Это меньшая из потерь (надеюсь временная).
Теперь терпимый. Хранить только поправленные строки. Это создаст больше неудобств в ДиБыст, в Дереве, в Результатах. Повтор последнего поиска в табе (ПоПоПо) можно продолжать улучшать, чтобы он на *** корректно реагировал. _________________ Win7x64(1600x900), TC8.50x32, SynWrite 6.19, CudaText 1.3.14, UV 6.5.0.0 |
|