Изменились некоторые тонкости в поведении макросов

Здесь обсуждается всё, что касается макросов.
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Изменились некоторые тонкости в поведении макросов

Post by HaRT »

Latest post of the previous page:

Shmuel wrote:сделать это управляемым из скрипта
Я выступаю за то, чтобы так или иначе передавать это явно в специальном параметре вызовов (например, комбинацией флагов), а не внедрять эзотерические символы в строку макроса. С отдельным параметром (или параметром специального типа) это будет легче задокументировать с одной стороны и легче обнаружить с другой.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by NightRoman »

Выше сказано, что старое поведение было случайностью (если не багом).
Я знаю. Но багом, я вдруг подумал, скорее в логике Фара. Это неправильно, что Фар не запрашивает данные о цветах у плагина, когда EnableOutput=0. Фар не должен рисовать эти цвета, верно, но запрашивать - должен. Это такие же данные работы плагина, как файлы на панели. Но Фар считает, что эти данные не понадобятся, если EnableOutput=0 (он так не считает, причем, про файлы на панели). Но это не так, даже такие данные могут понадобиться, пример есть. Да, это просто тесты. Но можно и другие примеры придумать - конвертация покраски колорером в ХТМЛ, например (то есть, если запускать из макроса, то надо и мельтешение на экране разрешить, иначе работать не будет). Да и вообще, плагин может делать что-то еще нужное во время таких вызовов, а не просто цвета возвращать.
User avatar
John Doe
Бюрократ
Posts: 13860
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by John Doe »

NightRoman wrote:Это неправильно, что Фар не запрашивает данные о цветах у плагина, когда EnableOutput=0. Фар не должен рисовать эти цвета, верно, но запрашивать - должен.
Возможно, но мне (пока) неочевидно.
Раскраска требует ресурсов, для чего их понапрасну тратить?
Для частных случаев, подобных описанному, можно предусмотреть команду для принудительной раскраски.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by NightRoman »

Возможно, но мне (пока) неочевидно.
Ну это как бы опцимизация до того, как очевидна потеря производительности. И специальным случаем тут уместнее было бы выключение раскраски, когда надо, чтобы быстрей работало.

Но я не спорю. Мне навскидку может быть многое не так видно, как следует.
User avatar
John Doe
Бюрократ
Posts: 13860
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by John Doe »

NightRoman wrote:Ну это как бы опцимизация до того, как очевидна потеря производительности.
Вспоминаются проблемы с колорером, такие как тормоза при открытии редактора. Правда всё вроде исправлено.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by zg »

NightRoman wrote:Это неправильно, что Фар не запрашивает данные о цветах у плагина, когда EnableOutput=0. Фар не должен рисовать эти цвета, верно, но запрашивать - должен.
где это написано? в энциклопедии:
EE_REDRAW Редактор собирается перерисовать экран.
при EnableOutput=0 экран не перерисовывается, EE_REDRAW не вызывается. всё в соответствии с документацией.
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Изменились некоторые тонкости в поведении макросов

Post by HaRT »

NightRoman wrote:можно и другие примеры придумать
Вообще в текущем FAR API регионы раскраски — это вроде бы единственный лёгкий способ для плагина прицепить к участкам текста какие-то свои специфические данные. Например, подобная идея высказывалась в контексте обсуждения реализации свёртки строк.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by NightRoman »

zg, хорошо, все согласно документации в Фаре.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by zg »

что касается расширения Keys, то во-первых, надо очень хорошо подумать, насколько это реально нужно, я например нужности не вижу совсем. во-вторых конечно же никакой магии с $, либо опциональный первый параметр с флагами, либо последний.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by NightRoman »

Shmuel, я не берусь судить о предложениях. Мне было важно, как вернуть к жизни отвалившиеся тесты. Выяснилось, что EnableOutput это позволяет даже с изменениями в 3097. Для тестов это вполне нормально, если я введу у себя временный глобальный режим отрисовки и буду включать его для некоторых тестов. Для остального у меня нет юз-кейсов.
Shmuel
Posts: 6839
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Изменились некоторые тонкости в поведении макросов

Post by Shmuel »

