mirror of
https://github.com/neovim/neovim.git
synced 2025-09-29 14:38:32 +00:00
treesitter: call bufload before parsing (#12603)
This commit is contained in:
@@ -75,6 +75,9 @@ function M.create_parser(bufnr, lang, id)
|
|||||||
if bufnr == 0 then
|
if bufnr == 0 then
|
||||||
bufnr = a.nvim_get_current_buf()
|
bufnr = a.nvim_get_current_buf()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
vim.fn.bufload(bufnr)
|
||||||
|
|
||||||
local self = setmetatable({bufnr=bufnr, lang=lang, valid=false}, Parser)
|
local self = setmetatable({bufnr=bufnr, lang=lang, valid=false}, Parser)
|
||||||
self._parser = vim._create_ts_parser(lang)
|
self._parser = vim._create_ts_parser(lang)
|
||||||
self.change_cbs = {}
|
self.change_cbs = {}
|
||||||
|
@@ -307,11 +307,13 @@ static int parser_parse_buf(lua_State *L)
|
|||||||
}
|
}
|
||||||
|
|
||||||
long bufnr = lua_tointeger(L, 2);
|
long bufnr = lua_tointeger(L, 2);
|
||||||
void *payload = handle_get_buffer(bufnr);
|
buf_T *buf = handle_get_buffer(bufnr);
|
||||||
if (!payload) {
|
|
||||||
|
if (!buf) {
|
||||||
return luaL_error(L, "invalid buffer handle: %d", bufnr);
|
return luaL_error(L, "invalid buffer handle: %d", bufnr);
|
||||||
}
|
}
|
||||||
TSInput input = { payload, input_cb, TSInputEncodingUTF8 };
|
|
||||||
|
TSInput input = { (void *)buf, input_cb, TSInputEncodingUTF8 };
|
||||||
TSTree *new_tree = ts_parser_parse(p->parser, p->tree, input);
|
TSTree *new_tree = ts_parser_parse(p->parser, p->tree, input);
|
||||||
|
|
||||||
uint32_t n_ranges = 0;
|
uint32_t n_ranges = 0;
|
||||||
|
Reference in New Issue
Block a user