View Issue Details

IDProjectCategoryView StatusLast Update
0001082Far Manager_Commonpublic2015-07-24 10:54
ReporterToxaAssigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Platformx86OSWindowsOS VersionXP SP2
Product Version2.0 
Target VersionFixed in Version 
Summary0001082: Перемещение курсора по словам (CtrlLeft, CtrlRight)
DescriptionПеремещение курсора по словам (CtrlLeft, CtrlRight, CtrlShiftLeft, CtrlShiftRight) происходит по-разному в редакторе и в диалогах. Нужно привести к единому виду и пересмотреть сам алгоритм.

Например, следующие строки:
word word word
word-word-word
(word) (word) (word)
1. Поведение в редакторе отличается от поведения в строке ввода.
2. CtrlLeft/CtrlRight отличается от CtrlShiftLeft/CtrlShiftRight.
3. CtrlLeft/CtrlShiftLeft отличается от CtrlRight/CtrlShiftRight.
TagsNo tags attached.
Build

Activities

Toxa

2009-10-06 19:41

reporter   bugnote:0004202

Предлагается следующее поведение (как в Office 2007).

Во-первых, определение позиции курсора едино для всех кнопкосочетаний (CtrlLeft, CtrlRight, CtrlShiftLeft, CtrlShiftRight, CtrlAltLeft, CtrlAltRight, CtrlBS, CtrlDel и т. д.), то есть не важно, просто двигаемся или выделяем текст.

Во-вторых, разделим все символы на три группы:
1. Пробелы (пробел и \t).
2. WordDiv (символы из TechInfo #1).
3. Буквы (любые символы кроме пробелов, \t и WordDiv).

Позиции, где останавливается курсор:
1. Слева от курсора: Пробел, под курсором: WordDiv.
2. Слева от курсора: Пробел, под курсором: Буква.
3. Слева от курсора: WordDiv, под курсором: Буква.
4. Слева от курсора: Буква, под курсором: WordDiv.

Поскольку одно другое исключает, можно упростить, добавив отрицание:
1. Слева от курсора: !WordDiv, под курсором: WordDiv.
2. Слева от курсора: !Буква, под курсором: Буква.

Единственный недостаток (если недостаток) этой логики по сравнению с действующей в том, что при выделении слева направо (CtrlShiftRight) слов, разделённых пробелами, слова выделяются вместе с пробел(ом/ами) справа от слова. Мне кажется, это скорее фича. Все редакторы так делают, включая Фар (случай со строкой в диалоге).

Тема на форуме:
http://forum.farmanager.com/viewtopic.php?f=6&t=3342

JohnDoe

2015-07-24 10:54

updater   bugnote:0013724

>Например, следующие строки:
>word word word
>word-word-word
>(word) (word) (word)


На двух первых вижу только 3)при перемещении влево и вправо позиции стопов не совпадают.

На третьей строке вижу 1)разное поведение в редакторе/диалогах, 2) в редакторе перемещение отличается от выделения и 3)(тут позиции стопов сильно не совпадают)

Issue History

Date Modified Username Field Change
2009-09-29 14:55 Toxa New Issue
2009-10-06 19:41 Toxa Note Added: 0004202
2015-07-24 10:54 JohnDoe Note Added: 0013724