pub struct PluginManifest {Show 15 fields
pub schema_version: u32,
pub id: String,
pub name: String,
pub version: String,
pub author: Option<String>,
pub license: Option<String>,
pub description: Option<String>,
pub kinds: Vec<String>,
pub activation: PluginActivation,
pub entry_points: HashMap<String, PluginEntryPoint>,
pub status_bar_widget: Option<StatusBarWidgetKind>,
pub actions: Vec<ActionContribution>,
pub subscriptions: Vec<String>,
pub restart: RestartPolicy,
pub overlay: Option<OverlayCapability>,
}Expand description
A parsed manifest.json.
Fields§
§schema_version: u32Manifest format version; only 1 is understood.
id: StringReverse-DNS-ish plugin id; must equal the directory name.
name: StringHuman-readable name.
version: StringPlugin version, displayed at the enable toggle.
Author, displayed at the enable toggle (trust surface).
license: Option<String>License, displayed at the enable toggle (trust surface).
description: Option<String>What the plugin does, shown in Settings.
kinds: Vec<String>Kinds this plugin provides; each must be known to this host.
activation: PluginActivationWhen the plugin starts once enabled.
entry_points: HashMap<String, PluginEntryPoint>Named entry points; the key selects the kind’s executable.
status_bar_widget: Option<StatusBarWidgetKind>Required iff kinds contains KIND_STATUS_BAR_WIDGET.
actions: Vec<ActionContribution>Actions contributed to the command palette; required non-empty iff
kinds contains KIND_ACTION_CONTRIBUTOR, ignored otherwise.
subscriptions: Vec<String>Terminal event kinds the plugin wants delivered to its stdin. Empty or
absent means self-scheduled: the plugin receives no terminal events
(unlike tab scripts, where an empty subscription list means all
events). Each name must be one of
crate::observer::EVENT_KINDS; an unknown or duplicate name skips
the plugin at discovery so a typo’d subscription can never silently
never-fire.
restart: RestartPolicyWhen the host restarts the plugin’s exited process: on_failure
(the default and the only behaviour before the field existed),
never, or always — the same policy enum tab scripts configure.
Mode-only by design: backoff parameters (restart delay, crash-loop
cap) are host-owned safety policy a manifest cannot tune its way
out of (parsight decision 95).
overlay: Option<OverlayCapability>Overlay-kind capability block (phase 2). Absent means display-only:
interactive: true requests are forced off at ingest. Present with
interactive: true is required before an overlay may focus and
render interactive widgets.
Trait Implementations§
Source§impl Clone for PluginManifest
impl Clone for PluginManifest
Source§impl Debug for PluginManifest
impl Debug for PluginManifest
Source§impl<'de> Deserialize<'de> for PluginManifest
impl<'de> Deserialize<'de> for PluginManifest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for PluginManifest
impl PartialEq for PluginManifest
Source§impl Serialize for PluginManifest
impl Serialize for PluginManifest
impl StructuralPartialEq for PluginManifest
Auto Trait Implementations§
impl Freeze for PluginManifest
impl RefUnwindSafe for PluginManifest
impl Send for PluginManifest
impl Sync for PluginManifest
impl Unpin for PluginManifest
impl UnsafeUnpin for PluginManifest
impl UnwindSafe for PluginManifest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.