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
|
use std::{fs, thread, time::Duration};
use anyhow::Result;
use lsp_types::ClientCapabilities;
use crate::common::ServerTester;
#[test]
#[cfg(feature = "completion")]
fn test_408_parent_expansion() -> Result<()> {
let server = ServerTester::launch_new_instance()?;
server.initialize(ClientCapabilities::default(), None)?;
let root = server.directory.path();
let level1 = root.join("level1");
let level2 = level1.join("level2");
let level3 = level2.join("level3");
fs::create_dir_all(&level3)?;
fs::write(level3.join("d.tex"), "d")?;
fs::write(
level2.join("c.tex"),
r#"\documentclass{subfiles}\begin{document}\include{level3/d}\end{document}"#,
)?;
fs::write(
level1.join("b.tex"),
r#"\documentclass{article}\begin{document}\include{level2/c}\end{document}"#,
)?;
fs::write(root.join("a.tex"), "}")?;
thread::sleep(Duration::from_millis(300));
let uri = server.open("level1/level2/level3/d.tex", "d", "latex", false)?;
server.complete(uri, 0, 0)?;
let diagnostics_by_uri = server.diagnostics_by_uri.lock().unwrap();
assert!(diagnostics_by_uri
.iter()
.all(|(uri, _)| !uri.as_str().ends_with("a.tex")));
Ok(())
}
#[test]
#[cfg(feature = "completion")]
fn test_510_completion_with_unmatched_braces() -> Result<()> {
use insta::assert_debug_snapshot;
let server = ServerTester::launch_new_instance()?;
server.initialize(ClientCapabilities::default(), None)?;
let uri = server.open(
"main.tex",
"\\label{eq:foo}\n\\ref{eq is a \\emph{useful} identity.",
"latex",
false,
)?;
assert_debug_snapshot!(server.complete(uri, 1, 7)?);
Ok(())
}
|