spring-projects / sts4

The next generation of tooling for Spring Boot, including support for Cloud Foundry manifest files, Concourse CI pipeline definitions, BOSH deployment manifests, and more... - Available for Eclipse, Visual Studio Code, and Theia
https://spring.io/tools
Eclipse Public License 1.0
882 stars 206 forks source link

Recognise `!---` as a document separator in properties files #1129

Closed pmahony893 closed 4 months ago

pmahony893 commented 1 year ago

Expected Behaviour In properties files, !--- and #--- can both be used to separate documents (as long as there's no neighbouring comment with the same prefix). The editor should recognise this when parsing properties files.

E.g. the following properties file should show an error about duplicate properties def, but not abc:

abc=1
!---
abc=2
def=3
#---
# some comment
def=4

Current Behaviour With the properties file, above, the editor raises errors for duplicate properties abc, and not def, because it does not recognise !--- as a document separator, and it does not take notice of the # some comment line "cancelling" the #--- separator.

Context

This causes unnecessary errors to show up in the problems view, and also causes actual errors to not appear.

BoykoAlex commented 1 year ago

@pmahony893 I didn't see !--- and #--- to be mentioned in the Oracle's Java Properties spec at all. Are you sure you are not confusing Java Properties format with YAML? YAML format properties can have the above doc separators but doesn't look like Java Properties format can have doc separators... Ultimately contents of the Java Properties file land in java.util.Properties type object which is really a wrapper around a map.

pmahony893 commented 1 year ago

@BoykoAlex I'm referring to the Spring Boot feature described here, whereby a properties file may be split into multiple documents, similar to yaml files.

There is already some editor support for this, however, it is incomplete, as only the # variant is recognised, and comments on neighbouring lines are not taken into account.

BoykoAlex commented 1 year ago

@pmahony893 I see - thanks for sharing the link to the doc. Looks like we need to extends the Java Properties Grammar and parser to handle this... There are other tools that work with application.properties files, i.e. OpenRewrite recipes which also unlikely to recognize this new feature...

BoykoAlex commented 4 months ago

Fixed with 32c8a86d8691f878f7dbb6cdf2f69a548d0a69ca