Hello!

When I want to remove most but not all of the signs from a buffer, I loop over 
a list of the signs' ids and execute `sign unplace id` for each one.

However this can be quite slow and cause a noticeable lag in the UI.

I don't know how to profile Vim itself (as opposed to Vimscript, which is well 
documented).

Instead I looked at the code and found the `sign unplace` implementation [1].  
It calls `buf_delsign()` [2] and `update_debug_sign()` [3].

As far as I can tell, each `sign unplace` triggers a full redraw of all windows 
showing the sign.  Would it be feasible to redraw only the sign columns?  I 
imagine that would be far less expensive.

I was also wondering whether it would be feasible to extend `sign unplace` to 
accept a list of ids, and remove all of them before redrawing the relevant 
windows once?

Many thanks in advance!

Yours,
Andy Stewart


[1] 
https://github.com/vim/vim/blob/8a3bb56230d220b8e1b4dcca517ed95f5341b8c7/src/ex_cmds.c#L7724-L7735
[2] 
https://github.com/vim/vim/blob/8a3bb56230d220b8e1b4dcca517ed95f5341b8c7/src/buffer.c#L5911-L5949
[3] 
https://github.com/vim/vim/blob/f708ac592f47100a36f2bc12ec98ea6357fdfa27/src/screen.c#L971-L1025

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui