neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 28eaec5e1526b2a004eadeadf6246df75cfa08e8
parent ee143aaf65a0e662c42c636aa4a959682858b3e7
Author: Tan, Long <tanloong@foxmail.com>
Date:   Mon, 31 Mar 2025 17:22:57 +0800

fix(treesitter): don't memoize modified headings (#33186)

Problem: repeated gO in markdown etc. adds extra toc indentation

Solution: don't memoize heading table which gets modified
Diffstat:
Mruntime/lua/vim/treesitter/_headings.lua | 8++------
1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/runtime/lua/vim/treesitter/_headings.lua b/runtime/lua/vim/treesitter/_headings.lua @@ -40,10 +40,6 @@ local heading_queries = { ]], } -local function hash_tick(bufnr) - return tostring(vim.b[bufnr].changedtick) -end - ---@class TS.Heading ---@field bufnr integer ---@field lnum integer @@ -53,7 +49,7 @@ end --- Extract headings from buffer --- @param bufnr integer buffer to extract headings from --- @return TS.Heading[] -local get_headings = vim.func._memoize(hash_tick, function(bufnr) +local get_headings = function(bufnr) local lang = ts.language.get_lang(vim.bo[bufnr].filetype) if not lang then return {} @@ -85,7 +81,7 @@ local get_headings = vim.func._memoize(hash_tick, function(bufnr) end end return headings -end) +end --- Shows an Outline (table of contents) of the current buffer, in the loclist. function M.show_toc()