Имя: Пароль:
1C
 
Нежелательное удаление следующей за полностью выделенной строки в тексте модуля
0 TormozIT
 
гуру
29.06.15
12:57
Давно меня мучает проблема.
В редакторе текстов удаление строки, выделенной кликом в области маркеров, через CTRL+L приводит к удалению 2-х строк вместо одной.

Воспроизведение.
Кликнуть левой кнопкой мышки в области маркеров по первой из 2-х любых непустых строк в редакторе текстовых документов конфигуратора или обычной формы или управляемой формы. Будет выделена вся текущая строка и курсор установится в начало следующей строки. Нажать CTRL+L. Будут удалены обе строки. А ожидается удаление только выделенной строки.

С одной стороны удаление происходит корректно, т.к. курсор после выполнения выделения стоит в начале следующей за выделенной строки. Но с другой стороны этого никак не ожидаешь, кликнув на одной строке и вызвав команду "Удалить"

Примерно до версии 8.2.14 редактор текстов вел себя по-другому и такой проблемы не было. Однако потом видимо исправили какую то проблему и внесли эту.

Посоветуйте альтернативный/правильный способ наглядно удалить подряд идущие строки в редакторе текстов.
1 Фокусник
 
29.06.15
13:00
(0) Жму DEL такого нет. А что такое CTRL+L? :)
2 МаксимМП23
 
29.06.15
13:00
(0) Зачем выделять строку для удаления по CTRL+L?
3 TormozIT
 
гуру
29.06.15
13:04
Поправочка. Нужен способ именно удаления одной строки, чтобы и при курсоре внутри нее работал и чтобы мышкой выделить быстро можно было и удалить.

Выделять строку надо для универсальности и наглядности, т.к. курсор в некоторые строки установить можно, но он появится в неожиданной позиции.

CTRL+L - удаление текущей строки.
4 DmitrO
 
29.06.15
13:08
(0)можно я назову тебя занудой? :)
5 Enterprise
 
29.06.15
13:09
Вот где проблемы то настоящие ))
6 ДенисЧ
 
29.06.15
13:10
(0) Возьми табуретку, пприсаживайся.
7 TormozIT
 
гуру
29.06.15
13:12
Уже пару раз проблема 0 приводила к неприятным последствиям. Поэтому это не просто неудобство, а в первую очередь снижение риска внесения скрытых ошибок в код.
8 TormozIT
 
гуру
29.06.15
13:14
Выглядит она примерно так http://rghost.ru/8rhvxd629
9 Goggy
 
29.06.15
13:16
(6) Новый председатель?
10 Goggy
 
29.06.15
13:19
ИМХО всё правильно работает. Т.к. удаляет выделенную область и строку на которой стоит курсор. Если нормально выделишь область(чтоб курсор остался на нужной строке). то и удалится только необходимая строка.
11 DmitrO
 
29.06.15
13:20
Предлагаю просто написать письмо в 1С с предложением доработать редактор модулей, чтобы при CTRL+L если в последней из выделенных строк, не выделено ни одного символа (т.е. курсор стоит в начале строки) строка бы не удалялась, получить сообщение что пожелание зарегистрировано, выпить коньячку и успокоиться.
12 Goggy
 
29.06.15
13:21
+(10) Мне кажется что ты усложняешь сам себе жизнь, пользуйся DEL и не будет проблемы даже в таком случае.
13 dmpl
 
29.06.15
13:34
(11) CTRL + L по замыслу должна удалять только текущую строку. Т.е. ту, где стоит курсор. А выделенный блок - оставить.
14 dmpl
 
29.06.15
13:36
(12) Ну да. Выделил строку - Del или Backspace, не выделил строку - CTRL + L.
15 TormozIT
 
гуру
29.06.15
13:38
(14) Вот именно, что раньше CTLR+L во всех случаях работало как надо, а теперь надо правильно две комбинации применять. Ошибешься - можешь попасть на скрытую ошибку в коде.
16 TormozIT
 
гуру
29.06.15
13:39
(11) Это я первым делом сделал. Но эффект ждать не раньше чем через пол года, как водится =)
17 DmitrO
 
29.06.15
13:44
(16)именно поэтому я настаиваю на последних двух пунктах в этом ритуале, сам периодически вспоминаю о зарегеных ошибках, повторяю последние два пункта..
если ко всем проблемам подходить так тщательно можно забухать не по децки.
18 TormozIT
 
гуру
29.06.15
13:49
У кого EDT установлена, там есть такая беда?
19 dmpl
 
29.06.15
13:58
(15) Программист должен быть ленивым. А это означает, что CTRL + L вместо Del он будет жать в одном и только одном случае - потому что ему было лень выделить строку. Не надо делать лишних движений - и не будет ошибок.

P.S. Раньше функция работала вообще неправильно - удаляла не ту строку. Сейчас тоже неправильно - кроме правильной, удаляет еще и другие строки.
20 TormozIT
 
гуру
29.06.15
14:31
(19) Повторяю, установка курсора в строку не всегда наглядна. Я кликну в середину, а он встанет в самое начало, т.к. строка пустая и его придется искать взглядом. Если же я курсором мышки кликаю в области маркеров, то ответ на вопрос "Строка выделена?" приходит заметно быстрее, т.к. площадь и контрастность изменений сопровождающих выделение значительно превосходит тоненький курсор вставший в произвольную позицию на всей ширине строки.
21 dmpl
 
29.06.15
14:32
(20) В таком случае достаточно просто забыть про CTRL + L. Есть Del и Backspace, всего 1 кнопка вместо 2.
22 МаксимМП23
 
29.06.15
14:33
23 TormozIT
 
гуру
29.06.15
14:42
(21) Ошибаешься. Находясь в нужной строке и видя курсор, мне не надо отвечать на вопрос "Строка выделена?" и тратить время на ее выделение через область маркеров.
24 МаксимМП23
 
29.06.15
14:44
(23) Тебе бы поспать походу надо.
25 dmpl
 
29.06.15
14:50
(23) Зачем тогда выделяешь?
26 TormozIT
 
гуру
29.06.15
14:53
(25) Когда текстовый курсор находится в неизвестном месте удобнее выделять курсором мышки.
27 dmpl
 
29.06.15
15:15
(26) А после выделения удобнее нажать 1 широкую кнопку в верхнем правом углу основной секции.
28 TormozIT
 
гуру
29.06.15
15:23
(27) Не понял, что имеется ввиду.
29 dmpl
 
29.06.15
15:25
(28) Такая большая удобная кнопка <-Backspace.
30 TormozIT
 
гуру
29.06.15
17:13
(29) Уже отвечал на это в (15). Идем по кругу?
31 dmpl
 
30.06.15
08:25
(30) Я уже писал: если CTRL + L будет работать правильно, то удаляться будет текущая строка - та, в которой курсор, а выделенная как была, так и останется не удаленной. Эта комбинация в случае полностью выделенной строки НЕ ИМЕЕТ СМЫСЛА, т.к. курсор стоит на другой строке.
32 TormozIT
 
гуру
30.06.15
18:04
Проверил рассматриваемый сценарий в разных текстовых редакторах.
В некоторых текстовых редакторах выделение строки через область маркеров происходит аналогично тому, как сделано в редакторе 1С, т.е. с установкой текстового курсора в начало следующей за выделенной строки.
При нажатии CTRL+L некоторые удаляют только строку, в которой стоит курсор, а выделение с остальных строк просто снимают.
Но больше всего понравилось поведение Wordpad - при выделении строки текстовый курсор остается в выделенной строке.