Complete::Path - Complete path
This document describes version 0.251 of Complete::Path (from Perl distribution Complete-Path), released on 2021-02-02.
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.
Complete::File::complete_file
Complete::Module::complete_module
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.
list_func
filter_func
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 with filter_func. Sometimes you do not want to suffix the names first (example: see complete_file in Complete::File).
complete_file
Complete::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 an is_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 by complete_path().
path_sep
is_dir_func
complete_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)
If set to true, will produce more log statements for debugging.
Please visit the project's homepage at https://metacpan.org/release/Complete-Path.
Source repository is at https://github.com/perlancar/perl-Complete-Path.
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.
Complete
perlancar <perlancar@cpan.org>
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.
To install Complete::Path, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Complete::Path
CPAN shell
perl -MCPAN -e shell install Complete::Path
For more information on module installation, please visit the detailed CPAN module installation guide.