summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/plugins/octo.lua
blob: 96120afeec337203d8a7bf94e95cda3a82d35bf4 (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
26
27
28
29
30
31
return {
    'pwntester/octo.nvim',
    cmd = 'Octo',
    dependencies = {
        'nvim-lua/plenary.nvim',
        'folke/snacks.nvim',
        'nvim-tree/nvim-web-devicons',
    },
    keys = {
        { '<leader>gi', '<cmd>Octo issue search<cr>', desc = '[G]ithub [I]ssues (local)' },
        { '<leader>pr', '<cmd>Octo pr search<cr>', desc = 'Github [PR]s (local)' },
        { '<leader>gI', '<cmd>Octo search is:issue is:open author:@me<cr>', desc = '[G]ithub [I]ssues (global)' },
        { '<leader>pR', '<cmd>Octo search is:pr author:@me<cr>', desc = 'Github [PR]s (global)' },
    },
    config = function()
        require('octo').setup({
            suppress_missing_scope = { projects_v2 = true },
            picker = 'snacks',
        })

        vim.treesitter.language.register('markdown', 'octo')
        vim.api.nvim_create_autocmd('FileType', {
            pattern = 'octo',
            callback = function()
                -- Autocomplete for @ (user mention) and # (issue)
                vim.keymap.set('i', '@', '@<C-x><C-o>', { silent = true, buffer = true })
                vim.keymap.set('i', '#', '#<C-x><C-o>', { silent = true, buffer = true })
            end,
        })
    end,
}