nvimdev / epo.nvim

A blazing fast and minimal neovim autocompletion
MIT License
131 stars 4 forks source link

epo.nvim

Blazingly fast, minimal lsp auto-completion and snippet plugin for neovim.

Needs neovim nightly

Usage

-- the default completetopt set by epo
vim.opt.completeopt = "menu,menuone,noselect,popup"

-- use default settings
require('epo').setup()

options in setup param with default value

-- fuzzy match
fuzzy = false,
-- increase this value can aviod trigger complete when delete character.
debounce = 50,
-- when completion confrim auto show a signature help floating window.
signature = false,
-- border for lsp signature popup, :h nvim_open_win
signature_border = 'rounded',
-- lsp kind formatting, k is kind string "Field", "Struct", "Keyword" etc.
kind_format = function(k)
  return k:lower():sub(1, 1)
end

You may want to pass the capabilities to your lsp

local capabilities = vim.tbl_deep_extend(
      'force',
      vim.lsp.protocol.make_client_capabilities(),
      require('epo').register_cap()
    )

Completion menu look dull and boring? Your colorscheme may be missing these highlights:

Pmenu
PmenuExtra
PmenuSel
PmenuKind
PmenuKindSel
PmenuExtraSel
PmenuSbar
PmenuThumb
Click to show some mapping presets - TAB complete ```lua vim.keymap.set('i', '', function() if vim.fn.pumvisible() == 1 then return '' elseif vim.snippet.jumpable(1) then return 'lua vim.snippet.jump(1)' else return '' end end, { expr = true }) vim.keymap.set('i', '', function() if vim.fn.pumvisible() == 1 then return '' elseif vim.snippet.jumpable(-1) then return 'lua vim.snippet.jump(-1)' else return '' end end, { expr = true }) vim.keymap.set('i', '', function() if vim.fn.pumvisible() == 1 then require('epo').disable_trigger() end return '' end, {expr = true}) ``` - use `` to accept completion ```lua -- For using enter as completion, may conflict with some autopair plugin vim.keymap.set("i", "", function() if vim.fn.pumvisible() == 1 then return "" end return "" end, { expr = true, noremap = true }) -- nvim-autopair compatibility vim.keymap.set("i", "", function() if vim.fn.pumvisible() == 1 then return "" end return require("nvim-autopairs").autopairs_cr() end, { expr = true, noremap = true }) ```

License MIT