From 89db0157b1621deffc83a4e00cb2be13e2827a5d Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Tue, 23 May 2023 08:41:44 +0200 Subject: [PATCH] feat(mini.comment): added ts-context-commentstring back and made it work with mini.comment --- lua/lazyvim/plugins/coding.lua | 9 +++++++++ lua/lazyvim/util/init.lua | 14 ++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/lua/lazyvim/plugins/coding.lua b/lua/lazyvim/plugins/coding.lua index 1984851e..017e295e 100644 --- a/lua/lazyvim/plugins/coding.lua +++ b/lua/lazyvim/plugins/coding.lua @@ -131,9 +131,18 @@ return { }, -- comments + { "JoosepAlviste/nvim-ts-context-commentstring", lazy = true }, { "echasnovski/mini.comment", event = "VeryLazy", + config = function(_, opts) + local c = require("mini.comment") + c.setup(opts) + local H = require("lazyvim.util").get_upvalue(c.setup, "H") + H.get_commentstring = function() + return require("ts_context_commentstring.internal").calculate_commentstring() or vim.bo.commentstring + end + end, opts = {}, }, diff --git a/lua/lazyvim/util/init.lua b/lua/lazyvim/util/init.lua index 7625d8a9..a098f071 100644 --- a/lua/lazyvim/util/init.lua +++ b/lua/lazyvim/util/init.lua @@ -27,6 +27,20 @@ function M.fg(name) return fg and { fg = string.format("#%06x", fg) } end +function M.get_upvalue(func, name) + local i = 1 + while true do + local n, v = debug.getupvalue(func, i) + if not n then + break + end + if n == name then + return v + end + i = i + 1 + end +end + ---@param fn fun() function M.on_very_lazy(fn) vim.api.nvim_create_autocmd("User", {