mirror of
https://github.com/neovim/neovim.git
synced 2025-09-27 21:48:35 +00:00
perf(extmarks): better track whether namespace has extmarks (#28615)
This avoids redraw when adding/removing an empty namespace for a window. This also avoids marktree traversal when clearing a namespace that has already been cleared, which is added as a benchmark.
This commit is contained in:
@@ -1234,7 +1234,9 @@ Boolean nvim_win_add_ns(Window window, Integer ns_id, Error *err)
|
||||
|
||||
set_put(uint32_t, &win->w_ns_set, (uint32_t)ns_id);
|
||||
|
||||
changed_window_setting(win);
|
||||
if (map_has(uint32_t, win->w_buffer->b_extmark_ns, (uint32_t)ns_id)) {
|
||||
changed_window_setting(win);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1279,7 +1281,9 @@ Boolean nvim_win_remove_ns(Window window, Integer ns_id, Error *err)
|
||||
|
||||
set_del(uint32_t, &win->w_ns_set, (uint32_t)ns_id);
|
||||
|
||||
changed_window_setting(win);
|
||||
if (map_has(uint32_t, win->w_buffer->b_extmark_ns, (uint32_t)ns_id)) {
|
||||
changed_window_setting(win);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user