🔍 Copilot ADO Search
Supercharge your GitHub Copilot with Azure DevOps code search capabilities!
Search across all your Azure DevOps repositories instantly from within VS Code. Find classes, methods, interfaces, and any code symbol across your entire organization with intelligent GitHub Copilot integration.
✨ Key Features
- 🤖 GitHub Copilot Integration - Use natural language to search your ADO codebase
- 🔍 Organization-wide Search - Search across all projects and repositories
- 💬 Chat Participant - Dedicated ADO chat participant with slash commands
- 🌳 Multiple Views - Tree view and rich HTML presentation modes
- ⚡ Context Menu - Right-click any symbol to search instantly
- 🎯 Smart Symbol Detection - Automatically detects classes, methods, interfaces, and more
- 🔍 Hover Provider - Hover over symbols to see ADO search results instantly
- ⚡ Intelligent Caching - Fast performance with smart caching system
- 🎨 AST-Powered Analysis - Advanced TypeScript/C# symbol analysis
- 📊 Explorer Integration - Dedicated search results panel in VS Code Explorer
🚀 Quick Setup
- Install the extension from the VS Code Marketplace
- Configure your organization: Set
copilotAdoSearch.organization
in VS Code settings (e.g., contoso
)
- Set your PAT: Run command
ADO Search: Set Azure DevOps PAT
- Requires Code (read) permission
- Stored securely in VS Code Secret Storage
That's it! You're ready to search your Azure DevOps codebase with GitHub Copilot.
🔑 Getting Your Personal Access Token
- Go to your Azure DevOps organization
- Click your profile → Personal access tokens
- Create a new token with Code (read) scope
- Copy the token and paste it when prompted by the extension
💬 How to Use
GitHub Copilot Chat Integration
Use the ADO chat participant in GitHub Copilot Chat:
@ADO /find OrderService
@ADO /find UserRepository and show in html
@ADO search PaymentService in C#

