1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
use base_db::FeatureParams;
use rustc_hash::FxHashMap;
use crate::RenameParams;
fn check(input: &str) {
let fixture = test_utils::fixture::Fixture::parse(input);
let mut expected = FxHashMap::default();
for spec in &fixture.documents {
if !spec.ranges.is_empty() {
let document = fixture.workspace.lookup(&spec.uri).unwrap();
expected.insert(document, spec.ranges.clone());
}
}
let (document, offset) = fixture
.documents
.iter()
.find_map(|spec| Some((fixture.workspace.lookup(&spec.uri)?, spec.cursor?)))
.unwrap();
let inner = FeatureParams::new(&fixture.workspace, document);
let params = RenameParams { inner, offset };
let actual = crate::rename(¶ms);
assert_eq!(actual.changes, expected);
}
#[test]
fn command() {
check(
r#"
%! foo.tex
\baz
|
^^^
\include{bar.tex}
%! bar.tex
\baz
^^^
"#,
)
}
#[test]
fn entry() {
check(
r#"
%! main.bib
@article{foo, bar = baz}
|
^^^
%! main.tex
\addbibresource{main.bib}
\cite{foo}
^^^
"#,
)
}
#[test]
fn citation() {
check(
r#"
%! main.bib
@article{foo, bar = baz}
^^^
%! main.tex
\addbibresource{main.bib}
\cite{foo}
|
^^^
"#,
)
}
#[test]
fn label() {
check(
r#"
%! foo.tex
\label{foo}\include{bar}
|
^^^
%! bar.tex
\ref{foo}
^^^
%! baz.tex
\ref{foo}
"#,
)
}
|