summaryrefslogtreecommitdiff
path: root/support/texlab/crates/completion/src/providers/include.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/crates/completion/src/providers/include.rs')
-rw-r--r--support/texlab/crates/completion/src/providers/include.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/support/texlab/crates/completion/src/providers/include.rs b/support/texlab/crates/completion/src/providers/include.rs
index f8bb55dfeb..6246624733 100644
--- a/support/texlab/crates/completion/src/providers/include.rs
+++ b/support/texlab/crates/completion/src/providers/include.rs
@@ -3,7 +3,10 @@ use std::{
path::{Path, PathBuf},
};
-use base_db::{DocumentData, FeatureParams};
+use base_db::{
+ deps::{self, ProjectRoot},
+ DocumentData, FeatureParams,
+};
use rowan::{ast::AstNode, TextLen, TextRange};
use syntax::latex;
@@ -112,13 +115,13 @@ fn current_dir(
graphics_path: Option<&str>,
) -> Option<PathBuf> {
let workspace = &params.workspace;
- let parent = workspace
- .parents(params.document)
+ let parent = deps::parents(&workspace, params.document)
.iter()
.next()
.map_or(params.document, Clone::clone);
- let path = workspace.current_dir(&parent.dir).to_file_path().ok()?;
+ 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('\\', "/"));