ulyssa / iamb

A Matrix client for Vim addicts
https://iamb.chat
Apache License 2.0
648 stars 45 forks source link

tab completion of user names #249

Open frivoal opened 7 months ago

frivoal commented 7 months ago

When in insert mode, it would be extremely convenient if pressing the Tab key autocompleted the current word as the name of some member of the room you're in.

I find this generally useful, but for me it raises to life saver in some contexts: when taking live minutes of a meeting in a chat room, typing people's name can be very time consuming without this, or trivial with it.

Some alternative key combination may be alright, but I already have so much muscle memory that it'd be really nice if it was Tab.

People actually wanting to want to type tabulations into a chat client is exceedingly rare (many clients don't even support it), so we wouldn't really lose anything.

mordquist commented 6 months ago

As per the docs on Sending there already exists <C-N> and <C-P> for next/previous auto-completion of names/rooms/emoji. I tried binding <Tab> under macros in config.toml which seems to work great. Binding <S-Tab> did not however.

If you need to insert a tab character, you can type <C-V><Tab>.

config.toml:

[macros.insert]
"<Tab>" = "<C-N>"   # works
"<S-Tab>" = "<C-P>" # also works

EDIT: <S-Tab> works as of modalkit v.0.0.19

frivoal commented 6 months ago

Thanks! I thought I has seen this somewhere, but couldn't remember where. The config.toml part is especially useful.

However, this autocompletes fully qualified matrix usernames like@someobody:matrix.org, but I would instead (or also) auto-completion of Display Names.

mordquist commented 6 months ago

What is really needed for this is support for intentional mentions (MSC3952). There seems to be support for it in the rust matrix sdk but I haven't looked in to it properly.