Skip to content

Commit eb1936e

Browse files
committed
Made tokens_for_completion() method public since a couple of our examples use it
1 parent 652122f commit eb1936e

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

cmd2/cmd2.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,7 @@ def _reset_completion_defaults(self) -> None:
724724
# noinspection PyUnresolvedReferences
725725
readline.rl.mode._display_completions = self._display_matches_pyreadline
726726

727-
def _tokens_for_completion(self, line: str, begidx: int, endidx: int) -> Tuple[List[str], List[str]]:
727+
def tokens_for_completion(self, line: str, begidx: int, endidx: int) -> Tuple[List[str], List[str]]:
728728
"""
729729
Used by tab completion functions to get all tokens through the one being completed
730730
:param line: the current input line with leading whitespace removed
@@ -938,7 +938,7 @@ def flag_based_complete(self, text: str, line: str, begidx: int, endidx: int,
938938
:return: a list of possible tab completions
939939
"""
940940
# Get all tokens through the one being completed
941-
tokens, _ = self._tokens_for_completion(line, begidx, endidx)
941+
tokens, _ = self.tokens_for_completion(line, begidx, endidx)
942942
if not tokens:
943943
return []
944944

@@ -980,7 +980,7 @@ def index_based_complete(self, text: str, line: str, begidx: int, endidx: int,
980980
:return: a list of possible tab completions
981981
"""
982982
# Get all tokens through the one being completed
983-
tokens, _ = self._tokens_for_completion(line, begidx, endidx)
983+
tokens, _ = self.tokens_for_completion(line, begidx, endidx)
984984
if not tokens:
985985
return []
986986

@@ -1192,7 +1192,7 @@ def _redirect_complete(self, text: str, line: str, begidx: int, endidx: int, com
11921192

11931193
# Get all tokens through the one being completed. We want the raw tokens
11941194
# so we can tell if redirection strings are quoted and ignore them.
1195-
_, raw_tokens = self._tokens_for_completion(line, begidx, endidx)
1195+
_, raw_tokens = self.tokens_for_completion(line, begidx, endidx)
11961196
if not raw_tokens:
11971197
return []
11981198

@@ -1397,7 +1397,7 @@ def _complete_worker(self, text: str, state: int) -> Optional[str]:
13971397
line = expanded_line
13981398

13991399
# Get all tokens through the one being completed
1400-
tokens, raw_tokens = self._tokens_for_completion(line, begidx, endidx)
1400+
tokens, raw_tokens = self.tokens_for_completion(line, begidx, endidx)
14011401

14021402
# Check if we either had a parsing error or are trying to complete the command token
14031403
# The latter can happen if " or ' was entered as the command
@@ -1570,7 +1570,7 @@ def _autocomplete_default(self, text: str, line: str, begidx: int, endidx: int,
15701570
"""Default completion function for argparse commands."""
15711571
completer = AutoCompleter(argparser, self)
15721572

1573-
tokens, _ = self._tokens_for_completion(line, begidx, endidx)
1573+
tokens, _ = self.tokens_for_completion(line, begidx, endidx)
15741574
if not tokens:
15751575
return []
15761576

@@ -2607,7 +2607,7 @@ def complete_help_subcommand(self, text: str, line: str, begidx: int, endidx: in
26072607
"""Completes the subcommand argument of help"""
26082608

26092609
# Get all tokens through the one being completed
2610-
tokens, _ = self._tokens_for_completion(line, begidx, endidx)
2610+
tokens, _ = self.tokens_for_completion(line, begidx, endidx)
26112611

26122612
if not tokens:
26132613
return []

examples/tab_autocompletion.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ def complete_media(self, text, line, begidx, endidx):
382382
self,
383383
arg_choices=choices)
384384

385-
tokens, _ = self._tokens_for_completion(line, begidx, endidx)
385+
tokens, _ = self.tokens_for_completion(line, begidx, endidx)
386386
results = completer.complete_command(tokens, text, line, begidx, endidx)
387387

388388
return results
@@ -443,7 +443,7 @@ def _filter_library(self, text, line, begidx, endidx, full, exclude=()):
443443
# Demonstrates a custom completion function that does more with the command line than is
444444
# allowed by the standard completion functions
445445
def _filter_episodes(self, text, line, begidx, endidx, show_db, user_lib):
446-
tokens, _ = self._tokens_for_completion(line, begidx, endidx)
446+
tokens, _ = self.tokens_for_completion(line, begidx, endidx)
447447
show_id = tokens[3]
448448
if show_id:
449449
if show_id in show_db:
@@ -530,7 +530,7 @@ def complete_library(self, text, line, begidx, endidx):
530530
self,
531531
subcmd_args_lookup=library_subcommand_groups)
532532

533-
tokens, _ = self._tokens_for_completion(line, begidx, endidx)
533+
tokens, _ = self.tokens_for_completion(line, begidx, endidx)
534534
results = completer.complete_command(tokens, text, line, begidx, endidx)
535535

536536
return results

tests/test_completion.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,7 @@ def test_tokens_for_completion_quoted(cmd2_app):
658658
expected_tokens = ['list_food', 'Pi', '']
659659
expected_raw_tokens = ['list_food', '"Pi"', '']
660660

661-
tokens, raw_tokens = cmd2_app._tokens_for_completion(line, begidx, endidx)
661+
tokens, raw_tokens = cmd2_app.tokens_for_completion(line, begidx, endidx)
662662
assert expected_tokens == tokens
663663
assert expected_raw_tokens == raw_tokens
664664

@@ -671,7 +671,7 @@ def test_tokens_for_completion_unclosed_quote(cmd2_app):
671671
expected_tokens = ['list_food', 'Pi']
672672
expected_raw_tokens = ['list_food', '"Pi']
673673

674-
tokens, raw_tokens = cmd2_app._tokens_for_completion(line, begidx, endidx)
674+
tokens, raw_tokens = cmd2_app.tokens_for_completion(line, begidx, endidx)
675675
assert expected_tokens == tokens
676676
assert expected_raw_tokens == raw_tokens
677677

@@ -685,7 +685,7 @@ def test_tokens_for_completion_redirect(cmd2_app):
685685
expected_tokens = ['command', '|', '<', '>>', 'file']
686686
expected_raw_tokens = ['command', '|', '<', '>>', 'file']
687687

688-
tokens, raw_tokens = cmd2_app._tokens_for_completion(line, begidx, endidx)
688+
tokens, raw_tokens = cmd2_app.tokens_for_completion(line, begidx, endidx)
689689
assert expected_tokens == tokens
690690
assert expected_raw_tokens == raw_tokens
691691

@@ -699,7 +699,7 @@ def test_tokens_for_completion_quoted_redirect(cmd2_app):
699699
expected_tokens = ['command', '>file']
700700
expected_raw_tokens = ['command', '">file']
701701

702-
tokens, raw_tokens = cmd2_app._tokens_for_completion(line, begidx, endidx)
702+
tokens, raw_tokens = cmd2_app.tokens_for_completion(line, begidx, endidx)
703703
assert expected_tokens == tokens
704704
assert expected_raw_tokens == raw_tokens
705705

@@ -713,7 +713,7 @@ def test_tokens_for_completion_redirect_off(cmd2_app):
713713
expected_tokens = ['command', '>file']
714714
expected_raw_tokens = ['command', '>file']
715715

716-
tokens, raw_tokens = cmd2_app._tokens_for_completion(line, begidx, endidx)
716+
tokens, raw_tokens = cmd2_app.tokens_for_completion(line, begidx, endidx)
717717
assert expected_tokens == tokens
718718
assert expected_raw_tokens == raw_tokens
719719

0 commit comments

Comments
 (0)