Commit Graph

3639 Commits

Author SHA1 Message Date
bors[bot]
fa15c4d75e Merge #1175
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 <edwin0cheng@gmail.com>
2019-04-21 10:34:07 +00:00
Aleksey Kladov
493bf20b3d fix docs 2019-04-21 12:52:54 +03:00
bors[bot]
57608ecd9d Merge #1179
1179: switch to official extend selection API r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-04-21 09:14:10 +00:00
Aleksey Kladov
fa12ed2b8f switch to official extend selection API 2019-04-21 12:13:48 +03:00
bors[bot]
31b7697cf6 Merge #1177
1177: ⬆️ code r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-04-21 08:33:11 +00:00
Aleksey Kladov
bf7cdec9dd ⬆️ code 2019-04-21 11:32:48 +03:00
bors[bot]
e4a58ee1f4 Merge #1176
1176: Add a simple test for str method completion r=flodiebold a=flodiebold

Somehow I forgot that we should add a test for this in #1154 until after it was already merging. So I'll just add one now :)

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-04-20 16:31:37 +00:00
Florian Diebold
82751f8a4a Add a simple test for str method completion 2019-04-20 18:26:53 +02:00
bors[bot]
4ad2e4ce4e Merge #1154
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 <marco.groppo@gmail.com>
2019-04-20 16:13:50 +00:00
Edwin Cheng
9e35bf91b8 Fix bugs 2019-04-20 23:53:39 +08:00
bors[bot]
526a6aba10 Merge #1174
1174: improve cargo watch r=matklad a=vemoo

- Add start and stop commands
- Cleanup trypescript code to avoid definite assignment assertions (`!` after possibly undefined value)
- Recover `rustc-watch` problem matcher because it's still useful, can be used with any command, for example `cargo test`

Co-authored-by: Bernardo <berublan@gmail.com>
2019-04-20 14:02:36 +00:00
Bernardo
4cd0a96c96 update user docs 2019-04-20 10:02:23 +02:00
Marco Groppo
8ac3d1f9aa lang_item_lookup is now a salsa query. 2019-04-20 00:29:16 +02:00
Marco Groppo
8ebb20edce New krate() method in Resolver.
Renamed Impl to ImplBlock.
2019-04-20 00:20:26 +02:00
Marco Groppo
e85ee60c42 Initial support for lang items. 2019-04-20 00:10:19 +02:00
Bernardo
422f4ac080 start cargo watch if not started interactively 2019-04-19 20:54:36 +02:00
Bernardo
3d3adabbef recover rustc-watch problemMatchers 2019-04-19 20:54:36 +02:00
Bernardo
1ae6571762 cargo watch start and stop commands 2019-04-19 20:54:36 +02:00
bors[bot]
0d39b1c3fa Merge #1172
1172: Temporarily disable tt matcher r=edwin0cheng a=edwin0cheng

Temporarily fix for #1170 by disable the `tt` matcher. The reason for that is normally a `$($tt:tt))* wildcard matcher will be added for recurisve macro. If we have any bugs in macro expansion, the macro will infinite expanding recursively. 

Let me add a fused system and add more test in later PR and then re-enable this one

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-04-19 18:41:55 +00:00
Edwin Cheng
210c762fe6 Disable test_tt_xx 2019-04-20 02:41:13 +08:00
Edwin Cheng
41c1a639c3 Disable tt matcher 2019-04-20 02:19:46 +08:00
bors[bot]
d15abaa06f Merge #1168
1168: Add all remaining mbe matchers r=matklad a=edwin0cheng

This PR adds following  mbe matchers:

* block
* meta
* tt
* literal
* vis

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-04-19 13:54:34 +00:00
Edwin Cheng
1afde29adb Add back missing assert 2019-04-19 21:52:54 +08:00
Edwin Cheng
763569017a Fix bug for ident to lifetime 2019-04-19 21:43:41 +08:00
Edwin Cheng
87ff908135 Add vis matcher 2019-04-19 21:38:26 +08:00
Edwin Cheng
c5983b85fc Add literal matcher 2019-04-19 21:21:47 +08:00
Edwin Cheng
313854c728 Add lifetime matcher 2019-04-19 21:15:19 +08:00
Edwin Cheng
59b6cc780b add tt matcher 2019-04-19 19:41:59 +08:00
Edwin Cheng
762819864f add block matcher 2019-04-19 19:33:29 +08:00
Edwin Cheng
8092b6487f Add block matcher 2019-04-19 18:30:43 +08:00
bors[bot]
153db2467f Merge #1167
1167: Added instructions for Sublime Text 3 setup r=matklad a=OtaK

