diff options
| author | Kiyan Yazdani <yazdani.kiyan@protonmail.com> | 2020-05-07 13:58:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-07 13:58:12 +0200 |
| commit | 096ca6b0689fe04400ed65420f15794d3e88bfa9 (patch) | |
| tree | 15d220a3581f2ceb24ab4fac079bdd5560efe62f /lua/nvim-treesitter.lua | |
| parent | Merge pull request #37 from theHamsta/node-movement (diff) | |
| parent | docs: add statusline indicator informations. (diff) | |
| download | nvim-treesitter-096ca6b0689fe04400ed65420f15794d3e88bfa9.tar nvim-treesitter-096ca6b0689fe04400ed65420f15794d3e88bfa9.tar.gz nvim-treesitter-096ca6b0689fe04400ed65420f15794d3e88bfa9.tar.bz2 nvim-treesitter-096ca6b0689fe04400ed65420f15794d3e88bfa9.tar.lz nvim-treesitter-096ca6b0689fe04400ed65420f15794d3e88bfa9.tar.xz nvim-treesitter-096ca6b0689fe04400ed65420f15794d3e88bfa9.tar.zst nvim-treesitter-096ca6b0689fe04400ed65420f15794d3e88bfa9.zip | |
Merge pull request #44 from vigoux/statusline
Provide a statusline indicator
Diffstat (limited to 'lua/nvim-treesitter.lua')
| -rw-r--r-- | lua/nvim-treesitter.lua | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lua/nvim-treesitter.lua b/lua/nvim-treesitter.lua index e1c95ed31..90b5468a3 100644 --- a/lua/nvim-treesitter.lua +++ b/lua/nvim-treesitter.lua @@ -24,4 +24,35 @@ function M.setup(lang) end end +function M.statusline(indicator_size) + local indicator_size = indicator_size or 1000 + local expr = require"nvim-treesitter.utils".expression_at_point() + local current_node = + require'nvim-treesitter.node_movement'.current_node[api.nvim_get_current_buf()] + + local indicator = "" + while expr and (#indicator + #(expr:type()) + 5) < indicator_size do + + local prefix = "" + if expr:parent() then + prefix = "->" + end + + + if expr == current_node then + indicator = string.format("%s[%s]%s", prefix, expr:type(), indicator) + else + indicator = prefix .. expr:type() .. indicator + end + + expr = expr:parent() + end + + if expr then + return "..." .. indicator + else + return indicator + end +end + return M |
