mirror of
https://github.com/neovim/neovim.git
synced 2025-09-05 19:08:15 +00:00
[Backport release-0.9] fix(treesitter): allow foldexpr without highlights (#23673)
fix(treesitter): allow foldexpr without highlights (#23672) Ref nvim-treesitter/nvim-treesitter#4748 Co-authored-by: Lewis Russell <lewis6991@gmail.com>
This commit is contained in:
@@ -136,16 +136,6 @@ function M.get_parser(bufnr, lang, opts)
|
||||
return parsers[bufnr]
|
||||
end
|
||||
|
||||
---@package
|
||||
---@param bufnr (integer|nil) Buffer number
|
||||
---@return boolean
|
||||
function M._has_parser(bufnr)
|
||||
if bufnr == nil or bufnr == 0 then
|
||||
bufnr = api.nvim_get_current_buf()
|
||||
end
|
||||
return parsers[bufnr] ~= nil
|
||||
end
|
||||
|
||||
--- Returns a string parser
|
||||
---
|
||||
---@param str string Text to parse
|
||||
|
@@ -279,7 +279,8 @@ function M.foldexpr(lnum)
|
||||
lnum = lnum or vim.v.lnum
|
||||
local bufnr = api.nvim_get_current_buf()
|
||||
|
||||
if not vim.treesitter._has_parser(bufnr) or not lnum then
|
||||
local parser = vim.F.npcall(vim.treesitter.get_parser, bufnr)
|
||||
if not parser then
|
||||
return '0'
|
||||
end
|
||||
|
||||
@@ -287,7 +288,6 @@ function M.foldexpr(lnum)
|
||||
foldinfos[bufnr] = FoldInfo.new()
|
||||
get_folds_levels(bufnr, foldinfos[bufnr])
|
||||
|
||||
local parser = vim.treesitter.get_parser(bufnr)
|
||||
parser:register_cbs({
|
||||
on_changedtree = function(tree_changes)
|
||||
on_changedtree(bufnr, foldinfos[bufnr], tree_changes)
|
||||
|
Reference in New Issue
Block a user