mirror of https://github.com/helix-editor/helix
25 lines
851 B
Rust
25 lines
851 B
Rust
use helix_event::{register_hook, send_blocking};
|
|
use helix_view::document::Mode;
|
|
use helix_view::events::DiagnosticsDidChange;
|
|
use helix_view::handlers::diagnostics::DiagnosticEvent;
|
|
use helix_view::handlers::Handlers;
|
|
|
|
use crate::events::OnModeSwitch;
|
|
|
|
pub(super) fn register_hooks(_handlers: &Handlers) {
|
|
register_hook!(move |event: &mut DiagnosticsDidChange<'_>| {
|
|
if event.editor.mode != Mode::Insert {
|
|
for (view, _) in event.editor.tree.views_mut() {
|
|
send_blocking(&view.diagnostics_handler.events, DiagnosticEvent::Refresh)
|
|
}
|
|
}
|
|
Ok(())
|
|
});
|
|
register_hook!(move |event: &mut OnModeSwitch<'_, '_>| {
|
|
for (view, _) in event.cx.editor.tree.views_mut() {
|
|
view.diagnostics_handler.active = event.new_mode != Mode::Insert;
|
|
}
|
|
Ok(())
|
|
});
|
|
}
|