summaryrefslogtreecommitdiff
path: root/support/texlab/src/db/document.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/src/db/document.rs')
-rw-r--r--support/texlab/src/db/document.rs23
1 files changed, 11 insertions, 12 deletions
diff --git a/support/texlab/src/db/document.rs b/support/texlab/src/db/document.rs
index 4ee23a2230..1fc7d6880c 100644
--- a/support/texlab/src/db/document.rs
+++ b/support/texlab/src/db/document.rs
@@ -175,23 +175,22 @@ impl Document {
}
#[salsa::tracked]
- pub fn can_be_index(self, db: &dyn Db) -> bool {
+ pub fn can_be_root(self, db: &dyn Db) -> bool {
self.parse(db).as_tex().map_or(false, |data| {
- data.analyze(db)
- .links(db)
- .iter()
- .filter(|link| link.kind(db) == TexLinkKind::Cls)
- .any(|link| link.path(db).text(db) != "subfiles")
+ let analysis = data.analyze(db);
+ analysis.has_document_environment(db)
+ || !analysis
+ .links(db)
+ .iter()
+ .filter(|link| link.kind(db) == TexLinkKind::Cls)
+ .any(|link| link.path(db).text(db) == "subfiles")
})
}
#[salsa::tracked]
pub fn can_be_built(self, db: &dyn Db) -> bool {
- self.parse(db).as_tex().map_or(false, |data| {
- data.analyze(db)
- .links(db)
- .iter()
- .any(|link| link.kind(db) == TexLinkKind::Cls)
- })
+ self.parse(db)
+ .as_tex()
+ .map_or(false, |data| data.analyze(db).has_document_environment(db))
}
}