View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001142 | Wishes | Macro | public | 2009-10-28 18:06 | 2010-05-02 23:15 |
Reporter | ccaid | Assigned To | vskirdin | ||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Product Version | 2.0 | ||||
Fixed in Version | 2.0 | ||||
Summary | 0001142: Плавная горизонтальная прокрутка в редакторе | ||||
Description | Требуется инструментарий макроязыка Far для управления положением левой границы окна редактирования. Такой инструментарий может быть использован для реализации плавной горизонтальной прокрутки средствами макроязыка. Обсуждение на форуме: http://forum.farmanager.com/viewtopic.php?f=15&t=4708&start=0 | ||||
Tags | No tags attached. | ||||
Build | 1188 | ||||
|
тестируем: http://skirda-file.googlecode.com/files/Macro_Editor.Pos.1.rar Синтаксис: N=Editor.Pos(Op,What[,Where]) Op: 0 - get, 1 - set What: 1 - CurLine 2 - CurPos 3 - CurTabPos 4 - TopScreenLine 5 - LeftPos 6 - Overtype Пример (при включенном ScrollLock клавиши Left/Right занимаются скроллллингом) REGEDIT4 [HKEY_CURRENT_USER\Software\far2\KeyMacros\Editor\Right] "Sequence"="$if(FLock(2,-1) == 1) Editor.Pos(1,5,Editor.Pos(0,5)+1); $else Right $end" "DisableOutput"=dword:00000001 [HKEY_CURRENT_USER\Software\far2\KeyMacros\Editor\Left] "Sequence"="$if(FLock(2,-1) == 1) Editor.Pos(1,5,Editor.Pos(0,5)-1); $else Left $end" "DisableOutput"=dword:00000001 |
|
супер упрощенный вариант приведенного примера служит заменой гор. скроллинга EditCrutch'а: [HKEY_CURRENT_USER\Software\far2\KeyMacros\Editor\AltShiftRight] "Sequence"="Editor.Pos(1,5,Editor.Pos(0,5)+1);" "DisableOutput"=dword:00000001 [HKEY_CURRENT_USER\Software\far2\KeyMacros\Editor\AltShiftLeft] "Sequence"="Editor.Pos(1,5,Editor.Pos(0,5)-1);" "DisableOutput"=dword:00000001 |
|
Far 2.0 build 1188 |
|
Ура, свершилось долгожданное! Спасибище! Теперь по багам (TopScreenLine и LeftPos). 1. > Return: для "set" - "угу" (1) или "не угу" (0) Как минимум Editor.Pos(1, 4, %a) и Editor.Pos(1, 5, %a) возвращают всегда 1, то есть "угу", даже если смещения не произошло. Другие операции не проверял на предмет return. 2. Editor.Pos(1, 5, %a) ведёт себя неадекватно при %a < 1. Остальное не проверял. 3. Можно ли при превышении лимитов всё же производить сдвиг на максимально возможное значение, то есть пока курсор не упрётся в левую, правую, верхнюю или нижнюю границу экрана? 4. Editor.Pos(1, 4, %a) — оставляет курсор в текущей строке Editor.Pos(1, 5, %a) — перемещает курсор на столько же позиций, на сколько сдвинули прокрутку. Можно этого не делать? При желании всегда можно написать макрос. |
Date Modified | Username | Field | Change |
---|---|---|---|
2009-10-28 18:06 | ccaid | New Issue | |
2009-10-29 06:21 | vskirdin | Category | Editor => Macro |
2009-10-29 06:21 | vskirdin | Summary | Плавная горизонтальная прокрутка => Плавная горизонтальная прокрутка в редакторе |
2009-10-29 06:21 | vskirdin | Status | new => assigned |
2009-10-29 06:21 | vskirdin | Assigned To | => vskirdin |
2009-10-29 08:17 | vskirdin | Note Added: 0004372 | |
2009-10-29 13:57 | ccaid | Note Added: 0004374 | |
2009-10-29 13:58 | ccaid | Note Edited: 0004374 | |
2009-10-29 13:58 | ccaid | Note Edited: 0004374 | |
2009-10-30 09:45 | vskirdin | Note Added: 0004382 | |
2009-10-30 09:45 | vskirdin | Status | assigned => feedback |
2009-10-30 11:55 | Toxa | Note Added: 0004386 | |
2010-05-02 23:15 | alexy | Build | => 1188 |
2010-05-02 23:15 | alexy | Status | feedback => closed |
2010-05-02 23:15 | alexy | Resolution | open => fixed |
2010-05-02 23:15 | alexy | Fixed in Version | => 2.0 |