diff options
Diffstat (limited to '.config/nvim/lua/core/comment.lua')
-rw-r--r-- | .config/nvim/lua/core/comment.lua | 66 |
1 files changed, 53 insertions, 13 deletions
diff --git a/.config/nvim/lua/core/comment.lua b/.config/nvim/lua/core/comment.lua index a97018d..f8d62c2 100644 --- a/.config/nvim/lua/core/comment.lua +++ b/.config/nvim/lua/core/comment.lua @@ -1,26 +1,66 @@ local M = {} function M.config() + local pre_hook = nil + if options.builtin.treesitter.context_commentstring.enable then + pre_hook = function(_ctx) + return require("ts_context_commentstring.internal").calculate_commentstring() + end + end options.builtin.comment = { active = true, on_config_done = nil, - -- Linters prefer comment and line to have a space in between markers - marker_padding = true, - -- should comment out empty or whitespace only lines - comment_empty = false, - -- Should key mappings be created - create_mappings = true, - -- Normal mode mapping left hand side - line_mapping = "gcc", - -- Visual/Operator mapping left hand side - operator_mapping = "gc", - -- Hook function to call before commenting takes place - hook = nil, + ---Add a space b/w comment and the line + ---@type boolean + padding = true, + + ---Lines to be ignored while comment/uncomment. + ---Could be a regex string or a function that returns a regex string. + ---Example: Use '^$' to ignore empty lines + ---@type string|function + ignore = "^$", + + ---Whether to create basic (operator-pending) and extra mappings for NORMAL/VISUAL mode + ---@type table + mappings = { + ---operator-pending mapping + ---Includes `gcc`, `gcb`, `gc[count]{motion}` and `gb[count]{motion}` + basic = true, + ---extended mapping + ---Includes `g>`, `g<`, `g>[count]{motion}` and `g<[count]{motion}` + extra = false, + }, + + ---LHS of line and block comment toggle mapping in NORMAL/VISUAL mode + ---@type table + toggler = { + ---line-comment toggle + line = "gcc", + ---block-comment toggle + block = "gbc", + }, + + ---LHS of line and block comment operator-mode mapping in NORMAL/VISUAL mode + ---@type table + opleader = { + ---line-comment opfunc mapping + line = "gc", + ---block-comment opfunc mapping + block = "gb", + }, + + ---Pre-hook, called before commenting the line + ---@type function|nil + pre_hook = pre_hook, + + ---Post-hook, called after commenting is done + ---@type function|nil + post_hook = nil, } end function M.setup() - local nvim_comment = require "nvim_comment" + local nvim_comment = require "Comment" nvim_comment.setup(options.builtin.comment) if options.builtin.comment.on_config_done then |