Skip to main content

Crate lattice_completion

Crate lattice_completion 

Source
Expand description

Pluggable completion pipeline (DESIGN.md §5.11.3).

Powers :-line completion and (eventually) any minibuffer-shaped prompt the editor surfaces. Architecturally vertico-shaped: generators, matchers, rankers, annotators are independent pluggable stages registered against a CompletionRegistry. Plugin authors target the public traits to extend any stage.

The host (the editor crate, not this one) wires the pipeline into the cmdline and the renderer. This crate stays pure-traits + types + reusable built-ins; tests run without any UI dependency.

Source provenance for every registered stage is captured via #[track_caller] (DESIGN.md §5.11.1) so :describe-completion-source <name> resolves to the registration site.

Re-exports§

pub use crate::builtins::annotators::DocSnippetAnnotator;
pub use crate::builtins::annotators::KeybindingAnnotator;
pub use crate::builtins::annotators::KeybindingSource;
pub use crate::builtins::annotators::KeymapReverseLookup;
pub use crate::builtins::annotators::KindLabelAnnotator;
pub use crate::builtins::matchers::FuzzyDisplayMatcher;
pub use crate::builtins::matchers::FuzzyMatcher;
pub use crate::builtins::matchers::OrderlessDisplayMatcher;
pub use crate::builtins::matchers::PrefixMatcher;
pub use crate::builtins::matchers::SubstringMatcher;
pub use crate::builtins::rankers::AlphabeticalRanker;
pub use crate::builtins::rankers::MruRanker;
pub use crate::builtins::rankers::ScoreRanker;
pub use crate::builtins::CompletionBuiltins;
pub use crate::builtins::populate;
pub use crate::cache::GeneratorCache;
pub use crate::candidate::Annotation;
pub use crate::candidate::AnnotationColumns;
pub use crate::candidate::AnnotationSegment;
pub use crate::candidate::CacheKey;
pub use crate::candidate::CandidateData;
pub use crate::candidate::CandidateKind;
pub use crate::candidate::DisplaySpan;
pub use crate::candidate::MatchScore;
pub use crate::candidate::RawCandidate;
pub use crate::candidate::RenderedCandidate;
pub use crate::candidate::ScoredCandidate;
pub use crate::insert::BufferWordsSource;
pub use crate::insert::CompletionTrigger;
pub use crate::insert::DocPopupState;
pub use crate::insert::FuzzyInsertMatcher;
pub use crate::insert::InsertCompletionState;
pub use crate::insert::InsertContext;
pub use crate::insert::InsertRanker;
pub use crate::insert::InsertSource;
pub use crate::insert::LSP_COMPLETION_SOURCE_ID;
pub use crate::insert::PATH_SOURCE_ID;
pub use crate::insert::PerLanguageOverrides;
pub use crate::insert::SNIPPET_SOURCE_ID;
pub use crate::insert::SourceId;
pub use crate::insert::TREE_SITTER_SYMBOL_SOURCE_ID;
pub use crate::insert::canonical_source_id;
pub use crate::insert::fuzzy_match;
pub use crate::insert::per_language_defaults;
pub use crate::orderless::ORDER_BONUS;
pub use crate::orderless::OrderlessComponent;
pub use crate::orderless::orderless_match;
pub use crate::orderless::parse_orderless_query;
pub use crate::path::PathCompletionSource;
pub use crate::pipeline::CompletionPipeline;
pub use crate::registry::AnnotatorId;
pub use crate::registry::CompletionRegistry;
pub use crate::registry::GeneratorId;
pub use crate::registry::MatcherId;
pub use crate::registry::RankerId;
pub use crate::registry::RegisteredAnnotator;
pub use crate::registry::RegisteredGenerator;
pub use crate::registry::RegisteredMatcher;
pub use crate::registry::RegisteredRanker;
pub use crate::slot::CommandLineSlot;
pub use crate::slot::current_slot;
pub use crate::source::AsyncCompletionOutcome;
pub use crate::source::AsyncCompletionSource;
pub use crate::source::CandidateSink;
pub use crate::source::CompletionSourceContribution;
pub use crate::source::CompletionSourceKind;
pub use crate::source::InsertContextSnapshot;
pub use crate::source::SyncCompletionSource;
pub use crate::source::line_before_cursor;
pub use crate::source_registration::AcceptAction;
pub use crate::source_registration::AcceptHandler;
pub use crate::source_registration::AcceptToken;
pub use crate::source_registration::ArgsSchema;
pub use crate::source_registration::CandidateSourceKind;
pub use crate::source_registration::CustomAcceptPayload;
pub use crate::source_registration::DefaultAcceptHandler;
pub use crate::source_registration::SourceRegistration;
pub use crate::source_registration::SourceSpec;
pub use crate::traits::CandidateAnnotator;
pub use crate::traits::CandidateGenerator;
pub use crate::traits::CandidateMatcher;
pub use crate::traits::CandidateRanker;
pub use crate::traits::GenerateContext;

Modules§

builtins
Built-in pluggable stage implementations shipped with the editor. Plugin-defined alternatives register through the same crate::CompletionRegistry and replace these defaults via default_matcher / default_ranker / default_annotators.
cache
Cache for generator output (DESIGN.md §5.11.3, Q13).
candidate
Candidate value types that flow through the completion pipeline (DESIGN.md §5.11.3).
insert
Insert-mode completion – the editor surface that turns the existing pipeline (cmdline today) into a buffer-level input flow.
orderless
Orderless matching — a query is a set of independent components, not one string.
path
Path-completion source (CSM.7).
pipeline
CompletionPipeline::run – the executor that walks generators -> matcher -> ranker -> annotators and produces the list the popup renders.
registry
Where pluggable completion stages register themselves.
slot
Command-line slot detection (DESIGN.md §5.11.3).
source
Mode-driven completion sources (insert-completion.md §12).
source_registration
Unified source registration — slice 3c.unify.picker-generator-trait-unify (7a).
traits
The four pluggable traits the pipeline composes.