perfect_toml icon indicating copy to clipboard operation
perfect_toml copied to clipboard

Add indentation.

Open bemehiser opened this issue 1 year ago • 4 comments

Add the ability to specify indentation.

  • intent - the number of spaces of indentation per level

bemehiser avatar Feb 08 '24 22:02 bemehiser

@mame, any change you can review and merge this? I'd love to have the new changes for my projects. Thanks!

bemehiser avatar Feb 09 '24 16:02 bemehiser

Thank you, but I'm a little cautious about this feature though. This is because I think of some variants on the possible indentation style.

  • Nested indent (proposed?)
[foo]
  key = value
  [foo.bar]
    key = value
    [foo.bar.baz]
      key = value
  • Nested indent, but not indent key = value
[foo]
key = value
  [foo.bar]
  key = value
    [foo.bar.baz]
    key = value
  • No nested indent, but indents only key = value
[foo]
  key = value
[foo.bar]
  key = value
[foo.bar.baz]
  key = value
  • Indent by spaces, or indent by hard tabs
  • What output should be produced when combined with use_dot option

I should research what other major TOML encoder implementations offer in terms of formatting options.

mame avatar Feb 09 '24 21:02 mame

  • I personally use the third option with no nested indent.

  • I strongly recommend using spaces and not tabs. All the common IDEs use spaces instead of tabs, because tabs are inconsistent. The way I made this you can specify the number of spaces you want sections to be indented by. Common options are 2 or 4 spaces.

If you would prefer to use the nested indent schema, I could see about making that work and updating this merge request. I don't have a huge preference about indentation. Either option 1 or 3 would be fine. Any indentation will be better than no indentation.

bemehiser avatar Feb 09 '24 21:02 bemehiser

Hey @mame, just checking in to see if you had any further input on this. I really would like to have indentation added soon so I don't have to fork and push a new gem just to add the feature to my project.

Is there a specific indentation format I can implement which you would merge?

bemehiser avatar Feb 14 '24 16:02 bemehiser