mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-09-22 03:40:47 +02:00
48952: expand octal codes for record separators in perl completion
This commit is contained in:
parent
a21c0b334c
commit
f4b2a03625
@ -1,5 +1,8 @@
|
||||
2021-06-02 Oliver Kiddle <opk@zsh.org>
|
||||
|
||||
* 48952: Completion/Unix/Command/_perl: expand octal codes for
|
||||
record separators in perl completion
|
||||
|
||||
* 48938 (minus _cdrdao changes): Completion/Unix/Command/_pandoc,
|
||||
Completion/Unix/Command/_bpython: remove vim fold and option markers
|
||||
|
||||
|
@ -1,14 +1,10 @@
|
||||
#compdef perl
|
||||
#
|
||||
# zsh completion code for the Perl interpreter
|
||||
# Adam Spiers <adam@spiers.net>
|
||||
#
|
||||
# Completions currently based on Perl 5.14.1.
|
||||
|
||||
typeset -A opt_args
|
||||
|
||||
_perl () {
|
||||
_arguments -s \
|
||||
'-0-[input record separator ($/)]:$/ in octal or hex (\0, if no argument)' \
|
||||
'-0-[input record separator ($/)]:: :_perl_input_seps' \
|
||||
'-a[autosplit mode with -n or -p (splits $_ into @F)]' \
|
||||
'-C-[control some unicode features]: :_perl_unicode_flags' \
|
||||
"-c[check syntax only (runs BEGIN and END blocks)]" \
|
||||
@ -24,7 +20,7 @@ _perl () {
|
||||
'-h[list help summary]' \
|
||||
'-i-[edit <> files in place (make backup if extension supplied)]:backup file extension: ' \
|
||||
'*-I-[specify @INC/#include directory (may be used more than once)]:include path:_files -/' \
|
||||
'-l-[enable line ending processing, specifies line terminator]:output record separator in octal: ' \
|
||||
'-l-[enable line ending processing, specifies line terminator]:: :_perl_output_seps' \
|
||||
\*{-m,-M}"-[module.. executes \`use/no module...' before executing your script]:module:_perl_m_opt" \
|
||||
"-n[assume 'while (<>) { ... }' loop around your script]" \
|
||||
"-p[assume loop like -n but print line also like sed]" \
|
||||
@ -63,6 +59,27 @@ _perl_m_opt () {
|
||||
fi
|
||||
}
|
||||
|
||||
_perl_input_seps() {
|
||||
if [[ $#PREFIX -eq 1 && $PREFIX != [0-9a-zA-Z] ]]; then
|
||||
# convert a non-octal or potential option character into octal representation
|
||||
compadd -i "$IPREFIX" -U $(( [##8] ##$PREFIX ))
|
||||
else
|
||||
_describe -x -t separators "input record separator, $/ in octal or hex (\0, if no argument) [\n]" '(
|
||||
0:paragraph\ mode
|
||||
777:slurp\ whole\ input\ files
|
||||
)' || _comp_mesg=yes
|
||||
fi
|
||||
}
|
||||
|
||||
_perl_output_seps() {
|
||||
if [[ $#PREFIX -eq 1 && $PREFIX != [0-9a-zA-Z] ]]; then
|
||||
# convert a non-octal or potential option character into octal representation
|
||||
compadd -i "$IPREFIX" -U $(( [##8] ##$PREFIX ))
|
||||
else
|
||||
_message -e separators "output record separator, $\\ in octal or hex [$/]"
|
||||
fi
|
||||
}
|
||||
|
||||
_perl_config_vars () {
|
||||
if (( ! $+_perl_config_vars )); then
|
||||
_perl_config_vars=( $(perl -MConfig -e 'print join("\n", keys %Config);') )
|
||||
@ -80,44 +97,48 @@ _perl_config_vars () {
|
||||
|
||||
_perl_unicode_flags () {
|
||||
_values -s '' 'unicode bitmask or flags' \
|
||||
'I[ 1 STDIN is assumed to be in UTF-8]' \
|
||||
'O[ 2 STDOUT will be in UTF-8]' \
|
||||
'E[ 4 STDERR will be in UTF-8]' \
|
||||
'S[ 7 I + O + E]' \
|
||||
'i[ 8 UTF-8 is the default PerlIO layer for input streams]' \
|
||||
'o[ 16 UTF-8 is the default PerlIO layer for output streams]' \
|
||||
'D[ 24 i + o]' \
|
||||
'(S)I[ 1 STDIN is assumed to be in UTF-8]' \
|
||||
'(S)O[ 2 STDOUT will be in UTF-8]' \
|
||||
'(S)E[ 4 STDERR will be in UTF-8]' \
|
||||
'(I O E)S[ 7 I + O + E]' \
|
||||
'(D)i[ 8 UTF-8 is the default PerlIO layer for input streams]' \
|
||||
'(D)o[ 16 UTF-8 is the default PerlIO layer for output streams]' \
|
||||
'(i o)D[ 24 i + o]' \
|
||||
'A[ 32 the @ARGV elements are expected to be strings encoded in UTF-8]' \
|
||||
'L[ 64 make "IOEioA" conditional on the locale environment variables]' \
|
||||
'a[256 set ${^UTF8CACHE} to -1, used for debugging]' \
|
||||
}
|
||||
|
||||
_perl_debugging_flags () {
|
||||
_values -s '' 'debugging bitmask or flags' \
|
||||
'p[ 1 Tokenizing and parsing (with v, displays parse stack)]' \
|
||||
's[ 2 Stack snapshots (with v, displays all stacks)]' \
|
||||
'l[ 4 Context (loop) stack processing]' \
|
||||
't[ 8 Trace execution]' \
|
||||
'o[ 16 Method and overloading resolution]' \
|
||||
'c[ 32 String/numeric conversions]' \
|
||||
'P[ 64 Print profiling info, preprocessor command for -P, source file input state]' \
|
||||
'm[ 128 Memory and SV allocation]' \
|
||||
'f[ 256 Format processing]' \
|
||||
'r[ 512 Regular expression parsing and execution]' \
|
||||
'x[ 1024 Syntax tree dump]' \
|
||||
'u[ 2048 Tainting checks]' \
|
||||
'U[ 4096 Unofficial, User hacking (reserved for private, unreleased use)]' \
|
||||
'H[ 8192 Hash dump -- usurps values()]' \
|
||||
'X[ 16384 Scratchpad allocation]' \
|
||||
'D[ 32768 Cleaning up]' \
|
||||
'S[ 66536 Thread synchronization]' \
|
||||
'T[ 131072 Tokenising]' \
|
||||
'R[ 262144 Include reference counts of dumped variables (eg when using -Ds)]' \
|
||||
'J[ 524288 Do not s,t,P-debug (Jump over) opcodes within package DB]' \
|
||||
'v[1048576 Verbose: use in conjunction with other flags]' \
|
||||
'C[2097152 Copy On Write]' \
|
||||
'A[4194304 Consistency checks on internal structures]' \
|
||||
'q[8388608 quiet - currently only suppresses the "EXECUTING" message]' \
|
||||
_values -s '' 'debug flag or bitmask' \
|
||||
'p[ 1 tokenizing and parsing (with v, display parse stack)]' \
|
||||
's[ 2 stack snapshots (with v, display all stacks)]' \
|
||||
'l[ 4 context (loop) stack processing]' \
|
||||
't[ 8 trace execution]' \
|
||||
'o[ 16 method and overload resolution]' \
|
||||
'c[ 32 string/numeric conversions]' \
|
||||
'P[ 64 print profiling info, source file input state]' \
|
||||
'm[ 128 memory and SV allocation]' \
|
||||
'f[ 256 format processing]' \
|
||||
'r[ 512 regular expression parsing and execution]' \
|
||||
'x[ 1024 syntax tree dump]' \
|
||||
'u[ 2048 tainting checks]' \
|
||||
'U[ 4096 unofficial, user hacking (reserved for private, unreleased use)]' \
|
||||
'X[ 16384 scratchpad allocation]' \
|
||||
'D[ 32768 cleaning up]' \
|
||||
'S[ 66536 Op slab allocation]' \
|
||||
'T[ 131072 tokenising]' \
|
||||
'R[ 262144 include reference counts of dumped variables (e.g. when using -Ds)]' \
|
||||
"J[ 524288 show s,t,P-debug (don't jump over) on opcodes within package DB]" \
|
||||
'v[ 1048576 verbose: use in conjunction with other flags]' \
|
||||
'C[ 2097152 copy-on-write]' \
|
||||
'A[ 4194304 consistency checks on internal structures]' \
|
||||
'q[ 8388608 quiet - currently only suppresses the "EXECUTING" message]' \
|
||||
'M[ 16777216 trace smart match resolution]' \
|
||||
'B[ 33554432 dump subroutine definitions, including special blocks like BEGIN]' \
|
||||
'L[ 67108864 trace locale-related info]' \
|
||||
'i[134217728 trace PerlIO layer processing]' \
|
||||
'y[268435456 trace y///, tr/// compilation and execution]'
|
||||
}
|
||||
|
||||
_perl "$@"
|
||||
|
Loading…
Reference in New Issue
Block a user