Hi,

On Friday, March 16, 2018 at 3:11:47 AM UTC-7, [email protected] wrote:
> 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.
>

With the recent changes to the sign redrawing code, this problem should
have been addressed now. Can you try a latest Vim version and see whether
you still observe the lag in removing the signs?

Thanks,
Yegappan

>
> 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