diff options
author | Norbert Preining <norbert@preining.info> | 2023-04-12 03:01:14 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-04-12 03:01:14 +0000 |
commit | 45c7bac9080d91b53c686e776fc6217d7f139b86 (patch) | |
tree | 9dd0ad4713ddbc97580545398e8a3c84ac52bf49 /support/texlab/src/lib.rs | |
parent | e6c62f5e4d4a4d5ab654dad1652e83a5a4a42891 (diff) |
CTAN sync 202304120301
Diffstat (limited to 'support/texlab/src/lib.rs')
-rw-r--r-- | support/texlab/src/lib.rs | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/support/texlab/src/lib.rs b/support/texlab/src/lib.rs deleted file mode 100644 index d80375fa03..0000000000 --- a/support/texlab/src/lib.rs +++ /dev/null @@ -1,125 +0,0 @@ -#![allow(clippy::needless_lifetimes)] - -pub(crate) mod citation; -mod client; -mod config; -pub mod db; -pub(crate) mod distro; -pub mod features; -pub mod parser; -mod server; -pub mod syntax; -pub mod util; - -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::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, - db::parse::LogDocumentData, - db::analysis::TexLink, - db::analysis::label::Number, - db::analysis::label::Name, - db::analysis::TheoremEnvironment, - db::analysis::GraphicsPath, - db::analysis::TexAnalysis, - db::analysis::TexAnalysis_has_document_environment, - db::MissingDependencies, - db::hidden_dependency, - db::source_dependency, - db::dependency_graph, - db::Workspace, - db::Workspace_working_dir, - db::Workspace_output_dir, - db::Workspace_parents, - db::Workspace_related, - db::Workspace_number_of_label, - db::diagnostics::tex::collect, - db::diagnostics::bib::collect, - db::diagnostics::log::collect, - db::diagnostics::collect, - db::diagnostics::collect_filtered, -); - -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(), - ); - - db - } -} - -impl salsa::Database for Database {} - -impl salsa::ParallelDatabase for Database { - fn snapshot(&self) -> salsa::Snapshot<Self> { - salsa::Snapshot::new(Self { - storage: self.storage.snapshot(), - }) - } -} - -pub(crate) fn normalize_uri(uri: &mut lsp_types::Url) { - fn fix_drive_letter(text: &str) -> Option<String> { - if !text.is_ascii() { - return None; - } - - match &text[1..] { - ":" => Some(text.to_ascii_uppercase()), - "%3A" | "%3a" => Some(format!("{}:", text[0..1].to_ascii_uppercase())), - _ => None, - } - } - - if let Some(mut segments) = uri.path_segments() { - if let Some(mut path) = segments.next().and_then(fix_drive_letter) { - for segment in segments { - path.push('/'); - path.push_str(segment); - } - - uri.set_path(&path); - } - } - - uri.set_fragment(None); -} |