The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Complete::Util - General completion routine

VERSION

This document describes version 0.41 of Complete::Util (from Perl distribution Complete-Util), released on 2015-11-29.

DESCRIPTION

FUNCTIONS

arrayify_answer(%args) -> array

Make sure we return completion answer in array form.

This is the reverse of hashify_answer. It accepts a hash or an array. If it receives a hash, will return its words key.

This function is not exported by default, but exportable.

Arguments ('*' denotes required arguments):

  • arg* => array|hash

Return value: (array)

combine_answers($answers, ...) -> hash

Given two or more answers, combine them into one.

This function is useful if you want to provide a completion answer that is gathered from multiple sources. For example, say you are providing completion for the Perl tool cpanm, which accepts a filename (a tarball like *.tar.gz), a directory, or a module name. You can do something like this:

 combine_answers(
     complete_file(word=>$word, ci=>1),
     complete_module(word=>$word, ci=>1),
 );

If a completion answer has a metadata final set to true, then that answer is used as the final answer without any combining with the other answers.

This function is not exported by default, but exportable.

Arguments ('*' denotes required arguments):

  • answers* => array[hash|array]

Return value: (hash)

Return a combined completion answer. Words from each input answer will be combined, order preserved and duplicates removed. The other keys from each answer will be merged.

complete_array_elem(%args) -> array

Complete from array.

Will sort the resulting completion list, so you don't have to presort the array.

This function is not exported by default, but exportable.

Arguments ('*' denotes required arguments):

  • array* => array[str]

  • exclude => array

  • word* => str (default: "")

    Word to complete.

Return value: (array)

complete_hash_key(%args) -> array

Complete from hash keys.

This function is not exported by default, but exportable.

Arguments ('*' denotes required arguments):

  • hash* => hash

  • word* => str (default: "")

    Word to complete.

Return value: (array)

hashify_answer(%args) -> hash

Make sure we return completion answer in hash form.

This function accepts a hash or an array. If it receives an array, will convert the array into `{words=>$ary}' first to make sure the completion answer is in hash form.

Then will add keys from meta to the hash.

This function is not exported by default, but exportable.

Arguments ('*' denotes required arguments):

  • arg* => array|hash

  • meta => hash

    Metadata (extra keys) for the hash.

Return value: (hash)

SEE ALSO

Complete

If you want to do bash tab completion with Perl, take a look at Complete::Bash or Getopt::Long::Complete or Perinci::CmdLine.

Other Complete::* modules.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Complete-Util.

SOURCE

Source repository is at https://github.com/sharyanto/perl-SHARYANTO-Complete-Util.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Complete-Util

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.