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
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.
I use nvim for it, it works but I’d rather not have to deal with indentation in the first place
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.
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
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
Same bruv. I hear your cries of pain, sympathize greatly
Try neovim or something. Codium if you like GUIey things.
I’m using neovim. It doesn’t magically solve my problems with yaml though
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.