Skip to content

Commit

Permalink
Handle window/showMessage and display it bellow status line (helix-ed…
Browse files Browse the repository at this point in the history
…itor#5535)

* Handle window/showMessage and display it bellow status line

* Enable `editor.lsp.display_messages` by default

---------

Co-authored-by: Michael Davis <[email protected]>
  • Loading branch information
2 people authored and rongyi committed Sep 20, 2024
1 parent 6bbe933 commit b60b8f7
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 4 deletions.
12 changes: 10 additions & 2 deletions helix-term/src/application.rs
Original file line number Diff line number Diff line change
Expand Up @@ -846,7 +846,15 @@ impl Application {
}
}
Notification::ShowMessage(params) => {
log::warn!("unhandled window/showMessage: {:?}", params);
if self.config.load().editor.lsp.display_messages {
match params.typ {
lsp::MessageType::ERROR => self.editor.set_error(params.message),
lsp::MessageType::WARNING => {
self.editor.set_warning(params.message)
}
_ => self.editor.set_status(params.message),
}
}
}
Notification::LogMessage(params) => {
log::info!("window/logMessage: {:?}", params);
Expand Down Expand Up @@ -930,7 +938,7 @@ impl Application {
self.lsp_progress.update(server_id, token, work);
}

if self.config.load().editor.lsp.display_messages {
if self.config.load().editor.lsp.display_progress_messages {
self.editor.set_status(status);
}
}
Expand Down
14 changes: 12 additions & 2 deletions helix-view/src/editor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,9 @@ pub fn get_terminal_provider() -> Option<TerminalConfig> {
pub struct LspConfig {
/// Enables LSP
pub enable: bool,
/// Display LSP progress messages below statusline
/// Display LSP messagess from $/progress below statusline
pub display_progress_messages: bool,
/// Display LSP messages from window/showMessage below statusline
pub display_messages: bool,
/// Enable automatic pop up of signature help (parameter hints)
pub auto_signature_help: bool,
Expand All @@ -439,7 +441,8 @@ impl Default for LspConfig {
fn default() -> Self {
Self {
enable: true,
display_messages: false,
display_progress_messages: false,
display_messages: true,
auto_signature_help: true,
display_signature_help_docs: true,
display_inlay_hints: false,
Expand Down Expand Up @@ -1271,6 +1274,13 @@ impl Editor {
self.status_msg = Some((error, Severity::Error));
}

#[inline]
pub fn set_warning<T: Into<Cow<'static, str>>>(&mut self, warning: T) {
let warning = warning.into();
log::warn!("editor warning: {}", warning);
self.status_msg = Some((warning, Severity::Warning));
}

#[inline]
pub fn get_status(&self) -> Option<(&Cow<'static, str>, &Severity)> {
self.status_msg.as_ref().map(|(status, sev)| (status, sev))
Expand Down

0 comments on commit b60b8f7

Please sign in to comment.