xoofx / SharpYaml

SharpYaml is a .NET library for YAML compatible with CoreCLR
Other
334 stars 61 forks source link

Preserving comments #85

Open Trojaner opened 3 years ago

Trojaner commented 3 years ago

Is it possible to update an existing yaml file while preserving comments at the same time?

We currently need this for OpenMod (OpenMod is a free and open source plugin framework). Sometimes we add new options to the config yamls. These need to be merged to the current user configs but we would like to preserve comments. Currently we use YamlDotNet which can't do this and the authors of it don't appear to be interested into adding this either.

Example use case

  1. User installs OpenMod and the following yaml gets created:
    rcon:
    # Some long comment that describe what bind does and why it is set like that
    bind: 0.0.0.0
    enabled: true
  2. An OpenMod update adds a new "rcon:port" option with 1554 as default value
  3. The yaml file gets updated while preserving comments:
    rcon:
    # Some long comment that describe what bind does and why it is set like that
    bind: 0.0.0.0
    port: 1554
    enabled: true
xoofx commented 3 years ago

Is it possible to update an existing yaml file while preserving comments at the same time?

Probably not out of the box and likely only by using low level model

Currently we use YamlDotNet which can't do this and the authors of it don't appear to be interested into adding this either.

I'm not against the feature but if you want it, you will have to contribute to it, PR welcome

IncPlusPlus commented 2 years ago

@Trojaner Did you find a solution for this? I'm looking for the same thing.