Macros plugin

Discuss and announce AkelPad plugins
Post Reply
  • Author
  • Message
Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

А теперь вопрос на засыпку: это новое поведение отключаемое?
Ибо Баба Яга против.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

FeyFre,
а почему против? Разве "выполнить для всех строк КРОМЕ ПОСЛЕДНЕЙ" чем-то лучше или более логично? Раз "до конца файла", так уж до конца файла, включая и последнюю строку тоже. (Про старое поведение, когда макрос мог всунуть кучу неожиданностей в конец файла, я вообще молчу.)

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Ну вот такая куча неожиданностей мне иногда бывает нужно.
Это первое. Второе: как-бы не все макросы в принципе могут работать так что когда-либо достигнут конец файла. Не все вообще работают с текстом. Ну да ладно.

Обнаружился баг.
Зашел в диалог макросов.
Записал макрос. Назвал его.
Назначил ему комбинацию.
Закрыл диалог.
Запустил пару раз.
Опять открыл диалог.
Удалил макрос.
Записал новый. Назвал его.
Назначить ему комбинацию уже не могу - пишет занято тем другим, несуществующим.
Однако неудобно при интенсивной работе.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Изменено: обработка до последней строки включительно, если последняя строка не пустая, при установке количества повторов в ноль.
Исправлено: при удалении макроса, горячая клавиша не освобождалась.

Changed: processing until and including (if the last line is not empty) the last line, when setting repeat count to zero.
Fixed: when macro deleted, hot key was not released.


Macros plugin v5.0

Offline
Posts: 267
Joined: Mon Mar 12, 2007 3:45 pm

Post by [Yustas.NeO] »

Может тогда: 0 - до последней строки включительно, -1 - до предпоследней, -2 - до предпредпоследней, и т.д. ?

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

[Yustas.NeO] wrote:Может тогда: 0 - до последней строки включительно, -1 - до предпоследней, -2 - до предпредпоследней, и т.д. ?
Это теоретически имеет смысл для того, чтобы использовать из Scripts-плагина (иначе просто смысла не вижу). Но из Scripts-плагина можно прекрасно получить количество всех строк, отнять нужное число и передать в Macros рассчитанное число строк для выполнения.

Offline
Posts: 1
Joined: Mon Jul 30, 2012 4:54 pm

Post by vldmr »

1. Можно ли сделать так, чтобы макрос запоминал раскладку клавиатуры, в которой был записан?
Например, макрос обрамляет выделенный текст тегом <h1>.
Если изменить раскладку на русскую и запустить макрос, то
вместо "<h1>Заголовок</h1>"
будет "Бр1ЮЗаголовокБ.р1Ю".

Пробовал такую хитрость. Назначить для необходимой раскладки сочетания клавиш через систему (WinXP).
И переключать в макросе через эти клавиши (Alt слева + Shift + 1).
Если через клавиатуру раскладка переключается, то через макрос ничего не происходит.
Хотя, обычное "Переключение между языками ввода" (Ctrl + Shift) через макрос работает.

Может есть возможность переключить раскладку клавиатуры через скрипты JS/VBS?
Тогда это можно было бы использовать с кодом от Macro2SendKeys.vbs

2. Как добавить описание к макросу? Может в третью колону таблицы макросов как-то можно вставить описание?
3. Как переименовать макрос?

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

vldmr wrote:2. Как добавить описание к макросу?
Следует давать макросам осмысленные имена. Например "Join selected lines.macro" предпочтительнее чем "MyMacro19.macro".
vldmr wrote:3. Как переименовать макрос?
Макросы - это файлы. Имя макроса - это имя соответствующего файла. Следовательно для переименования макроса достаточно переименовать его файл. Файлы записанных макросов расположены в каталоге \AkelFiles\Plugs\Macros\ и имеют расширение ".macro".

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

vldmr wrote:Например, макрос обрамляет выделенный текст тегом <h1>.
Это проще сделать методом Insert плагина ContextMenu или HotKeys или ToolBar:
ContextMenu-Rus.txt wrote: Insert("<B>\s</B>", 1)
метод добавляет к выделению текст по краям.

