Class: Toys::Utils::CompletionEngine::Base

Inherits:
Object
  • Object
show all
Defined in:
core-docs/toys/utils/completion_engine.rb

Overview

Base class for shell completion engines that use a COMP_LINE / COMP_POINT protocol.

Completion candidates are always computed as whole words: the entire word under the cursor is presented to the completion as the fragment, and each candidate is a replacement for that entire word. A shell that replaces less than the whole word, because it breaks words at certain characters, declares those characters in the private method #word_break_chars, and the candidates are trimmed to match.

Subclasses must implement the private methods #shell_name and #output_completions, and may override #word_break_chars.

Defined in the toys-core gem

Direct Known Subclasses

Bash, Zsh

Instance Method Summary collapse

Constructor Details

#initialize(completion, loader) ⇒ Base

Create a completion engine.

Parameters:



36
37
38
# File 'core-docs/toys/utils/completion_engine.rb', line 36

def initialize(completion, loader)
  # Source available in the toys-core gem
end

Instance Method Details

#runInteger

Perform completion in the current shell environment, which must include settings for the COMP_LINE and COMP_POINT environment variables. Prints out completion candidates and returns a status code indicating the result.

  • 0 for success.
  • 1 if completion failed.
  • 2 if the environment is incorrect (e.g. expected environment variables not found)

Returns:

  • (Integer)

    status code



53
54
55
# File 'core-docs/toys/utils/completion_engine.rb', line 53

def run
  # Source available in the toys-core gem
end