From ee32b9dda0d7020ebdf22d7169b745f284fb3d33 Mon Sep 17 00:00:00 2001 From: Yuan Chiu Date: Thu, 8 May 2025 17:24:48 +0800 Subject: [PATCH] =?UTF-8?q?nvim:=20=E8=AA=BF=E6=95=B4fold=E6=8A=98?= =?UTF-8?q?=E7=96=8A=E8=A1=8C=E8=99=9F=E9=A1=AF=E7=A4=BA=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exact_plugins/exact_editor/fold.lua | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/dot_config/nvim/exact_lua/exact_plugins/exact_editor/fold.lua b/dot_config/nvim/exact_lua/exact_plugins/exact_editor/fold.lua index c7eb048..53f10f5 100644 --- a/dot_config/nvim/exact_lua/exact_plugins/exact_editor/fold.lua +++ b/dot_config/nvim/exact_lua/exact_plugins/exact_editor/fold.lua @@ -44,8 +44,31 @@ return { vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value vim.o.foldlevelstart = 99 vim.o.foldenable = true + -- vim.o.statuscolumn = '%=%l%s%#FoldColumn#%{foldlevel(v:lnum) > foldlevel(v:lnum - 1) ? (foldclosed(v:lnum) == -1 ? " " : " ") : " " }%*' + vim.o.statuscolumn = [[%=%l%s%#FoldColumn#%@v:lua.on_click@%{foldlevel(v:lnum) > foldlevel(v:lnum - 1) ? (foldclosed(v:lnum) == -1 ? " " : " ") : " " }%X%*]] end, config = function(_, opts) + -- 折疊符號函數 + function _G.fold_symbol() + local lnum = vim.fn.line(".") + if vim.fn.foldlevel(lnum) <= 0 then return " " end + if vim.fn.foldclosed(lnum) ~= -1 then + return ">" -- 已折疊顯示 > + else + return "v" -- 展開顯示 v + end + end + + -- 點擊事件函數 + function _G.on_click() + local lnum = vim.fn.line(".") + if vim.fn.foldclosed(lnum) == -1 then + vim.cmd(lnum .. "foldclose") -- 如果已展開則折疊 + else + vim.cmd(lnum .. "foldopen") -- 如果已折疊則展開 + end + end + local handler = function(virtText, lnum, endLnum, width, truncate) local newVirtText = {} local totalLines = vim.api.nvim_buf_line_count(0)