From de5e65c10d1935fd790c380ebece81632b96ecee Mon Sep 17 00:00:00 2001 From: Josh Date: Sat, 17 May 2025 23:24:14 -0500 Subject: [PATCH] refactor some small session fields --- crates/djls-server/src/server.rs | 10 ++++++---- crates/djls-server/src/session.rs | 11 +++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/crates/djls-server/src/server.rs b/crates/djls-server/src/server.rs index 31bd723..67021eb 100644 --- a/crates/djls-server/src/server.rs +++ b/crates/djls-server/src/server.rs @@ -61,7 +61,7 @@ impl LanguageServer for DjangoLanguageServer { client::log_message(MessageType::INFO, "Initializing server..."); self.with_session_mut(|session| { - *session.client_capabilities_mut() = Some(params.capabilities); + session.set_client_capabilities(params.capabilities); }) .await; @@ -121,9 +121,11 @@ impl LanguageServer for DjangoLanguageServer { self.with_session_mut(|session| { let settings = djls_conf::Settings::new(&project_path) .unwrap_or_else(|_| djls_conf::Settings::default()); - *session.settings_mut() = settings; + session.set_settings(settings); + + let project = djls_project::DjangoProject::new(project_path); + session.set_project(project); - *session.project_mut() = Some(djls_project::DjangoProject::new(project_path)); true }) .await @@ -298,7 +300,7 @@ impl LanguageServer for DjangoLanguageServer { if let Some(path) = project_path { self.with_session_mut(|session| match djls_conf::Settings::new(path.as_path()) { Ok(new_settings) => { - *session.settings_mut() = new_settings; + session.set_settings(new_settings); } Err(e) => { client::log_message(MessageType::ERROR, format!("Error loading settings: {e}")); diff --git a/crates/djls-server/src/session.rs b/crates/djls-server/src/session.rs index f825d64..e127aea 100644 --- a/crates/djls-server/src/session.rs +++ b/crates/djls-server/src/session.rs @@ -45,8 +45,8 @@ pub struct Session { } impl Session { - pub fn client_capabilities_mut(&mut self) -> &mut Option { - &mut self.client_capabilities + pub fn set_client_capabilities(&mut self, client_capabilities: ClientCapabilities) { + self.client_capabilities = Some(client_capabilities); } pub fn project(&self) -> Option<&DjangoProject> { @@ -56,6 +56,9 @@ impl Session { pub fn project_mut(&mut self) -> &mut Option { &mut self.project } + pub fn set_project(&mut self, project: DjangoProject) { + self.project = Some(project); + } pub fn documents(&self) -> &Store { &self.documents @@ -69,8 +72,8 @@ impl Session { &self.settings } - pub fn settings_mut(&mut self) -> &mut Settings { - &mut self.settings + pub fn set_settings(&mut self, settings: Settings) { + self.settings = settings; } /// Get a database instance directly from the session