Skip to main content

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}