local M = { "numToStr/Comment.nvim", lazy = false, dependencies = { { "JoosepAlviste/nvim-ts-context-commentstring", event = "VeryLazy", }, }, } function M.config() local wk = require "which-key" wk.register { ["/"] = { "(comment_toggle_linewise_current)", "Comment" }, } wk.register { ["/"] = { "(comment_toggle_linewise_visual)", "Comment", mode = "v" }, } vim.g.skip_ts_context_commentstring_module = true ---@diagnostic disable: missing-fields require("ts_context_commentstring").setup { enable_autocmd = false, } require("Comment").setup { ---Add a space b/w comment and the line padding = true, ---Whether the cursor should stay at its position sticky = true, ---LHS of toggle mappings in NORMAL mode toggler = { ---Line-comment toggle keymap line = "gcc", ---Block-comment toggle keymap block = "gbc", }, ---LHS of operator-pending mappings in NORMAL and VISUAL mode opleader = { ---Line-comment keymap line = "gc", ---Block-comment keymap block = "gb", }, ---LHS of extra mappings extra = { ---Add comment on the line above above = "gcO", ---Add comment on the line below below = "gco", ---Add comment at the end of line eol = "gcA", }, ---Enable keybindings ---NOTE: If given `false` then the plugin won't create any mappings mappings = { ---Operator-pending mapping; `gcc` `gbc` `gc[count]{motion}` `gb[count]{motion}` basic = true, ---Extra mapping; `gco`, `gcO`, `gcA` extra = true, }, ---Function to call before (un)comment pre_hook = require("ts_context_commentstring.integrations.comment_nvim").create_pre_hook(), ---Function to call after (un)comment -- post_hook = nil, } end return M