
This PR filters out the context servers actions from the command palette when no context servers are configured. Release Notes: - N/A
40 lines
1.1 KiB
Rust
40 lines
1.1 KiB
Rust
use gpui::{actions, AppContext, Context, ViewContext};
|
|
use manager::ContextServerManager;
|
|
use workspace::Workspace;
|
|
|
|
pub mod client;
|
|
pub mod manager;
|
|
pub mod protocol;
|
|
mod registry;
|
|
pub mod types;
|
|
|
|
pub use registry::*;
|
|
|
|
actions!(context_servers, [Restart]);
|
|
|
|
/// The namespace for the context servers actions.
|
|
const CONTEXT_SERVERS_NAMESPACE: &'static str = "context_servers";
|
|
|
|
pub fn init(cx: &mut AppContext) {
|
|
log::info!("initializing context server client");
|
|
manager::init(cx);
|
|
ContextServerRegistry::register(cx);
|
|
|
|
cx.observe_new_views(
|
|
|workspace: &mut Workspace, _cx: &mut ViewContext<Workspace>| {
|
|
workspace.register_action(restart_servers);
|
|
},
|
|
)
|
|
.detach();
|
|
}
|
|
|
|
fn restart_servers(_workspace: &mut Workspace, _action: &Restart, cx: &mut ViewContext<Workspace>) {
|
|
let model = ContextServerManager::global(cx);
|
|
cx.update_model(&model, |manager, cx| {
|
|
for server in manager.servers() {
|
|
manager
|
|
.restart_server(&server.id, cx)
|
|
.detach_and_log_err(cx);
|
|
}
|
|
});
|
|
}
|