Enhanced LSP-integrated inline completion plugin for Neovim that provides richer context for Tabby suggestions. Built as an alternative to the official vim plugin to improve completion quality through deeper Neovim LSP integration.
Feature | This Plugin | Official Plugin |
---|---|---|
Basic Inline Completion | ✓ | ✓ |
LSP symbol definition resolution | ✓ | ✗ |
Multi-file Context Support | ✓ | ✗ |
Cross-file Code Resolution | ✓ | ✗ |
Telemetry Collection | ✗ | ✓ |
Test Coverage | ✓ | ✗ |
Vimscript | 0% | >0% |
The enhanced context gathering capabilities result in significantly improved code suggestions compared to the official plugin's "around cursor only" approach. Written entirely in Lua with no VimScript dependencies, it implements features available in the VSCode client but missing from the official Vim plugin.
Using packer.nvim:
use {
'fspv/tabby.nvim'
}
Using lazy.nvim
:
require("lazy").setup({
{
"fspv/tabby.nvim",
config = function ()
require('tabby').setup({})
end
},
})
require("tabby_lspconfig").setup()
require("lspconfig").tabby.setup({})
require('tabby').setup({})
<Tab>
: Accept current completion<C-\>
: Trigger or dismiss completion
Tests are written using plenary.nvim. To run the tests:
mkdir test_data && nvim --headless -c "PlenaryBustedDirectory test/tabby"
For debugging enable lsp debug or trace log level. It will also log debug info from this pluging
vim.lsp.set_log_level("debug")
- Test minimal config with nix and docker
- Fix a few bugs with the completion accept and cover all of the by unittests
- Revisit virtual text logic. It is known to be incorrect in some cases
- Implement checkhealth