Available Commands
/find <symbol>
- Search for any code symbol across your organization
/context
- Get detailed context for a specific file and symbol
/help
- Show all available commands
Natural Language Support
Just type naturally in Copilot Chat:
- "Find OrderService class"
- "Search for PaymentProcessor"
- "Show me UserRepository and present results"
Right-click any symbol in C#, TypeScript, or JavaScript files and select "ADO Search: Find All Occurrences" for instant search.
Hover Provider
Hover over any symbol in supported files to see:
- Instant ADO search results - No need to manually search
- File locations - See where symbols are defined across your organization
- Quick actions - Open files, refresh cache, view full results
- Smart caching - Fast performance with intelligent cache management
Explorer Panel
The ADO Search Results panel in VS Code Explorer shows:
- Organized results - Grouped by project and repository
- Expandable tree - Drill down to specific files and occurrences
- Quick navigation - Click to open files directly
Reference these tools directly in Copilot prompts:
#adoSearch
- Search across all repositories
#adoSymbolContext
- Get specific file context
#adoAggregate
- Present results in tree or HTML view
📊 Result Presentation
Tree View
- Fast loading - Quick overview of all matches
- Organized by project/repository - Easy navigation
- Expandable hierarchy - Drill down to specific files
HTML View
- Rich syntax highlighting - Powered by Prism.js
- Interactive navigation - Click to jump between results
- Direct ADO links - Open files in Azure DevOps
- Print-friendly - Perfect for documentation and sharing
- Offline-friendly - Single HTML file with all content
Smart Auto-Aggregation
Results are automatically presented when you use keywords like:
- "show", "present", "display", "view"
- Or specify:
presentation=tree
or presentation=html
⚡ Auto-Aggregation Details
The /find
command automatically aggregates and presents results when your prompt includes presentation keywords or when you specify a presentation mode explicitly.
Natural Language Triggers
Use these phrases to automatically trigger result aggregation:
@ADO /find RetrieveCertificates and show in html view
@ADO /find UserService and present results
@ADO /find PaymentProcessor and display in tree
@ADO search OrderService and visualize results
Explicit Presentation Modes
For precise control, specify the presentation mode directly:
@ADO /find OrderService presentation=tree
@ADO /find UserRepository presentation=html maxFiles=30
@ADO /find PaymentService presentation=html window=15
Advanced Parameters
Fine-tune your search and presentation:
@ADO /find OrderService language=cs presentation=html maxFiles=50 window=11
@ADO /find UserService max_results=100 presentation=tree
@ADO /context project=MyProject repo=WebApp path=/src/Services/OrderService.cs symbol=ProcessOrder occurrence=2 window=15
When to Use Each Mode
Scenario |
Recommended Mode |
Why |
Quick exploration |
tree |
Fast loading, low memory usage |
Code review |
html |
Rich highlighting, detailed view |
Documentation |
html |
Print-friendly, shareable |
Large symbol hunts |
tree first, then html for subset |
Progressive refinement |
Team sharing |
html |
Offline-friendly single file |
Feature Comparison
Feature |
Tree View |
HTML View |
Loading Speed |
⚡ Fast |
🔄 Medium |
Memory Usage |
💚 Low |
🟡 Medium |
Interactivity |
🌳 Expand/collapse hierarchy |
🖱️ Tree + detail panel navigation |
Code Highlighting |
❌ Basic |
✅ Rich Prism.js highlighting |
Filtering |
❌ No |
✅ Via structural navigation |
Print/Export |
❌ Limited |
✅ Full document export |
Offline Sharing |
❌ VS Code dependent |
✅ Standalone HTML file |
ADO Integration |
✅ Direct links |
✅ Direct links + context |
HTML View Structure
When using presentation=html
, you get:
- Header & Statistics - Search summary and result counts
- Project/Repository Tree - Organized navigation structure
- File Detail Panel - Code snippets with occurrence highlighting
- Direct ADO Links - One-click access to source files
- Syntax Highlighting - Language-aware code presentation
- Search Term Emphasis - Highlighted matches within code
- Start with tree view for large result sets (100+ files)
- Use HTML view for focused analysis (< 50 files)
- Adjust
maxFiles
parameter to control result size
- Use
window
parameter to control snippet size (default: 11 lines)
- Enable caching for frequently searched symbols
Intelligent Caching System
- Hot Cache - In-memory cache for frequently accessed symbols
- Cold Cache - Persistent disk cache for long-term storage
- Smart Expiration - Configurable cache aging and cleanup
- Performance Monitoring - Built-in cache statistics and health monitoring
Cache Management
- Automatic cleanup - Removes stale entries based on age and size limits
- Manual control - Clear cache, view statistics, refresh specific symbols
- Configuration migration - Seamless updates when settings change
- Error recovery - Graceful fallback when cache is unavailable
- Concurrent requests - Configurable parallel search execution
- Request throttling - Prevents API rate limiting
- Symbol deduplication - Avoids redundant searches
- AST-powered analysis - Fast local symbol detection
⚙️ Configuration
Customize the extension behavior in VS Code settings:
Basic Settings
copilotAdoSearch.organization
- Your Azure DevOps organization name
copilotAdoSearch.maxConcurrentRequests
- Concurrent search requests (1-10, default: 4)
copilotAdoSearch.maxProjects
- Limit projects to search (0 for all)
Advanced Caching Settings
copilotAdoSearch.cache.enabled
- Enable result caching for better performance (default: true)
copilotAdoSearch.cache.maxAge
- Cache expiration in hours (default: 720 hours = 30 days)
copilotAdoSearch.cache.maxSize
- Maximum cache size in MB (default: 100MB)
copilotAdoSearch.cache.location
- Custom cache directory (optional)
Available Commands
Access these commands via Command Palette (Ctrl+Shift+P
):
- ADO Search: Set Azure DevOps PAT - Configure your Personal Access Token
- ADO Search: Clear Azure DevOps PAT - Remove stored PAT
- ADO Search: Show Results Tree - Open the search results panel
- ADO Search: Find and Present - Search and display results
- ADO Search: Show Cache Statistics - View cache performance metrics
- ADO Search: Clear Symbol Cache - Reset the symbol cache
🔐 Privacy & Security
- Secure storage: Your Personal Access Token is stored securely using VS Code Secret Storage
- No data collection: The extension only communicates with your Azure DevOps organization
- Local processing: All search results are processed locally in VS Code
🔧 Troubleshooting
Common Issues
Hover not working?
- Ensure you're hovering over symbols in supported languages (C#, TypeScript, JavaScript)
- Check that your ADO organization and PAT are configured correctly
- Try refreshing the symbol cache: Command Palette → "ADO Search: Clear Symbol Cache"
Search results empty?
- Verify your PAT has "Code (read)" permissions
- Check that Code Search is enabled in your Azure DevOps organization
- Ensure the symbol exists in your organization's repositories
Performance issues?
- View cache statistics: Command Palette → "ADO Search: Show Cache Statistics"
- Adjust
copilotAdoSearch.maxConcurrentRequests
(lower for slower connections)
- Clear cache if it becomes too large: "ADO Search: Clear Symbol Cache"
Configuration problems?
- Use "ADO Search: Show Configuration Help" for guided setup
- Check VS Code settings for
copilotAdoSearch.*
configuration
- Verify organization name matches your ADO URL (e.g.,
contoso
for dev.azure.com/contoso
)
🛠️ Supported Languages
- C# (.cs) - Complete symbol analysis and hover support
- TypeScript (.ts, .tsx) - Advanced AST-powered symbol detection
- JavaScript (.js, .jsx) - Full hover and context menu integration
- Python (.py)
- Java (.java)
- C++ (.cpp, .h)
- Go (.go)
- Visual Basic (.vb)
- And more...
Advanced Features by Language
- C# & TypeScript: AST-powered symbol type detection
- All languages: Intelligent symbol kind inference (class, method, interface, etc.)
- Context-aware search: Language-specific search optimizations
🤝 Contributing
Found a bug or have a feature request?
📄 License
MIT License - see LICENSE for details.
Made with ❤️ for developers who love efficient code search