Message format validation in properties files
Reports the following MessageFormat problems in property values:
Unknown format types
MessageFormat supports only these format types:
number
date
time
choice
Other format types will be reported.
Unpaired quotes
A single quote is interpreted as an escape until the end of the property, and will not be present in the result string. In most cases this is not what is intended. If a single quote should be present in the result string, it has to be duplicated in the property.
Unmatched braces
Every placeholder must have a closing brace.
Too many quotes
In some cases (e.g. it's), it is expected that only one quote ends up in the result string. Cases where two or more quotes are placed together in the result string are reported.
Incorrect lower bounds for nested ChoiceFormat
Lower bounds are expected to be numbers and to be sorted in ascending order.
Wrong number of quotes around parameters
In java.text.MessageFormat patterns single quotes are used for escaping. To keep quotes visible, they must be duplicated. For example when passing 1:
'{0}'→{0}''{0}''→'1'
When using choice format, nested formats are evaluated as format strings themselves, and quotes will need to be duplicated twice. For example when passing 1:
{0, choice, 0#no|1#''{0}'' files}→{0} files{0, choice, 0#no|1#''''{0}'''' files}→'1' files
Note
Property values are verified only if they contain the literal text {0}, {0,, {1} or {1,. This is to make sure that these property values are actually used as MessageFormat patterns.
Locating this inspection
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
DevKitPropertiesMessageValidation- Via Settings dialog
Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.
New in 2023.2
Suppressing Inspection
You can suppress this inspection by placing the following comment marker before the code fragment where you no longer want messages from this inspection to appear:
More detailed instructions as well as other ways and options that you have can be found in the product documentation:
Inspection Details | |
|---|---|
By default bundled with: |