Properties LensRead, search and diff Java
Java message bundles store non-ASCII text as Unicode escapes ( Properties Lens never touches your files. It gives you a read-only decoded view, a decoded diff, a message search, and inline messages next to keys in JSP / JS / Java. FeaturesDecoded viewOpen
Messages next to keysIn JSP, JS, Java and other source files, the message text appears right after each key. Hover to see every locale; missing translations are flagged.
Unknown keys (typos) are highlighted.
Message search —
|
| Setting | Default | Description |
|---|---|---|
propertiesLens.bundleGlob |
**/*.properties |
Candidate files; only locale groups become bundles |
propertiesLens.exclude |
**/{target,build,node_modules,out,dist,.git}/** |
Excluded files |
propertiesLens.primaryLocale |
"" |
Locale shown inline and in search. Empty: VS Code display language, then the default file |
propertiesLens.keyPatterns |
spring:message, fmt:message, getMessage( |
Regexes that find keys; capture group 1 is the key |
propertiesLens.decorateFiles |
**/*.{jsp,jspf,tag,js,ts,html,java} |
Files that get inline messages, hover and go-to-definition |
propertiesLens.syncCommand |
"" |
Shell command that regenerates bundles |
propertiesLens.syncCwd |
"" |
Working directory of the sync command, relative to the workspace folder |
propertiesLens.autoOpenDecoded |
true |
Open bundle files in the decoded view automatically |
In untrusted workspaces, syncCommand and syncCwd are read from user settings only.
Read-only by design
- The extension never writes to
.propertiesfiles. Edit your source of truth (a spreadsheet, a generator…) instead. - Files with merge-conflict markers or unsaved changes are never swapped to the decoded view.
- Control characters and line/paragraph separators (
\u2028,\u2029) stay escaped so lines never shift.
Known limitations
F12jumps to the primary locale; other locales are in the hover.- Changing
decorateFilesneeds a window reload for hover and go-to-definition. - An open HEAD-side diff is not refreshed after you commit or switch branches — reopen it.




