Aleksey Kladov
f9707cde68
Rename expr -> tail_expr
2021-01-05 15:51:13 +03:00
Marijn Suijten
42da26e959
parser,syntax: Add separate parser for stmt with optional semicolon
...
Adjusting `grammar::fragments::stmt` to Optional or Yes will break
original functionality and tests.
2021-01-03 12:05:52 +01:00
Marijn Suijten
cc081b7e1c
syntax,ssr: Implement statement parsing
2021-01-03 11:29:33 +01:00
cynecx
59fe884ef5
Fix warnings on rust-nightly
2021-01-02 20:48:39 +01:00
AdnoC
ddbf484acf
indentation
2020-12-29 22:56:00 -07:00
AdnoC
6eeec5d75f
Smarter bracketed use diagnostic
2020-12-29 22:46:34 -07:00
Lukas Wirth
a142beaf01
Implement const block inference
2020-12-23 12:24:24 +01:00
bors[bot]
fd1fcf2c2e
Merge #7010
...
7010: Update ungrammar for const block patterns r=matklad a=Veykril
Fixes #6848
Adds const blocks and const block patterns to the AST and parses them.
Blocked on https://github.com/rust-analyzer/ungrammar/pull/17/ , will merge that PR there once this one gets the OK so I can remove the local ungrammar dependency path and fix the Cargo.lock.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-23 10:37:30 +00:00
Aleksey Kladov
f00f75a078
Document make
module design
2020-12-23 13:01:31 +03:00
Lukas Wirth
be7260485e
Update ungrammar for const block patterns
2020-12-23 01:26:31 +01:00
bors[bot]
c073e4f6ba
Merge #6934
...
6934: Implement `cfg_attr` handling r=jonas-schievink a=jonas-schievink
Part of https://github.com/rust-analyzer/rust-analyzer/issues/5548
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-12-18 19:27:18 +00:00
Jonas Schievink
08de1b4fa5
Implement RawAttr::filter
2020-12-18 18:58:42 +01:00
Aleksey Kladov
cd4a7bf36e
Minor, cleanup API
2020-12-18 19:50:00 +03:00
bors[bot]
067067a6c1
Merge #6896
...
6896: Node-ify lifetimes r=jonas-schievink a=Veykril
Let's see if this passes the tests 🤞
Depends on https://github.com/rust-analyzer/ungrammar/pull/15
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Co-authored-by: Jonas Schievink <jonas.schievink@ferrous-systems.com>
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-16 17:08:03 +00:00
bors[bot]
63bbdb31e5
Merge #6897
...
6897: Basic support for macros 2.0 r=jonas-schievink a=jonas-schievink
This adds support for (built-in-only) macros 2.0, and removes some hacks used for builtin derives, which are declared via macros 2.0 in libcore.
First steps for https://github.com/rust-analyzer/rust-analyzer/issues/2248 .
Blocked on https://github.com/rust-analyzer/ungrammar/pull/16 .
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Co-authored-by: Jonas Schievink <jonas.schievink@ferrous-systems.com>
2020-12-16 16:52:46 +00:00
Lukas Wirth
dd496223f5
Node-ify lifetimes
2020-12-16 14:16:09 +01:00
bors[bot]
ece626fe81
Merge #6894
...
6894: Parenthesize composite if condition before inverting in invert-if assist r=matklad a=Jesse-Bakker
Fixes #6867
Co-authored-by: Jesse Bakker <github@jessebakker.com>
2020-12-16 08:20:11 +00:00
Jonas Schievink
c31c3246a8
Basic support for decl macros 2.0
2020-12-15 18:43:34 +01:00
Jesse Bakker
0f42a71806
Parenthesize composite if condition before inverting in invert-if assist
2020-12-15 16:25:57 +01:00
Jonas Schievink
479babf874
Reject visibilities on macro_rules!
2020-12-15 15:37:49 +01:00
Jonas Schievink
c1cb595382
Move to upstream macro_rules!
model
2020-12-15 15:37:37 +01:00
Jeremy Kolb
26a1675764
Remove some redundant allocations
2020-12-12 12:27:09 -05:00
Aleksey Kladov
3d5be5ba5b
Fix accidently quadratic syntax rewriter
...
Switching from SyntaxNode to GreenNode is a costly operation (b/c
dereferencing a synax ptr in `with_green` is linear), so we should
avoid that.
2020-12-10 20:07:37 +03:00
Lukas Wirth
f8823e8cbc
Properly fetch inner and outer docs on hir-level
2020-12-09 09:22:41 +01:00
Lukas Wirth
3174e941db
Simplify ast::Comment api surface
2020-12-08 14:15:41 +01:00
Lukas Wirth
b064f6da9e
Keep doc attribute order
2020-12-07 20:38:28 +01:00
bors[bot]
03b886de53
Merge #6719
...
6719: Use items can also have doc comments r=matklad a=Veykril
Prior to this change modules show more docs than they have cause they inherit the docs from documented use items inside of them.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-07 18:48:35 +00:00
Lukas Wirth
44c76d6550
Add replace_match_with_if_let assist
2020-12-05 15:41:36 +01:00
Lukas Wirth
a1c8bdecfd
Use items can also have doc comments
2020-12-04 17:09:40 +01:00
bors[bot]
dc09d97fb2
Merge #6649
...
6649: Accept more than just the standard rust literal suffixes in *Number::suffix r=matklad a=Veykril
I am not entirely sure whether to keep or remove the `SUFFIXES` but I figured we can always bring them back once they are needed.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-02 13:13:01 +00:00
Lukas Wirth
49fbfffb48
Add ast::*Number::suffix tests unit tests
2020-11-28 16:22:28 +01:00
Kirill Bulatov
b2e6ca46ca
Profile completions better
2020-11-27 18:00:03 +02:00
Lukas Wirth
347da74eda
Avoid allocation in ast::String::value if the string needs no unescaping
2020-11-27 12:03:58 +01:00
Lukas Wirth
931493e949
Accept more than just the standard rust literal suffixes in *Number::suffix
2020-11-27 00:00:18 +01:00
bors[bot]
e17d604888
Merge #6558
...
6558: format string highlighting: handle hex + debug type specifier r=matklad a=ruabmbua
Should fix https://github.com/rust-analyzer/rust-analyzer/issues/6427
Co-authored-by: Roland Ruckerbauer <roland.rucky@gmail.com>
2020-11-16 11:07:29 +00:00
Roland Ruckerbauer
a15dda48c6
format string highlighting: handle hex + debug type specifier
2020-11-15 17:43:14 +01:00
Lukas Wirth
e55a44a831
Use shorthand record syntax when renaming struct initializer field
2020-11-14 17:51:09 +01:00
Aleksey Kladov
a27186636d
Fix attachment of inner doc comments
2020-11-12 12:09:12 +01:00
Aleksey Kladov
81ac99f60a
Simplify code
2020-11-12 11:45:18 +01:00
bors[bot]
ada5a88f8f
Merge #6512
...
6512: Don't replace parent node when inserting as first child in algo::diff r=SomeoneToIgnore a=Veykril
This makes the diff a bit more detailed.
See https://github.com/rust-analyzer/rust-analyzer/pull/6287#issuecomment-723889267 for context
cc @SomeoneToIgnore
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-11-09 23:41:43 +00:00
Lukas Wirth
a61bb4abb5
Don't replace parent node when inserting as first child in algo::diff
2020-11-09 20:10:49 +01:00
Aleksey Kladov
e72cd4600e
Fix debug for SyntaxRewriter
2020-11-09 14:09:49 +01:00
bors[bot]
dac7060382
Merge #6476
...
6476: Add missing AssocItems in add_custom_impl assist r=matklad a=Veykril
```rust
use std::fmt;
#[derive(Debu<|>g)]
struct Foo {
bar: String,
}
```
->
```rust
use std::fmt;
struct Foo {
bar: String,
}
impl fmt::Debug for Foo {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
${0:todo!()}
}
}
```
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-11-07 18:21:11 +00:00
Aleksey Kladov
5db789df9c
Cleanup API
2020-11-06 22:52:42 +01:00
Aleksey Kladov
6158304f8b
Simplify
2020-11-06 22:30:58 +01:00
Aleksey Kladov
5ba4f949c2
Kill RAW_ literals
...
Syntactically, they are indistinguishable from non-raw versions, so it
doesn't make sense to separate then *at the syntax* level.
2020-11-06 22:23:14 +01:00
Aleksey Kladov
6725dcf847
Minor, cleanup style
2020-11-06 21:09:37 +01:00
Aleksey Kladov
eb46033390
More orthogonal API
2020-11-06 19:09:01 +01:00
Aleksey Kladov
735aaa7b39
Move int parsing to IntNumber token
2020-11-06 18:54:01 +01:00
Aleksey Kladov
6bcc33e5b7
Better imports
2020-11-06 18:39:09 +01:00