aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1222bors[bot]2019-05-011-1/+9
|\ | | | | | | | | | | | | | | 1222: Skip Dollars when bump raw token r=matklad a=edwin0cheng This PR fixed a bug while parsing token_tree, it should skip all L_DOLLAR AND R_DOLLAR. Co-authored-by: Edwin Cheng <[email protected]>
| * Skip Dollars when bump raw tokenEdwin Cheng2019-05-011-1/+9
| |
* | Merge #1223bors[bot]2019-05-012-0/+117
|\ \ | |/ |/| | | | | | | | | | | 1223: Move guard to arm body assist r=matklad a=unrealhoang This is my attempt at #1206 Co-authored-by: Unreal Hoang <[email protected]>
| * add complex match case and documentationUnreal Hoang2019-05-011-13/+29
| |
| * move guard to arm body assist.Unreal Hoang2019-05-012-0/+101
| |
* | Merge #1220bors[bot]2019-05-013-1/+49
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1220: Add macro pat parsing r=matklad a=edwin0cheng This PR add support to parsing macro call in pattern , e.g : ``` let m!(x) = 0; ``` Co-authored-by: Edwin Cheng <[email protected]>
| * | Add macro pat parsingEdwin Cheng2019-04-303-1/+49
| | |
* | | Use correct FileId when expanding macros in expressionsAleksey Kladov2019-05-012-33/+44
| |/ |/|
* | Sidestep two-phase borrow violation signaled by ↵Felix S. Klock II2019-04-291-2/+3
|/ | | | | | mutable_borrow_reservation_conflict. See rust-lang/rust#59159 for further information/discussion.
* Merge #1213bors[bot]2019-04-289-132/+185
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1213: Make lexer produce only single character puncts r=matklad a=edwin0cheng As discussed in Zulip, this PR change `lexer` to produce only single char punct. * Remove producing `DOTDOTDOT, DOTDOTEQ, DOTDOT, COLONCOLON, EQEQ, FAT_ARROW, NEQ, THIN_ARROW` in lexer. * Add required code in parser to make sure everythings works fine. * Change some tests (Mainly because the `ast::token_tree` is different) Note: i think the use of `COLON` in rust is too overloaded :) Co-authored-by: Edwin Cheng <[email protected]>
| * Refactor parser handle mult-char punct internallyEdwin Cheng2019-04-289-132/+185
| |
* | Fix hover on the beginning of a nested expressionFlorian Diebold2019-04-283-10/+33
|/ | | | | | | | | | | | | | | | E.g. in ``` let foo = 1u32; if true { <|>foo; } ``` the hover shows `()`, the type of the whole if expression, instead of the more sensible `u32`. The reason for this was that the search for an expression was slightly left-biased: When on the edge between two tokens, it first looked at all ancestors of the left token and then of the right token. Instead merge the ancestors in ascending order, so that we get the smaller of the two possible expressions.
* Simplifykjeremy2019-04-262-13/+10
|
* Add is_empty to Arenakjeremy2019-04-261-0/+3
|
* Pass in char instead of single-char stringkjeremy2019-04-261-3/+3
|
* Elide lifetimekjeremy2019-04-261-1/+1
|
* Use panic instead of unwrapEdwin Cheng2019-04-251-8/+6
|
* Fix more bugsEdwin Cheng2019-04-257-24/+202
|
* Add handling `token` seperator in mbeEdwin Cheng2019-04-257-226/+218
|
* Add more information on macro rules fail to parseEdwin Cheng2019-04-251-2/+8
|
* Fix incorrect repeat sep eatingEdwin Cheng2019-04-253-24/+304
|
* drop empty fileAleksey Kladov2019-04-251-0/+0
|
* simplify matchkjeremy2019-04-241-4/+1
|
* See through referenceskjeremy2019-04-241-2/+20
|
* Merge #1200bors[bot]2019-04-231-18/+70
|\ | | | | | | | | | | | | | | 1200: Allows searching for case-equivalent symbols (fixes #1151) r=matklad a=jrvidal I couldn't find a nice, functional way of calculating the ranges in one pass so I resorted to a plain old `for` loop. Co-authored-by: Roberto Vidal <[email protected]>
| * CR correctionsRoberto Vidal2019-04-231-2/+2
| |
| * Allows searching for case-equivalent symbols (fixes #1151)Roberto Vidal2019-04-231-18/+70
| |
* | Simplifykjeremy2019-04-231-5/+3
| |
* | Basic resolution for ADTkjeremy2019-04-235-2/+99
|/
* Merge #1147bors[bot]2019-04-236-15/+133
|\ | | | | | | | | | | | | | | 1147: Handle macros in type checking / HIR r=matklad a=Lapz An other attempt at #1102. I will need to flatten the nested if statements and im also not sure if the way that i get the resolver and module will always work Co-authored-by: Lenard Pratt <[email protected]>
| * Introduced resolve_macro_call on resolverLenard Pratt2019-04-235-55/+112
| | | | | | | | | | | | changed to manual expansion fix for nested macros
| * Added macro resolution and expansionLenard Pratt2019-04-227-106/+135
| |
| * Addeded resolver and dbLenard Pratt2019-04-222-60/+92
| |
* | Add `...` parsing for fn pointer typeEdwin Cheng2019-04-234-3/+47
|/
* Add cached for SubtreeSourceEdwin Cheng2019-04-221-4/+20
|
* Merge #1194bors[bot]2019-04-227-77/+271
|\ | | | | | | | | | | | | | | | | 1194: Pr 1190 r=matklad a=matklad Co-authored-by: Andrea Pretto <[email protected]> Co-authored-by: Aleksey Kladov <[email protected]>
| * unused importAleksey Kladov2019-04-221-2/+0
| |
| * remove path_ident from CompletionContextAleksey Kladov2019-04-222-39/+38
| | | | | | | | | | | | | | | | | | We really shouldn't be looking at the identifier at point. Instead, all filtering and sorting should be implemented at the layer above. This layer should probably be home for auto-import completions as well, but, since that is not yet implemented, let's just stick this into complete_scope.
| * move auto-imoprter into IDEAleksey Kladov2019-04-227-92/+68
| | | | | | | | | | auto-import is purely an IDE concern, so it should be done outside of HIR
| * complete_import: prevent panic when the anchor is the completion source rangeAndrea Pretto2019-04-213-16/+18
| | | | | | | | | | | | (fix rebase mess) Please enter the commit message for your changes. Lines starting
| * complete_import: add new import resolver infrastructure with some hardcoded ↵Andrea Pretto2019-04-216-11/+155
| | | | | | | | | | | | importable name. Changes complete_scope to support that.
| * auto_import: better no anchor managementAndrea Pretto2019-04-211-7/+48
| |
| * auto_import: make auto import working with target as a list of SmolStr ↵Andrea Pretto2019-04-212-63/+69
| | | | | | | | instead of ast::Path
| * auto_import: use TextEditBuilder instead of AssistBuilder to make it more ↵Andrea Pretto2019-04-212-8/+36
| | | | | | | | reusable
* | Merge #1193bors[bot]2019-04-221-3/+98
|\ \ | | | | | | | | | | | | | | | | | | | | | 1193: Add a test for #1178 case r=edwin0cheng a=edwin0cheng A little PR to add a test case for #1178 Co-authored-by: Edwin Cheng <[email protected]>
| * | Remove unused print outEdwin Cheng2019-04-221-67/+63
| | |
| * | Add a test for #1178 caseEdwin Cheng2019-04-221-3/+102
| | |
* | | Merge #1184bors[bot]2019-04-2212-196/+567
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1184: Start structured editing API r=matklad a=matklad I think I finally understand how to provide nice, mutable structured editing API on top of red-green trees. The problem I am trying to solve is that any modification to a particular `SyntaxNode` returns an independent new file. So, if you are editing a struct literal, and add a field, you get back a SourceFile, and you have to find the struct literal inside it yourself! This happens because our trees are immutable, but have parent pointers. The main idea here is to introduce `AstEditor<T>` type, which abstracts away that API. So, you create an `AstEditor` for node you want to edit and call various `&mut` taking methods on it. Internally, `AstEditor` stores both the original node and the current node. All edits are applied to the current node, which is replaced by the corresponding node in the new file. In the end, `AstEditor` computes a text edit between old and new nodes. Note that this also should sole a problem when you create an anchor pointing to a subnode and mutate the parent node, invalidating anchor. Because mutation needs `&mut`, all anchors must be killed before modification. Co-authored-by: Aleksey Kladov <[email protected]>
| * | drop useless testAleksey Kladov2019-04-221-28/+0
| | |
| * | move add_missing_members to structured editing APIAleksey Kladov2019-04-224-146/+231
| | | | | | | | | | | | | | | Currently, this is more code, and we also loose auto-indenting of bodies, but, long-term, this is the right approach