SynWrite (Syn2)

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
kvichans
Сообщения: 453
Зарегистрирован: Сб янв 21, 2006 12:03
Откуда: Москва

Сообщение kvichans »

4. Надеюсь очевидно, что ни в коем случае нельзя менять функциональность существующих команд (я про Ctr+Shift+Right).
Win7x64(1600x900), TC8.50x32, SynWrite 6.19, CudaText 1.3.14, UV 6.5.0.0
Аватара пользователя
kvichans
Сообщения: 453
Зарегистрирован: Сб янв 21, 2006 12:03
Откуда: Москва

Сообщение kvichans »

4. Есть идея про перемещения каретки.
Существует симметрия "начало слова"/"конец слова". Не знаю как реализован текущий механизм перемещений, но почти уверен, что в нем где-то делается выбор из двух вариантов: обнаруживать следующую позицию с помощью шаблона пробел-буква или с помощью шаблона буква-пробел (упрощаю, но надеюсь идея понятна). Предлагаю вместо группы похожих команд
- прыжок вправо с остановкой в конце слова
- прыжок влево с остановкой в конце слова
- прыжок вправо с остановкой в конце слова с выделением
- прыжок влево с остановкой в конце слова с выделением
- ... (остальные: вертикальное выделение и пр.)
добавить в Син режим с двумя состояниями
- перемещать по началам слов (текущая функциональность)
- перемещать по концам слов (недостающая функциональность)
Этот режим (по моим представлениям) будет переключать между упомянутыми выше внутренними шаблонами поиска.
Нужны две команды для переключения этого режима.
Вот как я представляю точное выделение слова с помощью такого режима.
- переключение (если нужно): режим="по началам"
- прыжок в начало слова
- переключение: режим="по концам"
- прыжок в конец с выделением
- переключение (если нужно): режим="по началам"
Такая последовательность команд может быть выполнена и руками (это еще не экономия нажатий), и в макросе (тогда вызов макроса - это реальная экономия).
Win7x64(1600x900), TC8.50x32, SynWrite 6.19, CudaText 1.3.14, UV 6.5.0.0
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Сообщение Ciber SLasH »

Подскажите пожалуйста, почему не открываются nfo-файлы в SynWrite 3.5.1140, хотя в настройках стоит "открывать в кодировке OEM" nfo,diz.

PS: TC 7.56a
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Ciber SLasH
Может двоичные- см. опцию "(Разное) нетекстовые файлы "
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Сообщение Ciber SLasH »

Alextp писал(а):Может двоичные- см. опцию "(Разное) нетекстовые файлы "
Помогло, благодарю!
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Kvichans
Посл.письмо не оч. понял, сложно.. Делать какой-то режим не хочется. хватает команд. "Sel to word end" я добавил

Добавлено спустя 21 минуту:

Beta. много вещей done(смотрим History)
Аватара пользователя
kvichans
Сообщения: 453
Зарегистрирован: Сб янв 21, 2006 12:03
Откуда: Москва

Сообщение kvichans »

Alextp писал(а):Beta. много вещей done(смотрим History)
Смотрим:
1. "Extend selection" - отлично! Это гораздо лучше моей идеи с "режимом для перемещений", так как убивает сразу толпу зайцев. По реализации есть вопрос: что ожидалось при поиске с включенным Extend, если ищется единственный фрагмент и он внутри уже выделенного текста? Сейчас не происходит ничего.

2. "mouse over tab caption -> filename shown in statusbar" - хорошо, что не в tooltip :). Можно ли там же отобразить дату последней модификации и размер?

3. "Activate right view tab #1..#10" - хорошо. Могут ли сочетания назначенные на эти команды (у меня это Shift+Alt+1,..) отображаться в меню Window?
Тут есть неоднозначность, например, если в левой панели три таба, то к первому табу в правой панели можно сейчас перейти и по Alt+4 и по Shift+Alt+1. В меню при этом отображается Alt+4. Желательно отображать в меню Window для "правых" табов (в меню они нижние) новые назначенные сочетания.

4. "Move views splitter to left/right" - спасибо.

5. About показывает сборку 3.5.1140. History - 3.5.1180. Что-то не обновилось?
Win7x64(1600x900), TC8.50x32, SynWrite 6.19, CudaText 1.3.14, UV 6.5.0.0
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

1.что ожидалось при поиске с включенным Extend...внутри уже выделенного текста
Для этого случая выделение не extend'ится

2.Можно ли там же отобразить дату последней модификации
думаю нет- и так места мало на экране 1024px. Даже путь не всегда влезет

3.сочетания назначенные на эти команды отображаться в меню Window?
думаю нет- и так сочетания отображаются из hotkeys "Activate tab 1..10"

Добавлено спустя 50 секунд:

