Benjamin Coenen
1c3a1385a5
Improve autocompletion by looking on the type and name
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-04-21 14:31:57 +02:00
Leander Tentrup
ac798e1f7c
Implement syntax highlighting for format strings
...
Detailed changes:
1) Implement a lexer for string literals that divides the string in format specifier `{}` including the format specifier modifier.
2) Adapt syntax highlighting to add ranges for the detected sequences.
3) Add a test case for the format string syntax highlighting.
2020-04-20 11:19:15 +02:00
Jeremy Kolb
d7f3d858ad
Some clippy fixes
2020-04-19 15:15:49 -04:00
Aleksey Kladov
fa2ea8f494
Fix goto definition for record patterns
2020-04-18 22:11:49 +02:00
Aleksey Kladov
ca61356b01
Add semantic tag for unresolved references
...
This is a quick way to implement unresolved reference diagnostics.
For example, adding to VS Code config
"editor.tokenColorCustomizationsExperimental": {
"unresolvedReference": "#FF0000"
},
will highlight all unresolved refs in red.
2020-04-18 21:28:51 +02:00
bors[bot]
98819d8919
Merge #4029
...
4029: Fix various proc-macro bugs r=matklad a=edwin0cheng
This PRs does the following things:
1. Fixed #4001 by splitting `LIFETIME` lexer token to two mbe tokens. It is because rustc token stream expects `LIFETIME` as a combination of punct and ident, but RA `tt:TokenTree` treats it as a single `Ident` previously.
2. Fixed #4003 , by skipping `proc-macro` for completion. It is because currently we don't have `AstNode` for `proc-macro`. We would need to redesign how to implement `HasSource` for `proc-macro`.
3. Fixed a bug how empty `TokenStream` merging in `proc-macro-srv` such that no L_DOLLAR and R_DOLLAR will be emitted accidentally.
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-04-18 17:56:54 +00:00
Benjamin Coenen
af3c19e85f
Merge branch 'master' of github.com:rust-analyzer/rust-analyzer
2020-04-18 17:14:24 +02:00
Leander Tentrup
29a846464b
Refactor flattening logic for highlighted syntax ranges
2020-04-18 15:02:51 +02:00
Edwin Cheng
f78de3bb95
Ignore proc-macro in completion
2020-04-18 19:26:54 +08:00
bors[bot]
0948932145
Merge #4026
...
4026: Omit more parameter hints in the presence of underscores r=matklad a=lnicola
Fixes #4017 .
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-04-18 09:01:41 +00:00
Laurențiu Nicola
8a51a74556
Omit more parameter hints in the presence of underscores
2020-04-18 10:53:48 +03:00
Leander Tentrup
2e2c03ee2d
Fix incorrect order of syntax highlight ranges
2020-04-17 22:50:30 +02:00
Aleksey Kladov
028f1e2e3a
Don\t suggest import itself as a completion for import
2020-04-17 14:28:20 +02:00
bors[bot]
0262c9b9c0
Merge #4010
...
4010: Fix handling of ranges in diagnostics r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-04-17 11:57:29 +00:00
Aleksey Kladov
a8196ffe84
Correctly highlight ranges of diagnostics from macros
...
closes #2799
2020-04-17 13:56:38 +02:00
Aleksey Kladov
3b75bc154f
Better snippet when completing trait method
2020-04-17 12:05:35 +02:00
Benjamin Coenen
379787858b
feat: improve dot completions with scoring
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-04-17 10:59:04 +02:00
Benjamin Coenen
0a1585075c
Merge branch 'master' of github.com:rust-analyzer/rust-analyzer
2020-04-17 10:30:39 +02:00
Benjamin Coenen
071ef268b5
feat: improve dot completions with scoring
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-04-17 10:29:32 +02:00
Aleksey Kladov
cae2498513
Don't expose SyntaxNodePtr impl details
2020-04-16 21:01:04 +02:00
Benjamin Coenen
6ebc8bbeb0
feat: improve dot completions with scoring
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-04-16 18:30:08 +02:00
Benjamin Coenen
06076f95a7
feat: improve dot completions in a struct literal expression
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-04-15 22:10:57 +02:00
kjeremy
eedab116ab
insta 0.16
2020-04-14 13:57:02 -04:00
Benjamin Coenen
b092bbc83d
Merge branch 'master' of github.com:rust-analyzer/rust-analyzer
2020-04-14 19:20:30 +02:00
Benjamin Coenen
0640957429
Improve autocompletion by looking on the type and name, change implementation, include sort in Completions struct
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-04-12 17:58:06 +02:00
bors[bot]
a8e032820f
Merge #3955
...
3955: Align grammar for record patterns and literals r=matklad a=matklad
The grammar now looks like this
[name_ref :] pat
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-04-11 22:01:22 +00:00
Aleksey Kladov
5e5eb6a108
Align grammar for record patterns and literals
...
The grammar now looks like this
[name_ref :] pat
2020-04-12 00:00:15 +02:00
Benjamin Coenen
93bfc2d05d
Improve autocompletion by looking on the type and name
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-04-11 23:45:09 +02:00
Benjamin Coenen
d42346fed6
Improve autocompletion by looking on the type and name
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-04-11 22:54:18 +02:00
Jeremy Kolb
0f5d6766fd
Remove #[should_panic] from call_info tests
2020-04-11 15:47:09 -04:00
Aleksey Kladov
7a39bc3ba2
Make records grammar more orthogonal
...
We used
name [: expr]
grammar before, now it is
[name :] expr
which makes things simpler
2020-04-11 19:20:41 +02:00
Aleksey Kladov
8bd14a3483
Merge pull request #3910 from lnicola/fn-named-param-hint
...
Hide parameter hints for single-argument functions with the same name
2020-04-11 14:48:14 +02:00
Aleksey Kladov
5c5bde47fb
Rename some tokens
2020-04-10 17:07:09 +02:00
Aleksey Kladov
c8b4c36f81
Semicolon token
2020-04-10 16:10:28 +02:00
Aleksey Kladov
30084a56a5
Simpler acessors for keywords
2020-04-09 23:42:01 +02:00
Aleksey Kladov
0ed27c388a
Drop needless trait
2020-04-09 23:02:10 +02:00
Laurențiu Nicola
81aab500c6
Hide parameter hints for single-argument functions with the same name
2020-04-09 21:47:04 +03:00
bors[bot]
9635d8bc44
Merge #3901
...
3901: Add more heuristics for hiding obvious param hints r=matklad a=IceSentry
This will now hide `value`, `pat`, `rhs` and `other`. These words were selected from the std because they are used in commonly used functions with only a single param and are obvious by their use.
It will also hide the hint if the passed param **starts** or end with the param_name. Maybe we could also split on '_' and check if one of the string is the param_name.
I think it would be good to also hide `bytes` if the type is `[u8; n]` but I'm not sure how to get the param type signature.
Closes #3900
Co-authored-by: IceSentry <c.giguere42@gmail.com>
2020-04-09 18:07:28 +00:00
Aleksey Kladov
2bfb65db93
Be consistent about token accesors
2020-04-09 18:48:13 +02:00
IceSentry
ebc61709c8
use .expr() to remove ref
2020-04-09 12:26:49 -04:00
IceSentry
ae416f3c6e
clean up param hint checking
2020-04-09 10:35:07 -04:00
IceSentry
cba694c602
better &mut
and &
matching
2020-04-08 19:26:47 -04:00
IceSentry
de6db06322
ignore &mut
and &
when checking params
2020-04-08 19:07:21 -04:00
IceSentry
a2dc18f71a
remove TODO
2020-04-08 18:11:24 -04:00
IceSentry
2a582b78a5
Add more heuristics for hiding obvious param hints
...
This will now hide "value", "pat", "rhs" and "other"
These words were selected from the std because they are used in common functions with only a single param and are obvious by their use.
I think it would be good to also hide "bytes" if the type is `[u8; n]` but I'm not sure how to get the param type signature
It will also hide the hint if the passed param starts or end with the param_name
2020-04-08 17:48:16 -04:00
bors[bot]
8ea7c9cb62
Merge #3826
...
3826: Flatten nested highlight ranges during DFS traversal r=matklad a=ltentrup
Implements the flattening of nested highlights from #3447 .
There is a caveat: I needed to add `Clone` to `HighlightedRange` to split highlight ranges ~and the nesting does not appear in the syntax highlighting test (it does appear in the accidental-quadratic test but there it is not checked against a ground-truth)~.
I have added a test case for the example mentioned in #3447 .
Co-authored-by: Leander Tentrup <leander.tentrup@gmail.com>
2020-04-08 12:00:08 +00:00
Aleksey Kladov
4c29214bba
Move computation of missing fields into hir
2020-04-07 18:34:17 +02:00
Aleksey Kladov
7819d99d6b
Add functional update test
2020-04-07 18:25:47 +02:00
Aleksey Kladov
d8f6013404
Fix names of test modules
2020-04-07 18:23:18 +02:00
bors[bot]
33c364b545
Merge #3878
...
3878: A more precise panic macro r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-04-07 14:41:07 +00:00
Aleksey Kladov
3bde2b7423
A more precise panic macro
2020-04-07 16:40:39 +02:00
Aleksey Kladov
5540193fc8
Don't insert !() if there's already some
2020-04-07 16:37:33 +02:00
Aleksey Kladov
73ccf7f495
Reorder imports
2020-04-07 15:07:18 +02:00
Josh Mcguigan
8c378af721
missing match arms diagnostic
2020-04-07 05:12:08 -07:00
Aleksey Kladov
0215560434
Better naming for scope completion
2020-04-07 13:20:41 +02:00
Aleksey Kladov
a5ffe53c9d
Better naming for path completion
2020-04-07 13:19:57 +02:00
Aleksey Kladov
baf9fcc38e
Merge pull request #3866 from lnicola/fewer-braces
...
Fix unnecessary braces warnings
2020-04-07 09:22:33 +02:00
Leander Tentrup
bf96d46fee
Simplify HTML highlighter and add test case for highlight_injection logic
2020-04-06 23:00:09 +02:00
Aleksey Kladov
bf569f8b29
Check for eprintln on CI
2020-04-06 17:00:18 +02:00
Laurențiu Nicola
52fd2c8e48
Fix unnecessary braces warnings
2020-04-06 17:21:33 +03:00
Aleksey Kladov
ec3fb1cdb4
Merge pull request #3853 from matklad/cf
...
Make control token modifier less ambiguous
2020-04-06 11:53:56 +02:00
bors[bot]
4f904b2970
Merge #3829
...
3829: Adds to SSR match for semantically equivalent call and method call r=matklad a=mikhail-m1
#3186
maybe I've missed some corner cases, but it works in general
Co-authored-by: Mikhail Modin <mikhailm1@gmail.com>
2020-04-06 08:15:48 +00:00
Aleksey Kladov
48bc0ca745
Make control token modifier less ambiguous
...
In textmate, keyword.control is used for all kinds of things; in fact,
the default scope mapping for keyword is keyword.control!
So let's add a less ambiguous controlFlow modifier
See Microsoft/vscode#94367
2020-04-06 09:57:50 +02:00
Aleksey Kladov
a5e8dfd024
Add parens for enums
2020-04-03 21:11:05 +02:00
Aleksey Kladov
b1cf95f691
Generalize call parenthesis insertion
2020-04-03 21:01:18 +02:00
Aleksey Kladov
adbcedde18
Remove the second code-path for completing names in patterns
2020-04-03 21:00:15 +02:00
Leander Tentrup
bb45aca909
Flatten nested highlight ranges during DFS traversal
2020-04-03 09:46:07 +02:00
Mikhail Modin
35a2cd08c1
Adds to SSR match for semantically equivalent call and method call
2020-04-02 20:18:44 +01:00
bors[bot]
a0cc66475a
Merge #3797
...
3797: Don't show chaining hints for record literals and unit structs r=matklad a=lnicola
Fixes #3796
r? @Veetaha
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-04-01 12:18:34 +00:00
bors[bot]
aad0e63d74
Merge #3779
...
3779: Complete only missing fields in pats r=matklad a=SomeoneToIgnore
A follow-up for https://github.com/rust-analyzer/rust-analyzer/pull/3694
Same name vs string [issue](https://github.com/rust-analyzer/rust-analyzer/pull/3694#discussion_r396986819 ) persists here, now I'm able to obtain `ast::Name`, but I see no way to convert it into `hir::Name` or vice versa.
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-04-01 10:41:46 +00:00
Laurențiu Nicola
70960df437
Don't show chaining hints for record literals and unit structs
2020-04-01 13:14:41 +03:00
Kirill Bulatov
1335608dae
Unite record completion logic into a single module
2020-04-01 13:03:56 +03:00
bors[bot]
e3a1f1c001
Merge #3765
...
3765: Adds sort for RecordLit comparison in SSR r=edwin0cheng a=mikhail-m1
an item from #3186
Co-authored-by: Mikhail Modin <mikhailm1@gmail.com>
2020-04-01 10:01:16 +00:00
Kirill Bulatov
d35b943520
Split draft
2020-04-01 12:49:31 +03:00
Kirill Bulatov
bc71631e75
Complete only missing fields in pats
2020-04-01 12:49:31 +03:00
Mikhail Modin
47e8f3c93b
Adds sort for RecordLit comparison in SSR
2020-04-01 09:39:33 +01:00
Aleksey Kladov
569f47e427
Better names for config structs
2020-03-31 16:05:25 +02:00
Kirill Bulatov
332799d914
Reload only the properties that do not affect vfs
2020-03-30 13:39:14 +03:00
Aleksey Kladov
311cbbdad5
Remove some unwraps
2020-03-28 12:27:54 +01:00
Aleksey Kladov
b764c38436
Start stdx
...
This crate will hold everything to small to be worth publishing
2020-03-28 11:01:25 +01:00
Edwin Cheng
d0b6ed4441
Add ProcMacroClient
2020-03-26 03:29:45 +08:00
Aleksey Kladov
2ccfb49bab
Always expand macros during analysis
2020-03-25 13:53:15 +01:00
Matt Hooper
7b35da04bf
Improvements based on code review feedback
2020-03-25 00:18:55 +01:00
Matt Hooper
9d298115a6
Fmt corrections
2020-03-24 23:22:41 +01:00
Matt Hooper
b70ce559b8
Added more unit tests
2020-03-24 23:22:41 +01:00
Matt Hooper
a197abbc7a
Added new inlay hint kind and rules for method chaining
2020-03-24 23:18:42 +01:00
bors[bot]
9690f6bc43
Merge #3708
...
3708: Generalise syntax rewriting infrastructure to allow removal of nodes r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-24 16:15:08 +00:00
Aleksey Kladov
062f6e3bbe
Generalise syntax rewriting infrastructure to allow removal of nodes
2020-03-24 17:14:33 +01:00
Aleksey Kladov
9bf2cd609c
Align naming
2020-03-24 12:56:07 +01:00
bors[bot]
8617fe641d
Merge #3694
...
3694: Complete only missing fields r=matklad a=SomeoneToIgnore
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-03-24 09:49:25 +00:00
Kirill Bulatov
f1cf1cc1ca
Code review fixes
...
Co-Authored-By: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-24 11:33:47 +02:00
Kirill Bulatov
4e43df26b2
Consider references when applying postfix completions
2020-03-24 01:56:06 +02:00
Josh Mcguigan
df58ab8963
update itertools version to 0.9.0
2020-03-23 16:22:46 -07:00
Kirill Bulatov
00cbe81a5b
Complete only missing fields
2020-03-24 00:36:06 +02:00
Edwin Cheng
6d5443ef94
Add test
2020-03-22 19:53:34 +08:00
Edwin Cheng
cba4dd1a8a
Improve find_all_ref work inside macro
2020-03-22 19:53:28 +08:00
Steffen Lyngbaek
ec24c09006
Remove const
...
- Add test for @ matching
- Address comments
2020-03-19 14:17:34 -07:00
Steffen Lyngbaek
eb51abdc64
Fixes to more accurately give complete_scope completions
...
- Exclude const, static, functions form is_pat_binding_and_path
(there might be more?)
- Add a check to filter out Record Fields
- Fix tests
2020-03-19 14:12:00 -07:00
Steffen Lyngbaek
6941a7faba
- Exclude Local Scope for BindPats
...
- Exclude BindPats with @ or ref
- Remove outdated test and add one testing for ref
2020-03-19 14:12:00 -07:00
Steffen Lyngbaek
b6d6277362
Completition for type name? #3418
...
Iterate through TupleStructPat's until a MatchArm if
one exists. Store in a new is_pat_bind_and_path bool
and allow the `complete_scope` to find matches.
Added some tests to ensure it works in simple and nested cases.
2020-03-19 14:12:00 -07:00