2023-12-01 07:03:26 +08:00
|
|
|
use std::sync::Arc;
|
|
|
|
|
|
|
|
use arc_swap::ArcSwap;
|
2023-12-01 07:03:27 +08:00
|
|
|
use helix_event::AsyncHook;
|
2023-12-01 07:03:26 +08:00
|
|
|
|
|
|
|
use crate::config::Config;
|
|
|
|
use crate::events;
|
2025-07-16 08:43:18 +08:00
|
|
|
use crate::handlers::auto_reload::AutoReloadHandler;
|
2024-06-11 06:39:06 +08:00
|
|
|
use crate::handlers::auto_save::AutoSaveHandler;
|
2023-12-01 07:03:27 +08:00
|
|
|
use crate::handlers::signature_help::SignatureHelpHandler;
|
2023-12-01 07:03:26 +08:00
|
|
|
|
2023-12-01 07:03:27 +08:00
|
|
|
pub use helix_view::handlers::Handlers;
|
|
|
|
|
2025-03-24 05:07:02 +08:00
|
|
|
use self::document_colors::DocumentColorsHandler;
|
|
|
|
|
2025-07-16 09:28:01 +08:00
|
|
|
pub(super) mod auto_reload;
|
2024-06-11 06:39:06 +08:00
|
|
|
mod auto_save;
|
2024-04-21 22:14:39 +08:00
|
|
|
pub mod completion;
|
2024-04-05 09:17:06 +08:00
|
|
|
mod diagnostics;
|
2025-03-24 05:07:02 +08:00
|
|
|
mod document_colors;
|
2023-12-01 07:03:27 +08:00
|
|
|
mod signature_help;
|
2024-03-04 06:23:34 +08:00
|
|
|
mod snippet;
|
2023-12-01 07:03:26 +08:00
|
|
|
|
|
|
|
pub fn setup(config: Arc<ArcSwap<Config>>) -> Handlers {
|
|
|
|
events::register();
|
2023-12-01 07:03:27 +08:00
|
|
|
|
2025-02-02 04:48:42 +08:00
|
|
|
let event_tx = completion::CompletionHandler::new(config).spawn();
|
2023-12-01 07:03:27 +08:00
|
|
|
let signature_hints = SignatureHelpHandler::new().spawn();
|
2024-06-11 06:39:06 +08:00
|
|
|
let auto_save = AutoSaveHandler::new().spawn();
|
2025-07-16 08:56:38 +08:00
|
|
|
let auto_reload = AutoReloadHandler::new().spawn();
|
2025-03-24 05:07:02 +08:00
|
|
|
let document_colors = DocumentColorsHandler::default().spawn();
|
2024-06-11 06:39:06 +08:00
|
|
|
|
2023-12-01 07:03:26 +08:00
|
|
|
let handlers = Handlers {
|
2025-02-02 04:48:42 +08:00
|
|
|
completions: helix_view::handlers::completion::CompletionHandler::new(event_tx),
|
2023-12-01 07:03:27 +08:00
|
|
|
signature_hints,
|
2024-06-11 06:39:06 +08:00
|
|
|
auto_save,
|
2025-07-16 08:56:38 +08:00
|
|
|
auto_reload,
|
2025-03-24 05:07:02 +08:00
|
|
|
document_colors,
|
2023-12-01 07:03:26 +08:00
|
|
|
};
|
2024-06-11 06:39:06 +08:00
|
|
|
|
2025-03-03 01:50:24 +08:00
|
|
|
helix_view::handlers::register_hooks(&handlers);
|
2023-12-01 07:03:27 +08:00
|
|
|
completion::register_hooks(&handlers);
|
|
|
|
signature_help::register_hooks(&handlers);
|
2024-06-11 06:39:06 +08:00
|
|
|
auto_save::register_hooks(&handlers);
|
2025-07-16 08:43:18 +08:00
|
|
|
auto_reload::register_hooks(&handlers);
|
2024-04-05 09:17:06 +08:00
|
|
|
diagnostics::register_hooks(&handlers);
|
2024-03-04 06:23:34 +08:00
|
|
|
snippet::register_hooks(&handlers);
|
2025-03-24 05:07:02 +08:00
|
|
|
document_colors::register_hooks(&handlers);
|
2023-12-01 07:03:26 +08:00
|
|
|
handlers
|
|
|
|
}
|