zg wrote:что касается расширения Keys, то во-первых, надо очень хорошо подумать, насколько это реально нужно, я например нужности не вижу совсем.
Ты не видишь, я вижу. Что дальше?
zg wrote:во-вторых конечно же никакой магии с $, либо опциональный первый параметр с флагами, либо последний.
Может и от регулярных выражений откажемся? Зачем нам эта магия?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by NightRoman »

Shmuel
--> Можно дать скрипту возможность указать это явно.
--> Можно дать скрипту возможность включить перерисовку одновременно с посылкой ключа.
Это понятно. Но в моем-то случае скрипт (тест с "шагами") не вызывает макросы перевызова плагина сам, это делает движок. То есть данному скрипту это не особо поможет. Поэтому я и говорю, что предложения не совсем подходят к юз-кейсу. Имеют ли они самостоятельную ценность - отдельный вопрос, мне тут трудно пока ответить что-либо.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by zg »

Shmuel wrote:Ты не видишь, я вижу. Что дальше?
расскажи, интересно же.
Shmuel wrote:Может и от регулярных выражений откажемся? Зачем нам эта магия?
регулярные выражения — промышленный стандарт, не зависящий от фара. насколько я в курсе, уже состоявшийся и повсеместно использующийся. можно конечно использовать что-то другое или даже своё, но зачем, если многие пользователи знаком с регэкспами помимо фара. что касается формата строк Keys, то сейчас это просто набор кнопок. возможно сейчас добавление $ в конце строки выглядит более лаконичным и естественным, чем отдельный параметр с флагами, но как показывает практика разработки фара, однажды вступив на эту дорожку, остановиться будет очень сложно, и мы рискуем получить вторую реинкарнацию старого макро языка.
Shmuel
Posts: 6839
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Изменились некоторые тонкости в поведении макросов

Post by Shmuel »

zg wrote:расскажи, интересно же.
Уже рассказал в предыдущих постах.
zg wrote:возможно сейчас добавление $ в конце строки выглядит более лаконичным и естественным, чем отдельный параметр с флагами, но как показывает практика разработки фара, однажды вступив на эту дорожку, остановиться будет очень сложно, и мы рискуем получить вторую реинкарнацию старого макро языка.
Речь идёт всего лишь о расширении ф-ции Keys, причём практически не ломающем обратной совместимости (John Doe исправит у себя 2 строчки, остальным и правка не потребуется).

Что касается $, это может быть сделано в случае, когда действие должно быть произведено одновременно с данным ключом. Альтернатива - таблица - ещё хуже. Но я ещё ничего не решил.

Насчёт старого макроязыка - могу добавить его вслед за мунскриптом. Конвертер в Lua имеется. :ha:
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Изменились некоторые тонкости в поведении макросов

Post by zg »

Shmuel wrote:
zg wrote:расскажи, интересно же.
Уже рассказал в предыдущих постах.
я перечитал. нашёл только вот это. всё равно непонятно, какая польза. т.е. хочется услышать хотя бы один практический пример, который нереализуем или реализуем очень сложно сейчас, а с нововведением всё станет просто и понятно.
Shmuel wrote:Речь идёт всего лишь о расширении ф-ции Keys, причём практически не ломающем обратной совместимости (John Doe исправит у себя 2 строчки, остальным и правка не потребуется).
вот здесь конкретно о чём речь?
Shmuel wrote:Что касается $, это может быть сделано в случае, когда действие должно быть произведено одновременно с данным ключом. Альтернатива - таблица - ещё хуже. Но я ещё ничего не решил.
почему Keys("F11 L C$") лучше, чем Keys("F11 L C",F.MACRO_FINISH)? или даже Keys("F11 L C",{finish: true})?
Shmuel
Posts: 6839
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Изменились некоторые тонкости в поведении макросов

Post by Shmuel »

1. Польза - случаи, подобные автоматизированным тестам NightRoman'а.
2. http://forum.farmanager.com/viewtopic.p ... 00#p119000
3. Потому что на разные ключи можно задать разные доп. действия (с общим флагом не прокатит).

И в конце концов, чего все так обеспокоились? Ничего же ломаться не будет.
Post Reply

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