diff options
author | Norbert Preining <norbert@preining.info> | 2024-05-02 03:02:55 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-05-02 03:02:55 +0000 |
commit | 68c5442089b7c2e61ee14fc3efed490e291a244a (patch) | |
tree | 91d0e68d495b53cb52bb60a3e234da061741067d /support/texlab/crates/completion/src | |
parent | 6ac3dbed4b71022bd6bb0cc25e8fc3df81198498 (diff) |
CTAN sync 202405020302
Diffstat (limited to 'support/texlab/crates/completion/src')
-rw-r--r-- | support/texlab/crates/completion/src/providers/include.rs | 13 | ||||
-rw-r--r-- | support/texlab/crates/completion/src/tests.rs | 46 |
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#" |