NAME
Complete::Path - Complete path
VERSION
This document describes version 0.251 of Complete::Path (from Perl distribution Complete-Path), released on 2021-02-02.
DESCRIPTION
FUNCTIONS
complete_path
Usage:
complete_path(%args) -> array
Complete path.
Complete path, for anything path-like. Meant to be used as backend for other functions like Complete::File::complete_file
or Complete::Module::complete_module
. Provides features like case-insensitive matching, expanding intermediate paths, and case mapping.
Algorithm is to split path into path elements, then list items (using the supplied list_func
) and perform filtering (using the supplied filter_func
) at every level.
This function is not exported by default, but exportable.
Arguments ('*' denotes required arguments):
exclude_dir => bool
exclude_leaf => bool
filter_func => code
Provide extra filtering. Code will be given path and should return 1 if the item should be included in the final result or 0 if the item should be excluded.
is_dir_func => code
Function to check whether a path is a "dir".
Optional. You can provide this function to determine if an item is a "directory" (so its name can be suffixed with path separator). You do not need to do this if you already suffix names of "directories" with path separator in
list_func
.One reason you might want to provide this and not mark "directories" in
list_func
is when you want to do extra filtering withfilter_func
. Sometimes you do not want to suffix the names first (example: seecomplete_file
inComplete::File
).list_func* => code
Function to list the content of intermediate "dirs".
Code will be called with arguments: ($path, $cur_path_elem, $is_intermediate). Code should return an arrayref containing list of elements. "Directories" can be marked by ending the name with the path separator (see
path_sep
). Or, you can also provide anis_dir_func
function that will be consulted after filtering. If an item is a "directory" then its name will be suffixed with a path separator bycomplete_path()
.path_sep => str (default: "/")
recurse => bool
recurse_matching => str (default: "level-by-level")
starting_path* => str (default: "")
word* => str (default: "")
Word to complete.
Return value: (array)
ENVIRONMENT
COMPLETE_PATH_TRACE => bool
If set to true, will produce more log statements for debugging.
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Complete-Path.
SOURCE
Source repository is at https://github.com/perlancar/perl-Complete-Path.
BUGS
Please report any bugs or feature requests on the bugtracker website https://github.com/perlancar/perl-Complete-Path/issues
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.
SEE ALSO
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2021, 2017, 2016, 2015, 2014 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.