. -- PREFIX 'c' -- PREFIX 'opy/doc' -- PREFIX c -- PREFIX nonexistent/ -- PREFIX README -- PREFIX core -- PREFIX asdl/R -- PREFIX opy/doc -- PREFIX opy/doc/ -- PREFIX /bi -- PREFIX /tmp/oil_comp_test/ -- PREFIX ./b -- PREFIX i ..Running completion function 'f' with arguments ['', 'f', ''] comp.first , commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[f1 f2]) ... --- Case 3: 'noflags foo:bar --color=auto\t' with flags [] [] ['../oil/', '../oil_type_info.json', '../oil2/', '../oilshell.org__deploy/', '../oil-drwilly/', '../oil-sketch/', '../oilshell.org/', '../ostree/', '../oil.wiki/', '../oil-pr/'] py (UserSpec [TestAction] pred = at 0x7f13c0eedaa0>) rb (None, None) (command.FuncDef name: f body: (command.BraceGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[8]) op: Equal rhs: (word.Compound parts: [ (word_part.ArrayLiteral words: [ (word.Compound parts: [(word_part.Literal token:(token id:Lit_Chars val:f1 span_id:10))] ) (word.Compound parts: [(word_part.Literal token:(token id:Lit_Chars val:f2 span_id:12))] ) ] spids: [9] ) ] ) spids: [8] ) ] spids: [8] ) ] spids: [5] ) spids: [1 4] ) words: {(noflags)}{(foo) (Lit_Other ':') (bar)}{(--color) (Lit_Other '=') (auto) (Lit_CompDummy '')} redirects: tokens: <--color> alias_words: line: 'noflags foo:bar --color=auto' rl_slice from byte 0 to 28: 'noflags foo:bar --color=auto' t1 (token id:Lit_CompDummy val:'' span_id:9) t2 (token id:Lit_Chars val:auto span_id:8) Completing words partial_argv: ['noflags', 'foo:bar', '--color=auto'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:--color span_id:6)) (word_part.Literal token:(token id:Lit_Other val:'=' span_id:7)) (word_part.Literal token:(token id:Lit_Chars val:auto span_id:8)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:9)) ] ) display_pos 16 Completing 'noflags foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with arguments ['noflags', '--color=auto', 'foo:bar'] ok comp.first noflags, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[dummy]) Found 1 match for 'noflags foo:bar --color=auto' in 3 ms matches = ['noflags foo:bar dummy '] --- Case 4: 'noflags "foo:bar|" --color=auto\t' with flags [] words: {(noflags)}{(DQ ('foo:bar|'))}{(--color) (Lit_Other '=') (auto) (Lit_CompDummy '')} redirects: tokens: <'foo:bar|'><--color> alias_words: line: 'noflags "foo:bar|" --color=auto' rl_slice from byte 0 to 31: 'noflags "foo:bar|" --color=auto' t1 (token id:Lit_CompDummy val:'' span_id:9) t2 (token id:Lit_Chars val:auto span_id:8) Completing words partial_argv: ['noflags', 'foo:bar|', '--color=auto'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:--color span_id:6)) (word_part.Literal token:(token id:Lit_Other val:'=' span_id:7)) (word_part.Literal token:(token id:Lit_Chars val:auto span_id:8)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:9)) ] ) display_pos 19 Completing 'noflags "foo:bar|" --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with arguments ['noflags', '--color=auto', 'foo:bar|'] ok Non-fatal assertion failed: COMP_WORDS: Expected noflags "foo:bar|" --color = auto, got noflags foo : bar| --color = auto Non-fatal assertion failed: COMP_CWORD: Expected 4, got 6 Non-fatal assertion failed: COMP_WORDS: Expected noflags "foo:bar|" --color = auto, got noflags foo : bar| --color = auto Non-fatal assertion failed: cword: Expected 4, got 6 comp.first noflags, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[dummy]) Found 1 match for 'noflags "foo:bar|" --color=auto' in 2 ms matches = ['noflags "foo:bar|" dummy '] --- Case 5: 'noflags "foo:bar|\t' with flags [] words: redirects: tokens: <'foo:bar|'> alias_words: line: 'noflags "foo:bar|' rl_slice from byte 0 to 17: 'noflags "foo:bar|' t1 (token id:Lit_CompDummy val:'' span_id:4) t2 (token id:Lit_Chars val:'foo:bar|' span_id:3) Didn't find anything to complete matches = [] --- Case 6: 's foo:bar --color=auto\t' with flags ['-s'] words: {(s)}{(foo) (Lit_Other ':') (bar)}{(--color) (Lit_Other '=') (auto) (Lit_CompDummy '')} redirects: tokens: <--color> alias_words: line: 's foo:bar --color=auto' rl_slice from byte 0 to 22: 's foo:bar --color=auto' t1 (token id:Lit_CompDummy val:'' span_id:9) t2 (token id:Lit_Chars val:auto span_id:8) Completing words partial_argv: ['s', 'foo:bar', '--color=auto'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:--color span_id:6)) (word_part.Literal token:(token id:Lit_Other val:'=' span_id:7)) (word_part.Literal token:(token id:Lit_Chars val:auto span_id:8)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:9)) ] ) display_pos 10 Completing 's foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with arguments ['s', '--color=auto', 'foo:bar'] ok comp.first s, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[dummy]) Found 1 match for 's foo:bar --color=auto' in 3 ms matches = ['s foo:bar dummy '] --- Case 7: 's foo:bar --color auto\t' with flags ['-s'] words: {(s)}{(foo) (Lit_Other ':') (bar)}{(--color)}{(auto) (Lit_CompDummy '')} redirects: tokens: <--color> alias_words: line: 's foo:bar --color auto' rl_slice from byte 0 to 22: 's foo:bar --color auto' t1 (token id:Lit_CompDummy val:'' span_id:9) t2 (token id:Lit_Chars val:auto span_id:8) Completing words partial_argv: ['s', 'foo:bar', '--color', 'auto'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:auto span_id:8)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:9)) ] ) display_pos 18 Completing 's foo:bar --color auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with arguments ['s', 'auto', '--color'] ok comp.first s, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[dummy]) Found 1 match for 's foo:bar --color auto' in 3 ms matches = ['s foo:bar --color dummy '] --- Case 8: 'n foo:bar --color=auto\t' with flags ['-n', '='] words: {(n)}{(foo) (Lit_Other ':') (bar)}{(--color) (Lit_Other '=') (auto) (Lit_CompDummy '')} redirects: tokens: <--color> alias_words: line: 'n foo:bar --color=auto' rl_slice from byte 0 to 22: 'n foo:bar --color=auto' t1 (token id:Lit_CompDummy val:'' span_id:9) t2 (token id:Lit_Chars val:auto span_id:8) Completing words partial_argv: ['n', 'foo:bar', '--color=auto'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:--color span_id:6)) (word_part.Literal token:(token id:Lit_Other val:'=' span_id:7)) (word_part.Literal token:(token id:Lit_Chars val:auto span_id:8)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:9)) ] ) display_pos 10 Completing 'n foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with arguments ['n', '--color=auto', 'foo:bar'] ok comp.first n, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[dummy]) Found 1 match for 'n foo:bar --color=auto' in 3 ms matches = ['n foo:bar dummy '] --- Case 9: 'n2 foo:bar --color=auto\t' with flags ['-n', ':='] words: {(n2)}{(foo) (Lit_Other ':') (bar)}{(--color) (Lit_Other '=') (auto) (Lit_CompDummy '')} redirects: tokens: <--color> alias_words: line: 'n2 foo:bar --color=auto' rl_slice from byte 0 to 23: 'n2 foo:bar --color=auto' t1 (token id:Lit_CompDummy val:'' span_id:9) t2 (token id:Lit_Chars val:auto span_id:8) Completing words partial_argv: ['n2', 'foo:bar', '--color=auto'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:--color span_id:6)) (word_part.Literal token:(token id:Lit_Other val:'=' span_id:7)) (word_part.Literal token:(token id:Lit_Chars val:auto span_id:8)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:9)) ] ) display_pos 11 Completing 'n2 foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with arguments ['n2', '--color=auto', 'foo:bar'] ok comp.first n2, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[dummy]) Found 1 match for 'n2 foo:bar --color=auto' in 3 ms matches = ['n2 foo:bar dummy '] Ran 10 cases . words: {(ls)}{(Lit_CompDummy '')} redirects: tokens: alias_words: line: 'ls ' rl_slice from byte 0 to 3: 'ls ' t1 (token id:Lit_CompDummy val:'' span_id:1641) t2 (token id:WS_Space val:' ' span_id:1640) Completing words partial_argv: ['ls', ''] alias_words: [] words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:1641))]) display_pos 3 Completing 'ls ' ... (Ctrl-C to cancel) Found 2 matches for 'ls ' in 0 ms words: {(ll)}{(Lit_CompDummy '')} redirects: tokens: alias_words: {(ls)}{(-l)} line: 'll ' rl_slice from byte 0 to 3: 'll ' t1 (token id:Lit_CompDummy val:'' span_id:1645) t2 (token id:WS_Space val:' ' span_id:1644) Completing words partial_argv: ['ll', ''] alias_words: [(word.Compound parts:[(word_part.Literal token:(token id:Lit_Chars val:ls span_id:1647))]), (word.Compound parts:[(word_part.Literal token:(token id:Lit_Chars val:-l span_id:1649))])] alias_first: ls words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:1645))]) display_pos 3 Completing 'll ' ... (Ctrl-C to cancel) Found 2 matches for 'll ' in 0 ms words: {(ll_classify)}{(Lit_CompDummy '')} redirects: tokens: alias_words: {(ls)}{(-l)}{(--classify)} line: 'll_classify ' rl_slice from byte 0 to 12: 'll_classify ' t1 (token id:Lit_CompDummy val:'' span_id:1654) t2 (token id:WS_Space val:' ' span_id:1653) Completing words partial_argv: ['ll_classify', ''] alias_words: [(word.Compound parts:[(word_part.Literal token:(token id:Lit_Chars val:ls span_id:1661))]), (word.Compound parts:[(word_part.Literal token:(token id:Lit_Chars val:-l span_id:1663))]), (word.Compound parts:[(word_part.Literal token:(token id:Lit_Chars val:--classify span_id:1665))])] alias_first: ls words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:1654))]) display_pos 12 Completing 'll_classify ' ... (Ctrl-C to cancel) Found 2 matches for 'll_classify ' in 0 ms words: {(ll_trailing)}{(Lit_CompDummy '')} redirects: tokens: alias_words: {(ls)}{(-l)} line: 'll_trailing ' rl_slice from byte 0 to 12: 'll_trailing ' t1 (token id:Lit_CompDummy val:'' span_id:1670) t2 (token id:WS_Space val:' ' span_id:1669) Completing words partial_argv: ['ll_trailing', ''] alias_words: [(word.Compound parts:[(word_part.Literal token:(token id:Lit_Chars val:ls span_id:1672))]), (word.Compound parts:[(word_part.Literal token:(token id:Lit_Chars val:-l span_id:1674))])] alias_first: ls words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:1670))]) display_pos 12 Completing 'll_trailing ' ... (Ctrl-C to cancel) Found 2 matches for 'll_trailing ' in 0 ms words: {(ll_own_completion)}{(Lit_CompDummy '')} redirects: tokens: alias_words: {(ls)}{(-l)} line: 'll_own_completion ' rl_slice from byte 0 to 18: 'll_own_completion ' t1 (token id:Lit_CompDummy val:'' span_id:1679) t2 (token id:WS_Space val:' ' span_id:1678) Completing words partial_argv: ['ll_own_completion', ''] alias_words: [(word.Compound parts:[(word_part.Literal token:(token id:Lit_Chars val:ls span_id:1681))]), (word.Compound parts:[(word_part.Literal token:(token id:Lit_Chars val:-l span_id:1683))])] alias_first: ls words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:1679))]) display_pos 18 Completing 'll_own_completion ' ... (Ctrl-C to cancel) Found 2 matches for 'll_own_completion ' in 0 ms .. words: {(gre) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'gre' rl_slice from byte 0 to 3: 'gre' t1 (token id:Lit_CompDummy val:'' span_id:1) t2 (token id:Lit_Chars val:gre span_id:0) Completing words partial_argv: ['gre'] alias_words: [] ** DISPLAY_POS = 0 Completing 'gre' ... (Ctrl-C to cancel) Found 1 match for 'gre' in 0 ms words: {(gre) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'echo $(gre' rl_slice from byte 0 to 10: 'echo $(gre' t1 (token id:Lit_CompDummy val:'' span_id:7) t2 (token id:Lit_Chars val:gre span_id:6) Completing words partial_argv: ['gre'] alias_words: [] ** DISPLAY_POS = 7 Completing 'echo $(gre' ... (Ctrl-C to cancel) Found 1 match for 'echo $(gre' in 0 ms words: {(gre) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'echo `gre' rl_slice from byte 0 to 9: 'echo `gre' t1 (token id:Lit_CompDummy val:'' span_id:13) t2 (token id:Lit_Chars val:gre span_id:12) Completing words partial_argv: ['gre'] alias_words: [] ** DISPLAY_POS = 6 Completing 'echo `gre' ... (Ctrl-C to cancel) Found 1 match for 'echo `gre' in 0 ms words: {(grep)}{(f) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'echo `grep f' rl_slice from byte 0 to 12: 'echo `grep f' t1 (token id:Lit_CompDummy val:'' span_id:21) t2 (token id:Lit_Chars val:f span_id:20) Completing words partial_argv: ['grep', 'f'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:f span_id:20)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:21)) ] ) display_pos 11 Completing 'echo `grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo `grep f' in 0 ms . words: {(echo)}{(Lit_TildeLike '~r') (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'echo ~r' rl_slice from byte 0 to 7: 'echo ~r' t1 (token id:Lit_CompDummy val:'' span_id:3) t2 (token id:Lit_TildeLike val:'~r' span_id:2) words: {(echo)}{(Lit_TildeLike '~') (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'echo ~' rl_slice from byte 0 to 6: 'echo ~' t1 (token id:Lit_CompDummy val:'' span_id:8) t2 (token id:Lit_TildeLike val:'~' span_id:7) words: {(echo)}{(a) (Lit_TildeLike '~') (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'echo a~' rl_slice from byte 0 to 7: 'echo a~' t1 (token id:Lit_CompDummy val:'' span_id:14) t2 (token id:Lit_TildeLike val:'~' span_id:13) Completing words partial_argv: ['echo', 'a~'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:a span_id:12)) (word_part.Literal token:(token id:Lit_TildeLike val:'~' span_id:13)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:14)) ] ) display_pos 5 Completing 'echo a~' ... (Ctrl-C to cancel) Found 0 matches for 'echo a~' in 0 ms . words: {(cat)} redirects: (redir.Redir op: fd:16777215 arg_word:{(b) (Lit_CompDummy '')}) tokens: alias_words: line: 'cat < b' rl_slice from byte 0 to 7: 'cat < b' t1 (token id:Lit_CompDummy val:'' span_id:5) t2 (token id:Lit_Chars val:b span_id:4) Completing redirect arg words: {(echo)} redirects: (redir.Redir op:&'> fd:16777215 arg_word:{(Lit_CompDummy '')}) tokens: &'> alias_words: line: 'echo >&' rl_slice from byte 0 to 7: 'echo >&' t1 (token id:Lit_CompDummy val:'' span_id:10) t2 (token id:Redir_GreatAnd val:'>&' span_id:9) Didn't find anything to complete . words: {(echo)}{(Lit_Other '$') (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'echo $' rl_slice from byte 0 to 6: 'echo $' t1 (token id:Lit_CompDummy val:'' span_id:3) t2 (token id:Lit_Other val:'$' span_id:2) words: {(echo)}{($ VSub_DollarName '$P') (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'echo $P' rl_slice from byte 0 to 7: 'echo $P' t1 (token id:Lit_CompDummy val:'' span_id:8) t2 (token id:VSub_DollarName val:'$P' span_id:7) words: redirects: tokens: <_> alias_words: line: 'echo _${' rl_slice from byte 0 to 8: 'echo _${' t1 (token id:Lit_CompDummy val:'' span_id:14) t2 (token id:Left_DollarBrace val:'${' span_id:13) words: redirects: tokens: alias_words: line: 'echo ${P' rl_slice from byte 0 to 8: 'echo ${P' t1 (token id:Lit_CompDummy val:'' span_id:19) t2 (token id:VSub_Name val:P span_id:18) words: redirects: tokens: alias_words: line: 'echo ${undef:-$P' rl_slice from byte 0 to 16: 'echo ${undef:-$P' t1 (token id:Lit_CompDummy val:'' span_id:26) t2 (token id:VSub_DollarName val:'$P' span_id:25) words: redirects: tokens: alias_words: line: 'echo ${undef:-$' rl_slice from byte 0 to 15: 'echo ${undef:-$' t1 (token id:Lit_CompDummy val:'' span_id:34) t2 (token id:Lit_Other val:'$' span_id:33) words: redirects: tokens: alias_words: line: 'echo "$' rl_slice from byte 0 to 7: 'echo "$' t1 (token id:Lit_CompDummy val:'' span_id:40) t2 (token id:Lit_Other val:'$' span_id:39) words: redirects: tokens: alias_words: line: 'echo "$P' rl_slice from byte 0 to 8: 'echo "$P' t1 (token id:Lit_CompDummy val:'' span_id:46) t2 (token id:VSub_DollarName val:'$P' span_id:45) words: redirects: tokens: alias_words: line: 'echo "${#P' rl_slice from byte 0 to 10: 'echo "${#P' t1 (token id:Lit_CompDummy val:'' span_id:54) t2 (token id:VSub_Name val:P span_id:53) words: redirects: tokens: alias_words: line: 'echo "$((PWD +P' rl_slice from byte 0 to 15: 'echo "$((PWD +P' t1 (token id:Lit_CompDummy val:'' span_id:63) t2 (token id:Lit_ArithVarLike val:P span_id:62) words: redirects: tokens: alias_words: line: 'echo "$(( $P' rl_slice from byte 0 to 12: 'echo "$(( $P' t1 (token id:Lit_CompDummy val:'' span_id:71) t2 (token id:VSub_DollarName val:'$P' span_id:70) . words: {(grep)}{(f) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'grep f' rl_slice from byte 0 to 6: 'grep f' t1 (token id:Lit_CompDummy val:'' span_id:3) t2 (token id:Lit_Chars val:f span_id:2) Completing words partial_argv: ['grep', 'f'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:f span_id:2)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:3)) ] ) display_pos 5 Completing 'grep f' ... (Ctrl-C to cancel) Found 2 matches for 'grep f' in 0 ms words: {(grep)}{(g) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'grep g' rl_slice from byte 0 to 6: 'grep g' t1 (token id:Lit_CompDummy val:'' span_id:8) t2 (token id:Lit_Chars val:g span_id:7) Completing words partial_argv: ['grep', 'g'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:g span_id:7)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:8)) ] ) display_pos 5 Completing 'grep g' ... (Ctrl-C to cancel) Found 0 matches for 'grep g' in 0 ms words: {(g) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'g' rl_slice from byte 0 to 1: 'g' t1 (token id:Lit_CompDummy val:'' span_id:11) t2 (token id:Lit_Chars val:g span_id:10) Completing words partial_argv: ['g'] alias_words: [] ** DISPLAY_POS = 0 Completing 'g' ... (Ctrl-C to cancel) Found 1 match for 'g' in 0 ms words: {(Lit_CompDummy '')} redirects: tokens: alias_words: line: '' rl_slice from byte 0 to 0: '' t1 (token id:Lit_CompDummy val:'' span_id:13) t2 None Completing words partial_argv: [''] alias_words: [] ** DISPLAY_POS = 0 Completing '' ... (Ctrl-C to cancel) Found 3 matches for '' in 0 ms words: {(grep)}{(f) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'echo hi || grep f' rl_slice from byte 0 to 17: 'echo hi || grep f' t1 (token id:Lit_CompDummy val:'' span_id:24) t2 (token id:Lit_Chars val:f span_id:23) Completing words partial_argv: ['grep', 'f'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:f span_id:23)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:24)) ] ) display_pos 16 Completing 'echo hi || grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo hi || grep f' in 0 ms words: {(grep)}{(f) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'echo hi; grep f' rl_slice from byte 0 to 15: 'echo hi; grep f' t1 (token id:Lit_CompDummy val:'' span_id:34) t2 (token id:Lit_Chars val:f span_id:33) Completing words partial_argv: ['grep', 'f'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:f span_id:33)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:34)) ] ) display_pos 14 Completing 'echo hi; grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo hi; grep f' in 0 ms words: {(grep)}{(f) (Lit_CompDummy '')} redirects: tokens: alias_words: line: '{ echo hi; grep f' rl_slice from byte 0 to 17: '{ echo hi; grep f' t1 (token id:Lit_CompDummy val:'' span_id:46) t2 (token id:Lit_Chars val:f span_id:45) Completing words partial_argv: ['grep', 'f'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:f span_id:45)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:46)) ] ) display_pos 16 Completing '{ echo hi; grep f' ... (Ctrl-C to cancel) Found 2 matches for '{ echo hi; grep f' in 0 ms words: redirects: tokens: alias_words: line: 'var=$v' rl_slice from byte 0 to 6: 'var=$v' t1 (token id:Lit_CompDummy val:'' span_id:50) t2 (token id:VSub_DollarName val:'$v' span_id:49) words: {(local)}{(Lit_VarLike 'var=') ($ VSub_DollarName '$v') (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'local var=$v' rl_slice from byte 0 to 12: 'local var=$v' t1 (token id:Lit_CompDummy val:'' span_id:56) t2 (token id:VSub_DollarName val:'$v' span_id:55) . words: {(bad)}{(Lit_CompDummy '')} redirects: tokens: alias_words: line: 'bad ' rl_slice from byte 0 to 4: 'bad ' t1 (token id:Lit_CompDummy val:'' span_id:180) t2 (token id:WS_Space val:' ' span_id:179) Completing words partial_argv: ['bad', ''] alias_words: [] words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:180))]) display_pos 4 Completing 'bad ' ... (Ctrl-C to cancel) Running completion function '_bad' with arguments ['bad', '', 'bad'] _bad returning 124 comp.first bad, commands_changed: [] Function '_bad' returned 124, but the completion spec for 'bad' wasn't changed Found 0 matches for 'bad ' in 0 ms words: {(both)}{(Lit_CompDummy '')} redirects: tokens: alias_words: line: 'both ' rl_slice from byte 0 to 5: 'both ' t1 (token id:Lit_CompDummy val:'' span_id:184) t2 (token id:WS_Space val:' ' span_id:183) Completing words partial_argv: ['both', ''] alias_words: [] words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:184))]) display_pos 5 Completing 'both ' ... (Ctrl-C to cancel) Running completion function '_both' with arguments ['both', '', 'both'] comp.first both, commands_changed: [] Function '_both' returned 124, but the completion spec for 'both' wasn't changed Found 0 matches for 'both ' in 0 ms words: {(both2)}{(Lit_CompDummy '')} redirects: tokens: alias_words: line: 'both2 ' rl_slice from byte 0 to 6: 'both2 ' t1 (token id:Lit_CompDummy val:'' span_id:188) t2 (token id:WS_Space val:' ' span_id:187) Completing words partial_argv: ['both2', ''] alias_words: [] words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:188))]) display_pos 6 Completing 'both2 ' ... (Ctrl-C to cancel) Running completion function '_both2' with arguments ['both2', '', 'both2'] comp.first both2, commands_changed: ['both2'] Got status 124 from '_both2' and ['both2'] commands changed Got 124, trying again ... Completing 'both2 ' ... (Ctrl-C to cancel) Found 2 matches for 'both2 ' in 0 ms . words: {(mywords)}{(t) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'mywords t' rl_slice from byte 0 to 9: 'mywords t' t1 (token id:Lit_CompDummy val:'' span_id:3) t2 (token id:Lit_Chars val:t span_id:2) Completing words partial_argv: ['mywords', 't'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:t span_id:2)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:3)) ] ) display_pos 8 Completing 'mywords t' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with arguments ['mywords', 't', 'mywords'] comp.first mywords, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[two three]) Found 2 matches for 'mywords t' in 0 ms words: {(mywords_nospace)}{(t) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'mywords_nospace t' rl_slice from byte 0 to 17: 'mywords_nospace t' t1 (token id:Lit_CompDummy val:'' span_id:8) t2 (token id:Lit_Chars val:t span_id:7) Completing words partial_argv: ['mywords_nospace', 't'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:t span_id:7)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:8)) ] ) display_pos 16 Completing 'mywords_nospace t' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with arguments ['mywords_nospace', 't', 'mywords_nospace'] comp.first mywords_nospace, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[two three]) Found 2 matches for 'mywords_nospace t' in 0 ms words: {(flagX)}{(Lit_CompDummy '')} redirects: tokens: alias_words: line: 'flagX ' rl_slice from byte 0 to 6: 'flagX ' t1 (token id:Lit_CompDummy val:'' span_id:12) t2 (token id:WS_Space val:' ' span_id:11) Completing words partial_argv: ['flagX', ''] alias_words: [] words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:12))]) display_pos 6 Completing 'flagX ' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with arguments ['flagX', '', 'flagX'] comp.first flagX, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[one two three bin]) Found 2 matches for 'flagX ' in 0 ms words: {(flagX_bang)}{(Lit_CompDummy '')} redirects: tokens: alias_words: line: 'flagX_bang ' rl_slice from byte 0 to 11: 'flagX_bang ' t1 (token id:Lit_CompDummy val:'' span_id:16) t2 (token id:WS_Space val:' ' span_id:15) Completing words partial_argv: ['flagX_bang', ''] alias_words: [] words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:16))]) display_pos 11 Completing 'flagX_bang ' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with arguments ['flagX_bang', '', 'flagX_bang'] comp.first flagX_bang, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[one two three bin]) Found 2 matches for 'flagX_bang ' in 0 ms words: {(flagX_prefix)}{(Lit_CompDummy '')} redirects: tokens: alias_words: line: 'flagX_prefix ' rl_slice from byte 0 to 13: 'flagX_prefix ' t1 (token id:Lit_CompDummy val:'' span_id:20) t2 (token id:WS_Space val:' ' span_id:19) Completing words partial_argv: ['flagX_prefix', ''] alias_words: [] words[-1]: (word.Compound parts:[(word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:20))]) display_pos 13 Completing 'flagX_prefix ' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with arguments ['flagX_prefix', '', 'flagX_prefix'] comp.first flagX_prefix, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[one two three bin]) Found 2 matches for 'flagX_prefix ' in 0 ms words: {(prefix_plusdirs)}{(b) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'prefix_plusdirs b' rl_slice from byte 0 to 17: 'prefix_plusdirs b' t1 (token id:Lit_CompDummy val:'' span_id:25) t2 (token id:Lit_Chars val:b span_id:24) Completing words partial_argv: ['prefix_plusdirs', 'b'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:b span_id:24)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:25)) ] ) display_pos 16 Completing 'prefix_plusdirs b' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with arguments ['prefix_plusdirs', 'b', 'prefix_plusdirs'] comp.first prefix_plusdirs, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[bin]) Found 1 match for 'prefix_plusdirs b' in 0 ms words: {(flagX_plusdirs)}{(b) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'flagX_plusdirs b' rl_slice from byte 0 to 16: 'flagX_plusdirs b' t1 (token id:Lit_CompDummy val:'' span_id:30) t2 (token id:Lit_Chars val:b span_id:29) Completing words partial_argv: ['flagX_plusdirs', 'b'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:b span_id:29)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:30)) ] ) display_pos 15 Completing 'flagX_plusdirs b' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with arguments ['flagX_plusdirs', 'b', 'flagX_plusdirs'] comp.first flagX_plusdirs, commands_changed: [] COMPREPLY (value.MaybeStrArray strs:[bin]) Found 0 matches for 'flagX_plusdirs b' in 0 ms words: {(prefix_dirnames)}{(b) (Lit_CompDummy '')} redirects: tokens: alias_words: line: 'prefix_dirnames b' rl_slice from byte 0 to 17: 'prefix_dirnames b' t1 (token id:Lit_CompDummy val:'' span_id:35) t2 (token id:Lit_Chars val:b span_id:34) Completing words partial_argv: ['prefix_dirnames', 'b'] alias_words: [] words[-1]: (word.Compound parts: [ (word_part.Literal token:(token id:Lit_Chars val:b span_id:34)) (word_part.Literal token:(token id:Lit_CompDummy val:'' span_id:35)) ] ) display_pos 16 Completing 'prefix_dirnames b' ... (Ctrl-C to cancel) Found 0 matches for 'prefix_dirnames b' in 0 ms . ---------------------------------------------------------------------- Ran 16 tests in 0.163s OK