diff options
Diffstat (limited to 'support/texlab/src/lib.rs')
-rw-r--r-- | support/texlab/src/lib.rs | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/support/texlab/src/lib.rs b/support/texlab/src/lib.rs index 46ee3ddd1c..d80375fa03 100644 --- a/support/texlab/src/lib.rs +++ b/support/texlab/src/lib.rs @@ -2,29 +2,29 @@ pub(crate) mod citation; mod client; +mod config; pub mod db; pub(crate) mod distro; pub mod features; -mod options; pub mod parser; mod server; pub mod syntax; pub mod util; -pub use self::{client::LspClient, options::*, server::Server}; +pub use self::{client::LspClient, config::*, server::Server}; #[salsa::jar(db = Db)] pub struct Jar( db::Word, + db::ServerContext, db::Location, db::Location_path, - db::Contents, - db::Contents_line_index, db::LinterData, db::Document, db::Document_parse, db::Document_can_be_root, db::Document_can_be_built, + db::Document_line_index, db::parse::TexDocumentData, db::parse::TexDocumentData_analyze, db::parse::BibDocumentData, @@ -53,27 +53,34 @@ pub struct Jar( db::diagnostics::collect_filtered, ); -pub trait Db: salsa::DbWithJar<Jar> {} - -impl<DB> Db for DB where DB: ?Sized + salsa::DbWithJar<Jar> {} +pub trait Db: salsa::DbWithJar<Jar> { + fn config(&self) -> &Config; +} #[salsa::db(crate::Jar)] pub struct Database { storage: salsa::Storage<Self>, } +impl Db for Database { + fn config(&self) -> &Config { + db::ServerContext::get(self).config(self) + } +} + impl Default for Database { fn default() -> Self { let storage = salsa::Storage::default(); let db = Self { storage }; + + db::ServerContext::new(&db, Default::default(), Default::default()); + db::Workspace::new( &db, Default::default(), Default::default(), Default::default(), Default::default(), - Default::default(), - Default::default(), ); db |