aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1175bors[bot]2019-04-215-50/+154
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 1175: Fix bugs and add error log about macro expansion r=matklad a=edwin0cheng This PR fixed / add following things: * Add a fused count which stop recursion of macro expansion in name resolution. * Add some logs when macro expansion fails * Add `$crate` meta variable support in mbe, which create a `$crate` ident token in token tree. * Fixed matching a `$REPEAT` pattern inside a subtree, e.g. `(fn $name:ident {$($i:ident)*} ) => {...}` * Remove composite-able punct token in syntax node to token conversion. Co-authored-by: Edwin Cheng <[email protected]>
| * Fix bugsEdwin Cheng2019-04-205-50/+154
| |
* | switch to official extend selection APIAleksey Kladov2019-04-216-4/+73
| |
* | Add a simple test for str method completionFlorian Diebold2019-04-201-0/+22
| |
* | Merge #1154bors[bot]2019-04-2011-19/+174
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 1154: Initial support for lang items (and str completion) r=flodiebold a=marcogroppo This PR adds partial support for lang items. For now, the only supported lang items are the ones that target an impl block. Lang items are now resolved during type inference - this means that `str` completion now works. Fixes #1139. (thanks Florian Diebold for the help!) Co-authored-by: Marco Groppo <[email protected]>
| * lang_item_lookup is now a salsa query.Marco Groppo2019-04-193-32/+34
| |
| * New krate() method in Resolver.Marco Groppo2019-04-195-56/+46
| | | | | | | | Renamed Impl to ImplBlock.
| * Initial support for lang items.Marco Groppo2019-04-1911-41/+204
| |
* | Disable test_tt_xxEdwin Cheng2019-04-191-23/+23
| |
* | Disable tt matcherEdwin Cheng2019-04-191-4/+8
| |
* | Add back missing assertEdwin Cheng2019-04-191-2/+3
| |
* | Fix bug for ident to lifetimeEdwin Cheng2019-04-191-0/+7
| |
* | Add vis matcherEdwin Cheng2019-04-196-1/+33
| |
* | Add literal matcherEdwin Cheng2019-04-193-0/+35
| |
* | Add lifetime matcherEdwin Cheng2019-04-194-2/+25
| |
* | add tt matcherEdwin Cheng2019-04-192-0/+28
| |
* | add block matcherEdwin Cheng2019-04-196-0/+64
| |
* | Add block matcherEdwin Cheng2019-04-196-0/+35
| |
* | Merge #1148bors[bot]2019-04-198-20/+295
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1148: Add token_tree_to_xxx functions r=matklad a=edwin0cheng <del>As discus in PR #1147 , this PR added a `mbe::MacroKind` . Currently only 2 kind of macro are supported, `SourceFile` and `Block`.</del> Added following functions for `tt::TokenTree` and `ast::Node` conversion: * token_tree_to_expr * token_tree_to_pat * token_tree_to_ty * token_tree_to_macro_stmts * token_tree_to_macro_items And added two new syntax kind: * MACRO_ITEMS * MACRO_STMTS Co-authored-by: Edwin Cheng <[email protected]>
| * Return Result for token_tree_to_xx functionsEdwin Cheng2019-04-182-14/+24
| |
| * Add expr, pat, ty and macro_stmtsEdwin Cheng2019-04-185-15/+156
| |
| * Add MacroItems and MacroStmts in grammer.ronEdwin Cheng2019-04-187-8/+132
| |
* | Fix missing last token in mbe $repeat parsingEdwin Cheng2019-04-182-1/+24
|/
* Add `item` matcher in mbeEdwin Cheng2019-04-186-0/+70
|
* Merge #1160bors[bot]2019-04-171-8/+23
|\ | | | | | | | | | | | | | | 1160: better formatting when adding trait members r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * better formatting when adding trait membersAleksey Kladov2019-04-171-8/+23
| | | | | | | | | | | | * it's conventional not to use one-liners * new placement is more predictable, b/c it does not depend on header's length
* | Merge #1145bors[bot]2019-04-172-8/+117
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | 1145: Fix #1099, plug self type type parameters in infer_path_expr r=flodiebold a=edwin0cheng As discussed in #1099, this PR try to "plug" a `self type` type parameters in `infer_path_expr`. All the cases in 1099 was fixed and tested. And luckily, this PR fixed bug #1030 again and make the test output correct. Co-authored-by: Edwin Cheng <[email protected]>
| * RefactoringEdwin Cheng2019-04-171-51/+46
| |
| * Simpliy codeEdwin Cheng2019-04-171-60/+32
| |
| * Bug fix and add more commentsEdwin Cheng2019-04-171-22/+60
| |
| * Fix 1099Edwin Cheng2019-04-172-5/+109
| |
* | cleanup cancellationAleksey Kladov2019-04-172-13/+6
| | | | | | | | | | Now that we explicitelly exit the reading loop on exit notification, we can assume that the sender is always alive
* | Merge #1153bors[bot]2019-04-171-0/+10
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 1153: "Restart server" command r=jrvidal a=jrvidal The only tricky aspect is that fact that once the `exit` command has been received, we no longer need to join on the reader thread. Also, I think `terminateProcesses.sh` was not working properly. In fact, the very same script from the vscode language server implementation is not working either! It's because of that I noticed the reader thread issue :open_mouth: Co-authored-by: Roberto Vidal <[email protected]>
| * | Breaks read loop on 'exit'Roberto Vidal2019-04-163-5/+17
| | |
| * | Fixes doctestRoberto Vidal2019-04-161-1/+1
| | |
| * | Adds "restart server" commandRoberto Vidal2019-04-162-6/+4
| |/
* / Add mbe stmt matcherEdwin Cheng2019-04-177-72/+119
|/
* fix testAleksey Kladov2019-04-141-17/+6
|
* add a couple of profiling pointsAleksey Kladov2019-04-143-0/+6
|
* more intuitive nameAleksey Kladov2019-04-141-11/+15
|
* filter by timeAleksey Kladov2019-04-142-26/+39
|
* cleanup syntaxAleksey Kladov2019-04-142-8/+24
|
* fast path for disabled profilerAleksey Kladov2019-04-141-8/+16
|
* switch to modern pathsAleksey Kladov2019-04-141-5/+5
|
* Refactor method candidate generation a bitFlorian Diebold2019-04-144-55/+176
| | | | | | This fixes the order in which candidates are chosen a bit (not completely though, as the ignored test demonstrates), and makes autoderef work with trait methods. As a side effect, this also makes completion of trait methods work :)
* Merge #1137bors[bot]2019-04-149-55/+142
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1137: Adds support for multiple editor workspaces on initialization r=matklad a=jrvidal OK, so this "simple hack" turned out to be way more contrived than I expected :joy: ### What works This patch only handles multi-folder editor workspaces _on initialization_. * I've found that modifying the layout of a workspace in VSCode just reloads the extension, so this hack should be enough for now. * Not sure about how emacs-lsp behaves, but we fallback gracefully to the mono-folder workspace, so it should be fine. ### What doesn't work * [x] `cargo watch` can only watch a single root folder with a `Cargo.toml`. I've left this part untouched but we could either warn that it's not supported or launch _multiple_ `cargo-watch` processes. * [x] The `rust-analyzer/runnables` command is not functional, since we don't send the correct `cwd`. * [x] Should we add some happy path test to `heavy_tests`? * [ ] Going from a single `root` to multiple `roots` leaves us with a couple of `n * m` loops that smell a bit. The number of folders in the editor workspace is probably low though. Co-authored-by: Roberto Vidal <[email protected]>
| * Modifies runnables test to use multi-workspace rootRoberto Vidal2019-04-142-29/+68
| |
| * Sends cwd info for runnables and code lensesRoberto Vidal2019-04-147-4/+36
| |
| * Adds support for multiple editor workspaces on initializationRoberto Vidal2019-04-144-25/+41
| | | | | | | | This is a quick, partial fix for #1104
* | Merge #1138bors[bot]2019-04-1413-243/+560
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1138: Add L_DOLLAR and R_DOLLAR r=matklad a=edwin0cheng As discussion in issue https://github.com/rust-analyzer/rust-analyzer/issues/1132 and PR #1125 , this PR add 2 `Syntax::Kind` : `L_DOLLAR` and `R_DOLLAR` for representing `Delimiter::None` in mbe and proc_marco. By design, It should not affect the final syntax tree, and will be discard in `TreeSink`. My original idea is handling these 2 tokens case by case, but i found that they will appear in every place in the parser (imagine `tt` matcher). So this PR only handle it in `Parser::do_bump` and `Parser::start`, although It will not fix the `expr` matcher executing order problem in original idea. Co-authored-by: Edwin Cheng <[email protected]>