Smart Navigator
Visual Studio style reference navigation for all languages
Description
Smart Navigator provides a powerful, Visual Studio-style reference navigation experience for VS Code and Cursor. It offers a custom reference viewer with native VS Code syntax highlighting powered by Monaco Editor, making it easy to navigate through definitions, references, and implementations across your codebase. The code previews use the same editor engine as VS Code, ensuring perfect syntax highlighting and theme consistency.
Features
- 🔍 Custom Reference Viewer: Beautiful, intuitive interface for viewing all references, definitions, and implementations
- 🎨 Syntax Highlighting: Native VS Code syntax highlighting powered by Monaco Editor (the same editor that powers VS Code)
- 📊 Quick Navigation: Click on summary cards to jump to relevant sections
- 🔗 Multi-Language Support: Works with any language that has a Language Server Protocol (LSP) provider in VS Code
- ⚡ Fast & Efficient: Optimized for performance with parallel processing and smart caching
- 💻 Editor-Like Experience: Code previews use Monaco Editor for a native VS Code editing experience
Requirements
Important: This extension requires that the relevant programming language already has proper Language Server Protocol (LSP) support installed in VS Code/Cursor for it to work correctly.
The extension relies on VS Code's built-in language servers and extensions to provide:
- Symbol information (definitions, references, implementations)
- Document symbols
- Reference providers
Required Language Extensions
For the extension to work with a specific language, you must have the appropriate language extension installed:
- C#: C# Dev Kit or C# extension
- TypeScript/JavaScript: Built-in support (TypeScript extension)
- Python: Python extension
- Java: Extension Pack for Java
- C/C++: C/C++ extension
- Go: Go extension
- Rust: rust-analyzer extension
- Dart/Flutter: Dart extension
- And more...
Tested Languages
The following languages have been tested and verified to work with Smart Navigator:
- ✅ C (.c) - Tested with standard C projects
- ✅ C++ (.cpp) - Tested with C++ projects
- ✅ CSS (.css) - Tested with web projects
- ✅ Dart (.dart) - Tested with Flutter projects
- ✅ Go (.go) - Tested with Go projects
- ✅ Java (.java) - Tested with standard Java projects
- ✅ JavaScript (.js) - Tested with Node.js and web projects
- ✅ Python (.py) - Tested with standard Python projects
- ✅ TypeScript (.ts) - Tested with TypeScript projects
Note: Any language with proper LSP support in VS Code should work. If you encounter issues with a specific language, ensure the appropriate language extension is installed and the language server is running. The extension uses Monaco Editor for syntax highlighting, which supports all languages that VS Code supports.
Usage
Open the Reference Viewer:
- Right-click on any symbol (function, class, variable, etc.)
- Select "Smart Navigator: Show References" from the context menu
- Or use the command palette:
Smart Navigator: Show References
Navigate References:
- Click on the summary cards (Definitions, References, Implementations) to scroll to the relevant section
- Click on any reference item to navigate to that location in the editor
- Expand any reference item to see a syntax-highlighted code preview using Monaco Editor (the same editor that powers VS Code)
- The code preview automatically highlights the target line and matches your VS Code theme
Code Lenses:
- Reference counts appear above code elements automatically
- Toggle code lenses on/off via the command palette:
Smart: Toggle Code Lenses
Configuration
The extension provides the following settings:
smartNavigator.autoRefresh: Automatically refresh references when cursor changes (default: true)
smartNavigator.enableCodeLens: Enable code lenses showing reference counts (default: true)
Repository
GitHub: https://github.com/DamithMadushan/smart-navigator
The extension provides a clean, modern interface that integrates seamlessly with your VS Code theme. Code previews use Monaco Editor for native VS Code syntax highlighting, ensuring a consistent and familiar experience.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
See LICENSE.md for details.
Support
If you encounter any issues or have feature requests, please open an issue on the GitHub repository.
Made with ❤️ for developers who love efficient code navigation