mirror of
https://github.com/neovim/neovim.git
synced 2025-12-01 06:23:01 +00:00
tree-sitter: implement query functionality and highlighting prototype [skip.lint]
This commit is contained in:
@@ -189,6 +189,15 @@ Dictionary nvim_get_hl_by_id(Integer hl_id, Boolean rgb, Error *err)
|
||||
return hl_get_attr_by_id(attrcode, rgb, err);
|
||||
}
|
||||
|
||||
/// Gets a highlight group by name
|
||||
///
|
||||
/// similar to |hlID()|, but allocates a new ID if not present.
|
||||
Integer nvim_get_hl_id_by_name(String name)
|
||||
FUNC_API_SINCE(7)
|
||||
{
|
||||
return syn_check_group((const char_u *)name.data, (int)name.size);
|
||||
}
|
||||
|
||||
/// Sends input-keys to Nvim, subject to various quirks controlled by `mode`
|
||||
/// flags. This is a blocking call, unlike |nvim_input()|.
|
||||
///
|
||||
@@ -2546,3 +2555,27 @@ Array nvim__inspect_cell(Integer grid, Integer row, Integer col, Error *err)
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// Set attrs in nvim__buf_set_lua_hl callbacks
|
||||
///
|
||||
/// TODO(bfredl): This is rather pedestrian. The final
|
||||
/// interface should probably be derived from a reformed
|
||||
/// bufhl/virttext interface with full support for multi-line
|
||||
/// ranges etc
|
||||
void nvim__put_attr(Integer id, Integer c0, Integer c1)
|
||||
FUNC_API_LUA_ONLY
|
||||
{
|
||||
if (!lua_attr_active) {
|
||||
return;
|
||||
}
|
||||
if (id == 0 || syn_get_final_id((int)id) == 0) {
|
||||
return;
|
||||
}
|
||||
int attr = syn_id2attr((int)id);
|
||||
c0 = MAX(c0, 0);
|
||||
c1 = MIN(c1, (Integer)lua_attr_bufsize);
|
||||
for (Integer c = c0; c < c1; c++) {
|
||||
lua_attr_buf[c] = (sattr_T)hl_combine_attr(lua_attr_buf[c], (int)attr);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user