Often find myself getting frustrated editing yaml, and it seems to be used everywhere for some reason I cannot fathom

I have an idea to write an editor plugin that will, when opening a yaml file, convert it to json (or some other less painful configuration language), then convert back on save. I don’t know enough about yaml syntax to know if that’s possible or if there’s some quirk that makes them not completely cross compatible

Or alternatively if it exists a better CLI tool for editing yaml than just a normal text editor because I’m getting sick of pasting in a block of yaml and then having to fix the 8 indentation errors that somehow spawn from that

16 points

What text editor are you using? In theory most should detect a yaml file and adjust their indentation behaviour appropriately. I edit yaml in VSCode and Kate and it’s never been a problem.

permalink
report
reply
0 points

I use nvim for it, it works but I’d rather not have to deal with indentation in the first place

permalink
report
parent
reply
5 points

Well in that case, I have good news. All valid JSON is also valid yaml. It’s a superset by definition. So if you really hate yaml so much you can just write your yaml files as JSON and the parser should handle it fine. Just be aware that yaml does some more agressive typecasting when quotes are omitted, so you may need to figure out which value is actually being used when converting.

permalink
report
parent
reply
2 points

Seriously? Chatgpt told me that once and I thought it was just hallucinating

Problem is it’s for configuration of other services I didn’t write, I would just use JSON in the first place if I were defining the schema

permalink
report
parent
reply
6 points

I could see some problems when working with yaml anchors, otherwise the conversion should work fine. But yeah, using a good editor should fix most problems and would be much easier

permalink
report
reply
0 points

What kind of problems? I’m unfamiliar with anchors in yaml

permalink
report
parent
reply
1 point

They are basically constants where you can define reoccurring sections once and reference them multiple times throughout the file. A processor will then resolve these. As gar as I know, there is no comparable concept in JSON so they could get lost in translation

permalink
report
parent
reply
3 points

Same bruv. I hear your cries of pain, sympathize greatly

permalink
report
reply
2 points

Try neovim or something. Codium if you like GUIey things.

permalink
report
reply
2 points

I’m using neovim. It doesn’t magically solve my problems with yaml though

permalink
report
parent
reply
1 point

I’m not a power yaml user by any means, but syntax highlighting and linting pipelines do help.

permalink
report
parent
reply
1 point

I have an idea to write an editor plugin that will, when opening a yaml file, convert it to json (or some other less painful configuration language), then convert back on save. I don’t know enough about yaml syntax to know if that’s possible or if there’s some quirk that makes them not completely cross compatible

You could probably do this pretty easily with a simple python script. Use the yaml parser to convert into a dictionary, use the JSON renderer to save that dictionary into a pipe file. Launch the visual editor of your choice on that file. When the editor exits, read the file as JSON, parse it back into a dictionary, and use the yaml renderer to save that dictionary back into the original file.

permalink
report
reply
1 point

Yeah that was exactly what I was thinking, and/or doing a similar thing in lua as an nvim plugin

That said I’m not sure if neovim would support something like that

permalink
report
parent
reply

Technology

!technology@lemmy.world

Create post

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


Community stats

  • 17K

    Monthly active users

  • 12K

    Posts

  • 556K

    Comments