Skip to content

Latest commit

 

History

History
81 lines (57 loc) · 2.2 KB

README.md

File metadata and controls

81 lines (57 loc) · 2.2 KB

Unofficial Tabby Plugin for Neovim

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.

demo

Features Comparison

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.

Installation

Using packer.nvim:

use {
  'fspv/tabby.nvim'
}

Using lazy.nvim:

require("lazy").setup({
  {
    "fspv/tabby.nvim",
    config = function ()
      require('tabby').setup({})
    end
  },
})

Configuration

require("tabby_lspconfig").setup()
require("lspconfig").tabby.setup({})

require('tabby').setup({})

Default Keybindings

  • <Tab>: Accept current completion
  • <C-\>: Trigger or dismiss completion

Development

Running Tests

Tests are written using plenary.nvim. To run the tests:

mkdir test_data && nvim --headless -c "PlenaryBustedDirectory test/tabby"

Debug

For debugging enable lsp debug or trace log level. It will also log debug info from this pluging

vim.lsp.set_log_level("debug")

TODO

  • 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