Skip to content

Feature Request: Support Codebase Semantic Indexing for Neovim #306

Description

@kgfly

Feature Request: Support Codebase Semantic Indexing for Neovim

GitHub Copilot in VS Code provides Codebase Semantic Indexing, including the Chat: Build Codebase semantic index command. This is very useful when working with large repositories because Copilot can identify and retrieve relevant files and code across the codebase.

It would be very valuable to have similar functionality available in Neovim through copilot.vim.

Motivation

For a small/local coding task, the current Copilot experience works well. However, for a large codebase, repository-level context becomes increasingly important.

Without semantic codebase indexing, Neovim users may need to manually navigate to relevant files and provide context through multiple interactions. This can make large-codebase tasks less efficient and potentially result in significantly more context/tokens being used.

For example, for a request such as:

"Add a new workflow similar to the existing payment workflow."

Copilot should ideally be able to discover the relevant controllers, services, interfaces, implementations, configuration, and tests across the repository rather than relying primarily on the currently open files.

Proposed feature

Provide a way to build and maintain a semantic index of the current repository, similar to VS Code's:

Chat: Build Codebase semantic index

For example:

:Copilot build-codebase-index

The implementation could ideally reuse existing Copilot/LSP infrastructure if the underlying Copilot service already supports repository indexing.

Useful capabilities would include:

  • Build an index for the current repository
  • Incrementally update the index as files change
  • Search/retrieve relevant code and symbols for Copilot requests
  • Support repository-level and cross-file questions
  • Use retrieved context when generating or modifying code
  • Avoid sending unnecessary repository content to the model

Expected benefit

This would make Copilot in Neovim much more effective for large repositories, especially for:

  • Multi-file feature implementation
  • Refactoring
  • Cross-file code understanding
  • Large-scale code generation
  • Finding relevant implementations and call paths
  • Reducing unnecessary context/token usage

VS Code already provides this capability, so bringing equivalent repository-level semantic indexing to Neovim would significantly improve the large-codebase experience.

Thank you!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions