dotfiles/neovim/.config/nvim/lua/plugins/comment.lua
2024-06-25 10:18:09 -06:00

75 lines
2.2 KiB
Lua

return {{
-- Smart and powerful comment plugin for neovim.
-- Supports treesitter, dot repeat, left-right/up-down motions, hooks, and more
"numToStr/Comment.nvim",
opts = {
active = true,
on_config_done = nil,
-- Add a space b/w comment and the line
-- @type boolean
padding = true,
-- Whether cursor should stay at the
-- same position. Only works in NORMAL
-- mode mappings
sticky = 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,
-- Extra mapping
-- Includes `gco`, `gcO`, `gcA`
extra = true
},
-- LHS of line and block comment toggle mapping in NORMAL/VISUAL mode
-- @type table
toggler = {
-- line-comment toggle
line = "mm",
-- block-comment toggle
block = "mbm"
},
-- LHS of line and block comment operator-mode mapping in NORMAL/VISUAL mode
-- @type table
opleader = {
-- line-comment opfunc mapping
line = "m",
-- block-comment opfunc mapping
block = "mb"
},
-- LHS of extra mappings
-- @type table
extra = {
-- Add comment on the line above
above = "mO",
-- Add comment on the line below
below = "mo",
-- Add comment at the end of line
eol = "mA"
},
-- 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
},
---@param opts TSConfig
config = function(_, opts)
require("Comment").setup(opts)
end
}}