Revision history for Perinci-Sub-Complete
0.61 2014-08-06 (SHARYANTO)
- Provide 'words', 'cword', 'args' in 'extras' passed to completion
routines.
0.60 2014-07-27 (SHARYANTO)
- Now uses Complete::Getopt::Long instead of implementing completion
logic ourselves. The code is now much shorter and completion is now
more proper, fixing some deficiencies, e.g. inability to expect
option value for common option (like '--format=s' used by
Perinci::CmdLine).
[REMOVED FEATURES]
- To simplify code, remove argument 'custom_arg_completer' and
'custom_arg_element_completer', because 'custom_completer' (now
'completion') can assume the task.
- To be more generic, rename argument 'extra_completer_args' to
'extras'.
[INCOMPATIBLE CHANGES]
- To be more consistent with naming of completion routine in other
modules, rename argument from 'custom_completer' to 'completion'. It
must only be a coderef instead of coderef or hash of coderefs. Some
of the arguments it receives also change.
- To simplify code, no longer does parse_cmdline() when 'words' and
'cword' is not defined. Instead, now the args are required and you
need to parse cmdline yourself.
0.59 2014-07-25 (SHARYANTO)
- No functional changes.
- Adjust to Complete::Bash 0.09.
0.58 2014-07-24 (SHARYANTO)
- No functional changes.
- Some minor updates to tests.
- Use Data::Sah::Normalize instead of Data::Sah, to reduce deps.
0.57 2014-07-19 (SHARYANTO)
- No functional changes.
- Adjust to Complete::Bash 0.06.
0.56 2014-07-18 (SHARYANTO)
- [Bugfix] Excluded the option we're trying to complete ('cmd --help^'
or 'cmd -h^' didn't work because we excluded that option from the
list!).
0.55 2014-07-18 (SHARYANTO)
- Adjust to Perinci::Sub::GetArgs::Argv 0.44, which makes it more
convenient for us to do completion (get_args_from_argv() returns the
result from gen_getopt_long_spec_from_meta(), which contains all
sorts of goodies ready for use, like func.opts_by_arg,
func.opts_by_common, etc.
[INCOMPATIBLE CHANGES]
- To make it easy to work with the new get_args_from_argv(),
'common_opts' has been changed to be in the same format that that
function expects, which is a hash of Getopt::Long opt spec &
handlers.
0.54 2014-07-18 (SHARYANTO)
- No functional changes.
- Adjust to Complete::Bash 0.04.
0.53 2014-07-02 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- Rename function shell_complete_arg() to complete_cli_arg() for
consistency (all completion routine now uses /^complete_/).
0.52 2014-07-02 (SHARYANTO)
- No functional changes.
- Adjust to Complete::Util 0.12.
0.51 2014-07-01 (SHARYANTO)
- No functional changes.
- [Bugfix] Avoid Perl autovivification which cause an arg that has no
schema to have a schema of [].
0.50 2014-06-29 (SHARYANTO)
- No functional changes.
- Re-upload.
0.49 2014-06-29 (SHARYANTO)
- shell_complete_args() allows completion routines to return hash
(completion reply + metadata) instead of just array (completion
reply) (Rinci 1.1.52).
0.48 2014-06-27 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- shell_complete_args() now returns hashref instead of plain arrayref,
to return extra metadata to give hints to formatter (like
Complete::Util's format_shell_completion()) on how to properly
display/escape special characters to the shell. For example, if we're
completing environment variables (type=>'env') we don't need to
escape the dollar sign.
0.47 2014-06-26 (SHARYANTO)
- No functional changes.
- [Bug fix] Remove perl undef warning when arg doesn't have schema.
0.46 2014-06-25 (SHARYANTO)
- [Bug fix] Forgot to remove complete_array() in
complete_arg_{val,elem}().
0.45 2014-06-25 (SHARYANTO)
[INCOMPATIBLE CHANGES]
- No longer filter completion routine with complete_array(), it's now
up to the routine to filter it, this allows case-insensitive matching
or spelling correction.
0.44 2014-06-25 (SHARYANTO)
- No functional changes.
- Use Complete::Util which replaces SHARYANTO::Complete::Util.
0.43 2014-06-19 (SHARYANTO)
[ENHANCEMENTS]
- [silly] complete_from_schema(): Do a digit-by-digit completion for
float.
0.42 2014-06-19 (SHARYANTO)
[ENHANCEMENTS]
- [tweak] Don't switch to complete arg name when word starts with '-'
but opt before word expects value. For example, '--bool -^' will
switch to completing arg name, but '--str -^' will still try to
complete str's value because it expects value.
- [silly] complete_from_schema(): Do a digit-by-digit completion for
int.
0.41 2014-06-19 (SHARYANTO)
[BUG FIXES]
- Fix completion of array argument's element ('--ary ^' not yet
completed as element).
0.40 2014-06-19 (SHARYANTO)
- Third attempt, only riap_server_url is needed, riap_uri is optional
because the former can contain the latter.
0.39 2014-06-18 (SHARYANTO)
- Second attempt, we also need riap_server_url.
0.38 2014-06-18 (SHARYANTO)
[ENHANCEMENTS]
- Add riap_client & riap_uri arguments to
shell_complete_args,complete_arg_{val,elem} to allow requesting to
server when completion/element_completion coderef has been cleansed
into string (currently no tests yet).
0.37 2014-06-18 (SHARYANTO)
[ENHANCEMENTS]
- Don't die if arg spec's completion is not a coderef, decline instead.
0.36 2013-11-14 (SHARYANTO)
[ENHANCEMENTS]
- Implement argument element completion (Rinci 1.1.42).
- Add functions: complete_arg_elem, complete_from_schema.
[BUG FIXES]
- complete_arg_val() now returns undef when it can't find completion
from schema, so shell_complete_arg() can fallback to files.
- Complete greedy argument names, always (allow us to complete e.g.
--file F1 --file F2 etc).
0.35 2013-11-08 (SHARYANTO)
[BUG FIXES]
- No functional changes. Avoid CT failure reports by forcing
Perinci::Sub::Wrapper version.
0.34 2013-11-05 (SHARYANTO)
[ENHANCEMENTS]
- shell_complete_arg(): Accept 'extra_completer_args' argument to pass
to custom completion routines.
- Pass 'parent_args' argument to all custom completion routines
(previously only 'custom_completer' gets it, now
'custom_arg_completer' and 'completion' arg spec also get it).
- complete_arg_val(): observe 'is' clause.
- complete_arg_val(): complete [0, 1] for bool type.
[BUG FIXES]
- A few bug fixes.
0.33 2013-11-04 (SHARYANTO)
[ENHANCEMENTS]
- Allow 'custom_arg_completer' to decline with undef, just like
'custom_completer'.
[INCOMPATIBLE CHANGES]
- 'custom_arg_completer' is now expected to return arrayref instead of
list, just like the other completion routines.
0.32 2013-11-04 (SHARYANTO)
[REFACTORING]
- Rename dist from Perinci-BashComplete to Perinci-Sub-Complete because
I want to extract non-Perinci-related routines to another module and
I want to support other shells (someday).
- Split generic (non-Rinci/Riap-related) functions to
SHARYANTO-Complete-Util.
- Rename some functions.
0.31 2013-09-08 (SHARYANTO)
- No functional changes. Remove references to Perinci::Access::InProcess.
0.30 2013-08-10 (SHARYANTO)
[ENHANCEMENTS]
- Allow other line parser to be used, e.g. one that doesn't call out to
bash (currently undocumented).
0.30 2013-08-10 (SHARYANTO)
[ENHANCEMENTS]
- Allow other line parser to be used, e.g. one that doesn't call out to
bash (currently undocumented).
0.29 2012-06-22 (SHARYANTO)
[ENHANCEMENTS]
- Support --dry-run for function which has dry_run feature
0.28 2012-03-22 (SHARYANTO)
- Support with.dot function arguments
- Normalize --foo_bar into --foo-bar
0.27 2012-03-16 (SHARYANTO)
[FIXES]
- file completion inserted "." on every file/dir on the current dir.
- file completion cut intermediate dirs ("dir/a" completed into ["aa",
"ab"] instead of ["dir/aa", "dir/ab"]
[ENHANCEMENTS]
- Add trick in dir completion so that a single "dir/" match won't cause
bash to insert space after the "/".
0.26 2012-03-07 (SHARYANTO)
- No functional changes. Deal with test failure reports from CT (change
'replace $HOME with ~' test in t/_line_to_argv.t into a warning, as I
don't know the workaround yet).
0.25 2012-03-04 (SHARYANTO)
[BUG FIXES]
- More fixes to complete_file() so it more closely resembles bash
(symlink traversal is still different though).
0.24 2012-03-04 (SHARYANTO)
[BUG FIXES]
- complete_file() now behaves more like bash (though not nearly
so, due to glob()'s quirks): First it works with files/dirs outside
curdir. When word is '' or ends with '/', it uses readdir() to
include dotfiles. Otherwise it treats word as wildcard and glob() it.
0.23 2012-03-03 (SHARYANTO)
- No functional changes. Change implementation of _line_to_argv() from
calling Perl binary and dumping @ARGV, to using bash's own "$@". On
my Atom N570 netbook, this shaves time from about 0.1s to 0.03s.
0.22 2012-02-28 (SHARYANTO)
- No functional changes. Fix to avoid numerous CT failure reports
(calling perl binary using $^X instead of the hardcoded "perl"). I
haven't quoted $^X, hope that won't cause much trouble though.
0.21 2012-02-28 (SHARYANTO)
- Handle argument name completion of one-letter args and cmdline_aliases.
0.20 2012-02-27 (SHARYANTO)
- No functional changes. Make _line_to_argv() report errors (lots of
failure reports from CPAN Testers with apparently undef result from
_line_to_argv()).
0.19 2012-02-23 (SHARYANTO)
- Rename distribution from Sub-Spec-BashComplete to Perinci-BashComplete.
Follow Rinci v1.1 specification.
0.18 2011-11-23 (SHARYANTO)
- No functional changes. _parse_schema() moved from Data::Sah::Util to
normalize_schema() in Data::Sah.
0.17 2011-10-31 (SHARYANTO)
- No functional changes. _parse_schema() is moved from Sub::Spec::Utils
to Data::Sah::Util.
0.16 2011-08-25 (SHARYANTO)
- No functional changes. Adjust to Sub::Spec 0.15.
0.15 2011-07-26 (SHARYANTO)
- No functional changes. Adjust to use the new Sub::Spec::GetArgs::Argv.
0.14 2011-05-31 (SHARYANTO)
- No functional changes. Skip tests on systems which don't have bash.
0.13 2011-02-23 (SHARYANTO)
- Add missing dependency: Log::Any [CT].
0.12 2011-02-23 (SHARYANTO)
- Add missing dependency: Sub::Spec::CmdLine [CT].
0.11 2011-02-22 (SHARYANTO)
- Use Sub::Spec::Utils.
0.10 2011-02-19 (SHARYANTO)
- Incompatible change: arg_complete & custom_completer now expected to
return arrayref instead of list.
- More fixes for remaining_words for custom_completer.
0.09 2011-02-18 (SHARYANTO)
- Handle backspaced whitespace.
- Don't escape output (let completer program do it) to avoid double
escaping.
- Fix cword & remaining_words for custom_completer.
0.08 2011-02-18 (SHARYANTO)
- Backslash-escape output.
- Spec: cmdline_aliases renamed to arg_aliases.
0.07 2011-02-17 (SHARYANTO)
- bash_complete_spec_arg(): Also add --nofoo completion for bool
cmdline_aliases.
0.06 2011-02-17 (SHARYANTO)
- bash_complete_spec_arg(): Add 'custom_completer' option, parse
'cmdline_aliases' in arg spec.
0.05 2011-02-17 (SHARYANTO)
- Fix cword counting.
0.04 2011-02-16 (SHARYANTO)
- Small fix on detecting arg name/value.
0.03 2011-02-16 (SHARYANTO)
- Complete arg name instead of value if user type '-' (indicates he/she
wants arg name).
0.02 2011-02-16 (SHARYANTO)
- Fix dependency version (requires Sub::Spec::CmdLine 0.10+).
0.01 2011-02-16 (SHARYANTO)
- First release.