I was using GDB with gdb-many-windows in Emacs the other day, and I kept noticing that completions were no inserted where the cursor was when I started the insertion, but a few lines above. It seems that when Ivy rescales the minibuffer, this shrinks the size of the GUD interaction buffer, and since the point is outside of the rescaled view, it's moved up, where it inserts what I choose in the minibuffer. Notice that the cursor then returns to it's previous place, so I'm guessing that this just needs swapping the order of two operations?
Also noteworthey, "regular" (ie. with ivy-mode disabled) completion places the completion at the right point, even when frames are resized.
I couldn't find any other examples like this, except for GDB/GUD.
The text was updated successfully, but these errors were encountered:
Sure, I'll be using Emacs 26.1 (started with -Q, default window size, ie. 80x35) but I'm suspecting that it's the same for any version.
I enable Ivy and eval (setq gdb-many-windows t).
Now I run M-x gdb, with any command line options (since these are irrelevant for this example, resulting in the frame being split into 6 frames, where the upper-left one has 6-7 visible lines, and the cursor is on the last visible line, just after the (gdb) .
Pressing <TAB>, I invoke command completion using Ivy. This would by default want to use the drop-down interface, but due to limited space the minibuffer is activated instead. This will push the point in the interaction buffer up four lines, which is where any selected completion will be added too!
Compare this now to ivy being deactivated, and the same procedure again. The completion options should now presented in their own buffer, and the chosen option will be placed after the point where the completion was invoked.