nvim/lua/plugins/blink.lua 3.2 K raw
1
return {
2
    { "L3MON4D3/LuaSnip", keys = {} },
3
    {
4
        "saghen/blink.cmp",
5
        event = "InsertEnter", -- Only load when entering insert mode
6
        dependencies = {
7
            "rafamadriz/friendly-snippets",
8
        },
9
        version = "*",
10
        config = function()
11
            require("blink.cmp").setup({
12
                snippets = { preset = "default" },
13
                signature = { enabled = true },
14
                appearance = {
15
                    use_nvim_cmp_as_default = false,
16
                    nerd_font_variant = "normal",
17
                },
18
                sources = {
19
                    default = { "lsp", "path", "snippets", "buffer" },
20
                    providers = {
21
                        cmdline = {
22
                            min_keyword_length = 2,
23
                        },
24
                    },
25
                },
26
                keymap = {
27
                    -- Accept suggestion with Tab or Enter
28
                    ["<Tab>"] = { "accept", "fallback" },
29
                    ["<CR>"] = { "accept", "fallback" },
30
31
                    -- Navigate completion menu with Ctrl+j/k
32
                    ["<C-j>"] = { "select_next", "fallback" },
33
                    ["<C-k>"] = { "select_prev", "fallback" },
34
35
                    -- Alternative: Use arrow keys for navigation
36
                    ["<Down>"] = { "select_next", "fallback" },
37
                    ["<Up>"] = { "select_prev", "fallback" },
38
39
                    -- Show completion menu manually
40
                    ["<C-Space>"] = { "show", "show_documentation", "hide_documentation" },
41
42
                    -- Hide completion menu
43
                    ["<C-e>"] = { "hide", "fallback" },
44
45
                    -- Scroll documentation
46
                    ["<C-u>"] = { "scroll_documentation_up", "fallback" },
47
                    ["<C-d>"] = { "scroll_documentation_down", "fallback" },
48
49
                    -- Remove the disabled Ctrl+f mapping
50
                    ["<C-f>"] = {},
51
                },
52
                cmdline = {
53
                    enabled = false,
54
                    completion = { menu = { auto_show = true } },
55
                    keymap = {
56
                        ["<CR>"] = { "accept_and_enter", "fallback" },
57
                    },
58
                },
59
                completion = {
60
                    menu = {
61
                        border = nil,
62
                        scrolloff = 1,
63
                        scrollbar = false,
64
                        draw = {
65
                            columns = {
66
                                { "kind_icon" },
67
                                { "label",      "label_description", gap = 1 },
68
                                { "kind" },
69
                                { "source_name" },
70
                            },
71
                        },
72
                    },
73
                    documentation = {
74
                        window = {
75
                            border = nil,
76
                            scrollbar = false,
77
                            winhighlight = 'Normal:BlinkCmpDoc,FloatBorder:BlinkCmpDocBorder,EndOfBuffer:BlinkCmpDoc',
78
                        },
79
                        auto_show = true,
80
                        auto_show_delay_ms = 500,
81
                    },
82
                },
83
            })
84
        end,
85
    },
86
}