Conversation

This Tweet is from a suspended account. Learn more
Yeah, that's what I do - feels a bit hacky though, and can't really put them in patterns. Also can't use them interactively for case splitting etc. like in Agda, Idris, Haskell, etc.
1
1
One example is function completion, where it inserts a function call with argument names pulled from the parameters (which may not exist in scope). It would be super nice if it inserted a function call with a bunch of holes that you could jump to and fill interactively… 😅
2
I personally disable this feature (`"rust-analyzer.completion.addCallArgumentSnippets": false`), as find it more distracting than useful. Parameter info popup and completion, if done right, should work just as good as holes. Sadly, param info in code is
1
1
Hmm, still seems like it generates broken code though? Like, it produces: make::use_item(make::use_tree()) rather than something like: make::use_item(make::use_tree({! !}, {! !}, {! !})) Same goes for `match`, where this stuff becomes even more useful!
3
Sure, the code is broken, but I don't think that by itself this means worse UX. If the ide highlights the error, provides type-driven completions for arguments, and shows popup with expected parameter types/names/docs, then I think the UX would be as nice.
1
1
But yeah, sorry if I've been overly enthusiastic on this! I definitely understand that time is limited and getting something like this into Rust would be a challenge. And I'm very grateful for the awesome editing experience we already have, it's amazing! 🥰
1