Semantic Code Search VSCode Extension

A code indexing and semantic search VSCode extension powered by Code Context.
📖 New to Code Context? Check out the main project README for an overview and setup instructions.

Features
- 🔍 Semantic Search: Intelligent code search based on semantic understanding, not just keyword matching
- 📁 Codebase Indexing: Automatically index entire codebase and build semantic vector database
- 🎯 Context Search: Search related code by selecting code snippets
- 🔧 Multi-platform Support: Support for OpenAI, VoyageAI, Gemini, and Ollama as embedding providers
- 💾 Vector Storage: Integrated with Milvus vector database for efficient storage and retrieval
Requirements
- VSCode Version: 1.74.0 or higher
Installation
From VS Code Marketplace
Direct Link: Install from VS Code Marketplace
Manual Search:
- Open Extensions view in VSCode (Ctrl+Shift+X or Cmd+Shift+X on Mac)
- Search for "Semantic Code Search"
- Click Install
Quick Start
Configuration
The first time you open Code Context, you need to click on Settings icon to configure the relevant options.
Embedding Configuration
Configure your embedding provider to convert code into semantic vectors.
OpenAI Configuration:
Embedding Provider
: Select "OpenAI" from the dropdown
Model name
: Choose the embedding model (e.g., text-embedding-3-small
, text-embedding-3-large
)
OpenAI API key
: Your OpenAI API key for authentication
Custom API endpoint URL
: Optional custom endpoint (defaults to https://api.openai.com/v1
)
Other Supported Providers:
- Gemini: Google's state-of-the-art embedding model with Matryoshka representation learning
- VoyageAI: Alternative embedding provider with competitive performance
- Ollama: For local embedding models
Code Splitter Configuration
Configure how your code is split into chunks for indexing.
Splitter Settings:
Splitter Type
: Choose between "AST Splitter" (syntax-aware) or "LangChain Splitter" (character-based)
Chunk Size
: Maximum size of each code chunk (default: 1000 characters)
Chunk Overlap
: Number of overlapping characters between chunks (default: 200 characters)
Recommendation: Use AST Splitter for better semantic understanding of code structure.
Milvus configuration
Zilliz Cloud(fully managed Milvus vector database as a service, you can use it for free)
MILVUS_ADDRESS
is the Public Endpoint of your Zilliz Cloud instance
MILVUS_TOKEN
is the token of your Zilliz Cloud instance.
MILVUS_ADDRESS=https://xxx-xxxxxxxxxxxx.serverless.gcp-us-west1.cloud.zilliz.com
MILVUS_TOKEN=xxxxxxx
Optional: Self-hosted Milvus. See Milvus Documentation for more details to install Milvus.
Usage
Set the Configuration:
- Open VSCode Settings (Ctrl+, or Cmd+, on Mac)
- Search for "Semantic Code Search"
- Set the configuration
Index Codebase:
- Open Command Palette (Ctrl+Shift+P or Cmd+Shift+P on Mac)
- Run "Semantic Code Search: Index Codebase"
Start Searching:
- Open Semantic Code Search panel in sidebar
- Enter search query or right-click on selected code to search
Commands
Semantic Code Search: Semantic Search
- Perform semantic search
Semantic Code Search: Index Codebase
- Index current codebase
Semantic Code Search: Clear Index
- Clear the index
Configuration
semanticCodeSearch.embeddingProvider.provider
- Embedding provider (OpenAI/VoyageAI/Gemini/Ollama)
semanticCodeSearch.embeddingProvider.model
- Embedding model to use
semanticCodeSearch.embeddingProvider.apiKey
- API key for embedding provider
semanticCodeSearch.embeddingProvider.outputDimensionality
- Output dimension for Gemini (supports 3072, 1536, 768, 256)
semanticCodeSearch.milvus.address
- Milvus server address
Contributing
This VSCode extension is part of the Code Context monorepo. Please see:
Tech Stack
- TypeScript
- VSCode Extension API
- Milvus Vector Database
- OpenAI/VoyageAI Embeddings
License
MIT - See LICENSE for details