diff options
Diffstat (limited to 'support/texlab/src/features/forward_search.rs')
-rw-r--r-- | support/texlab/src/features/forward_search.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/support/texlab/src/features/forward_search.rs b/support/texlab/src/features/forward_search.rs index 47be702659..8e5a2cc59c 100644 --- a/support/texlab/src/features/forward_search.rs +++ b/support/texlab/src/features/forward_search.rs @@ -15,6 +15,9 @@ pub enum Error { #[error("TeX document '{0}' not found")] TexNotFound(Url), + #[error("TeX document '{0}' is invalid")] + InvalidTexFile(Url), + #[error("PDF document '{0}' not found")] PdfNotFound(PathBuf), @@ -59,8 +62,16 @@ impl Command { .as_deref() .ok_or_else(|| Error::NoLocalFile(uri.clone()))?; - let pdf_name = format!("{}.pdf", parent.location(db).stem(db).unwrap()); - let pdf_path = output_dir.join(pdf_name); + let pdf_path = match parent.location(db).stem(db) { + Some(stem) => { + let pdf_name = format!("{}.pdf", stem); + output_dir.join(pdf_name) + } + None => { + return Err(Error::InvalidTexFile(uri.clone())); + } + }; + if !pdf_path.exists() { return Err(Error::PdfNotFound(pdf_path)); } |