Record macro fragment captures #11183
Labels
A-ide
general IDE features
A-macro
macro expansion
C-Architecture
Big architectural things which we need to figure up-front (or suggestions for rewrites :0) )
E-unknown
It's unclear if the issue is E-hard or E-easy without digging in
In short we should be able to ask a token in a macro-call tokentree in what way it has been captured, that is the fragment type it got captured as as well as asking for all the tokens that are part of the same capture.
This would allow us to potentially offer more IDE features for declarative macro-call inputs, as an example lets look at our
match_ast
macrohttps://github.com/rust-analyzer/rust-analyzer/blob/1ba9a924d7b161c52e605e157ee16d582e4a8684/crates/syntax/src/lib.rs#L186-L196
Using this macro causes the match arm expressions in the input to lose all inlay hints. This is due to the input being just a bunch of unparsed tokens, but the fragment captures give us enough information to tell what tokens make up a valid expression in the input which should allow us to properly add inlay hints to these.
Completions would also benefit from this information #11059
The token map rewrite might be relevant here #9403
The text was updated successfully, but these errors were encountered: