Do $edit-text inputActions update filters twice?

It seems that at least the filters defined in the action string are computed twice.

To retrace this, you need to use the preview of PR #7190 with the debug-log filter operator:

Create a new tiddler with the following text:

\define actions()
<$action-setfield $tiddler="$:/temp/action" $field="text" $value={{{ [tag[HelloThere]debug-log[storyTiddler]] }}} />

<$edit-text tiddler="$:/temp/volatile/test" focus="yes" inputActions="<<actions>>" />

{{{ [tag[HelloThere]debug-log[currentTiddler]] }}}

Now whenever you enter a letter in the textarea, the console shows that the filter in the actions macro is computed twice (storyTiddler is output twice), then the $action-log fires once, and then the outside filter is computed once.

I the action-filter happens to be something expensive like a full-text search across all tiddlers, computing this twice would take twice the time?

Is this normal? Can this be avoided somehow?

Just wondering

Hi @Yaisog as things stand action widgets are refreshed immediately before execution:

As you can see, the extra refresh occurs for action widgets or if tv-action-refresh-policy is set to always.

It would need investigation, but it’s possible that this could be fixed by refactoring the action widgets to defer computing their attributes until they are invoked.

Thanks for the explanation. I’ll open an issue, so it isn’t forgotten…