diff options
author | Lewis Russell <lewis6991@gmail.com> | 2023-02-23 17:05:20 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-23 17:05:20 +0000 |
commit | 1df3f5ec6aca24cbe7b78ead5c37ad06a65c84e8 (patch) | |
tree | d1523f1b7ef2a813859572ba0bdce2874de82699 /runtime/lua/vim/treesitter.lua | |
parent | 8c339aa04b2a1ca99a297b2eada8ebc6218f5f1c (diff) | |
download | rneovim-1df3f5ec6aca24cbe7b78ead5c37ad06a65c84e8.tar.gz rneovim-1df3f5ec6aca24cbe7b78ead5c37ad06a65c84e8.tar.bz2 rneovim-1df3f5ec6aca24cbe7b78ead5c37ad06a65c84e8.zip |
feat(treesitter): upstream foldexpr from nvim-treesitter
Diffstat (limited to 'runtime/lua/vim/treesitter.lua')
-rw-r--r-- | runtime/lua/vim/treesitter.lua | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua index 44922bbc4d..fead7b7b1b 100644 --- a/runtime/lua/vim/treesitter.lua +++ b/runtime/lua/vim/treesitter.lua @@ -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 |