Editor.Pos

Здесь обсуждается всё, что касается макросов.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

добавить функцию в макроязык

Post by Kildor »

Editor.SetPos(Line, Pos)
позиционирует курсор в соответствующую позицию на соответствующей строке.
Если аргумент равен нулю, берётся текущее значение.
Возвращает 1 в случае успеха, 0 — если неверны аргументы либо позиционировать не удалось (к примеру, номер строки больше чем число строк в файле.)
(или, разделить неправильные аргументы и невозможность точного позиционирования)
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

Kildor
А чем AltF8 не угодил?

Кстати, если уж на то пошло, то надо, чтобы эта же функция принимала также параметры, в какую позицию окна (строка, столбец) поместить эту позицию текста.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

Ну, в принципе реально (формат в том виде, как у AltF8), но...
поясните - нафига? Обоснование!
Примеры в студию.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

AltF8 — вариант, но:
забыл про него ;-)
появляется мусор в истории.
ну и Editor.SetPos(0,%pos) красивее чем AltF8 : $text %pos Enter
(а если оба параметра значащие, то лапша будет ещё развесистее)
PS: так как про AltF8 я благополучно позабыл, то моё решение выглядело так:
$while (Editor.CurPos!=%cp) $if (Editor.CurPos>%cp) Left $else Right $end $end
PPS:
Кстати, если уж на то пошло, то надо, чтобы эта же функция принимала также параметры, в какую позицию окна (строка, столбец) поместить эту позицию текста.
не понял…
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

Skirda
довольно часто начали попадаться ситуации, когда сложным образом переформатируется строка текста, и в итоге курсор улетает куда ему заблогорассудится.
Можно конечно делать ему Home, но раз уж реально оставить на месте, то почему бы и не оставить ;)
[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\CtrlD]
"Sequence"="$iClip %cp=Editor.CurPos; CtrlU CtrlC Home $if(Editor.CurPos!=1) Home $end CtrlV CtrlU $while (Editor.CurPos!=%cp) $if (Editor.CurPos>%cp) Left $else Right $end $end"
"DisableOutput"=dword:00000001
вот к примеру, один из таких макросов.
PS: хотя, может это я делаю что-то через одно место ;)
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

Kildor wrote:
Кстати, если уж на то пошло, то надо, чтобы эта же функция принимала также параметры, в какую позицию окна (строка, столбец) поместить эту позицию текста.
не понял…
Представьте себе, как будто текст файла напечатан на листе прозрачной бумаги. Его можно по разному расположить относительно окна редактора (посредством вертикальной и горизонтальной прокрутки). Помимо того, чтобы ткнуть нашим "карандашом" (курсором) в какую-то часть листа (текста), нужно ещё задать, на какую позицию экрана (окна редактора) придётся эта точка.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

хм…
да, надо бы…
Можно чтоб курсор оставался на том же месте экрана, то есть, чтоб лист двигался относительно неподвижной точки
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Post by Centaur »

Kildor wrote:Skirda
довольно часто начали попадаться ситуации, когда сложным образом переформатируется строка текста, и в итоге курсор улетает куда ему заблогорассудится.
Проверочное слово блог? :)

Я обычно в таких случаях в начало макроса ставлю CtrlShift0, в конец — Ctrl0 и, если нужно, какие-нибудь перемещения.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

Centaur
ахха ;)
Тоже вариант, и кстати, самый экономный в плане длины макроса
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Editor.Pos

Post by ccaid »

сделал себе
может быть есть альтернативные варианты? особенно интересует плавный скроллинг
Фар делают добрые люди
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Горизонтальная прокрутка в редакторе

Post by HaRT »

Я (правда, в Фаре 1.75) использую прокрутку, предоставляемую плагином EditCrutch. Интересно было бы узнать, работает ли он в Фаре 2.
Фар есть инструмент, а не нянька. © 2009 DrKnS
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Re: Горизонтальная прокрутка в редакторе

Post by ccaid »

работает, я его (пока) использую. хочется последнюю нужную функцию заменить чем-то более родным, и выбросить еще один плагин
Фар делают добрые люди
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Горизонтальная прокрутка в редакторе

Post by Skirda »

ccaid wrote:особенно интересует плавный скроллинг
ну, здесь видимо придется добавить нечто вроде

Code: Select all

Res=Editor.Pos(Op[,Param])
тогда функция сможет выставлять нужный LeftPos (кроме прочего).

Делать? (если да, то на мантис вишь пишите)
We are the Borg. You will be assimilated.
So Say We All!
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Re: Горизонтальная прокрутка в редакторе

Post by ccaid »

если я правильно понял, то этого-то мне не хватало. вечером доберусь до мантис.
Фар делают добрые люди
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Re: Горизонтальная прокрутка в редакторе

Post by ccaid »

Фар делают добрые люди
Post Reply

Return to “Обсуждение макросов”