summaryrefslogtreecommitdiff
path: root/support/texlab/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/src/lib.rs')
-rw-r--r--support/texlab/src/lib.rs25
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