Mountain/Vine/Server/Notification/UnregisterTaskProvider.rs
1#![allow(non_snake_case)]
2//! Cocoon → Mountain `unregister_task_provider` notification.
3//! Emitted by `Cocoon/.../TasksNamespace.ts:35` when
4//! `vscode.tasks.registerTaskProvider(...).dispose()` fires.
5
6use serde_json::Value;
7
8use crate::{Vine::Server::MountainVinegRPCService::MountainVinegRPCService, dev_log};
9
10pub async fn UnregisterTaskProvider(Service:&MountainVinegRPCService, Parameter:&Value) {
11 let Handle = Parameter.get("handle").and_then(Value::as_u64).unwrap_or(0) as u32;
12
13 if Handle == 0 {
14 dev_log!("provider-register", "[ProviderUnregister] task skip: missing handle");
15
16 return;
17 }
18
19 Service
20 .RunTime()
21 .Environment
22 .ApplicationState
23 .Extension
24 .ProviderRegistration
25 .UnregisterProvider(Handle);
26
27 dev_log!("provider-register", "[ProviderUnregister] task handle={}", Handle);
28}