@@ -11,7 +11,6 @@ use ide_db::{
11
11
preorder_expr_with_ctx_checker,
12
12
} ,
13
13
} ;
14
- use span:: FileId ;
15
14
use syntax:: {
16
15
AstNode ,
17
16
SyntaxKind :: { self , IDENT , INT_NUMBER } ,
@@ -61,13 +60,12 @@ pub(crate) fn highlight_related(
61
60
let file_id = sema
62
61
. attach_first_edition ( file_id)
63
62
. unwrap_or_else ( || EditionedFileId :: current_edition ( sema. db , file_id) ) ;
64
- let span_file_id = file_id. editioned_file_id ( sema. db ) ;
65
63
let syntax = sema. parse ( file_id) . syntax ( ) . clone ( ) ;
66
64
67
65
let token = pick_best_token ( syntax. token_at_offset ( offset) , |kind| match kind {
68
66
T ! [ ?] => 4 , // prefer `?` when the cursor is sandwiched like in `await$0?`
69
67
T ! [ ->] => 4 ,
70
- kind if kind. is_keyword ( span_file_id . edition ( ) ) => 3 ,
68
+ kind if kind. is_keyword ( file_id . edition ( sema . db ) ) => 3 ,
71
69
IDENT | INT_NUMBER => 2 ,
72
70
T ! [ |] => 1 ,
73
71
_ => 0 ,
@@ -92,18 +90,11 @@ pub(crate) fn highlight_related(
92
90
T ! [ unsafe ] if token. parent ( ) . and_then ( ast:: BlockExpr :: cast) . is_some ( ) => {
93
91
highlight_unsafe_points ( sema, token) . remove ( & file_id)
94
92
}
95
- T ! [ |] if config. closure_captures => {
96
- highlight_closure_captures ( sema, token, file_id, span_file_id. file_id ( ) )
93
+ T ! [ |] if config. closure_captures => highlight_closure_captures ( sema, token, file_id) ,
94
+ T ! [ move] if config. closure_captures => highlight_closure_captures ( sema, token, file_id) ,
95
+ _ if config. references => {
96
+ highlight_references ( sema, token, FilePosition { file_id, offset } )
97
97
}
98
- T ! [ move] if config. closure_captures => {
99
- highlight_closure_captures ( sema, token, file_id, span_file_id. file_id ( ) )
100
- }
101
- _ if config. references => highlight_references (
102
- sema,
103
- token,
104
- FilePosition { file_id, offset } ,
105
- span_file_id. file_id ( ) ,
106
- ) ,
107
98
_ => None ,
108
99
}
109
100
}
@@ -112,7 +103,6 @@ fn highlight_closure_captures(
112
103
sema : & Semantics < ' _ , RootDatabase > ,
113
104
token : SyntaxToken ,
114
105
file_id : EditionedFileId ,
115
- vfs_file_id : FileId ,
116
106
) -> Option < Vec < HighlightedRange > > {
117
107
let closure = token. parent_ancestors ( ) . take ( 2 ) . find_map ( ast:: ClosureExpr :: cast) ?;
118
108
let search_range = closure. body ( ) ?. syntax ( ) . text_range ( ) ;
@@ -145,7 +135,7 @@ fn highlight_closure_captures(
145
135
. sources ( sema. db )
146
136
. into_iter ( )
147
137
. flat_map ( |x| x. to_nav ( sema. db ) )
148
- . filter ( |decl| decl. file_id == vfs_file_id )
138
+ . filter ( |decl| decl. file_id == file_id . file_id ( sema . db ) )
149
139
. filter_map ( |decl| decl. focus_range )
150
140
. map ( move |range| HighlightedRange { range, category } )
151
141
. chain ( usages)
@@ -158,7 +148,6 @@ fn highlight_references(
158
148
sema : & Semantics < ' _ , RootDatabase > ,
159
149
token : SyntaxToken ,
160
150
FilePosition { file_id, offset } : FilePosition ,
161
- vfs_file_id : FileId ,
162
151
) -> Option < Vec < HighlightedRange > > {
163
152
let defs = if let Some ( ( range, _, _, resolution) ) =
164
153
sema. check_for_format_args_template ( token. clone ( ) , offset)
@@ -270,7 +259,7 @@ fn highlight_references(
270
259
. sources ( sema. db )
271
260
. into_iter ( )
272
261
. flat_map ( |x| x. to_nav ( sema. db ) )
273
- . filter ( |decl| decl. file_id == vfs_file_id )
262
+ . filter ( |decl| decl. file_id == file_id . file_id ( sema . db ) )
274
263
. filter_map ( |decl| decl. focus_range )
275
264
. map ( |range| HighlightedRange { range, category } )
276
265
. for_each ( |x| {
@@ -288,7 +277,7 @@ fn highlight_references(
288
277
} ,
289
278
} ;
290
279
for nav in navs {
291
- if nav. file_id != vfs_file_id {
280
+ if nav. file_id != file_id . file_id ( sema . db ) {
292
281
continue ;
293
282
}
294
283
let hl_range = nav. focus_range . map ( |range| {
0 commit comments