View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001082 | Far Manager | _Common | public | 2009-09-29 10:55 | 2015-07-24 07:54 |
Reporter | Toxa | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Platform | x86 | OS | Windows | OS Version | XP SP2 |
Product Version | 2.0 | ||||
Summary | 0001082: Перемещение курсора по словам (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. | ||||
Tags | No tags attached. | ||||
Build | |||||
|
Предлагается следующее поведение (как в 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 |
|
>Например, следующие строки: >word word word >word-word-word >(word) (word) (word) На двух первых вижу только 3)при перемещении влево и вправо позиции стопов не совпадают. На третьей строке вижу 1)разное поведение в редакторе/диалогах, 2) в редакторе перемещение отличается от выделения и 3)(тут позиции стопов сильно не совпадают) |