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
Paul Daniel Faria
7af947a032
Add consuming modifier to lvalues that are passed by value and not Copy
2020-09-06 12:26:53 -04:00
Aleksey Kladov
c692b5d76d
⬆️ expect-test
2020-08-28 14:47:14 +02:00
Aleksey Kladov
4d0cfc07fd
Minor
2020-08-27 15:02:56 +02:00
Aleksey Kladov
b0fd3faf36
Switch to expect_test from crates.io
2020-08-21 13:19:31 +02:00
Paul Daniel Faria
3456e2eec7
Add new method to Semantics, method_receiver_kind, which returns the kind of self
...
The options are Shared, Mutable, Consuming, and Copied. Use this to add proper
highlighting to methods based on usage.
2020-08-16 10:26:16 -04:00
Paul Daniel Faria
a044ff0138
Mark mutating functions with mutable
modifier, and owning functions with consuming
.
2020-08-16 10:22:51 -04:00
Paul Daniel Faria
7009d5ee2b
Add new HighlightModifier variant, Consuming
2020-08-16 10:22:51 -04:00
Aleksey Kladov
1b0c7701cc
Rename ra_ide -> ide
2020-08-13 17:58:27 +02:00