summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/custom/plugins/overseer.lua
blob: 0eff9a1f14563fb6929c1de46c4f6a198a804c4f (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
return {
    'stevearc/overseer.nvim',
    -- NOTE: without telescope the UI is not custom, so making sure telescope is loaded first
    dependencies = { 'nvim-telescope/telescope.nvim' },
    event = 'VeryLazy',
    keys = function()
        local overseer = require('overseer')
        local RUN_TAG = overseer.TAG.RUN
        local BUILD_TAG = overseer.TAG.BUILD
        local TEST_TAG = overseer.TAG.TEST
        local function run_template(tag, show_prompt)
            return function()
                local prompt = show_prompt and 'always' or 'avoid'
                overseer.run_template({ tags = { tag }, first = true, prompt = prompt })
                -- overseer.open({ enter = false }) -- don't focus
            end
        end
        return {
            { '<leader>or', run_template(RUN_TAG, false), desc = '[O]verseer [R]un' },
            { '<leader>oR', run_template(RUN_TAG, true), desc = '[O]verseer [R]un (with params)' },

            { '<leader>ob', run_template(BUILD_TAG, false), desc = '[O]verseer [B]uild' },
            { '<leader>oB', run_template(BUILD_TAG, true), desc = '[O]verseer [B]uild (with params)' },

            { '<leader>ot', run_template(TEST_TAG, false), desc = '[O]verseer [T]est' },
            { '<leader>oT', run_template(TEST_TAG, true), desc = '[O]verseer [T]est (with params)' },

            { '<leader>ow', '<cmd>OverseerToggle!<cr>', desc = '[O]verseer [W]indow (toggle)' },
            { '<leader>oW', '<cmd>OverseerQuickAction open float<cr>', desc = '[O]verseer [W]indow (terminal float)' },
        }
    end,
    opts = {
        templates = { 'builtin', 'custom' },
        task_list = {
            min_height = 0.5,
            bindings = {
                ['o'] = false,
                ['<C-v>'] = false,
                ['<C-s>'] = false,
                ['<C-h>'] = false,
                ['<C-j>'] = false,
                ['<C-k>'] = false,
                ['<C-l>'] = false,
                ['<C-u>'] = 'ScrollOutputUp',
                ['<C-d>'] = 'ScrollOutputDown',
            },
        },
    },
}