mirror of
https://github.com/neovim/neovim.git
synced 2025-10-01 07:28:34 +00:00
perf: add on_range in treesitter highlighting
This commit is contained in:
@@ -1004,7 +1004,7 @@ void nvim_buf_clear_namespace(Buffer buffer, Integer ns_id, Integer line_start,
|
||||
/// Note: this function should not be called often. Rather, the callbacks
|
||||
/// themselves can be used to throttle unneeded callbacks. the `on_start`
|
||||
/// callback can return `false` to disable the provider until the next redraw.
|
||||
/// Similarly, return `false` in `on_win` will skip the `on_line` calls
|
||||
/// Similarly, return `false` in `on_win` will skip the `on_line` and `on_range` calls
|
||||
/// for that window (but any extmarks set in `on_win` will still be used).
|
||||
/// A plugin managing multiple sources of decoration should ideally only set
|
||||
/// one provider, and merge the sources internally. You can use multiple `ns_id`
|
||||
@@ -1016,7 +1016,7 @@ void nvim_buf_clear_namespace(Buffer buffer, Integer ns_id, Integer line_start,
|
||||
/// Doing `vim.rpcnotify` should be OK, but `vim.rpcrequest` is quite dubious
|
||||
/// for the moment.
|
||||
///
|
||||
/// Note: It is not allowed to remove or update extmarks in `on_line` callbacks.
|
||||
/// Note: It is not allowed to remove or update extmarks in `on_line` or `on_range` callbacks.
|
||||
///
|
||||
/// @param ns_id Namespace id from |nvim_create_namespace()|
|
||||
/// @param opts Table of callbacks:
|
||||
@@ -1038,6 +1038,14 @@ void nvim_buf_clear_namespace(Buffer buffer, Integer ns_id, Integer line_start,
|
||||
/// ```
|
||||
/// ["line", winid, bufnr, row]
|
||||
/// ```
|
||||
/// - on_range: called for each buffer range being redrawn.
|
||||
/// Range is end-exclusive and may span multiple lines. Range
|
||||
/// bounds point to the first byte of a character. An end position
|
||||
/// of the form (lnum, 0), including (number of lines, 0), is valid
|
||||
/// and indicates that EOL of the preceding line is included.
|
||||
/// ```
|
||||
/// ["range", winid, bufnr, begin_row, begin_col, end_row, end_col]
|
||||
/// ```
|
||||
/// - on_end: called at the end of a redraw cycle
|
||||
/// ```
|
||||
/// ["end", tick]
|
||||
@@ -1061,6 +1069,7 @@ void nvim_set_decoration_provider(Integer ns_id, Dict(set_decoration_provider) *
|
||||
{ "on_buf", &opts->on_buf, &p->redraw_buf },
|
||||
{ "on_win", &opts->on_win, &p->redraw_win },
|
||||
{ "on_line", &opts->on_line, &p->redraw_line },
|
||||
{ "on_range", &opts->on_range, &p->redraw_range },
|
||||
{ "on_end", &opts->on_end, &p->redraw_end },
|
||||
{ "_on_hl_def", &opts->_on_hl_def, &p->hl_def },
|
||||
{ "_on_spell_nav", &opts->_on_spell_nav, &p->spell_nav },
|
||||
|
Reference in New Issue
Block a user