Skip to main content

Crate compsys

Crate compsys 

Source
Expand description

Zsh-compatible completion system (compsys)

This module implements zsh’s new completion system with full compatibility for compadd, compset, zstyle, and all completion special parameters.

§Architecture

§Default Mode (SQLite-backed)

  • Cache: ~/.zshrs/compsys.db (55MB with 16,872 function bodies)
  • compinit: Parallel fpath scan with rayon, stores bodies in SQLite
  • autoload -Xz: Instant lookup from SQLite (~2.7µs)
  • No .zcompdump file created

§–zsh-compat Mode (Traditional)

  • Cache: ~/.zcompdump (761KB)
  • compinit: Sequential scan, creates .zcompdump
  • autoload -Xz: Scans fpath/zwc files (~70µs)
  • Full zsh behavior for debugging/compatibility

§Usage

// Default mode (recommended)
zshrs -c 'compinit'

// Compat mode
zshrs --zsh-compat -c 'compinit'

Architecture based on analysis of:

  • zsh Src/Zle/compcore.c, complete.c, computil.c
  • fish src/complete.rs (for Rust patterns)

Re-exports§

pub use arguments::arguments_analyze;
pub use arguments::arguments_execute;
pub use arguments::parse_action;
pub use arguments::ActionType;
pub use arguments::ArgRequirement;
pub use arguments::ArgumentsAnalysis;
pub use arguments::ArgumentsSpec;
pub use arguments::ArgumentsState;
pub use arguments::OptSpec;
pub use arguments::OptType;
pub use base::all_labels;
pub use base::alternative;
pub use base::completer_approximate;
pub use base::completer_complete;
pub use base::completer_correct;
pub use base::completer_expand;
pub use base::completer_history;
pub use base::completer_ignored;
pub use base::completer_match;
pub use base::completer_menu;
pub use base::completer_prefix;
pub use base::description as base_description;
pub use base::dispatch_complete;
pub use base::get_ignored_patterns;
pub use base::is_ignored;
pub use base::main_complete;
pub use base::message;
pub use base::multi_parts;
pub use base::next_label;
pub use base::normal_complete;
pub use base::requested;
pub use base::sep_parts;
pub use base::values_complete;
pub use base::wanted;
pub use base::Alternative;
pub use base::CompleterResult;
pub use base::CompletionContext as BaseCompletionContext;
pub use base::MainCompleteState;
pub use base::TagManager;
pub use base::Value;
pub use compadd::compadd_execute;
pub use compadd::CompadOpts;
pub use compcore::do_completion;
pub use compcore::sort_and_prioritize;
pub use compcore::AmbiguousInfo;
pub use compcore::CompletionMode;
pub use compcore::CompletionRequestOptions;
pub use compcore::CompletionState;
pub use compcore::MenuInfo;
pub use compinit::build_cache_from_fpath;
pub use compinit::cache_entry_count;
pub use compinit::cache_is_valid;
pub use compinit::check_dump;
pub use compinit::compdump;
pub use compinit::compinit;
pub use compinit::compinit_lazy;
pub use compinit::get_system_fpath;
pub use compinit::load_from_cache;
pub use compinit::CompDef;
pub use compinit::CompFile;
pub use compinit::CompFileDef;
pub use compinit::CompInitOpts;
pub use compinit::CompInitResult;
pub use completion::Completion;
pub use completion::CompletionFlags;
pub use completion::CompletionGroup;
pub use completion::CompletionReceiver;
pub use completion::GroupFlags;
pub use compset::compcall_execute;
pub use compset::compquote_execute;
pub use compset::compset_execute;
pub use compset::CompcallOpts;
pub use compset::CompquoteOpts;
pub use compset::CompsetOp;
pub use computil::describe_execute;
pub use computil::ArgSpec as UtilArgSpec;
pub use computil::CompArguments;
pub use computil::CompDescribe;
pub use computil::CompFiles;
pub use computil::CompGroupConfig;
pub use computil::CompGroups;
pub use computil::CompTags;
pub use computil::CompValues;
pub use computil::ValueSpec;
pub use describe::describe_execute as native_describe;
pub use describe::parse_items;
pub use describe::DescribeItem;
pub use describe::DescribeOpts;
pub use files::directories_execute;
pub use files::files_execute;
pub use files::FilesOpts;
pub use generate::complete_builtins;
pub use generate::complete_commands_from_cache;
pub use generate::complete_files;
pub use generate::complete_from_cache_function;
pub use generate::complete_parameters;
pub use generate::complete_shell_functions;
pub use generate::detect_completion_context;
pub use generate::generate_completions;
pub use generate::CompContext;
pub use menu::default_menuselect_bindings;
pub use menu::parse_bindkey_output;
pub use menu::GroupLayout;
pub use menu::KeySequence;
pub use menu::MenuAction;
pub use menu::MenuColors;
pub use menu::MenuItem;
pub use menu::MenuKeymap;
pub use menu::MenuLine;
pub use menu::MenuMotion;
pub use menu::MenuRendering;
pub use menu::MenuResult;
pub use menu::MenuState;
pub use menu::SearchDirection;
pub use menu::GROUP_COLORS;
pub use shell_runner::call_program;
pub use shell_runner::BuiltinDispatcher;
pub use shell_runner::CompletionResult;
pub use shell_runner::CompletionRunner;
pub use shell_runner::ShellCompletionContext;
pub use state::CompParams;
pub use state::CompState;
pub use state::CompletionContext;
pub use system::groups;
pub use system::hosts;
pub use system::net_interfaces;
pub use system::pids;
pub use system::ports;
pub use system::signals;
pub use system::urls;
pub use system::users;
pub use zle::ZleAction;
pub use zle::ZleCompletionState;
pub use zle::ZleWidgets;
pub use zpwr_colors::load_zpwr_config;
pub use zpwr_colors::parse_zstyles_from_config;
pub use zpwr_colors::parse_zstyles_from_content;
pub use zpwr_colors::zpwr_list_colors;
pub use zpwr_colors::HeaderColors;
pub use zpwr_colors::ParsedZstyle;
pub use zpwr_colors::ZstyleColors;
pub use zpwr_colors::DEFAULT_PREFIX_COLOR;
pub use zpwr_colors::MENU_SELECTION_COLOR;
pub use zstyle::ZStyle;
pub use zstyle::ZStyleLookup;
pub use zstyle::ZStyleStore;
pub use zstyle::STANDARD_COMPLETERS;
pub use zstyle::STANDARD_STYLES;
pub use zstyle::STANDARD_TAGS;

