Работа со стековыми закладками в редакторе (BM.Add и др.)
-
- Posts: 1515
- Joined: Wed 16 Mar, 2005 06:26
- Location: Новосибирск
- Been thanked: 1 time
- Contact:
Работа со стековыми закладками в редакторе (BM.Add и др.)
Вопрос по поводу редакторных закладок. Можно ли каким-то образом реализовать сабжевый функционал (BM.push, BM.pop)? То есть, что я должен писать в своём макросе, чтоб сделать поведение закладок стековым?
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: BM.push(), BM.pop()
Нигде в Писании не описаны подробности функционирования закладок, но ясно сказано что они стековые.
По логике (из имеющегося скудного описания) в качестве push/pop надо использовать bm.add()/bm.prev().
По логике (из имеющегося скудного описания) в качестве push/pop надо использовать bm.add()/bm.prev().
- Tim Sobolev
- Posts: 729
- Joined: Fri 01 Apr, 2005 14:46
- Location: Украина
- Has thanked: 1 time
- Been thanked: 7 times
Re: BM.push(), BM.pop()
В общем случае BM.push это переход к последней и BM.add (чтобы не затирать)
В общем случае BM.pop это перейти к последней и сделать BM.del
я на днях немного расширю функционал стековых закладок, самому как оказалось кое-чего не хватает
Если же нужно единоразово сохранить и восстановить позицию в макросе, то есть пример в писании
В общем случае BM.pop это перейти к последней и сделать BM.del
я на днях немного расширю функционал стековых закладок, самому как оказалось кое-чего не хватает
Если же нужно единоразово сохранить и восстановить позицию в макросе, то есть пример в писании
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: BM.push(), BM.pop()
Ну если нужно только Push/Pop то чего париться с сохранением хвоста?Tim Sobolev wrote:В общем случае BM.push это переход к последней и BM.add (чтобы не затирать)
В общем случае BM.pop это перейти к последней и сделать BM.del
Полагаю переходить к последней (в первом случае) и удалять последнюю (во втором) даже излишне.
P.S.
А для полноты не хватает функции для получения номера "текущей" закладки, и возможности перейти к закладке по её номеру.
- Tim Sobolev
- Posts: 729
- Joined: Fri 01 Apr, 2005 14:46
- Location: Украина
- Has thanked: 1 time
- Been thanked: 7 times
Re: BM.push(), BM.pop()
В примере удалялась для того, чтобы не светилась в в VisualizerJohn Doe wrote:Полагаю переходить к последней (в первом случае) и удалять последнюю (во втором) даже излишне.Tim Sobolev wrote:В общем случае BM.push это переход к последней и BM.add (чтобы не затирать)
В общем случае BM.pop это перейти к последней и сделать BM.del
Вот этого и мне не хватает и будет добавлятся.John Doe wrote:А для полноты не хватает функции для получения номера "текущей" закладки, и возможности перейти к закладке по её номеру.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: BM.push(), BM.pop()
Получение с помощью BM.Stat(N), а переход BM.Prev/Next(N)?
Или по макроязыку вопросы к Валентину?
Или по макроязыку вопросы к Валентину?
- Tim Sobolev
- Posts: 729
- Joined: Fri 01 Apr, 2005 14:46
- Location: Украина
- Has thanked: 1 time
- Been thanked: 7 times
Re: BM.push(), BM.pop()
ДаJohn Doe wrote:Получение с помощью BM.Stat(N)
Мы с ним как-нибудь сами решимJohn Doe wrote:а переход BM.Prev/Next(N)? Или по макроязыку вопросы к Валентину?
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: BM.push(), BM.pop()
Вот хотелось бы поучаствовать.
Имхо Prev/Next избыточно: разве недостаточно одной функции с параметром?
P.S.
Имхо Prev/Next избыточно: разве недостаточно одной функции с параметром?
P.S.
А о каком примере речь?Tim Sobolev wrote:В примере удалялась для того, чтобы не светилась в в Visualizer
-
- Posts: 1515
- Joined: Wed 16 Mar, 2005 06:26
- Location: Новосибирск
- Been thanked: 1 time
- Contact:
Re: BM.push(), BM.pop()
В общем, ситуация следующая:
Есть набор из N строк длины M (Если кому-то будет понятней — выравнивание сиквенсов).
Нужно удалить все совпадающие символы, оставив только различные.
Как это делаю я: Запоминаю позицию курсора*, запоминаю букву. Прохожу вниз по всем строкам, и смотрю, имеются ли различия. Если различий нет, то выделяю столбец и удаляю. Затем перехожу к запомненной ранее позиции и перехожу на следующий символ. Повторяю M раз. В конце — перехожу в начало строки (то есть первое запоминание позиции курсора), и делаю там дополнительные телодвижения.
И вот как раз * и хотелось бы сделать стеком.
Соответственно, получается, что вместо BM.push надо использовать просто BM.add, а вместо BM.pop надо использовать связку из BM.prev(); BM.del()?
Вообще, можно немного подробностей по этим закладкам?
Вот у меня ничего нет. Я делаю BM.add, ухожу с позиции, как мне вернуться на нужное место? BM.prev? А если я сделал две закладки, что тогда выдаст bm.prev?
Есть набор из N строк длины M (Если кому-то будет понятней — выравнивание сиквенсов).
Нужно удалить все совпадающие символы, оставив только различные.
Как это делаю я: Запоминаю позицию курсора*, запоминаю букву. Прохожу вниз по всем строкам, и смотрю, имеются ли различия. Если различий нет, то выделяю столбец и удаляю. Затем перехожу к запомненной ранее позиции и перехожу на следующий символ. Повторяю M раз. В конце — перехожу в начало строки (то есть первое запоминание позиции курсора), и делаю там дополнительные телодвижения.
И вот как раз * и хотелось бы сделать стеком.
Соответственно, получается, что вместо BM.push надо использовать просто BM.add, а вместо BM.pop надо использовать связку из BM.prev(); BM.del()?
Вообще, можно немного подробностей по этим закладкам?
Вот у меня ничего нет. Я делаю BM.add, ухожу с позиции, как мне вернуться на нужное место? BM.prev? А если я сделал две закладки, что тогда выдаст bm.prev?
Last edited by Kildor on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Исправлено форматирование
Reason: Исправлено форматирование
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: BM.push(), BM.pop()
Если закладки 2 то чтобы вернуться на первую надо сделать prev 2 раза.Kildor wrote:Вот у меня ничего нет. Я делаю BM.add, ухожу с позиции, как мне вернуться на нужное место? BM.prev? А если я сделал две закладки, что тогда выдаст bm.prev?
- Tim Sobolev
- Posts: 729
- Joined: Fri 01 Apr, 2005 14:46
- Location: Украина
- Has thanked: 1 time
- Been thanked: 7 times
Re: BM.push(), BM.pop()
BM.add добавляет закладку. Если производилась навигация по закладкам, то при BM.add удаляются все закладки, добавленные после текущей. В общем же случае, если нас не заботит "хвост", BM.add сохраняет текущую позицию, потом мы выполняем какие-то действия, выполняем BM.next (переход к следующей закладке или к текущей, если более поздних закладок нет) и BM.del для удаления текущей закладки.
О закладках и одном примере работы с ними можно почитать в Писании Второй Версии
О закладках и одном примере работы с ними можно почитать в Писании Второй Версии
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: BM.push(), BM.pop()
Надо бы писание уточнить, а то может показаться, что тут нужен prev.Tim Sobolev wrote:BM.next (переход к следующей закладке или к текущей, если более позних закладок нет)
-
- Posts: 1515
- Joined: Wed 16 Mar, 2005 06:26
- Location: Новосибирск
- Been thanked: 1 time
- Contact:
Re: BM.push(), BM.pop()
Кажется понятно.
> О закладках и одном примере работы с ними можно почитать в писании второй версии
В том и дело, что в писании написано весьма непонятно.
@John Doe
Спасибо! Когда-нибудь я даже запомню про эти кавычки…
> О закладках и одном примере работы с ними можно почитать в писании второй версии
В том и дело, что в писании написано весьма непонятно.
@John Doe
Спасибо! Когда-нибудь я даже запомню про эти кавычки…
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
-
- Posts: 1515
- Joined: Wed 16 Mar, 2005 06:26
- Location: Новосибирск
- Been thanked: 1 time
- Contact:
Re: BM.push(), BM.pop()
Вот, вопрос.
Почему закладки вот в этом макросе работают совершенно по разному, если закомментировать строку print("Start ");
Макрос сохранён в файле, запускаю из Selmacro.
Почему закладки вот в этом макросе работают совершенно по разному, если закомментировать строку print("Start ");
Макрос сохранён в файле, запускаю из Selmacro.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru