all repos

init.lua @ c1837ec

my nvim config

init.lua/lua/plugins/completion.lua(view raw)

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
---@type LazySpec
return {
  {
    "hrsh7th/nvim-cmp",
    event = "InsertEnter",
    dependencies = {
      "hrsh7th/cmp-buffer",
      "saadparwaiz1/cmp_luasnip",
      "hrsh7th/cmp-path",
      "hrsh7th/cmp-nvim-lsp",
      {
        "zbirenbaum/copilot-cmp",
        dependencies = "copilot.lua",
        enabled = false,
        opts = {},
      },
    },
    config = function()
      local cmp = require "cmp"
      local cmp_autopairs = require "nvim-autopairs.completion.cmp"

      cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
      cmp.setup.filetype({ "gitcommit", "NeogitCommitMessage" }, {
        sources = { { name = "buffer" }, { name = "luasnip" } },
      })

      cmp.setup {
        snippet = {
          expand = function(args)
            require("luasnip").lsp_expand(args.body)
          end,
        },
        window = {},
        ---@diagnostic disable-next-line: missing-fields
        view = { entries = { follow_cursor = true } },
        experimental = { ghost_text = true },
        ---@diagnostic disable-next-line: missing-fields
        formatting = {
          format = function(_, vim_item)
            vim_item.kind = ({
              Text = "",
              Method = "",
              Function = "",
              Constructor = "",
              Field = "",
              Variable = "",
              Class = "",
              Interface = "",
              Module = "",
              Property = "",
              Unit = "",
              Value = "",
              Enum = "",
              Keyword = "",
              Snippet = "",
              Color = "",
              File = "",
              Reference = "",
              Folder = "",
              EnumMember = "",
              Constant = "",
              Struct = "",
              Event = "",
              Operator = "",
              TypeParameter = "",
              Copilot = "",
            })[vim_item.kind]

            return vim_item
          end,
        },
        mapping = cmp.mapping.preset.insert {
          ["<C-u>"] = cmp.mapping.scroll_docs(-4),
          ["<C-d>"] = cmp.mapping.scroll_docs(4),
          ["<C-Space>"] = cmp.mapping.complete {},
          ["<CR>"] = cmp.mapping.confirm {
            behavior = cmp.ConfirmBehavior.Insert,
            select = false,
          },
          ["<Tab>"] = function(fallback)
            if cmp.visible() then
              cmp.select_next_item()
            else
              fallback()
            end
          end,
          ["<S-Tab>"] = function(fallback)
            if cmp.visible() then
              cmp.select_prev_item()
            else
              fallback()
            end
          end,
        },
        sources = cmp.config.sources {
          { name = "copilot", group_index = 2, max_item_count = 3 },
          { name = "nvim_lsp", max_item_count = 12 },
          { name = "buffer", max_item_count = 4 },
          { name = "luasnip", max_item_count = 3 },
          { name = "path", max_item_count = 2 },
        },
      }
    end,
  },
}