NAME
Tickit::Widget::Entry::Plugin::Completion - add word-completion logic
to a Tickit::Widget::Entry
SYNOPSIS
use Tickit::Widget::Entry;
use Tickit::Widget::Entry::Plugin::Completion;
my $entry = Tickit::Widget::Entry->new( ... );
Tickit::Widget::Entry::Plugin::Completion->apply( $entry,
words => [ make_words() ],
);
...
DESCRIPTION
This package applies code to a Tickit::Widget::Entry instance to
implement word-completion logic while editing. This logic is activated
by pressing the <Tab> key.
If the word currently being edited has a unique match in the list of
words, then the word is completed entirely, followed by a space.
If there are multiple words that could complete from the word at the
cursor, then a popup menu is presented showing the next available
characters or matches. The user can continue typing more characters to
narrow down the choice until a unique match is found.
METHODS
apply
Tickit::Widget::Entry::Plugin::Completion->apply( $entry, %params )
Applies the plugin code to the given Tickit::Widget::Entry instance.
The following named parameters are recognised
gen_words => CODE
@words = $gen_words->( %args )
A CODE reference to a subroutine used to generate the list of words
at the current position. It is passed the following name/value pairs
to assist it:
word => STRING
The partial word currently being completed.
wordpos => INT
The position of the beginning of the word, within the line. Will be
0 for the initial word of the line.
entry => Tickit::Widget::Entry
The underlying entry widget instance.
words => ARRAY
A shortcut to providing gen_words; a reference to an array containing
all the possible words, in no particular order, that are offered for
completion.
use_popup => BOOL
Optional. If false, do not display a popup menu. Defaults to true.
When this is disabled, the completion logic will apply longest-prefix
matching on the set of available words, but will not otherwise
display or offer any interactive UI on the list of matches.
ignore_case => BOOL
Optional. If true, word matching will be performed ignoring case, by
using the /i regexp flag. Defaults to false. When the completion
logic has selected a word to insert, it may change the case of the
text already in the buffer to match the completion word.
append_after_word => STRING
Optional. If set, append this string after a successful unique match.
Defaults to a single space.
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>