summaryrefslogtreecommitdiff
path: root/support/texlab/crates/completion/src
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-05-02 03:02:55 +0000
committerNorbert Preining <norbert@preining.info>2024-05-02 03:02:55 +0000
commit68c5442089b7c2e61ee14fc3efed490e291a244a (patch)
tree91d0e68d495b53cb52bb60a3e234da061741067d /support/texlab/crates/completion/src
parent6ac3dbed4b71022bd6bb0cc25e8fc3df81198498 (diff)
CTAN sync 202405020302
Diffstat (limited to 'support/texlab/crates/completion/src')
-rw-r--r--support/texlab/crates/completion/src/providers/include.rs13
-rw-r--r--support/texlab/crates/completion/src/tests.rs46
2 files changed, 53 insertions, 6 deletions
diff --git a/support/texlab/crates/completion/src/providers/include.rs b/support/texlab/crates/completion/src/providers/include.rs
index 6246624733..60c432d097 100644
--- a/support/texlab/crates/completion/src/providers/include.rs
+++ b/support/texlab/crates/completion/src/providers/include.rs
@@ -1,11 +1,11 @@
use std::{
- fs,
+ fs::{self},
path::{Path, PathBuf},
};
use base_db::{
deps::{self, ProjectRoot},
- DocumentData, FeatureParams,
+ util, DocumentData, FeatureParams,
};
use rowan::{ast::AstNode, TextLen, TextRange};
use syntax::latex;
@@ -121,10 +121,8 @@ fn current_dir(
.map_or(params.document, Clone::clone);
let root = ProjectRoot::walk_and_find(workspace, &parent.dir);
- let path = root.src_dir.to_file_path().ok()?;
-
- let mut path = PathBuf::from(path.to_str()?.replace('\\', "/"));
+ let mut path = PathBuf::new();
if let Some(graphics_path) = graphics_path {
path.push(graphics_path);
}
@@ -136,7 +134,10 @@ fn current_dir(
}
}
- Some(path)
+ let current_dir =
+ util::expand_relative_path(path.to_str()?, &root.src_dir, workspace.folders()).ok()?;
+
+ current_dir.to_file_path().ok()
}
fn is_included(file: &Path, allowed_extensions: &[&str]) -> bool {
diff --git a/support/texlab/crates/completion/src/tests.rs b/support/texlab/crates/completion/src/tests.rs
index f41c9f5e6b..c6bed6e08e 100644
--- a/support/texlab/crates/completion/src/tests.rs
+++ b/support/texlab/crates/completion/src/tests.rs
@@ -1677,6 +1677,52 @@ fn theorem_end() {
}
#[test]
+fn theorem_begin_multiple() {
+ check(
+ r#"
+%! main.tex
+\declaretheorem[sibling=table, style=thmbox]{def1, def2, def3, def4, def5}
+\begin{def
+ |
+ ^^^"#,
+ expect![[r#"
+ [
+ Environment(
+ EnvironmentData {
+ name: "def1",
+ package: "<user>",
+ },
+ ),
+ Environment(
+ EnvironmentData {
+ name: "def2",
+ package: "<user>",
+ },
+ ),
+ Environment(
+ EnvironmentData {
+ name: "def3",
+ package: "<user>",
+ },
+ ),
+ Environment(
+ EnvironmentData {
+ name: "def4",
+ package: "<user>",
+ },
+ ),
+ Environment(
+ EnvironmentData {
+ name: "def5",
+ package: "<user>",
+ },
+ ),
+ ]
+ "#]],
+ );
+}
+
+#[test]
fn tikz_library_open_brace() {
check(
r#"