You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Feature Request: Support Codebase Semantic Indexing for Neovim #306
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.
Activity