Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nvimdev/epo.nvim
A blazing fast and minimal neovim autocompletion
https://github.com/nvimdev/epo.nvim
Last synced: 14 days ago
JSON representation
A blazing fast and minimal neovim autocompletion
- Host: GitHub
- URL: https://github.com/nvimdev/epo.nvim
- Owner: nvimdev
- License: mit
- Archived: true
- Created: 2023-10-17T00:27:47.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-10T03:32:54.000Z (4 months ago)
- Last Synced: 2024-07-31T20:39:52.201Z (3 months ago)
- Language: Lua
- Size: 56.6 KB
- Stars: 131
- Watchers: 8
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-neovim - nvimdev/epo.nvim - Blazingly fast, minimal LSP auto-completion and snippet engine. (Completion / (requires Neovim 0.5))
README
## epo.nvim
Blazingly fast, minimal lsp auto-completion and snippet plugin for neovim.
**Needs neovim nightly**
## Usage
```lua
-- 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
```lua
-- 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
```lua
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