feat(treesitter): upstream foldexpr from nvim-treesitter

This commit is contained in:
Lewis Russell
2023-02-23 17:05:20 +00:00
committed by GitHub
parent 8c339aa04b
commit 1df3f5ec6a
8 changed files with 276 additions and 0 deletions

View File

@@ -115,6 +115,16 @@ function M.get_parser(bufnr, lang, opts)
return parsers[bufnr]
end
---@private
---@param bufnr (integer|nil) Buffer number
---@return boolean
function M._has_parser(bufnr)
if bufnr == nil or bufnr == 0 then
bufnr = a.nvim_get_current_buf()
end
return parsers[bufnr] ~= nil
end
--- Returns a string parser
---
---@param str string Text to parse
@@ -612,4 +622,14 @@ function M.show_tree(opts)
})
end
--- Returns the fold level for {lnum} in the current buffer. Can be set directly to 'foldexpr':
--- <pre>lua
--- vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
--- </pre>
---@param lnum integer|nil Line number to calculate fold level for
---@return string
function M.foldexpr(lnum)
return require('vim.treesitter._fold').foldexpr(lnum)
end
return M