Problem description
It took me little while to figure out why List Filter Inputs (LFIs) can be configured to have arguments.
To be clear: I'm not talking about the `arg` of the items in the list.
I am talking about the "Argument Required"/"Argument Optional"/"No Argument" setting of a List Filter Input.
As I understand it:
- When a List Filter Input has no argument: all items in the list are displayed and the user can not filter the displayed items. They can only select an item.
- When a List Filter Input has an optional argument: all items in the list are displayed initially, the user can type text after the keyword of the LFI so it will only show items matching the typed in text.
- When a List Filter Input has a required argument: no items from the list are displayed, matching items will appear when they type text after the keyword of the LFI.
However: when a Hotkey Trigger is used to trigger an LFI that has the option set to "No Argument" it somehow is possible to type-to-filter items in the list.
In Hotkey Triggers and Keyword Inputs an argument is something that's passed to the next workflow object. Which is entirely not the case for the argument in LFIs.
In a Script Filter Input this setting is similar, but there the argument is used as an argument to the Script.
To summarize:
1. I think calling this option "argument" for LFIs is confusing because the value is not used as an argument, it's only used for filtering the items in the list.
2. The option to have a required argument is strange: why would somebody want to build a workflow which is not forthcoming with the available options? (if there's a lot of them it should be a Script Filter Input). I don't see a valid usecase for this.
Suggested improvements
As a quick fix I think the documentation should state something like:
I think the UI can be simplified by removing this option altogether and having the LFI always do filter-by-typing. I don't see any valid use cases for the other settings.
If you're an Alfred developer and want to talk about this, feel free to contact me for a call.