Hey all!

I'm a Sublime Text 3 user and I wrote instructions to make `rust-analyzer` work with it.

So far works flawlessly, barring the missing features, which is fine (and not the point of this PR).

Great work <3

Thanks,
Mathieu

Co-authored-by: Mathieu Amiot <amiot.mathieu@gmail.com>
2019-04-19 09:55:56 +00:00
Mathieu Amiot
3e980fcf6b Added instructions for Sublime Text 3 setup 2019-04-19 11:50:01 +02:00
bors[bot]
ab0a96586f Merge #1148
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 <edwin0cheng@gmail.com>
2019-04-19 08:56:39 +00:00
Edwin Cheng
a6d51e0961 Return Result for token_tree_to_xx functions 2019-04-19 04:03:22 +08:00
Edwin Cheng
c0f19d7005 Add expr, pat, ty and macro_stmts 2019-04-19 03:49:56 +08:00
Edwin Cheng
3ff5440a50 Add MacroItems and MacroStmts in grammer.ron 2019-04-19 02:47:29 +08:00
bors[bot]
d55f1136d6 Merge #1164
1164: Fix missing last token in mbe $repeat parsing r=matklad a=edwin0cheng

The `mbe parser` incorrectly eat one more token in $repeat parsing, described in #1141.

Remove incorrect token eating, and add related test.

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-04-18 18:13:09 +00:00
Edwin Cheng
e8ddeb869d Fix missing last token in mbe $repeat parsing 2019-04-18 23:33:54 +08:00
bors[bot]
403cd78bae Merge #1161
1161: Add mbe 'item' matcher r=matklad a=edwin0cheng

Add `item` matcher in `ra_mbe` , and added corresponding `item()` parser in `ra_syntax`. 
This PR also help PR #1148 for `Items` parsing.

And hopefully fix #1149 ?!




Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-04-18 12:00:16 +00:00
Edwin Cheng
e944fd059d Add item matcher in mbe 2019-04-18 10:21:36 +08:00
bors[bot]
112fd0ec7d Merge #1160
1160: better formatting when adding trait members r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-04-17 11:11:31 +00:00
Aleksey Kladov
a27fc96aa1 better formatting when adding trait members
* it's conventional not to use one-liners
* new placement is more predictable, b/c it does not depend on
  header's length
2019-04-17 14:05:02 +03:00
bors[bot]
4c8e6e89aa Merge #1145
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 <edwin0cheng@gmail.com>
2019-04-17 11:03:34 +00:00
bors[bot]
feaa30cf67 Merge #1159
1159: ⬆️ vfs r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-04-17 09:34:51 +00:00
Aleksey Kladov
16256ee2c6 ⬆️ vfs 2019-04-17 12:34:25 +03:00
bors[bot]
645a7b77b6 Merge #1158
1158: cleanup cancellation r=matklad a=matklad

Now that we explicitelly exit the reading loop on exit notification,
we can assume that the sender is always alive

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-04-17 08:56:36 +00:00
Aleksey Kladov
f75feb6724 cleanup cancellation
Now that we explicitelly exit the reading loop on exit notification,
we can assume that the sender is always alive
2019-04-17 11:47:38 +03:00
bors[bot]
d3afb1b378 Merge #1153
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 😮 

Co-authored-by: Roberto Vidal <vidal.roberto.j@gmail.com>
2019-04-17 05:51:12 +00:00
bors[bot]
0e35603069 Merge #1157
1157: Add mbe stmt matcher r=matklad a=edwin0cheng

Add `stmt` matcher in `ra_mbe` , and added corresponding `stmt()` parser in `ra_syntax`. 
This PR also help PR #1148 for `MarcoKind::Items` parsing.

Note: 
* According [the book](https://doc.rust-lang.org/reference/macros-by-example.html), mbe `stmt` matcher will only match statement without the trailing semicolon 
* `item` is a valid statement.





Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-04-17 05:10:29 +00:00
Edwin Cheng
57e4122b89 Add mbe stmt matcher 2019-04-17 12:34:43 +08:00