Page 2 of 2

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

Posted: Tue 06 Mar, 2012 16:51
by Shmuel

Latest post of the previous page:

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

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

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

Posted: Tue 06 Mar, 2012 17:24
by HaRT
А в чём смысл делать привязку именно по первой строке, а не по той, в которой сейчас каретка?
Казалось бы, зафиксировали начало и шагаем вслед за курсором. Чем плохо?
Или под “первой строкой” понимается та, с которой начали выделение? Если так, то кто ж, уйдя за экран, вспомнит, где там были табуляции, а где не было…

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

Posted: Tue 06 Mar, 2012 20:15
by zg
HaRT wrote:А в чём смысл делать привязку именно по первой строке, а не по той, в которой сейчас каретка?
выделение скакать будет при вертикальном движении курсора.

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

Posted: Tue 06 Mar, 2012 20:22
by 2useven10
а если в первой строке табуляции, скакать будет при горизонтальном движении. хорошо что откатили, это оптимальное решение.

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

Posted: Tue 06 Mar, 2012 20:24
by HaRT
zg wrote:
HaRT wrote:А в чём смысл делать привязку именно по первой строке, а не по той, в которой сейчас каретка?
выделение скакать будет при вертикальном движении курсора.
Т.е. то, что курсор скачет, это нормально, а то, что вместе с ним будет так же себя вести и выделение — нет?
По мне, гораздо важнее привязка границ выделения к каретке, чем к какой-то там первой строке, про которую ещё помнить надо.
Но идеально было бы, чтобы и курсор никуда не скакал, пока не отпустишь общий модификатор кнопкосочетаний, управляющих выделением вертикального блока. Но это я так, просто мечтаю.

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

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

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

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

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

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

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

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

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

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

Posted: Tue 06 Mar, 2012 20:58
by HaRT
zg
Мне совершенно непонятно, каким образом описание и мотивация текущей реализации относятся к высказанным мною мечтаниям.
Если предлагаемая мною концепция многим покажется интересной, можно будет о ней подумать более детально, а пока что она эфемерна.
Вот лично вам как идея с не-прыганием, пока не отжат Alt?

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

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

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

Posted: Fri 08 Aug, 2014 15:49
by John Doe

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

Posted: Mon 11 Aug, 2014 13:38
by John Doe
При выделении вертикального блока в редакторе с помощью клавиатуры курсор всегда перемещается не по экранным, а по реальным позициям символов (т.е. в случае наличия табуляций будет по ним прыгать).
А ECTL_SELECT при установке вертикального блока позволяет указать экранные позиции, не совпадающие с границами табуляций.

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

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

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

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

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

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