turbo — работа с выделением в редакторе

Здесь обсуждается всё, что касается макросов.
User avatar
HaRT
Moderator
Posts: 8704
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 79 times
Been thanked: 146 times

turbo — работа с выделением в редакторе

Post by HaRT » Tue 28 Jun, 2016 13:33

Latest post of the previous page:

Макросы на Left/Right конфликтуют с таковыми из SciTE_like в части OptCursorMoveResetsBlock = false.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12249
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

turbo — работа с выделением в редакторе

Post by John Doe » Tue 28 Jun, 2016 16:50

HaRT wrote: Я их примирил, запретив здешним срабатывать на многострочном блочном выделении
А я пользуюсь, в том числе и на многострочном..
Можно наверно сделать опцией.

User avatar
HaRT
Moderator
Posts: 8704
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 79 times
Been thanked: 146 times

turbo — работа с выделением в редакторе

Post by HaRT » Thu 22 Dec, 2016 19:56

Я для себя дополнил файл Ctrl-Q-quick.lua , чтобы избежать ситуации, когда найденное в редакторе стандартным поиском вхождение показывается целиком за экраном.
Да, этот макрос по смыслу никак не связан с Turbo, зато удачно использует его инфраструктуру (код) — дёшево и сердито. :)
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 705
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 67 times
Been thanked: 19 times
Contact:

turbo — работа с выделением в редакторе

Post by buniak_a_h » Fri 27 Apr, 2018 01:39

John Doe, в макросе Ctrl-K-blocks.lua ошибка в 248-й строке:
AKey:gsub("K-","Shift")
надо заменить на
AKey:gsub("K%-","Shift")
Поясню. "K-" здесь - это шаблон; в нём символ "-" - элемент шаблона:
Описание языка wrote:Одиночный символьный класс, сопровождаемый '-', что также соответствует 0 или большему количеству повторений символов из заданного класса. В отличие от *, элементы повторения будут всегда соответствовать самой короткой возможной последовательности;
Т.е. его надо экранировать символом "%".
Если не верите, введите строку:
lua:=('CtrlK-1'):gsub('K-','Shift',1)
В ответ получите кошмарик: ShiftCShifttShiftrShiftlShiftKShift-Shift1Shift
Извините, если что...

User avatar
HaRT
Moderator
Posts: 8704
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 79 times
Been thanked: 146 times

turbo — работа с выделением в редакторе

Post by HaRT » Fri 15 Mar, 2019 19:43

John Doe, в Ctrl-Q-quick.lua макрос (единственный вне редактора) приводит к тому, что при вызове Быстрого Просмотра (QView) на директории не отображается диаложка и не работает прекращение подсчёта по Esc и CtrlQ. Предлагаю этот макрос или починить, или по умолчанию не назначать в область Shell (задокументировав эффект предупреждением в комментарии).
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12249
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

turbo — работа с выделением в редакторе

Post by John Doe » Sun 17 Mar, 2019 13:39

HaRT wrote:
Fri 15 Mar, 2019 19:43
Предлагаю этот макрос или починить[...]
Хуже всего, что при этом даже не выводится окно с прогрессом подсчёта, и кажется будто фар завис.

Проблема описана давно: 0002692: Невозможно прервать операцию, если она запущена из макроса. Уже пытались фиксить в лоб, но всё оказалось не просто, и откатили (кажется синхронность действий нарушалась: макрос не дожидался окончания подсчёта). Ссылку на обсуждение сходу не нашёл.

Исправить на уровне макроса проблематично: это надо делать на уровне MacroEx, а архитектура там такова, что глобальный обработчик CtrlQ выполняется в любом случае, а при отсутствии дополнительных действий перевызывает Keys "CtrlQ", что и вызывает нежелательные эффекты.

Можно было бы обойти, если реализовать 0002391: Использовать значение возвращаемое action как сигнал отмены макроса

Post Reply

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