Добавлено: Вт май 08, 2012 21:03
Я же на стороне пользователей - нам сложность формулы ничем не мешает. Мой уверенный ответ: стоит переделать.Alextp писал(а):переделывать на другое стоит? Моя формула проста, а ваша нет (не очевидна)
нехорошо что результат может не включать исходное выделение, это не оч согласуется с понятием "Расширить выделение".
Предлагаемая логика основывается на единственном соображении: новая функциональность должна продолжать существующую. Продолжение в рассматриваемом случае однозначное: Extend полный аналог Shift. Я смотрю как действуют операции с Shift и предлагаю такие же действия с Extend.
Про неполное выделение найденного фрагмента. Это следует из необходимости сохранять начало выделения (Н в формуле) без изменений. Такая необходимость очень существенна, так как позволяет выполнить сложное выделение, выполняя серию команд поиска (с Extend) или перемещения каретки (с Shift). (NB! Этого не удастся без перехода на предложенную формулу)
В целом. Extend - сила! Если какие-то препятствия не позволят поменять формулу - не беда. К любой реализации можно приспособиться.
Только нужны две команды (поиск вперед и поиск назад) для расширения выделения до найденного фрагмента без вызова диалога. Без них будет явная дыра.
Тут есть небольшая проблема: как будет выполнена реализация этих команд. Есть два варианта:
- учитывать галку Extend из диалога Поиск при работе уже существующих команда поиска без диалога,
- игнорировать Extend и дать две новых команды.
Мое мнение: лучше второй вариант, так как не требует заглядывания в диалог, чтобы предсказать поведение Син
Добавлено спустя 7 минут:
Уточнение. Сейчас есть четыре команды для поиска без диалога
- поиск вперед/назад,
- поиск текущего слова (=выделения) вперед/назад.
Похоже, нужны для них всех новые варианты.