Offline
Posts: 147
Joined: Fri Feb 08, 2008 6:41 pm
Location: British Columbia, Canada

MacTool - macro compiler/decompiler

Post by Surveyor »

Hi guys,

I have long thought the Macros plugin was great! A few people (including myself) have asked about "editing macros". Can't be done.

I have written a little compiler (and decompiler - one decompile mode incomplete in this version) which uses a custom "language" to create macros. A detailed help file is included in the small download (zip file).

Please try it out - you can get it on my usual Help file download page, here:
http://members.shaw.ca/atbcls/akelpad/. I hope to get the decompiler (back to source language) done soon, but many things need doing first here in British Columbia.

Cheers!
- Surveyor

Offline
Posts: 14
Joined: Thu Aug 16, 2012 6:52 pm

Текстовый файл макроса

Post by vadim »

Fr0sT wrote:Может, легче изменить сам плагин, чтобы писал в обычные текстовые файлы?
Да, такая штука очень нужна. Простенькие макросы можно сделать и сейчас, а вот что-то посложней уже затруднительно т.к. неизбежны ошибки, а поправить уже нельзя. Кроме этого по мере работы с текстами требуется вносить изменения и дополнения в макросы. Если макрос большой, то его придется заново набирать, а это может быть весьма затруднительно. А были бы макросы в виде текстовых файлов, то и проблем бы не было.

Был такой старый ДОСовый текстовый процессор Лексикон. Там тоже была реализована возможность создавать макросы. Вот пример из файла keymacro.lex

MACRO Э
+1{ALT-EQ}{BACKSPACE}{BACKSPACE}{DEL}{DEL}{DEL}{SHIFT-F3}{CTRL-RIGHT}{CTRL-F3}{ENTER}{SHIFT-LEFT}{SHIFT-F4}{F4}{CTRL-EMPTY}{RIGHT}.{-40}

Вот так же хорошо бы сделать и здесь. Не верю, чтобы технически это было невозможно.

Offline
Posts: 147
Joined: Fri Feb 08, 2008 6:41 pm
Location: British Columbia, Canada

Tiny bug (visual only)

Post by Surveyor »

Instructor,

Just a minor visual bug in v5.1 - when macro recording started, small close dialog appears, as it should. Top-right corner of dialog should be transparent (as with top-left corner), but is black instead.

- Surveyor

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Surveyor
It is Windows behaviour, I suppose because of small dialog size.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Instructor
Бывают случаи, когда поставил 0 повторов и маркос такого натворит, что жуть.. Приходится отменять через стандартное Ctrl+Z, и если файл большой, то это грустно. Для таких случаев в макрос-диалоге (он как раз находится на экране) очень была бы кстати кнопка "Отменить", которая отменяла бы столько действий, сколько было "проиграно" плагином в последний запуск.

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Идея/предложение с предысторией. :)

Откроем окно скрипта, запишем макрос
F6 (переходим на окно скрипта) – Ctrl+Enter (что-то в этом окне запускаем) – F6 (переходим на редактор) – Ctrl+Home
Если скрипт что-нибудь «спросит» с помощью AkelPad.MessageBox(), выполнение макроса прервется.
Пример: converter.js#L1231
Можно взять любой большой текст и попробовать вызвать конвертирование в base64 – появится окно типа такого:
Converter.js :: Base64
---------------------------
Требуется времени: 0:06 (оценочно)
Продолжить?
---------------------------
ОК Отмена
Если записать макрос с таким диалогом, то работает нормально.
Не уверен, правда, что с этим надо что-то делать. С другой стороны, скрипт может выдать сообщение об ошибке вместо диалога, а мы его закроем и что-нибудь сломаем.
Ну, и отсюда идея: может, лучше записывать еще и класс окна (или еще что-нибудь, что не меняется) и посылать нажатия только если активно такое же окно, как и во время записи? Тогда, если что-то пошло не так, можно или уведомить пользователи, или даже спросить, нормально ли это (и продолжить после того, как сам пользователь закроет непредвиденное окошко).
Post Reply