davidhalter / jedi-vim

Using the jedi autocompletion library for VIM.
MIT License
5.28k stars 370 forks source link

Function completion popup writes remnant artificats to buffer #493

Open perks opened 8 years ago

perks commented 8 years ago

Usually occurs when using tab completion, for example see below

=`=jedi=0, =`=                            (arg1, arg2, *_*arg3*_*, arg4='patch', arg5=None) =`=jedi=`=

All over the line.

What happens is once the line is finished editing, a particular argument becomes highlighted (in this case arg3).

Upon first inspection it looks like the line is fine, however upon "selecting the line" (movement to the line in normal mode) the screen changes and above text is replaced in the buffer.

The function being called look something like this:

    def helper_func(self, arg1, arg2, arg3, arg4='patch', arg5=None):

This isn't a visual bug either, it actually leaves text in the buffer, usually resulting in having to undo/rewrite the line (I catch it because it usually breaks my makefile)

blueyed commented 8 years ago

I remember having fixed something in this regard, but could not find it now (I am on mobile). IIRC there are cases where we cannot really prevent it.

A test case would be great. IIRC there should be something in the got history of "tests" regarding this.

See #412 about a workaround, and leave a vote in case you think the default should be changed.

AlbericC commented 8 years ago

I ran across this issue today.

appeared when I cd into a directory through NERDTree plugin in gvim and opened a few files for editing, both python and plain text.

Surprisingly didn't appear in single edition of one py file with usual :cd beforehand, and I cannot reproduce it now.

If someone wants to investigate, maybe it's a starting point. In any case I’ll keep you informed if I can reproduce.

nZac commented 8 years ago

I have a similar issue of jedi-vim leaving function signatures in the buffer, here is a screenshot. The cursor just typed the .. I haven't hit tab or anything like that.

screen shot 2015-11-11 at 7 45 17 pm

davidhalter commented 8 years ago

It happens to me as well but very rarely and I'm not sure if it just happens if something bad happened before and jedi-vim basically "crashed".

nZac commented 8 years ago

It only started after a recent upgrade, though I don't know what revision I was on and subsequently upgraded to. I am not a Vim ninja when it comes to debugging, so any suggestions on how to help find the issue, I am all ears and would be happy to help.

My vimrc is here: https://github.com/nZac/dotfiles/blob/35f97b06b46db8f85a2181df258a67f0a88e87ec/vim/vimrc.symlink if that is helpful.

AlbericC commented 8 years ago

I suspect it has something to do with python3 annotations. I encountered the bug again with an annotated function, but not with the completion for other function in the same script, which were not annotated.

On Thu, Nov 12, 2015 at 5:30 PM, Nick Zaccardi notifications@github.com wrote:

It only started after a recent upgrade, though I don't know what revision I was on and subsequently upgraded to. I am not a Vim ninja when it comes to debugging, so any suggestions on how to help find the issue, I am all ears and would be happy to help.

My vimrc is here: https://github.com/nZac/dotfiles/blob/35f97b06b46db8f85a2181df258a67f0a88e87ec/vim/vimrc.symlink if that is helpful.

— Reply to this email directly or view it on GitHub https://github.com/davidhalter/jedi-vim/issues/493#issuecomment-156156848 .

davidhalter commented 8 years ago

It seems to happen more and more :/ It's not about python3 annotations, I'm not using them.

dpnova commented 8 years ago

I have a minimal example that reproduces this for me 100%. Seems to happen when using completion inside calling another function.

selection_512

dpnova commented 8 years ago

Actually I think I had a typo in my conf - for some sill reason I'd put quotes around my "2" in show_call_signatures.

Upon testing a bit more, it seems that show_call_signatures = 1 gets rid of it and show_call_signatures = 2 brings it back. Very odd.

davidhalter commented 8 years ago

Strange. 2 should do something completely different and not even touch the viewport (but should change the statusline).

blueyed commented 8 years ago

And for the missing conceiling with 1, make sure that the after part of the plugin gets used - which should typically be the case when using Vundle/syntastic etc, but might get missed when manually manipulating &runtimepath.

JokerQyou commented 8 years ago

@dpnova The tutorial in README file of this project does put quotes around the value of show_call_signatures...

blueyed commented 7 years ago

Please try/test #652 and provide feedback there. See https://help.github.com/articles/checking-out-pull-requests-locally/ for help on checking it out locally.