[PATCH] D21181: [include-fixer] give users an option to show N more headers in case there are too many candidates.
Eric Liu via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 10 04:43:01 PDT 2016
ioeric updated this revision to Diff 60338.
ioeric added a comment.
- remove option (a) in favor of option (m); show a new prompt on invalid option instead of aborting.
http://reviews.llvm.org/D21181
Files:
include-fixer/tool/clang-include-fixer.py
Index: include-fixer/tool/clang-include-fixer.py
===================================================================
--- include-fixer/tool/clang-include-fixer.py
+++ include-fixer/tool/clang-include-fixer.py
@@ -34,30 +34,41 @@
1,
vim.eval('g:clang_include_fixer_maximum_suggested_headers'))
+increment_num=5
+if vim.eval('exists("g:clang_include_fixer_increment_num")') == "1":
+ increment_num = max(
+ 1,
+ vim.eval('g:clang_include_fixer_increment_num'))
def GetUserSelection(message, headers, maximum_suggested_headers):
eval_message = message + '\n'
for idx, header in enumerate(headers[0:maximum_suggested_headers]):
eval_message += "({0}). {1}\n".format(idx+1, header)
eval_message += "Enter (q) to quit;"
if maximum_suggested_headers < len(headers):
- eval_message += " (a) to show all candidates.";
+ eval_message += " (m) to show {0} more candidates.".format(
+ min(increment_num, len(headers) - maximum_suggested_headers))
+
eval_message += "\nSelect (default 1): "
res = vim.eval("input('{0}')".format(eval_message))
if res == '':
# choose the top ranked header by default
idx = 1
elif res == 'q':
raise Exception(' Insertion cancelled...')
- elif res == 'a' and maximum_suggested_headers < len(headers):
- return GetUserSelection(message, headers, len(headers))
+ elif res == 'm':
+ return GetUserSelection(message,
+ headers, maximum_suggested_headers + increment_num)
else:
try:
idx = int(res)
if idx <= 0 or idx > len(headers):
raise Exception()
except Exception:
- raise Exception(' ERROR: Invalid option "{0}"...Abort!'.format(res))
+ # Show a new prompt on invalid option instead of aborting so that users
+ # don't need to wait for another include-fixer run.
+ print >> sys.stderr, "Invalid option:", res
+ return GetUserSelection(message, headers, maximum_suggested_headers)
return headers[idx-1]
def execute(command, text):
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21181.60338.patch
Type: text/x-patch
Size: 2042 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160610/cd56a6fa/attachment.bin>
More information about the cfe-commits
mailing list