manifold-systems / manifold

Manifold is a Java compiler plugin, its features include Metaprogramming, Properties, Extension Methods, Operator Overloading, Templates, a Preprocessor, and more.
http://manifold.systems/
Apache License 2.0
2.27k stars 122 forks source link

Add HOCON configuration support #568

Open dakotahNorth opened 2 months ago

dakotahNorth commented 2 months ago

Suggest to add HOCON (Human-Optimized Config Object Notation) support.

https://github.com/lightbend/config/blob/main/HOCON.md

Given the project's current support for JSON, incorporating HOCON could provide enhanced flexibility and usability for configuration files.

Why HOCON?

HOCON is a superset of JSON designed for human-readable files. It includes several features that make it more convenient for configuration purposes, such as:

These features, among others, make HOCON an attractive option for configuration files, especially in complex applications and recommend for manifold-systems to consider adding HOCON along side of JSON, YAML, etc.

rsmckinney commented 2 months ago

You had me at Comments ;)

It looks like HOCON is mostly used for Minecraft mods via Sponge? Don't know much about minecraft, but a decent amount of useful feedback for manifold comes from that crowd. I'd be happy to implement HOCON support if you think it would be useful enough to be used in that context, just a matter of scheduling time for it, not much of that these days. Should work out though, if I can extend manifold-json according to my limited mental model of HOCON.

dakotahNorth commented 2 months ago

They are certainly the ones who popularize it ... and I have used Hocon on several projects outside of Mineraft mods, so it is used more broadly outside of Sponge.