Flickering of completion menu

2006-11-07 Thread Nikolai Weibull

Hi!

As you've probably all noticed the completion menu flickers when you
move through the items rapidly.  Why is this?  Is it really necessary
to redraw the whole completion menu when it really only should require
redrawing the item previously selected and the item selected now [1]?

Anyway, would this be possible to implement?

Also, here's a set of mappings that make the digits move their value
number of items down the completion list (if displayed):

for digit in [1, 2, 3, 4, 5, 6, 8, 9]
 execute 'inoremap silent ' . digit . ' C-R=pumvisible() ? ' .
repeat('\ltC-N', digit) . ' : ' . digit . 'CR'
endfor

(I guess this could be extended to include -n, for 1 = n = 9, which
would move n number of items upward.  Any takers?)

It flickers like mad, but at least it goes a lot faster than holding
down CTRL-N or CTRL-P.

 nikolai

[1] Excepting the case where one begins to scroll in the menu, when
all items need to be redrawn, as they move up or down one step - which
leads to a second question, wouldn't it be a lot more economical to
scroll like half a menu or something, so that scrolling wouldn't
require so many redraws?  Or at least utilize the terminal codes that
enable scrolling in a buffer to be done with only redrawing the first
or last line when scrolling by a single line in a buffer?


Re: Flickering of completion menu

2006-11-07 Thread mzyzik
I would also love a flicker-less popup menu. I use the completion
excessively, since I've found it makes coding faster and less error
prone. I noticed the menu only flickers in some cases.

--Matt

On Wed, Nov 08, 2006 at 10:10:09AM +1100, Peter Hodge wrote:
 Hello,
 
 I agree, it would be great if the popup-menu could be optimized.  One of the
 best features of Vim is that is fast enough to keep up with my keystrokes 
 (many
 editors will begin to 'lag' when given commands too rapidly, and I have to 
 stop
 and wait for them).  I often have to slacken my pace when it comes to Vim's
 popup-menu, because it takes at least .2 seconds to redraw each time I press
 CTRL-N.
 
 regards,
 Peter
 
 
 
 
 
 --- Nikolai Weibull [EMAIL PROTECTED] wrote:
 
  Hi!
  
  As you've probably all noticed the completion menu flickers when you
  move through the items rapidly.  Why is this?  Is it really necessary
  to redraw the whole completion menu when it really only should require
  redrawing the item previously selected and the item selected now [1]?
  
  Anyway, would this be possible to implement?
  
  Also, here's a set of mappings that make the digits move their value
  number of items down the completion list (if displayed):
  
  for digit in [1, 2, 3, 4, 5, 6, 8, 9]
execute 'inoremap silent ' . digit . ' C-R=pumvisible() ? ' .
  repeat('\ltC-N', digit) . ' : ' . digit . 'CR'
  endfor
  
  (I guess this could be extended to include -n, for 1 = n = 9, which
  would move n number of items upward.  Any takers?)
  
  It flickers like mad, but at least it goes a lot faster than holding
  down CTRL-N or CTRL-P.
  
nikolai
  
  [1] Excepting the case where one begins to scroll in the menu, when
  all items need to be redrawn, as they move up or down one step - which
  leads to a second question, wouldn't it be a lot more economical to
  scroll like half a menu or something, so that scrolling wouldn't
  require so many redraws?  Or at least utilize the terminal codes that
  enable scrolling in a buffer to be done with only redrawing the first
  or last line when scrolling by a single line in a buffer?
  
 
 
 Send instant messages to your online friends http://au.messenger.yahoo.com