Chetan Khilosiya
4a9dd149aa
8024: Added the trait modifier for assoc types.
2021-04-09 01:00:35 +05:30
Chetan Khilosiya
b232549653
8279: Fix the not operator use and test case fix.
2021-04-08 22:58:26 +05:30
Chetan Khilosiya
1735b3ef6a
8279: Added initial implementation for
...
Operator semantic highlighting.
2021-04-08 22:58:26 +05:30
bors[bot]
c2be91dcd8
Merge #8245
...
8245: Properly resolve intra doc links in hover and goto_definition r=matklad a=Veykril
Unfortunately involves a bit of weird workarounds due to pulldown_cmark's incorrect lifetimes on `BrokenLinkCallback`... I should probably open an issue there asking for the fixes to be pushed to a release since they already exist in the repo for quite some time it seems.
Fixes #8258 , Fixes #8238
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-04-05 12:30:20 +00:00
Chetan Khilosiya
518c9c7548
Revert "8024: Added test case for highlighting trait items."
...
This reverts commit d7dcd41801
.
2021-03-31 01:46:01 +05:30
Chetan Khilosiya
d0fcd5c5e0
8024: Fix for function name change.
2021-03-31 00:47:37 +05:30
Chetan Khilosiya
d7dcd41801
8024: Added test case for highlighting trait items.
2021-03-31 00:31:15 +05:30
Chetan Khilosiya
56f624532a
8024: Updated the implementation for trait modifier.
...
Fixed the test cases.
2021-03-31 00:31:15 +05:30
Chetan Khilosiya
f269fe7156
8024: Added the trait modifier for methods
...
method in impls and method calls will have trait modifier.
2021-03-31 00:31:15 +05:30
Lukas Wirth
bb56b7a75c
Use new new docs string source mapping in goto_def and hover
2021-03-30 18:27:16 +02:00
Lukas Wirth
9a327311e4
Implement basic Documentation source to syntax range mapping
2021-03-30 17:20:43 +02:00
Lukas Wirth
6b8358d4d9
Remove code duplication in highlight injection
2021-03-29 20:11:28 +02:00
Edwin Cheng
4520002b63
Unleash macro 2.0 in hightlight and more
2021-03-27 14:42:49 +08:00
cynecx
5ff3299dd6
syntax: return owned string instead of leaking string
2021-03-26 18:30:59 +01:00
Lukas Wirth
8b0d0bd9c7
Show item info when hovering intra doc links
2021-03-23 19:57:04 +01:00
Lukas Wirth
38048c35d8
Don't use an untyped String for ActiveParam tracking
2021-03-20 23:22:09 +01:00
Jonas Schievink
636de3c709
Add AttrsWithOwner
and clean up source_map
2021-03-19 21:23:57 +01:00
Jonas Schievink
fc5f73de45
Move AttrsOwnerNode
to syntax and make it public
2021-03-19 20:05:17 +01:00
bors[bot]
7200b994c9
Merge #8097
...
8097: Parse extended_key_value_attributes r=jonas-schievink a=Veykril
Companion PR https://github.com/rust-analyzer/ungrammar/pull/31
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-19 11:38:40 +00:00
Lukas Wirth
4771a56791
Parse extended_key_value_attributes
2021-03-19 02:13:46 +01:00
Lukas Wirth
8c0f454d11
Use a highlight modifier for intra doc links
2021-03-18 22:32:07 +01:00
Lukas Wirth
d41a1690d2
Track source file IDs in source mapping of Attrs
2021-03-18 13:16:27 +01:00
Lukas Wirth
9763f0a6bd
Semantic highlight intradoclinks in documentation
2021-03-17 21:00:01 +01:00
Lukas Wirth
37964f9fef
Inject highlight into block doc comments
2021-03-17 19:12:28 +01:00
bors[bot]
0fbfab3b45
Merge #8059
...
8059: Move doc-comment highlight injection from AST to HIR r=matklad,jonas-schievink a=Veykril
Fixes #5016
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-03-17 11:13:54 +00:00
Lukas Wirth
cdfb5c353f
Remove quadratic attr source lookup
2021-03-17 11:22:40 +01:00
Matthias Krüger
048dad8c2e
don't clone types that are copy (clippy::clone_on_copy)
2021-03-17 01:56:31 +01:00
Lukas Wirth
c766492d26
Properly handle doc attributes in doc-comment highlight injection
2021-03-16 21:15:26 +01:00
Lukas Wirth
acc6458390
Replace trait object boxing with extra AttrsOwnerNode
2021-03-16 19:06:58 +01:00
Lukas Wirth
11e9bc60a2
Move doc-comment highlight injection from AST to HIR
2021-03-16 18:57:47 +01:00
Aleksey Kladov
f5a81ec468
Upgrade rowan
...
Notably, new rowan comes with support for mutable syntax trees.
2021-03-16 16:10:49 +03:00
Lukas Wirth
814d617d34
Show whether a binding is mutable or not on hover
2021-03-09 17:18:50 +01:00
Aleksey Kladov
61f15b72ac
Add parsing benchmark
2021-02-09 21:52:34 +03:00
Aleksey Kladov
4b1279d0b1
Infra for "unit" benchmarking
2021-02-09 20:25:39 +03:00
Lukas Wirth
426ad8e165
Classify function calls as functions when shadowed by types
2021-01-28 19:08:55 +01:00
bors[bot]
0c37b3a0fc
Merge #7353
...
7353: Add LifetimeParam and ConstParam to CompletionItemKind r=matklad a=Veykril
Adds `LifetimeParam` and `ConstParam` to `CompletionItemKind` and maps them both to `TypeParam` in the protocol conversion as there are no equivalents, so nothing really changes there.
`ConstParam` could be mapped to `Const` I guess but I'm split on whether that would be better?
Additions were solely inspired by (the single) test output for const params.
Also sorts the variants of `CompletionItemKind` and its to_proto match.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-22 15:31:47 +00:00
Lukas Wirth
563a175fdb
Move SymbolKind to ide_db
2021-01-20 15:25:34 +01:00
Aleksey Kladov
46b4f89c92
.
2021-01-20 01:56:11 +03:00
Lukas Wirth
98718e0544
Wrap remaining self/super/crate in Name{Ref}
2021-01-15 22:18:43 +01:00
Lukas Wirth
cb863390f2
Handle self/super/crate in PathSegment as NameRef
2021-01-15 19:21:23 +01:00
Aleksey Kladov
3d78f502bd
Use upstream TextSize API
2021-01-13 21:32:24 +03:00
bors[bot]
b3ae7974af
Merge #7239
...
7239: Replace SyntaxKind usage with T! macro where applicable r=lnicola a=Veykril
https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/style.md#token-names
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-10 16:31:32 +00:00
Lukas Wirth
e618d12903
Replace SyntaxKind usage with T! macro where applicable
2021-01-10 17:14:01 +01:00
Laurențiu Nicola
10e7fd25fe
Fix typo, parentheses is plural
2021-01-10 17:56:53 +02:00
bors[bot]
77362c7173
Merge #6238
...
6238: Split punctuation semantic highlighting up into more tags r=matklad a=Veykril
Open question would be the name of the delimiter modifiers. I chose them this was as I see them this way but from what I remember people tend to mix the names however they like. So maybe using `delimSquare`, `delimCurly`, `delimRound` would be better. That would also go well with `angle` becoming `delimAngle`?
Closes #6152
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-10 12:45:07 +00:00
Lukas Wirth
78fe6133c4
Split punctuation semantic highlighting up into more tags
2021-01-10 13:33:03 +01:00
bors[bot]
dcbb77cb6c
Merge #7206 #7231
...
7206: Use hir::GenericParam in ide_db::Definition instead of relisting all 3 r=Veykril a=Veykril
Basically just this:
```diff
pub enum Definition {
Macro(MacroDef),
Field(Field),
ModuleDef(ModuleDef),
SelfType(Impl),
Local(Local),
- TypeParam(TypeParam),
- LifetimeParam(LifetimeParam),
- ConstParam(ConstParam),
+ GenericParam(GenericParam),
Label(Label),
}
```
7231: Cleaner API r=matklad a=matklad
bors r+
🤖
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-10 11:45:59 +00:00
Aleksey Kladov
fc3fc571d2
Cleaner API
2021-01-10 14:36:15 +03:00
Lukas Wirth
b795128dde
Use hir::GenericParam in ide_db::Definition instead of relisting all 3
2021-01-10 12:33:47 +01:00
Aleksey Kladov
083986030e
Replace state with function
2021-01-10 11:57:17 +03:00
Aleksey Kladov
eeceff3179
Refactor highlighting
2021-01-09 23:07:32 +03:00
Aleksey Kladov
92dac67d0c
Simplify
2021-01-09 17:31:22 +03:00
Aleksey Kladov
4a8d2c098d
Better highlight for fixtures
2021-01-09 16:07:41 +03:00
Aleksey Kladov
62b17bac92
Simplify
2021-01-09 15:54:38 +03:00
Aleksey Kladov
d4fb7476ef
Better names
2021-01-09 15:38:32 +03:00
Aleksey Kladov
8a0bd50036
Reduce duplication
2021-01-09 15:12:21 +03:00
Aleksey Kladov
3dfa2768ac
Shorten names
2021-01-09 14:48:15 +03:00
Aleksey Kladov
64a6ee4535
Shorten frequent names
2021-01-09 14:44:01 +03:00
Aleksey Kladov
6fb52af521
Rename dummy -> none
2021-01-09 14:41:31 +03:00
Aleksey Kladov
e30c1c3fbf
Simplify highlighting infra
...
This also fixes the killer whale bug
2021-01-08 23:47:35 +03:00
Aleksey Kladov
f459375f48
Better fixture highlight
2021-01-07 19:11:27 +03:00
Mara Bos
273d2f9123
Formatting.
2021-01-01 17:31:32 +01:00
Mara Bos
4833972067
Add support for Rust 2021.
2021-01-01 17:22:23 +01:00
Lukas Wirth
18bf2e5af5
Add ConstParams to the ide layer
2021-01-01 14:43:16 +01:00
Lukas Wirth
42e3f97c30
Support labels in reference search
2020-12-24 15:40:18 +01:00
Aleksey Kladov
9f6d76da77
Make sure that HighlightModifier::ALL is synchronized with enum
2020-12-19 18:47:36 +03:00
Aleksey Kladov
113688cef0
Clarify the meaning of no-op highlight tag
2020-12-19 17:16:05 +03:00
Aleksey Kladov
a13947abe6
Use more Rustic highlighting specifiers
...
*Method* works for OO languages, but in rust we can also have
associated constants & types, so let's move this to a modifier.
2020-12-19 17:10:47 +03:00
Aleksey Kladov
c45221907a
Deduplicate highlight tags and symbol kinds
...
Curiously, LSP uses different enums for those, and unsurprising and
annoyingly, there are things which exist in one but not in the other.
Let's not repeat the mistake and unify the two things
2020-12-18 23:04:26 +03:00
Jonas Schievink
b238ddd21a
Make macro def krate mandatory
...
Refactors builtin derive support to go through proper name resolution
2020-12-15 20:33:05 +01:00
Jonas Schievink
c1cb595382
Move to upstream macro_rules!
model
2020-12-15 15:37:37 +01:00
Laurențiu Nicola
72f013b3b9
Use METHOD semantic token type
2020-12-04 18:27:10 +02:00
Lukas Wirth
1f87a41989
Add attribute highlight modifier to all tokens inside attributes
2020-11-21 12:51:05 +01:00
Roland Ruckerbauer
a15dda48c6
format string highlighting: handle hex + debug type specifier
2020-11-15 17:43:14 +01:00
bors[bot]
0a715cfbd2
Merge #6472
...
6472: Add `static` modifier for associated functions r=matklad a=p3achyjr
Adds static semantic token modifier to associated functions, resolves #6194
## Info
- Associated functions are more-or-less equivalent to static methods in other languages. This PR checks, for each function, whether that function has a self_param, and whether it's enclosed in a trait/impl.
## Changes
- Added method ```is_associated``` to code_model::Function. This basically gets the source from the ast, and checks whether the enclosing scope is an impl or trait.
- Added `static` to HighlightModifiers
- Added unit test
## Tests
- Ran ```cargo test```
Co-authored-by: Anatol Liu <axlui@anatols-mbp.lan>
2020-11-09 21:13:51 +00:00
Aleksey Kladov
9634521abd
. is an operator
...
closes #6498
2020-11-09 18:12:28 +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
Anatol Liu
3baa526fb0
Add static semantic token modifier for associated functions with no &self
2020-11-04 20:08:46 -08:00
bors[bot]
53c7aead8f
Merge #6379
...
6379: Highlight never type as BuiltinType r=matklad a=Veykril
Fixes #6374
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-10-27 14:49:37 +00:00
Lukas Wirth
269e67312d
Highlight never type as BuiltinType
2020-10-26 22:27:30 +01:00
GrayJack
ae6376d74c
Fix test
2020-10-26 17:23:29 -03:00
GrayJack
40a875ab7a
Add test to avoid regression
2020-10-26 15:28:56 -03:00
Lukas Wirth
c9af469b85
Fix unary minus highlighting
2020-10-25 23:05:30 +01:00
Igor Aleksanov
19cce08662
Re-export base_db from ide_db
2020-10-24 11:39:57 +03:00
Igor Aleksanov
b6ea56ea09
Make call_info a part of ide_db
2020-10-24 11:07:10 +03:00
bors[bot]
2fa942ad30
Merge #6251 #6310
...
6251: Semantic Highlight: Add Callable modifier for variables r=matklad a=GrayJack
This PR added the `HighlightModifier::Callable` variant and assigned it to variables and parameters that are fn pointers, closures and implements FnOnce trait.
This allows to colorize these variables/parameters when used in call expression.
6310: Rewrite algo::diff to support insertion and deletion r=matklad a=Veykril
This in turn also makes `algo::diff` generate finer diffs(maybe even minimal diffs?) as insertions and deletions aren't always represented as as replacements of parent nodes now.
Required for #6287 to go on.
Co-authored-by: GrayJack <gr41.j4ck@gmail.com>
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-10-23 22:12:15 +00:00
GrayJack
a35ff6edf4
Add tests for callable modifier
2020-10-21 01:54:51 -03:00
Igor Aleksanov
9e7c952bbd
Extract call_info and completion into separate crates
2020-10-18 13:09:00 +03:00
GrayJack
83d6bc7113
Add HighlightModifier::Callable and add it for locals
2020-10-16 06:38:32 -03:00
Lukas Wirth
bab29e65eb
Default::default the highlighters
2020-10-14 22:50:26 +02:00
Lukas Wirth
8c6dc5f28a
Factor macro_rules! highlighting out
2020-10-14 19:23:59 +02:00
Lukas Wirth
df87be88d8
Factor format string highlighting out
2020-10-14 19:23:45 +02:00
bors[bot]
44df0e2a9f
Merge #6198
...
6198: Skip macro matcher fragment name semantic highlighting r=matklad a=Veykril
Implements a small state-machine for macro_rules! highlighting to separate out the matcher part of its rules. This skips semantically highlighting names of metavariables in the matcher and expander. This might even allow for more fun macro highlighting things in the future.
Fixes #4380 .
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-10-12 14:44:34 +00:00
Lukas Wirth
9909ccb4f4
Fix mut self
not emitting mutable binding on self
use
2020-10-11 18:39:03 +02:00
Lukas Wirth
1416413d69
Skip macro matcher fragment name semantic highlighting
2020-10-10 23:21:12 +02:00
Aleksey Kladov
b06259673f
rename mock_analysis -> fixture
2020-10-02 17:49:44 +02:00
Aleksey Kladov
09348b2474
Get rid of MockAnalysis
2020-10-02 17:31:20 +02:00
Paul Daniel Faria
ed8968af49
Cleanup unintended unresolved reference in syntax higlighting test
2020-09-24 10:14:25 -04:00
Paul Daniel Faria
a1a7b07ad3
Fix handling of consuming self, refactor shared logic into a single function
2020-09-06 14:34:01 -04:00