Modules§

arguments
Native Rust implementation of _arguments
base
Native Rust implementations of Base/ completion functions
cache
SQLite-backed cache for compsys
compadd
compadd builtin implementation
compcore
Completion core - main entry point and match processing
compdef
compdef - Register completion functions for commands
compinit
Native Rust implementation of compinit - parallelized with rayon
completion
Core completion data structures
compset
compset builtin implementation
computil
Completion utilities - compdescribe, comparguments, compvalues, comptags
describe
Native Rust implementation of _describe
files
Native Rust implementation of _files and _directories
functions
Native Rust implementations of ALL Base/ completion functions
generate
Completion generation from cache
library
Complete library of zsh completion system functions
matching
Completion matching specifications (-M option)
menu
Menu completion and interactive selection
shell_runner
Shell function runner for completion functions
state
Completion state management - the $compstate hash and special parameters
system
System completion functions
zle
ZLE (Zsh Line Editor) completion widget implementations
zpwr_colors
ZPWR zstyle color configuration parser
zstyle
zstyle builtin implementation

Constants§

COMPSYS_FN_NAMES
Canonical names of compsys-style completion functions (the underscore-prefixed _arguments / _files / _describe / …) that have native Rust implementations in this crate, so they don’t hit the slow shell-function autoload path.