View Issue Details

IDProjectCategoryView StatusLast Update
0002561WishesMacropublic2014-01-18 20:17
ReporterJohnDoe Assigned Toshmuel  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Product Version3.0 
Fixed in Version3.0 
Summary0002561: far.MacroPost: возможность задавать SequenceText функцией (а не строкой)
DescriptionSequenceText в виде строки ограничивает возможности: нет доступа к среде и upvalues вызвавшего far.MacroPost скрипта (доступны только глобальные идентификаторы).

Предлагаю реализовать дополнительную функцию: MacroPostEx (f,...)
Здесь
- f: функция, которую следует поставить в очередь
- ...: передаваемые ей параметры
TagsNo tags attached.
BuildLMb272

Activities

shmuel

2014-01-17 17:39

developer   bugnote:0011703

far.MacroPost имеет следующую сигнатуру:
  result = far.MacroPost (SequenceText, Flags, AKey)

Должна ли новая функция также получать параметры Flags и AKey, по вашему мнению?
В "заявке" этого нет.

JohnDoe

2014-01-17 22:55

updater   bugnote:0011709

Думаю не должна.
AKey можно всегда передать через vararg (не знаю только зачем)
Вместо KMFLAGS_ENABLEOUTPUT можно использовать mmode.
KMFLAGS_NOSENDKEYSTOPLUGINS заменить нечем, но легко обойтись.

shmuel

2014-01-18 09:47

developer   bugnote:0011710

> AKey можно всегда передать через vararg (не знаю только зачем)

В этом случае в макросе не будут работать ни Keys("akey"), ни akey().
В большинстве случаев это действительно не нужно.

> KMFLAGS_NOSENDKEYSTOPLUGINS заменить нечем, но легко обойтись.

А как обойтись, если эта функциональность нужна?

JohnDoe

2014-01-18 10:21

updater   bugnote:0011711

Обойтись применяя для таких случаев far.MacroPost
А в перспективе есть 0000012

shmuel

2014-01-18 11:23

developer   bugnote:0011713

LuaMacro build 272.

JohnDoe

2014-01-18 20:07

updater   bugnote:0011716

Супер!
Единственный вопрос: порядок слов в "mf.postmacro" намеренно сделан отличным от "far.MacroPost"?

shmuel

2014-01-18 20:16

developer   bugnote:0011717

Вообще для функций, выполняющих действие, принято порядок слов делать "натуральный" (для англ. языка). Ненатуральный - это MacroPost, но тут причина другая: "Macro" - это как бы префикс, общий для нескольких функций библиотеки "far" (уже не помню, почему в своё время не стал делать пространство "macro" в LuaFAR'е - тогда было бы macro.Post)

Issue History

Date Modified Username Field Change
2014-01-15 15:01 JohnDoe New Issue
2014-01-17 17:39 shmuel Note Added: 0011703
2014-01-17 22:55 JohnDoe Note Added: 0011709
2014-01-18 09:47 shmuel Note Added: 0011710
2014-01-18 10:21 JohnDoe Note Added: 0011711
2014-01-18 11:23 shmuel Note Added: 0011713
2014-01-18 11:23 shmuel Assigned To => shmuel
2014-01-18 11:23 shmuel Status new => feedback
2014-01-18 20:07 JohnDoe Note Added: 0011716
2014-01-18 20:07 JohnDoe Status feedback => assigned
2014-01-18 20:07 JohnDoe Status assigned => resolved
2014-01-18 20:16 shmuel Note Added: 0011717
2014-01-18 20:17 shmuel Build => LMb272
2014-01-18 20:17 shmuel Status resolved => closed
2014-01-18 20:17 shmuel Resolution open => fixed
2014-01-18 20:17 shmuel Fixed in Version => 3.0