Skip to content

Commit

Permalink
LS: fix dynamic registration (#6334)
Browse files Browse the repository at this point in the history
  • Loading branch information
piotmag769 authored Sep 4, 2024
1 parent dfe3a70 commit 611c2cb
Show file tree
Hide file tree
Showing 2 changed files with 299 additions and 94 deletions.
51 changes: 51 additions & 0 deletions crates/cairo-lang-language-server/src/lsp/capabilities/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,27 @@ pub trait ClientCapabilitiesExt {

/// The client supports dynamic registration for text document synchronization capabilities.
fn text_document_synchronization_dynamic_registration(&self) -> bool;

/// The client supports dynamic registration for completion capabilities.
fn completion_dynamic_registration(&self) -> bool;

/// The client supports dynamic registration for execute command capabilities.
fn execute_command_dynamic_registration(&self) -> bool;

/// The client supports dynamic registration for semantic tokens capabilities.
fn semantic_tokens_dynamic_registration(&self) -> bool;

/// The client supports dynamic registration for formatting capabilities.
fn formatting_dynamic_registration(&self) -> bool;

/// The client supports dynamic registration for hover capabilities.
fn hover_dynamic_registration(&self) -> bool;

/// The client supports dynamic registration for definition capabilities.
fn definition_dynamic_registration(&self) -> bool;

/// The client supports dynamic registration for code action capabilities.
fn code_action_dynamic_registration(&self) -> bool;
}

impl ClientCapabilitiesExt for ClientCapabilities {
Expand All @@ -37,4 +58,34 @@ impl ClientCapabilitiesExt for ClientCapabilities {
self.text_document.as_ref()?.synchronization.as_ref()?.dynamic_registration?
)
}

fn completion_dynamic_registration(&self) -> bool {
try_or_default!(self.text_document.as_ref()?.completion.as_ref()?.dynamic_registration?)
}

fn execute_command_dynamic_registration(&self) -> bool {
try_or_default!(self.workspace.as_ref()?.execute_command.as_ref()?.dynamic_registration?)
}

fn semantic_tokens_dynamic_registration(&self) -> bool {
try_or_default!(
self.text_document.as_ref()?.semantic_tokens.as_ref()?.dynamic_registration?
)
}

fn formatting_dynamic_registration(&self) -> bool {
try_or_default!(self.text_document.as_ref()?.formatting.as_ref()?.dynamic_registration?)
}

fn hover_dynamic_registration(&self) -> bool {
try_or_default!(self.text_document.as_ref()?.hover.as_ref()?.dynamic_registration?)
}

fn definition_dynamic_registration(&self) -> bool {
try_or_default!(self.text_document.as_ref()?.definition.as_ref()?.dynamic_registration?)
}

fn code_action_dynamic_registration(&self) -> bool {
try_or_default!(self.text_document.as_ref()?.code_action.as_ref()?.dynamic_registration?)
}
}
Loading

0 comments on commit 611c2cb

Please sign in to comment.