5. поправлю
Аватара пользователя
kvichans
Сообщения: 453
Зарегистрирован: Сб янв 21, 2006 12:03
Откуда: Москва

Сообщение kvichans »

Alextp писал(а):1.что ожидалось при поиске с включенным Extend...внутри уже выделенного текста
Для этого случая выделение не extend'ится
Что может мешать? Почему появляется выделенный случай?
В каждый момент известно место, где начинается выделение (до вызова Поиска) и (после поиска) где оно должно закончится - нужно выделять "от и до":
- если новый конец дальше предыдущего конца, то выделение расширяется,
- если - внутри, то выделение сужается,
- если перед началом выделения, то выделение "выворачивается", то есть направлено к началу файла.
Win7x64(1600x900), TC8.50x32, SynWrite 6.19, CudaText 1.3.14, UV 6.5.0.0
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Почему мешает, просто логика такая: расширение = слияние отрезков. новый A = min(a1,a2), новый B=max(b1,b2)

Добавлено спустя 47 минут:

Проверьте перехват вставки
Аватара пользователя
kvichans
Сообщения: 453
Зарегистрирован: Сб янв 21, 2006 12:03
Откуда: Москва

Сообщение kvichans »

Alextp писал(а):Почему мешает, просто логика такая: расширение = слияние отрезков. новый A = min(a1,a2), новый B=max(b1,b2)
Описанная выше логика "от и до" более естественна для этой функции - она следует общей логике выделения: Extend это прямой аналог Shift, сам поиск - это прямой аналог перемещений каретки пользователем. Сравните
Shift+Right ~~ Extend+(Find_Forward) (работает сейчас)
Shift+Left ~~ Extend+(Find_Backward) (неработает сейчас)

Еще пожелание. Я в восторге от Extend (но не от логики слияния отрезков). Это опция диалога напомнила, что у меня есть очень давнее желание иметь такую же возможность без диалога. Можете реализовать? Потребность простая: к командам "изменить выделение на символ/слово/до конца/до начала" добавить команду "изменить выделение до следующего|предыдущего найденного фрагмента".
Alextp писал(а):Проверьте перехват вставки
Нормально
Win7x64(1600x900), TC8.50x32, SynWrite 6.19, CudaText 1.3.14, UV 6.5.0.0
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

kvichans писал(а):добавить команду "изменить выделение до следующего|предыдущего найденного фрагмента".
не понимаю: откуда команда возьмет поз-ю фрагмента? Имеете в виду "до след-ей/пред-ей пометки поиска"?

--
можете написать "формулу" слияния?
у меня

[a1,b1]+[a2,b2] -> [min(a1,a2), max(b1,b2)]
Аватара пользователя
kvichans
Сообщения: 453
Зарегистрирован: Сб янв 21, 2006 12:03
Откуда: Москва

Сообщение kvichans »

Alextp писал(а):
kvichans писал(а):добавить команду "изменить выделение до следующего|предыдущего найденного фрагмента".
можете написать "формулу" слияния? у меня
[a1,b1]+[a2,b2] -> [min(a1,a2), max(b1,b2)]
Пусть
[Н,К1] - текущее выделение (К1 - позиция каретки, К1 может быть и больше и меньше и равно Н),
[Ф1,Ф2] - следующий найденный фрагмент.
тогда новое выделение будет
[Н,К2], где
К2 - это новая позиция каретки и К2 = IIF( Ф2<=Н, Ф1, Ф2 )
Пояснения
- Н всегда остается без изменений.
- Если найденный фрагмент левее Н, то выделение будет "вывернутое", и позиция каретки будет указывать на начало найденного фрагмента.
- Если найденный фрагмент правее Н, то будет "прямое" выделение, каретка укажет конец найденного фрагмента.
- Если фрагмент накрывает Н, то выделение будет меньше найденного фрагмента (в остальных случаях найденный фрагмент будет включен в выделение). По приведенной выше формуле будет всегда показываться хвост фрагмента.
- Можно добавить в формулу учет направления поиска, чтобы получалась полная аналогия с поиском с Shift (см выделение слова при исходной позиции внутри этого слова):
если поиск Forward, то (как выше)
К2 = IIF( Ф2<=Н, Ф1, Ф2 )
если поиск Backward, то
К2 = IIF( Ф1>=Н, Ф1, Ф2 )
При такой реализации изменится только выделение, когда фрагмент накрывает Н - будет выделять хвост при поисках вперед, и голова при поисках назад
Win7x64(1600x900), TC8.50x32, SynWrite 6.19, CudaText 1.3.14, UV 6.5.0.0
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

А в Hippoedit.com как? Как у меня. переделывать на другое стоит? Моя формула проста, а ваша нет (не очевидна)
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

предлагаемая формула:
нехорошо что результат может не включать исходное выделение, это не оч согласуется с понятием "Расширить выделение"...
Ответить