nvim.git

nvim

~
git clone https://github.com/debuman/nvim.git

lua/josean/plugins/nvim-cmp.lua (1934B)

      1 return {
      2   "hrsh7th/nvim-cmp",
      3   event = "InsertEnter",
      4   dependencies = {
      5     "hrsh7th/cmp-buffer", -- source for text in buffer
      6     "hrsh7th/cmp-path", -- source for file system paths
      7     "L3MON4D3/LuaSnip", -- snippet engine
      8     "saadparwaiz1/cmp_luasnip", -- for autocompletion
      9     "rafamadriz/friendly-snippets", -- useful snippets
     10     "onsails/lspkind.nvim", -- vs-code like pictograms
     11   },
     12   config = function()
     13     local cmp = require("cmp")
     14 
     15     local luasnip = require("luasnip")
     16 
     17     local lspkind = require("lspkind")
     18 
     19     -- loads vscode style snippets from installed plugins (e.g. friendly-snippets)
     20     require("luasnip.loaders.from_vscode").lazy_load()
     21 
     22     cmp.setup({
     23       completion = {
     24         completeopt = "menu,menuone,preview,noselect",
     25       },
     26       snippet = { -- configure how nvim-cmp interacts with snippet engine
     27         expand = function(args)
     28           luasnip.lsp_expand(args.body)
     29         end,
     30       },
     31       mapping = cmp.mapping.preset.insert({
     32         ["<C-k>"] = cmp.mapping.select_prev_item(), -- previous suggestion
     33         ["<C-j>"] = cmp.mapping.select_next_item(), -- next suggestion
     34         ["<C-b>"] = cmp.mapping.scroll_docs(-4),
     35         ["<C-f>"] = cmp.mapping.scroll_docs(4),
     36         ["<C-Space>"] = cmp.mapping.complete(), -- show completion suggestions
     37         ["<C-e>"] = cmp.mapping.abort(), -- close completion window
     38         ["<CR>"] = cmp.mapping.confirm({ select = false }),
     39       }),
     40       -- sources for autocompletion
     41       sources = cmp.config.sources({
     42         { name = "nvim_lsp" },
     43         { name = "luasnip" }, -- snippets
     44         { name = "buffer" }, -- text within current buffer
     45         { name = "path" }, -- file system paths
     46       }),
     47       -- configure lspkind for vs-code like pictograms in completion menu
     48       formatting = {
     49         format = lspkind.cmp_format({
     50           maxwidth = 50,
     51           ellipsis_char = "...",
     52         }),
     53       },
     54     })
     55   end,
     56 }