aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/treesitter.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2023-02-23 17:05:20 +0000
committerGitHub <noreply@github.com>2023-02-23 17:05:20 +0000
commit1df3f5ec6aca24cbe7b78ead5c37ad06a65c84e8 (patch)
treed1523f1b7ef2a813859572ba0bdce2874de82699 /runtime/lua/vim/treesitter.lua
parent8c339aa04b2a1ca99a297b2eada8ebc6218f5f1c (diff)
downloadrneovim-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.lua20
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