aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_parser/src/grammar/items.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-03-09 08:56:58 +0000
committerGitHub <[email protected]>2020-03-09 08:56:58 +0000
commitbeb4f4954179998e317db33e47a48a9bb7374977 (patch)
treee2af54ce707bfcdd0a0cd3fc5d547f43fc9fb7d1 /crates/ra_parser/src/grammar/items.rs
parent30062da6284052deac04c759540f81d5b326689c (diff)
parentafdf08e964345ac4a884a5630772611ba81f6969 (diff)
Merge #3513
3513: Completion in macros r=matklad a=flodiebold I experimented a bit with completion in macros. It's kind of working, but there are a lot of rough edges. - I'm trying to expand the macro call with the inserted fake token. This requires some hacky additions on the HIR level to be able to do "hypothetical" expansions. There should probably be a nicer API for this, if we want to do it this way. I'm not sure whether it's worth it, because we still can't do a lot if the original macro call didn't expand in nearly the same way. E.g. if we have something like `println!("", x<|>)` the expansions will look the same and everything is fine; but in that case we could maybe have achieved the same result in a simpler way. If we have something like `m!(<|>)` where `m!()` doesn't even expand or expands to something very different, we don't really know what to do anyway. - Relatedly, there are a lot of cases where this doesn't work because either the original call or the hypothetical call doesn't expand. E.g. if we have `m!(x.<|>)` the original token tree doesn't parse as an expression; if we have `m!(match x { <|> })` the hypothetical token tree doesn't parse. It would be nice if we could have better error recovery in these cases. Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/ra_parser/src/grammar/items.rs')
0 files changed, 0 insertions, 0 deletions