As we recently started transitioning from IntelliJ IDEA to VS Code and its derivatives like Cursor and Windsor, one thing became immediately apparent: navigating through Java code just wasn't as smooth as we were used to. The lack of quick access to implementations, references, and hierarchies was slowing us down.
So I decided to build a solution.
Introducing Java Code Navigator
Today I'm excited to share Java Code Navigator, a VS Code extension that brings familiar Java navigation capabilities right into your editor through convenient CodeLens actions.

If you've ever found yourself missing the ease of jumping between interfaces and implementations or exploring call hierarchies in VS Code, this extension is for you.
The Problem: Navigation Friction
When our team started using VS Code for Java development, we immediately noticed the friction:
- Right-clicking and selecting "Go to Implementation" felt clunky compared to IntelliJ's one-click navigation
- Finding all references to a method required multiple steps
- Exploring type hierarchies wasn't as accessible
- Performing refactoring operations took more effort
These small frictions added up to a significant productivity hit, especially for those of us who were used to the fluid navigation experience in IntelliJ.
The Solution: CodeLens Actions
Java Code Navigator adds intuitive CodeLens actions directly above your Java interfaces, classes, and methods:

With a single click, you can now:
- Go To Implementation: Jump directly to implementations of interfaces and abstract methods
- Find References: Quickly find all references to a method or class
- Call Hierarchy: Explore the call hierarchy of methods
- Type Hierarchy: View the inheritance hierarchy of classes and interfaces
- Rename Symbol: Easily rename classes and methods with proper refactoring
No more right-clicking and navigating through context menus - everything is just one click away.
How It Works
The extension leverages VS Code's built-in language services but presents them in a more accessible way:
- It detects interfaces, abstract classes, and their methods in your Java code
- It adds CodeLens actions above these elements
- When you click an action, it executes the corresponding VS Code command
- For "Go To Implementation", it even handles multiple implementations by showing them in a quick pick menu
The result is a more IntelliJ-like experience right in VS Code.
From IntelliJ to VS Code: A Smoother Transition
As someone who spent years in the IntelliJ ecosystem, I found the transition to VS Code challenging at first. The editing experience was great, but the navigation felt lacking.
This extension bridges that gap, making the transition much smoother for Java developers. It's especially helpful for teams that are moving from IntelliJ to VS Code or using multiple editors.
Installation and Usage
You can install Java Code Navigator directly from the VS Code Marketplace.
Once installed, open any Java file with interfaces or classes, and you'll see the CodeLens actions appear automatically:
- Above interface declarations
- Above interface methods
- Above abstract classes
- Above abstract methods
Click on any of these actions to navigate your code more efficiently.
What's Coming Next
This is just the beginning for Java Code Navigator. Here's what's on the roadmap:
Spring Framework Support
- CodeLens to navigate from
@Autowiredfields to bean implementations - Navigation from
@Beanmethods to where they're injected - Direct navigation from interfaces to Spring bean implementations
Enhanced Navigation
- Inline preview of call hierarchies directly in the editor
- Visualization options for complex type hierarchies
- Categorization of references (read/write, call/implementation)
Additional Features
- "Generate Override Methods" CodeLens for classes
- "Generate Implementations" CodeLens for interfaces
- "Extract Method/Interface" CodeLens for complex methods/classes
- "Show Javadoc" CodeLens for methods and classes
Configuration Options
- Enable/disable specific CodeLens actions
- Customize CodeLens appearance and positioning
- Project-level overrides for global settings
The Journey from Idea to Extension
Building this extension was a learning experience. I had to dive deep into VS Code's extension API, understand how language services work, and figure out how to present complex information in a user-friendly way.
The biggest challenge was handling the various edge cases in Java code - detecting abstract classes that don't follow naming conventions, handling default methods in interfaces, and dealing with complex inheritance hierarchies.
But the result was worth it. Our team's productivity has improved significantly, and the transition to VS Code has become much smoother.
Conclusion
The move from IntelliJ to VS Code doesn't have to mean sacrificing efficient code navigation. With Java Code Navigator, you can bring familiar navigation capabilities into VS Code and make your Java development workflow more productive.
Happy coding!