summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Van Brunt <kmvanbrunt@gmail.com>2019-09-30 21:51:42 -0400
committerKevin Van Brunt <kmvanbrunt@gmail.com>2019-09-30 21:51:42 -0400
commitd14f8412d9bc681b0f70405a5205f6a7de9ff1f3 (patch)
tree459ce712238cc153984374948aad8ef77410ea9b
parent10ffc07459db9bbbc624905162f7f076cad37b96 (diff)
downloadcmd2-git-d14f8412d9bc681b0f70405a5205f6a7de9ff1f3.tar.gz
Respecting user's allow_ansi value when printing hints and errors in AutoCompleter
Simplified printing of CompletionErrors
-rw-r--r--cmd2/argparse_completer.py14
1 files changed, 6 insertions, 8 deletions
diff --git a/cmd2/argparse_completer.py b/cmd2/argparse_completer.py
index 3a7bfbc2..3a66a45d 100644
--- a/cmd2/argparse_completer.py
+++ b/cmd2/argparse_completer.py
@@ -15,7 +15,7 @@ from typing import Dict, List, Optional, Union
from . import cmd2
from . import utils
-from .ansi import ansi_safe_wcswidth, style_error
+from .ansi import ansi_aware_write, ansi_safe_wcswidth, style_error
from .argparse_custom import ATTR_CHOICES_CALLABLE, INFINITY, generate_range_error
from .argparse_custom import ATTR_SUPPRESS_TAB_HINT, ATTR_DESCRIPTIVE_COMPLETION_HEADER, ATTR_NARGS_RANGE
from .argparse_custom import ChoicesCallable, CompletionError, CompletionItem
@@ -583,7 +583,8 @@ class AutoCompleter(object):
@staticmethod
def _print_message(msg: str) -> None:
"""Print a message instead of tab completions and redraw the prompt and input line"""
- print(msg)
+ import sys
+ ansi_aware_write(sys.stdout, msg + '\n')
rl_force_redisplay()
def _print_arg_hint(self, arg_action: argparse.Action) -> None:
@@ -621,9 +622,6 @@ class AutoCompleter(object):
:param arg_action: action being tab completed
:param completion_error: error that occurred
"""
- formatter = self._parser._get_formatter()
- formatter.start_section("Error tab completing {}".format(argparse._get_action_name(arg_action)))
- formatter.add_text(str(completion_error))
- formatter.end_section()
- error = style_error(formatter.format_help())
- self._print_message('\n' + error)
+ error = ("\nError tab completing {}:\n"
+ " {}\n".format(argparse._get_action_name(arg_action), str(completion_error)))
+ self._print_message(style_error('{}'.format(error)))