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
I guess I think it'd be really nice to be able to run the incomplete code, providing warnings at edit/compile time, and then panicking if the incomplete code is encountered at runtime. That way you can leave code incomplete, then come back to it later more smoothly.
1
I definitely agree the adding code completion and popups would be much nicer than how many implementations of holes do it, however. It would be really cool to see this stuff working together! 😊
1
This Tweet is from a suspended account. Learn more
Show replies