Особенности ECTL_SELECT

Разработка Far.
Shmuel
Posts: 5236
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Re: Особенности ECTL_SELECT

Post by Shmuel » Tue 06 Mar, 2012 16:51

Latest post of the previous page:

zg wrote:раньше была привязка к экранной позицией. сейчас к символам первой строки. ладно, я откачу. но всех «несогласных» буду посылать к тебе.
1. Я не знал, что привязка делалась именно по первой строке.

2. Насчёт отката. Когда открывал данную тему, мне тоже казалось, что привязка к экранным позициям - это, скорее, баг. Поразмыслив дополнительно, понял, что нет.
Мне трудно сделать сейчас вывод, какой вариант лучше. Прежний - привычный и обкатанный. Может быть, после месяца игры по новым правилам, я бы признал, что они лучше прежних, возможно. А насчёт "посылать несогласных ко мне", так откуда они, несогласные-то возьмутся, если годами все молчали.
Кстати, я только предложил откатить, новых правил я не боюсь, ко всему можно приспособиться.

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 107 times

Re: Особенности ECTL_SELECT

Post by HaRT » Tue 06 Mar, 2012 17:24

А в чём смысл делать привязку именно по первой строке, а не по той, в которой сейчас каретка?
Казалось бы, зафиксировали начало и шагаем вслед за курсором. Чем плохо?
Или под “первой строкой” понимается та, с которой начали выделение? Если так, то кто ж, уйдя за экран, вспомнит, где там были табуляции, а где не было…
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 49 times
Contact:

Re: Особенности ECTL_SELECT

Post by zg » Tue 06 Mar, 2012 20:15

HaRT wrote:А в чём смысл делать привязку именно по первой строке, а не по той, в которой сейчас каретка?
выделение скакать будет при вертикальном движении курсора.

2useven10
Posts: 3047
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 84 times

Re: Особенности ECTL_SELECT

Post by 2useven10 » Tue 06 Mar, 2012 20:22

а если в первой строке табуляции, скакать будет при горизонтальном движении. хорошо что откатили, это оптимальное решение.

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 107 times

Re: Особенности ECTL_SELECT

Post by HaRT » Tue 06 Mar, 2012 20:24

zg wrote:
HaRT wrote:А в чём смысл делать привязку именно по первой строке, а не по той, в которой сейчас каретка?
выделение скакать будет при вертикальном движении курсора.
Т.е. то, что курсор скачет, это нормально, а то, что вместе с ним будет так же себя вести и выделение — нет?
По мне, гораздо важнее привязка границ выделения к каретке, чем к какой-то там первой строке, про которую ещё помнить надо.
Но идеально было бы, чтобы и курсор никуда не скакал, пока не отпустишь общий модификатор кнопкосочетаний, управляющих выделением вертикального блока. Но это я так, просто мечтаю.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 49 times
Contact:

Re: Особенности ECTL_SELECT

Post by zg » Tue 06 Mar, 2012 20:25

Shmuel wrote:2. Насчёт отката. Когда открывал данную тему, мне тоже казалось, что привязка к экранным позициям - это, скорее, баг. Поразмыслив дополнительно, понял, что нет.
Мне трудно сделать сейчас вывод, какой вариант лучше. Прежний - привычный и обкатанный. Может быть, после месяца игры по новым правилам, я бы признал, что они лучше прежних, возможно. А насчёт "посылать несогласных ко мне", так откуда они, несогласные-то возьмутся, если годами все молчали.
Кстати, я только предложил откатить, новых правил я не боюсь, ко всему можно приспособиться.
на самом деле проблема в том, что символы разной ширины(табы) не сочетаются с вертикальными блоками. простейший пример — вертикальный блок из двух строк: символы и символы\tсимволы. копируем в редакторе с одним значением табуляции вставляем, с другим. и сразу удаляем :crazy: да , лично мне вариант с символами кажется лучше. но так как у меня лично табы только в исходниках фара — я не готов тратить время на защиту своей позиции.

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 49 times
Contact:

Re: Особенности ECTL_SELECT

Post by zg » Tue 06 Mar, 2012 20:27

HaRT wrote:Но идеально было бы, чтобы и курсор никуда не скакал, пока не отпустишь общий модификатор кнопкосочетаний, управляющих выделением вертикального блока. Но это я так, просто мечтаю.
внезапно блоки бывают постоянными. и при движении по блоку будет меняться выделенный текст.

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 107 times

