Fix parameters missing from command line call signatures

Parameters (or ellipsis) should show up in call signatures even when the
index of the current argument is unknown.

Closes https://github.com/davidhalter/jedi-vim/pull/499.
This commit is contained in:
Jacob Niehus
2015-11-10 22:01:59 -07:00
committed by Daniel Hahler
parent b3e91e8de2
commit 0c2831d9a6
2 changed files with 13 additions and 4 deletions

View File

@@ -450,10 +450,12 @@ def cmdline_call_signatures(signatures):
max_msg_len -= 18 max_msg_len -= 18
max_msg_len -= len(signatures[0].call_name) + 2 # call name + parentheses max_msg_len -= len(signatures[0].call_name) + 2 # call name + parentheses
if max_msg_len < 0: if max_msg_len < (1 if params else 0):
return return
elif index is None: elif index is None:
pass text = escape(', '.join(params))
if params and len(text) > max_msg_len:
text = ELLIPSIS
elif max_msg_len < len(ELLIPSIS): elif max_msg_len < len(ELLIPSIS):
return return
else: else:
@@ -498,8 +500,8 @@ def cmdline_call_signatures(signatures):
else: else:
vim_command(' echon "%s" | ' vim_command(' echon "%s" | '
'echohl Function | echon "%s" | ' 'echohl Function | echon "%s" | '
'echohl None | echon "()"' 'echohl None | echon "(%s)"'
% (spaces, signatures[0].call_name)) % (spaces, signatures[0].call_name, text))
@_check_jedi_availability(show_error=True) @_check_jedi_availability(show_error=True)

View File

@@ -75,6 +75,13 @@ describe 'signatures'
doautocmd InsertLeave doautocmd InsertLeave
redir END redir END
Expect msg == "\n" Expect msg == "\n"
normal Sdef foo(a, b): pass
normal ofoo(a, b, c,
redir => msg
Python jedi_vim.show_call_signatures()
redir END
Expect msg == "\nfoo(a, b)"
end end
it 'command line truncation' it 'command line truncation'