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.
