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 -= len(signatures[0].call_name) + 2 # call name + parentheses
if max_msg_len < 0:
if max_msg_len < (1 if params else 0):
return
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):
return
else:
@@ -498,8 +500,8 @@ def cmdline_call_signatures(signatures):
else:
vim_command(' echon "%s" | '
'echohl Function | echon "%s" | '
'echohl None | echon "()"'
% (spaces, signatures[0].call_name))
'echohl None | echon "(%s)"'
% (spaces, signatures[0].call_name, text))
@_check_jedi_availability(show_error=True)

View File

@@ -75,6 +75,13 @@ describe 'signatures'
doautocmd InsertLeave
redir END
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
it 'command line truncation'