A Visual Studio Code extension that provides enhanced implementation detection and navigation for Go and Java files. This extension helps developers quickly find and navigate between interface implementations and their corresponding classes.
Demo
Watch how the extension helps you navigate between interfaces and implementations with a single click
Features
Implementation Detection: Automatically detects interface implementations in Go and Java files
CodeLens Support: Shows "Implemented by" and "Implements" CodeLens indicators above interface and implementation declarations
Quick Navigation: Click on CodeLens indicators to navigate between interfaces and their implementations
Multi-language Support: Works with both Go and Java files
Real-time Updates: Updates implementation indicators as you type
Requirements
Visual Studio Code 1.60.0 or higher
Go or Java files in your workspace
Installation
Open VS Code
Go to the Extensions view (Ctrl+Shift+X or Cmd+Shift+X)
Search for "CodeJump"
Click Install
Usage
For Go Files
Open a Go file containing an interface
Look for the "Implemenatations" CodeLens above interface declarations
Click on the CodeLens to see all implementations
Click on any implementation to navigate to it
When there's only one implementation, you'll be taken directly to it
When there are multiple implementations, you'll see a list to choose from
For Java Files
Open a Java file containing an interface
Look for the "Implementations" CodeLens above interface declarations
Click on the CodeLens to see all implementing classes
Click on any implementation to navigate to it
When there's only one implementation, you'll be taken directly to it
When there are multiple implementations, you'll see a list to choose from
Navigation Behavior
Single Implementation: When there's only one implementation, clicking the CodeLens will take you directly to it
Multiple Implementations: When there are multiple implementations, clicking the CodeLens will show a list of all implementations for you to choose from
Interface Navigation: When viewing an implementation, clicking the "Implements" CodeLens will take you directly to the interface if there's only one, or show a list if there are multiple interfaces
Performance Considerations
The extension is designed to be lightweight and efficient, but here are some important performance considerations:
Impact on VS Code Performance
The extension only activates when you open Go or Java files
No background processes or continuous monitoring are running
Uses VS Code's built-in CodeLens feature, which is already optimized
Implementation detection is done on-demand when viewing interface declarations
Resource Usage
Lightweight text-based analysis for implementation detection
Results are cached to improve subsequent lookups
Minimal memory footprint
Performance in Large Codebases
For small to medium codebases, there should be negligible performance impact
In very large codebases (thousands of files), you might notice:
A slight delay when first opening an interface file
Longer search times when looking for implementations across many files
Subsequent lookups will be faster due to caching
Optimization Tips
Disable the extension when not working with Go or Java files
If you experience any slowdown, you can temporarily disable the extension
For large projects, consider working with a subset of files when possible
Known Issues
Implementation detection may take a few seconds for large codebases
Some complex interface implementations might not be detected
Performance may vary depending on the size of your workspace
Release Notes
1.0.0
Initial release of the Implementation Provider extension with support for:
Go interface implementation detection
Java interface implementation detection
CodeLens indicators for navigation
Basic implementation detection logic
Contributing
The repository will soon be open sourced.
License
This extension is licensed under the MIT License - see the LICENSE file for details.