From 0811207844cce1130f58b766e1908b3825f85643 Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Wed, 28 May 2025 18:37:58 -0400 Subject: [PATCH] feat: nvim: treesitter: enable code folding --- nix/base-system/init.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/nix/base-system/init.lua b/nix/base-system/init.lua index f15e494..67a8e98 100644 --- a/nix/base-system/init.lua +++ b/nix/base-system/init.lua @@ -43,6 +43,23 @@ vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, { end, }) +vim.api.nvim_create_autocmd({ "BufNewfile", "BufRead" }, { + callback = function(args) + -- If treesitter supports this filetype then use the treesitter fold expression + local ft = vim.bo.filetype + if ft and ft ~= "" then + -- Safely check if a parser exists for this filetype + local has_parser = pcall(function() return vim.treesitter.language.inspect(ft) end) + if has_parser then + vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()' + vim.wo.foldmethod = 'expr' + vim.wo.foldlevel = 3 + end + end + end, +}) + + vim.cmd([[ au BufNewFile,BufRead *Makefile,*.mk set noexpandtab ]]) @@ -320,6 +337,7 @@ require('nvim-treesitter.configs').setup { extended_mode = true, max_file_lines = nil, }, + textobjects = { enable = true }, incremental_selection = { enable = true, keymaps = {