Single-argument swap
We'd like to support single-argument swap which expects argument to evaluate to two targets and then swaps them. That would enable commands like "swap every two tokens air" to swap air with its next token. One side benefit is that "swap air and bat" would be a synonym for "swap air with bat", which might be useful
Could probably generalize to any even number of targets. I think best behavior would be to zip first half of list with second half so that "swap <target1> and <target2>" matches "swap <target1> with <target2>" eg "swap every key air and bat". Though maybe having them behave differently would be useful?
⬆️ @pokey edit ⬆️
⬇️ @nriley original ⬇️
I'd like to be able to "swap" two instances of a scope, like this:
As @pokey mentioned (and I've accidentally said), this also would make the idiomatic "swap a and b" (versus "swap a with b") work fine.
For 2 targets, "reverse" already appears to do the right thing if spoken instead of "swap".
If we wanted to generalize this further to do pairwise swaps, it'd no longer be the same as reverse. I can't honestly think of a use case though!
Made some edits to your description. And yeah good point re "reverse"; hadn't thought of that 😄. I still think "swap" is intuitive for this kind of operation