Florian Diebold
22724f37f3
Lower fully qualified associated type paths
...
I.e. `<T as Trait>::Foo`.
2019-08-12 21:43:00 +02:00
Evgenii P
06c3de310e
rustfmt
2019-07-30 21:02:29 +07:00
Evgenii P
e7cdbe795a
Fix flip comma assist
2019-07-30 20:33:58 +07:00
Phil Ellison
e6113c0998
Add merge_match_arm assist, bump rowan to 0.6.1
2019-07-29 21:59:52 +01:00
Aleksey Kladov
61739b0c17
Document AssistBuilder
...
closes #1603
2019-07-29 15:43:34 +03:00
Aleksey Kladov
d52ee59a71
streamline API
2019-07-21 13:28:58 +03:00
Aleksey Kladov
c9cfd57eea
switch to upstream rowan's API
2019-07-20 20:12:06 +03:00
Aleksey Kladov
f6bcc2d745
align SyntaxText API with upstream
2019-07-20 16:52:11 +03:00
Aleksey Kladov
f3bdbec1b6
rename range -> text_range
2019-07-20 12:58:27 +03:00
Aleksey Kladov
0025299370
sane indexing in text
2019-07-19 20:55:32 +03:00
Aleksey Kladov
191a6ba330
convenience api
2019-07-19 19:05:34 +03:00
Aleksey Kladov
0343c4a815
migrate ra_assists to the new AST
2019-07-19 13:16:25 +03:00
Aleksey Kladov
deab4caa7b
make Parse fields private
...
this is in preparation for the new rowan API
2019-07-12 19:41:13 +03:00
Ekaterina Babshukova
895597d567
move whitespace manipulation inside AstEditor
2019-07-10 22:03:00 +03:00
Jeremy Kolb
98d769a799
readability
2019-07-05 10:18:01 -04:00
Jeremy Kolb
6b4ec73b7e
Clippy changes
2019-07-04 23:00:00 -04:00
Jeremy Kolb
4ad9e986ad
Some clippy fixes for 1.36
2019-07-04 17:43:00 -04:00
Aleksey Kladov
1834bae5b8
allow rustfmt to reorder imports
...
This wasn't a right decision in the first place, the feature flag was
broken in the last rustfmt release, and syntax highlighting of imports
is more important anyway
2019-07-04 23:09:09 +03:00
Ekaterina Babshukova
e0e42095db
extend add_impl_members to constants and types
2019-07-03 16:17:18 +03:00
Changyu Li
3a2a13756f
Review 1
2019-06-25 13:26:12 -07:00
ironyman
888157b52e
fill_match_arm works with trivial arm
2019-06-23 21:05:50 -07:00
Florian Diebold
9c5e7dd849
Implement autoderef using the Deref trait
...
- add support for other lang item targets, since we need the Deref lang item
2019-06-15 18:21:23 +02:00
Aleksey Kladov
c4512fadb1
remove inherent source impls
2019-06-11 18:28:51 +03:00
Aleksey Kladov
178d8e96b5
use Source for StructField
2019-06-11 18:28:51 +03:00
Aleksey Kladov
f411c2988d
use Source for Trait
2019-06-11 18:28:51 +03:00
Alan Du
964edd9943
Fix clippy::while_let_loop
2019-06-04 18:05:07 -04:00
Alan Du
b28ca32db2
Fix clippy::or_fun_call
2019-06-04 18:05:07 -04:00
Alan Du
ed3d93b875
Fix clippy::single_char_pattern
2019-06-04 18:05:07 -04:00
Aleksey Kladov
61e1474ab3
fix typos in mbe tests
2019-05-28 18:46:11 +03:00
bors[bot]
67d5927b16
Merge #1281
...
1281: Move arm cond to match guard r=matklad a=unrealhoang
I did split the rename to another commit, yet Github UI still show entirely new file change. Please review using commits.
Co-authored-by: Unreal Hoang <unrealhoang@gmail.com>
2019-05-22 07:39:54 +00:00
Unreal Hoang
08e954f0fd
add assist to move arm condition to match guard
2019-05-21 23:31:51 +09:00
Unreal Hoang
99ad6143cd
rename
2019-05-16 12:53:52 +09:00
Sergey Parilin
993abedd77
apply T! macro where it is possible
2019-05-15 15:35:47 +03:00
Aleksey Kladov
1667b5cf52
switch to once_cell from lazy_static
2019-05-07 20:54:33 +03:00
Sergey Parilin
12f8472d28
removed duplicating fill_struct_fields assist
2019-05-06 17:26:09 +03:00
Sergey Parilin
26ed925685
fill struct fields diagnostic
2019-05-06 17:16:11 +03:00
Jeremy Kolb
293cc81bf1
Remove collect
2019-05-05 13:28:22 -04:00
Unreal Hoang
d1c21b85cf
add complex match case and documentation
2019-05-02 01:41:02 +09:00
Unreal Hoang
f83e452b1e
move guard to arm body assist.
2019-05-02 00:42:00 +09:00
bors[bot]
c416caeda2
Merge #1194
...
1194: Pr 1190 r=matklad a=matklad
Co-authored-by: Andrea Pretto <eulerdisk@gmail.com>
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-04-22 13:19:47 +00:00
Aleksey Kladov
e01052d1f0
move auto-imoprter into IDE
...
auto-import is purely an IDE concern, so it should be done outside of
HIR
2019-04-22 15:56:28 +03:00
Aleksey Kladov
b73a978b95
drop useless test
2019-04-22 13:05:01 +03:00
Aleksey Kladov
268e739c94
move add_missing_members to structured editing API
...
Currently, this is more code, and we also loose auto-indenting of
bodies, but, long-term, this is the right approach
2019-04-22 13:01:33 +03:00
Aleksey Kladov
5b2fd86d25
more type safety
2019-04-22 10:11:06 +03:00
Andrea Pretto
9144214958
complete_import: add new import resolver infrastructure with some hardcoded importable name.
...
Changes complete_scope to support that.
2019-04-22 00:14:58 +02:00
Andrea Pretto
cf0eff2e33
auto_import: better no anchor management
2019-04-22 00:13:00 +02:00
Andrea Pretto
766813898f
auto_import: make auto import working with target as a list of SmolStr instead of ast::Path
2019-04-22 00:13:00 +02:00
Andrea Pretto
0e0ae47b47
auto_import: use TextEditBuilder instead of AssistBuilder to make it more reusable
2019-04-22 00:13:00 +02:00
Aleksey Kladov
97f41d7343
test short structs
2019-04-22 00:52:21 +03:00
Aleksey Kladov
f313ac45af
use structured editing API for fill struct assist
2019-04-21 22:13:52 +03:00
Aleksey Kladov
7cc845e88d
start structured editing API
2019-04-21 20:51:20 +03: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
Robin Freyler
6aae0cf7fa
replace usages of algo::generate
with iter::successors
from std
2019-04-13 16:43:49 +02:00
Aleksey Kladov
f4a94e74bc
fold ScopeWithSyntax into SourceAnalyzer
2019-04-13 10:49:01 +03:00
Aleksey Kladov
3aae223d93
hide some scopes
2019-04-13 09:31:03 +03:00
Aleksey Kladov
0fd93bc14a
use really correct resolver for expressions
2019-04-13 00:44:47 +03:00
Aleksey Kladov
20013de2ab
fix typo
2019-04-11 17:15:20 +03:00
Aleksey Kladov
b6809b6695
rename
2019-04-11 16:29:33 +03:00
Aleksey Kladov
10d66d63d7
introduce SourceAnalyzer
2019-04-11 16:29:33 +03:00
Marco Groppo
c5f8f3b1f4
Stylistic changes. Updated features.md with the new assists.
2019-04-09 21:12:54 +02:00
Marco Groppo
a4ba3841b4
Add explicit type assist.
2019-04-08 19:56:37 +02:00
Aleksey Kladov
f3a82c372c
remove flavor
2019-04-02 12:25:24 +03:00
Aleksey Kladov
ae282d8da6
add ast::tokens
2019-04-02 10:23:29 +03:00
gfreezy
4ca51cfbcf
intelligently add parens when inlining local varaibles
2019-04-01 22:53:47 +08:00
Aleksey Kladov
9e213385c9
switch to new rowan
2019-04-01 12:06:24 +03:00
Marco Groppo
7b81c088f7
Flip any binary expression except assignments.
2019-03-26 23:12:46 +01:00
Marco Groppo
12b5d4f795
Assist to flip (some) binary expressions.
...
This assist can flip the following operators: ==, !=, >, >=, <, <=.
2019-03-25 23:53:57 +01:00
bors[bot]
d88a96bd05
Merge #1037
...
1037: inline immutable local varialbe r=matklad a=gfreezy
resolved #1033
Co-authored-by: gfreezy <gfreezy@gmail.com>
2019-03-25 14:11:18 +00:00
gfreezy
61315e4a89
use | instead of multiple match arms
2019-03-25 20:57:43 +08:00
bors[bot]
965363db15
Merge #1036
...
1036: Assist to flip equality (==) and negated equality (!=) operands. r=matklad a=marcogroppo
This PR adds an assist to flip the equality operands.
I hope this is the right way to do this (I'm a newbie...)
Fixes #1023 .
Co-authored-by: Marco Groppo <marco.groppo@gmail.com>
2019-03-25 07:04:47 +00:00
gfreezy
fd1585a071
inline immutable local varialbe
2019-03-25 10:18:20 +08:00
Marco Groppo
67055c47da
Target only the actual operator.
...
Renamed `BinExpr::op()` and `PrefixExpr::op()` to `op_kind`.
Now `op()` returns the `SyntaxNode`.
2019-03-24 22:21:22 +01:00
Marco Groppo
acac7415a6
Minor formatting changes.
2019-03-24 15:12:39 +01:00
Marco Groppo
481d3f56cf
Assist to flip equality (==) and negative equality (!=) operands.
2019-03-24 14:42:11 +01:00
gfreezy
02383b91d5
Add assist for adding default methods
2019-03-23 23:13:07 +08:00
gfreezy
d99ae9ba56
Add impl members assist shold not copy docstrings, attrs and default methods.
2019-03-23 22:49:20 +08:00
Florian Diebold
8a5fbf4713
Remove the old variants replaced by Ty::Apply
2019-03-21 22:17:00 +01:00
Caio
99c45609ef
Improve performance and ordering
2019-03-20 20:31:14 -03:00
Caio
ba6863754e
Fill partial fields
2019-03-20 16:52:29 -03:00
bors[bot]
7c117567ab
Merge #989
...
989: Implement naive version of fill_struct_fields assist r=matklad a=yanchith
Fixes #964
This implements the `fill_struct_fields` assist. Currently only works for named struct fields, but not for tuple structs, because we seem to be missing a `TupleStructLit` (akin to `StructLit`, but for tuple structs). I am happy to implement `TupleStructLit` parsing given some guidance (provided it's really missing) and make the assist work for tuple structs as well. Could do so either in this PR, or another one 🙂
Sorry if I missed something important, this is my first PR for Rust Analyzer.
Btw is there any way to run the assists in emacs?
UPDATE: I just realized that parsing `TupleStructLit` would be quite difficult as it it really similar, if not identical to a function call...
Co-authored-by: yanchith <yanchi.toth@gmail.com>
2019-03-18 08:24:18 +00:00
yanchith
ca262fbab8
Only replace NamedFieldList and add test for preserving Self
2019-03-18 09:03:10 +01:00
yanchith
8d47e004b8
Remove unachievable TODO
2019-03-18 08:19:51 +01:00
yanchith
907f7307af
Implement naive version of fill_struct_fields assist
2019-03-17 19:48:25 +01:00
Igor Matuszewski
30a226c725
Move the primary assist fn to the top of the file
2019-03-16 23:24:17 +01:00
Igor Matuszewski
5b0b87f8de
Provide assist when cursor is immediately outside impl item block
2019-03-16 23:19:14 +01:00
Igor Matuszewski
2f36f47dab
Do a cleanup/legibility pass
2019-03-16 22:41:13 +01:00
Igor Matuszewski
1df81f3d65
Take into account parent indent when filling trait members
2019-03-16 22:41:13 +01:00
Igor Matuszewski
b3742873d9
Simplify trait resolution fragment
2019-03-16 22:41:13 +01:00
Igor Matuszewski
0e47c371fd
Ignore unnamed trait fns and add more tests
2019-03-16 22:41:13 +01:00
Igor Matuszewski
406343492c
Simplify calculation of missing functions
...
Asymptotically computing a set difference is faster but in the average
case we won't have more than ~10 functions. Also prefer not using hash
sets as these may yield nondeterministic results.
2019-03-16 22:41:13 +01:00
Igor Matuszewski
713975b1c1
Properly support the case when the cursor is inside an empty block or outside
2019-03-16 22:41:13 +01:00
Igor Matuszewski
38eece97ec
Redo indent calculation when adding missing impl members
2019-03-16 22:41:13 +01:00
Igor Matuszewski
2f616eea9c
Implement a simple working assist
2019-03-16 22:41:13 +01:00
Igor Matuszewski
1c07c5ccf9
Calculate missing functions from impl body
2019-03-16 22:41:13 +01:00
Igor Matuszewski
fc060573f9
Add 'add_missing_impl_members' assist stub
2019-03-16 22:41:13 +01:00
Aleksey Kladov
03b2ab8e1f
rename syntax_mapping as well
2019-03-02 16:56:09 +03:00
Aleksey Kladov
eaf1df26e9
rename syntax-mapping -> source-map
2019-03-02 15:40:40 +03:00
Aleksey Kladov
c110e72a11
add marks to assists
2019-02-24 15:46:06 +03:00
Aleksey Kladov
b3cc7c057d
dont show introduce variable everywhere
2019-02-24 14:18:10 +03:00
Aleksey Kladov
ef442b8682
Assign IDs to assists
2019-02-24 14:00:00 +03:00