aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_mbe/src
Commit message (Collapse)AuthorAgeFilesLines
* Attempt to implement ranking of rules when none matches perfectly (wip)Florian Diebold2020-03-162-10/+13
|
* Make MBE expansion more resilient (WIP)Florian Diebold2020-03-165-45/+71
|
* Merge #3513bors[bot]2020-03-091-1/+3
|\ | | | | | | | | | | | | | | | | | | | | 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]>
| * Add more testsFlorian Diebold2020-03-071-1/+3
| |
* | Add parse_to_token_treeEdwin Cheng2020-03-083-33/+203
|/
* fix regression from #3451Edwin Cheng2020-03-052-1/+57
|
* Fixed whitespace bugEdwin Cheng2020-03-042-3/+35
|
* Fix #3436Edwin Cheng2020-03-043-1/+72
|
* Fix a bug for single dollar sign macroEdwin Cheng2020-03-032-1/+6
|
* Cleanup editing APIAleksey Kladov2020-02-291-1/+1
|
* ra_mbe: Remove explicit type annotationVeetaha2020-02-221-1/+1
|
* ra_mbe: added test for malformed token in macro invokationVeetaha2020-02-221-3/+21
| | | | | There was a panic where lexer returned None on malformed tokens. But now we just ignore tokenization errors in mbe.
* ra_mbe: convert_literal now works with malformed tokensVeetaha2020-02-221-2/+3
|
* CleanupShotaro Yamada2020-02-191-1/+1
|
* More manual clippy fixesKirill Bulatov2020-02-181-10/+7
|
* Run cargo +nightly fix --clippy -Z unstable-optionsKirill Bulatov2020-02-183-8/+8
|
* ra_syntax: refactored the lexer design as per @matklad and @kiljacken PR reviewVeetaha2020-02-031-3/+2
|
* Reimplemented lexer with vectors instead of iteratorsVeetaha2020-02-031-3/+5
|
* Add details about test_repeat_bad_var current stateVincent Rouillé2019-12-301-0/+2
|
* Details about macro NestingState hit and at_end fieldsVincent Rouillé2019-12-301-7/+10
|
* fix #2520: change expand_repeat loop stop conditionVincent Rouillé2019-12-282-36/+77
|
* Clippy lintskjeremy2019-12-201-1/+3
|
* Refactor macro testsAleksey Kladov2019-12-192-397/+282
|
* Fix parsing of interpolated expressionsAleksey Kladov2019-12-191-0/+18
|
* RefactoringEdwin Cheng2019-12-183-52/+50
|
* Rename range to by_kindEdwin Cheng2019-12-182-2/+2
|
* Add test for token mapEdwin Cheng2019-12-181-0/+43
|
* Fix shift id for delim and other tokensEdwin Cheng2019-12-181-3/+15
|
* Add TokenTextRangeEdwin Cheng2019-12-181-8/+33
|
* Add token id to delimsEdwin Cheng2019-12-184-57/+113
|
* Add token ids for all tt::LeafEdwin Cheng2019-12-183-24/+38
|
* Re-export Origin to replace ExpansionOriginEdwin Cheng2019-12-141-0/+1
|
* Refactor tt::DelimiterEdwin Cheng2019-12-136-34/+32
|
* Don't wrap most syntax trees in invisible delimiters when converting to ↵Florian Diebold2019-12-051-2/+8
| | | | | | token tree Otherwise parsing them again doesn't work.
* Add expansion infrastructure for derive macrosFlorian Diebold2019-12-051-12/+22
|
* Fixed mbe trival subtreeEdwin Cheng2019-11-211-0/+68
|
* Collapse TokenMap and RevTokenMapAleksey Kladov2019-11-182-112/+100
|
* Token-based reverse-mappingAleksey Kladov2019-11-181-1/+5
|
* More correct expansion mappingAleksey Kladov2019-11-171-4/+9
| | | | We can't really map arbitrary ranges, we only can map tokens
* Make shift an implementation detail of mbeAleksey Kladov2019-11-171-38/+68
|
* Goto definition works inside macrosAleksey Kladov2019-11-161-0/+6
|
* Remove typed macro parsing APIAleksey Kladov2019-11-093-64/+75
| | | | | We do type-erasure on every path anyway, so it doesn't make much sense to duplicate this function for every type
* Remove map_ranges in RevTokenMapEdwin Cheng2019-11-091-31/+1
|
* Refactor and simpfilyEdwin Cheng2019-11-081-1/+1
|
* Refactor and add more commentsEdwin Cheng2019-11-081-50/+46
|
* Fix formattingEdwin Cheng2019-11-051-1/+1
|
* Refactor a bitEdwin Cheng2019-11-041-9/+6
|
* Use macro_rules shift to map text rangesEdwin Cheng2019-11-042-30/+15
|
* Rename and fix typosEdwin Cheng2019-11-041-9/+15
|
* Remove dbg!Edwin Cheng2019-11-041-1/+0
|