summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/plugins/comment.lua
blob: b61675a79294c99fbe9bb79f8ed522a5ae7d7105 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
return {
    -- 'numToStr/Comment.nvim',
    'os-mey/Comment.nvim',
    branch = 'fix-inline-visual-linewise-comment',
    keys = {
        { 'gc', mode = { 'n', 'v' } },
        { 'gb', mode = { 'n', 'v' } },
        { '<C-_>', mode = { 'n', 'v' } },
        { 'gcc', mode = 'n' },
        { 'gcb', mode = 'n' },
    },
    config = function()
        require('Comment').setup()
        local api = require('Comment.api')
        local esc = vim.api.nvim_replace_termcodes('<ESC>', true, false, true)
        local toggle_linewise_selection = function()
            vim.api.nvim_feedkeys(esc, 'nx', false)
            api.toggle.linewise(vim.fn.visualmode())
        end

        -- <C-_> means Ctrl slash, `_` is a `/`
        vim.keymap.set('n', '<C-_>', api.toggle.linewise.current, { noremap = true, silent = true })
        vim.keymap.set('v', '<C-_>', toggle_linewise_selection, { noremap = true, silent = true })
    end,
}