You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a problem with the test code of the vim-jedi 0.11.2-3 package. The package build failed under both the riscv64 and x86-64 architectures. According to the log output, the signature test file reported an error when entering the test phase.
<buffer=5>
call jedi#clear_call_signatures()
Last set from ~/vim-jedi/jedi-vim-0.11.2/autoload/jedi.vim line 604
if exists('b:_jedi_orig_updatetime') | let &updatetime = b:_jedi_orig_updatetime | unlet b:_jedi_orig_updatetime | endif
Last set from ~/vim-jedi/jedi-vim-0.11.2/autoload/jedi.vim line 608
ok 2 - signatures multiple buffers
2 buffers wiped out
ok 3 - signatures simple after CursorHoldI with only parenthesis
ok 4 - signatures highlights correct argument
ok 5 - signatures no signature
ok 6 - signatures signatures disabled
staticmethod(f: Callable[..., Any])
foo(a, b)
ok 7 - signatures command line simple
not ok 8 - signatures command line truncation
Expected Signature() == "\n".funcname."(arg1, …)" at line 15
Actual value: "\n"
Expected value: "\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(arg1, …)"
ok 9 - signatures command line no signature
My operating environment is an x86-64 environment virtual machine of the arch architecture of Windows WSL.
The process is as follows:
I cloned your project and installed the dependencies
Then execute py.test
Wait for about 7 seconds and find an error
Patch
I modified the test file. Here are my ideas for modification:
This is the relevant code for the command line truncation error in the eighth test of /test/vsepr/sinagature.vim
it 'command line truncation'
let g:jedi#show_call_signatures = 2
call jedi#configure_call_signatures()
function! Signature()
redir => msg
python3 jedi_vim.show_call_signatures()
redir END
return msg
endfunction
let funcname = repeat('a', &columns - (30 + (&ruler ? 18 : 0)))
put = 'def '.funcname.'(arg1, arg2, arg3, a, b, c):'
put = ' pass'
execute "normal o\<BS>".funcname."( "
Expect Signature() == "\n".funcname."(arg1, …)"
exe 'normal sarg1, '
Expect Signature() == "\n".funcname."(…, arg2, …)"
exe 'normal sarg2, arg3, '
Expect Signature() == "\n".funcname."(…, a, b, c)"
exe 'normal sa, b, '
Expect Signature() == "\n".funcname."(…, c)"
g/^/d
put = 'def '.funcname.'('.repeat('b', 20).', arg2):'
put = ' pass'
execute "normal o\<BS>".funcname."( "
Expect Signature() == "\n".funcname."(…)"
end
Here is the relevant code for the show_call_signatures function called by this test
def show_call_signatures(signatures=()):
if int(vim_eval("has('conceal') && g:jedi#show_call_signatures")) == 0:
return
#We need to clear the signatures before we calculate them again. The
#reason for this is that call signatures are unfortunately written to the
#buffer.
clear_call_signatures()
if signatures == ():
signatures = get_script().get_signatures(*get_pos())
if not signatures:
return
if int(vim_eval("g:jedi#show_call_signatures")) == 2:
return cmdline_call_signatures(signatures)
…
After debugging, I found that according to the original test code, the process should have entered the fourth if function to execute g:jedi#show_call_signatures = 2, but in fact it returned in the third if, and no content was output, resulting in the return of \n.
The reason is that signatures = get_script().get_signatures(*get_pos()) is an empty list
And the signature cannot be read. I think it is related to <BS> returning to the end of the previous line and directly inputting, and it is impossible to return the signature according to the independently input function name.
I deleted the <BS> in the code in the patch, and then performed the same operation as above,
Description:
There is a problem with the test code of the vim-jedi 0.11.2-3 package. The package build failed under both the riscv64 and x86-64 architectures. According to the log output, the signature test file reported an error when entering the test phase.
vim-jedi-0.11.2-3-riscv64-prepare.log
vim-jedi-0.11.2-3-riscv64-check.log
My operating environment is an x86-64 environment virtual machine of the arch architecture of Windows WSL.
The process is as follows:
Patch
I modified the test file. Here are my ideas for modification:
This is the relevant code for the command line truncation error in the eighth test of /test/vsepr/sinagature.vim
Here is the relevant code for the show_call_signatures function called by this test
After debugging, I found that according to the original test code, the process should have entered the fourth if function to execute g:jedi#show_call_signatures = 2, but in fact it returned in the third if, and no content was output, resulting in the return of \n.
The reason is that signatures = get_script().get_signatures(*get_pos()) is an empty list
And the signature cannot be read. I think it is related to <BS> returning to the end of the previous line and directly inputting, and it is impossible to return the signature according to the independently input function name.
I deleted the <BS> in the code in the patch, and then performed the same operation as above,
and found that the test passed
Do you think this is a good change? If you think it is, I will open a PR.
The text was updated successfully, but these errors were encountered: