Skip to content

Commit f4a5710

Browse files
author
Eric Liu
committedJun 10, 2016
[include-fixer] give users an option to show N more headers in case there are too many candidates.
Summary: give users an option to show N more headers in case there are too many candidates. Reviewers: bkramer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D21181 llvm-svn: 272387
1 parent 8251ebf commit f4a5710

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed
 

‎clang-tools-extra/include-fixer/tool/clang-include-fixer.py

+15-4
Original file line numberDiff line numberDiff line change
@@ -34,30 +34,41 @@
3434
1,
3535
vim.eval('g:clang_include_fixer_maximum_suggested_headers'))
3636

37+
increment_num=5
38+
if vim.eval('exists("g:clang_include_fixer_increment_num")') == "1":
39+
increment_num = max(
40+
1,
41+
vim.eval('g:clang_include_fixer_increment_num'))
3742

3843
def GetUserSelection(message, headers, maximum_suggested_headers):
3944
eval_message = message + '\n'
4045
for idx, header in enumerate(headers[0:maximum_suggested_headers]):
4146
eval_message += "({0}). {1}\n".format(idx+1, header)
4247
eval_message += "Enter (q) to quit;"
4348
if maximum_suggested_headers < len(headers):
44-
eval_message += " (a) to show all candidates.";
49+
eval_message += " (m) to show {0} more candidates.".format(
50+
min(increment_num, len(headers) - maximum_suggested_headers))
51+
4552
eval_message += "\nSelect (default 1): "
4653
res = vim.eval("input('{0}')".format(eval_message))
4754
if res == '':
4855
# choose the top ranked header by default
4956
idx = 1
5057
elif res == 'q':
5158
raise Exception(' Insertion cancelled...')
52-
elif res == 'a' and maximum_suggested_headers < len(headers):
53-
return GetUserSelection(message, headers, len(headers))
59+
elif res == 'm':
60+
return GetUserSelection(message,
61+
headers, maximum_suggested_headers + increment_num)
5462
else:
5563
try:
5664
idx = int(res)
5765
if idx <= 0 or idx > len(headers):
5866
raise Exception()
5967
except Exception:
60-
raise Exception(' ERROR: Invalid option "{0}"...Abort!'.format(res))
68+
# Show a new prompt on invalid option instead of aborting so that users
69+
# don't need to wait for another include-fixer run.
70+
print >> sys.stderr, "Invalid option:", res
71+
return GetUserSelection(message, headers, maximum_suggested_headers)
6172
return headers[idx-1]
6273

6374
def execute(command, text):

0 commit comments

Comments
 (0)
Please sign in to comment.