Java Properties Navigator
English | 中文

Intelligent navigation between Java code and configuration files with enhanced Spring @Value support
Java Properties Navigator is a powerful VS Code extension that provides seamless navigation between Java source code and configuration files. Jump instantly from property keys in your Java code to their definitions in .properties, .yml, and .yaml files. Now with enhanced support for Spring @Value annotations!
✨ Features
🎯 Smart Property Detection
- Automatic Recognition: Intelligently detects property keys in Java strings
- Spring @Value Support: Enhanced detection and navigation for Spring @Value annotations with complex expressions
- Context-Aware: Works with variables, method parameters, annotations, and Spring Boot configurations
- Multi-Format Support: Supports
.properties, .yml, and .yaml files
🚀 Instant Navigation
- One-Click Jump: Right-click on any property key to jump to its definition
- @Value Annotation Support: Navigate directly from @Value("${property.key}") to property definitions
- Keyboard Shortcuts: Quick navigation with
Alt+Shift+P (Windows/Linux) or Cmd+Shift+P (macOS)
- Multi-Location Support: Choose from multiple definitions when properties exist in different files
💡 Enhanced Developer Experience
- Hover Information: See property values on hover without leaving your Java code
- Spring Boot Integration: Enhanced support for Spring Boot configuration patterns
- Status Bar Integration: Quick access to rebuild index and extension status
- Real-time Updates: Automatically refreshes when configuration files change
🔧 Advanced Configuration
- Flexible Scanning: Customize which directories and file types to include
- Smart Exclusions: Exclude build directories, node_modules, and other irrelevant paths
- Environment Support: Handle multiple environment configurations (dev, prod, test)
- Spring Profile Support: Navigate properties across different Spring profiles
📦 Installation
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X or Cmd+Shift+X)
- Search for "Java Properties Navigator"
- Click Install
Alternatively, install from the Visual Studio Code Marketplace.
🚀 Quick Start
- Open a Java project with configuration files
- Place your cursor on a property key string in Java code
- Right-click and select "Jump to Property" or use
Alt+Shift+P
- Navigate instantly to the property definition
Example Usage
// Java code with Spring @Value annotations
@Component
public class ApplicationConfig {
@Value("${spring.application.name}")
private String applicationName;
@Value("${server.port:8080}")
private int serverPort;
@Value("${app.feature.enabled:false}")
private boolean featureEnabled;
@Value("${app.database.url}")
private String databaseUrl;
public void configureApplication() {
String configPath = getConfig("spring.config.location");
String profile = getConfig("spring.profiles.active");
String logLevel = getConfig("logging.level.root");
}
}
New in v1.1.0: Enhanced support for Spring @Value annotations with:
- Complex property expressions like
${property.name:defaultValue}
- Nested property references
- Spring Boot configuration patterns
- Environment-specific property navigation



The extension will help you navigate from Spring @Value annotations and property strings to their definitions in your configuration files.
⚙️ Configuration
Extension Settings
| Setting |
Description |
Default |
java-properties-navigator.scanDirectories |
Directories to scan for properties files |
["src/main/resources", "**/src/main/resources"] |
java-properties-navigator.excludePatterns |
Patterns to exclude from scanning |
["**/target/**", "**/build/**", "**/node_modules/**"] |
java-properties-navigator.fileExtensions |
File extensions to include |
[".properties", ".yml", ".yaml"] |
java-properties-navigator.enableDiagnostics |
Enable diagnostics for undefined properties |
true |
java-properties-navigator.showStatusBar |
Show status bar item |
true |
java-properties-navigator.autoRebuildOnConfigChange |
Auto-rebuild index on config changes |
true |
Advanced Exclusion Patterns
Configure exclusion patterns to optimize scanning performance:
{
"java-properties-navigator.excludePatterns": [
"**/target/**",
"**/build/**",
"**/node_modules/**",
"**/.git/**",
"**/temp/**",
"*.backup",
"test-resources/**"
]
}
Multi-Module Projects
For complex projects with multiple modules:
{
"java-properties-navigator.scanDirectories": [
"*/src/main/resources",
"*/*/src/main/resources",
"config/**",
"shared/resources/**"
]
}
Advanced Configuration Examples
Using Absolute Paths
{
"java-properties-navigator.scanDirectories": [
"src/main/resources",
"D:/myworkspace/demo/src/main/resources",
"/home/user/projects/config",
"**/src/main/resources"
]
}
Mixed Path Configuration
{
"java-properties-navigator.scanDirectories": [
"src/main/resources",
"config/**",
"C:/SharedConfig/properties",
"**/src/main/resources"
]
}
🎮 Commands
| Command |
Description |
Shortcut |
Jump to Property |
Navigate to property definition |
Alt+Shift+P (Win/Linux)
Cmd+Shift+P (macOS) |
Rebuild Properties Index |
Manually rebuild the properties index |
- |
Find Property Usages |
Find where a property is used (coming soon) |
- |
🔍 How It Works
- Indexing: Scans your project for configuration files and builds an index
- Detection: Analyzes Java strings to identify potential property keys
- Navigation: Provides instant navigation to property definitions
- Updates: Monitors file changes and updates the index automatically
🛠️ Supported File Types
- Properties Files:
.properties
- YAML Files:
.yml, .yaml
- Java Files:
.java (for property key detection)
📋 Requirements
- VS Code: Version 1.60.0 or higher
- Java Project: With configuration files in standard locations
🐛 Troubleshooting
Common Issues
Q: Properties not found?
- Ensure your configuration files are in the scanned directories
- Check the
scanDirectories setting
- Rebuild the index using the status bar button
Q: Performance issues with large projects?
- Add more exclusion patterns for irrelevant directories
- Limit scan directories to essential paths only
Q: Navigation not working?
- Verify the property key is a valid string literal
- Check that the property exists in your configuration files
- Try rebuilding the index
Reset Extension
If you encounter persistent issues:
- Open Command Palette (
Ctrl+Shift+P)
- Run "Rebuild Properties Index"
- Restart VS Code if needed
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
- Clone the repository
- Run
npm install
- Open in VS Code
- Press
F5 to start debugging
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Thanks to the VS Code team for the excellent extension API
- Inspired by the need for better Java development tools
- Built with ❤️ for the Java community
Enjoy seamless navigation between your Java code and configuration files! 🚀