Re: Особенности ECTL_SELECT

Post by HaRT » Tue 06 Mar, 2012 20:37

zg wrote:внезапно блоки бывают постоянными. и при движении по блоку будет меняться выделенный текст.
Что-то я туплю: что такое “движение по блоку” и какие проблемы от того, что можно добавлять/удалять табуляции внутри блока?

Я имел в виду такой сценарий, чтобы не ничего не прыгало при вертикальном выделении: (1) пользователь зажал Alt (тот самый общий модификатор) и дальше нажимает стрелки — каретка не прыгает на табуляциях, а перемещается по знакоместам строго в указанных пользователем направлениях; выделение следует за ней. (2) пользователь отпустил Alt — и каретка, и выделение подстроились под наличие/отсутствие табуляции в данном месте текста. (3) если надо, переход к (1). И (не)постоянство блоков тут вроде никак не влияет.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 49 times
Contact:

Re: Особенности ECTL_SELECT

Post by zg » Tue 06 Mar, 2012 20:51

HaRT wrote:
zg wrote:внезапно блоки бывают постоянными. и при движении по блоку будет меняться выделенный текст.
Что-то я туплю: что такое “движение по блоку” и какие проблемы от того, что можно добавлять/удалять табуляции внутри блока?
вертикальный блок это начальная строка, количество строк, начальная колонка, количество колонок. в 2524 была попытка заменить колонки на символы. но так как очевидно, что для разных строк один и тот же начальный символ и количество символов дают разное выделение, то привязка была к первой строке. если привязываться к текущей строке, то выделение будет скакать, потому что дробных символов не бывает (ну можно конечно, но вряд ли это приведёт к чему-то хорошему).

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 107 times

Re: Особенности ECTL_SELECT

Post by HaRT » Tue 06 Mar, 2012 20:58

zg
Мне совершенно непонятно, каким образом описание и мотивация текущей реализации относятся к высказанным мною мечтаниям.
Если предлагаемая мною концепция многим покажется интересной, можно будет о ней подумать более детально, а пока что она эфемерна.
Вот лично вам как идея с не-прыганием, пока не отжат Alt?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 49 times
Contact:

Re: Особенности ECTL_SELECT

Post by zg » Tue 06 Mar, 2012 21:03

HaRT wrote:zg
Мне совершенно непонятно, каким образом описание и мотивация текущей реализации относятся к высказанным мною мечтаниям.
это не текущая реализация.
Вот лично вам как идея с не-прыганием, пока не отжат Alt?
отрицательно.

User avatar
John Doe
Бюрократ
Posts: 11433
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 102 times

Re: Особенности ECTL_SELECT

Post by John Doe » Fri 08 Aug, 2014 15:49


User avatar
John Doe
Бюрократ
Posts: 11433
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 102 times

Re: Особенности ECTL_SELECT

Post by John Doe » Mon 11 Aug, 2014 13:38

При выделении вертикального блока в редакторе с помощью клавиатуры курсор всегда перемещается не по экранным, а по реальным позициям символов (т.е. в случае наличия табуляций будет по ним прыгать).
А ECTL_SELECT при установке вертикального блока позволяет указать экранные позиции, не совпадающие с границами табуляций.

Вопрос ко всем: можно ли извлечь из этого какую-то пользу? Или лучше бы запретить такое поведение, и выделять всегда целые табуляции?

Я склоняюсь ко второму, хотя бы потому, что позиции такого "дробного выделения" невозможно получить через апи (ECTL_GETSTRING возвращает реальные позиции).

Плюс, сейчас есть некоторое практическое неудобство: при установке конца вертикального выделения приходится вносить поправку, иначе выделиться только первый символ табуляции.

И второй вопрос:
Мнения?

User avatar
John Doe
Бюрократ
Posts: 11433
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 102 times

Re: Особенности ECTL_SELECT

Post by John Doe » Tue 12 Aug, 2014 16:44

John Doe wrote:А ECTL_SELECT при установке вертикального блока позволяет указать экранные позиции, не совпадающие с границами табуляций.
Вопрос ко всем: можно ли извлечь из этого какую-то пользу? Или лучше бы запретить такое поведение, и выделять всегда целые табуляции?
Имхо имеет смысл сделать однотипно и для поточных и для вертикальных блоков, т.е. в обоих случаях указывать реальные позиции.

Post Reply

Return to “Development”