pub struct SnippetsSource {
pub spec: PickerSourceSpec,
pub registry: Arc<ArcSwap<SnippetRegistry>>,
}Expand description
:picker snippets. Walks
SnippetRegistry::meta_for_language(active_lang) and
emits one row per snippet, displayed as prefix name -- description.
Fields§
§spec: PickerSourceSpec§registry: Arc<ArcSwap<SnippetRegistry>>Implementations§
Source§impl SnippetsSource
impl SnippetsSource
pub fn new(registry: Arc<ArcSwap<SnippetRegistry>>) -> Self
Trait Implementations§
Source§impl PickerSourceGenerator for SnippetsSource
impl PickerSourceGenerator for SnippetsSource
Source§fn spec(&self) -> &PickerSourceSpec
fn spec(&self) -> &PickerSourceSpec
Generator metadata. Returned by reference so the
registry can stamp it into
:describe-picker /
:picker <Tab> listings without cloning.Source§fn init(
&self,
ctx: &PickerContext<'_>,
_args: &[String],
) -> SourceResult<PickerInitResult>
fn init( &self, ctx: &PickerContext<'_>, _args: &[String], ) -> SourceResult<PickerInitResult>
Build the candidate set. Sync prelude: read what’s
needed from
ctx, clone into async captures if
necessary, return the appropriate PickerInitResult
variant. Synchronous errors (no active buffer when
one was required, args validation failure) return
Err; the host echoes the error and leaves the
picker closed. Read moreSource§fn accept(
&self,
_ctx: &PickerContext<'_>,
routing: &RoutingPayload,
) -> SourceResult<PickerAcceptOutcome>
fn accept( &self, _ctx: &PickerContext<'_>, routing: &RoutingPayload, ) -> SourceResult<PickerAcceptOutcome>
Translate the user’s chosen routing payload into a
typed
PickerAcceptOutcome the host applies. The
generator owns the mapping from its emitted
routing-payload variant(s) to outcome(s); mismatch
returns Err, which the host echoes.§fn accept_async(
&self,
_ctx: &PickerContext<'_>,
_routing: &RoutingPayload,
) -> Option<Pin<Box<dyn Future<Output = Result<PickerAcceptOutcome, String>> + Send>>>
fn accept_async( &self, _ctx: &PickerContext<'_>, _routing: &RoutingPayload, ) -> Option<Pin<Box<dyn Future<Output = Result<PickerAcceptOutcome, String>> + Send>>>
Async-accept hook. Default
None means “this source resolves accept
synchronously” — every native source takes this path and is unchanged. Read more§fn on_query_changed(
&self,
_ctx: &PickerContext<'_>,
_query: &str,
) -> Option<Result<PickerInitResult, String>>
fn on_query_changed( &self, _ctx: &PickerContext<'_>, _query: &str, ) -> Option<Result<PickerInitResult, String>>
Live-source hook: re-fetch candidates when the user’s
query changes. Default
None means “static source –
host uses fuzzy refilter over the candidate set
returned by init”. Returning Some(result) from a
source whose spec().live == true replaces the
picker’s candidate set wholesale; the host wires up
debouncing and cancels any in-flight invocation when a
fresh query arrives. Read more§fn descend(
&self,
_ctx: &PickerContext<'_>,
_candidate: &RawCandidate,
) -> Option<String>
fn descend( &self, _ctx: &PickerContext<'_>, _candidate: &RawCandidate, ) -> Option<String>
PC.10:
<C-l> — refine the query from the selected candidate instead
of accepting it. Read morePP.3:
<CR> on a row that is a SIGNPOST rather than a destination. Read more§fn initial_query(&self, _args: &[String]) -> Option<String>
fn initial_query(&self, _args: &[String]) -> Option<String>
PP.1: the query the picker opens WITH. Read more
§fn preview(
&self,
_ctx: &PickerContext<'_>,
_routing: &RoutingPayload,
) -> Option<PickerPreviewOutcome>
fn preview( &self, _ctx: &PickerContext<'_>, _routing: &RoutingPayload, ) -> Option<PickerPreviewOutcome>
T.12: live-preview hook — invoked as the picker SELECTION moves to
a candidate (before accept). Default None = no preview. A source
returns an outcome the host applies immediately for a live preview;
the host restores prior state on . Read more
§fn preview_debounce(&self) -> Option<Duration>
fn preview_debounce(&self) -> Option<Duration>
§fn owner_plugin(&self) -> Option<u64>
fn owner_plugin(&self) -> Option<u64>
PH.1: the host-issued id of the plugin that contributed this source,
None for a native one. Read moreAuto Trait Implementations§
impl Freeze for SnippetsSource
impl RefUnwindSafe for SnippetsSource
impl Send for SnippetsSource
impl Sync for SnippetsSource
impl Unpin for SnippetsSource
impl UnsafeUnpin for SnippetsSource
impl UnwindSafe for SnippetsSource
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
Mutably borrows from an owned value. Read more