zbirenbaum/copilot.lua

Fully featured & enhanced replacement for copilot.vim complete with API for interacting with Github Copilot

What it solves

copilot.lua is a pure Lua replacement for the official copilot.vim plugin. It addresses performance issues, such as laptop overheating and distracting ghost text behavior, by providing a more efficient implementation that integrates better with modern Neovim plugins.

How it works

The plugin acts as a bridge between Neovim and the GitHub Copilot Language Server. It allows users to configure how suggestions are displayed and accepted, supporting both inline ghost text and a dedicated preview panel. It also supports an experimental "Next Edit Suggestion" (NES) feature via the copilot-lsp dependency.

Who it’s for

Neovim users who want GitHub Copilot's AI-powered code completions in their editor, specifically those seeking a more performant and customizable Lua-based alternative to the Vim script version.

Highlights

  • Dual Suggestion Modes: Supports both inline ghost text and a split-window panel for previewing multiple suggestions.
  • Customizable Triggering: Options to auto-trigger suggestions as you type or manually trigger them via keymaps.
  • NES Support: Experimental support for Next Edit Suggestions to predict the next likely change in the code.
  • Extensible API: Provides a copilot.api module to allow other developers to build integrations (e.g., with nvim-cmp or blink.cmp).
  • Flexible Attachment: Fine-grained control over which filetypes or buffers Copilot should attach to using should_attach and filetypes configurations.

Related

  • Project
  • Project
  • Project
  • Project
  • Project