Я знаю, как использовать пользовательские функции завершения с помощью Term :: Readline :: Gnu (Perl), например.Термин :: Readline :: Gnu - как использовать complete_internal (если возможно ..)?
str list_completion_function(str text, int state)
http://search.cpan.org/dist/Term-ReadLine-Gnu/Gnu.pm#Custom_Completion https://cnswww.cns.cwru.edu/php/chet/readline/readline.html#SEC47
$attribs->{attempted_completion_function } = sub {
my ($text, $line, $start, $end) = @_;
my @cmds = ('one', 'two', 'three');
$attribs->{completion_word} = \@cmds;
return $term->completion_matches($text, $attribs->{'list_completion_function'});
};
..но я абсолютно не понимаю, как использовать complete_internal:
int rl_complete_internal(int what_to_do = TAB)
http://search.cpan.org/dist/Term-ReadLine-Gnu/Gnu.pm#Custom_Completion
С GNU Readline Docs:
Значение ?' means list the possible completions.
TAB 'означает выполнить стандартное завершение. *' means insert all of the possible completions.
! ' означает, что для отображения всех возможных завершений (...)
https://cnswww.cns.cwru.edu/php/chet/readline/readline.html#SEC47
Это звучит для меня как Гну-Readline имеет «CISCO типа»/маршрутизатор-кли режим - но, возможно, я полностью получить что-то Неправильно здесь? И если есть что-то подобное; как я могу передать данные пользовательского завершения, используя Term :: Readline :: Gnu?
Я искал SO, код GitHub, Google и т. Д., И я почти наверняка пропустил (понял) что-то. было бы здорово, если бы вы могли осветить меня.
Большое спасибо Håkon! Я был в отпуске и держался подальше от клавиатуры - внимательно рассмотрю ваш код в течение следующих дней, а затем дадим обратную связь. –