Comments (4)
Thanks for opening an issue. This looks like it's probably caused by the same thing as I've been tracking in #86, which I haven't been able to resolve yet due to its complexity.
from yamlfmt.
This is not limited to trailing whitespaces in the last line of a folded string:
foo: >
lorem
ipsum
is being formated to
foo: "lorem \nipsum\n"
from yamlfmt.
Can also confirmed this is happening with normal block scalars.
Before
block: |
key: value (single whitespace appended)
After
block: "key: value \n"
Expected
block: |
key: value (whitespace removed)
If there is no trailing whitespace, everything words as expected. As per @bewee-i any line with a trailing whitespace will cause this occur, it is not limited to the last line.
from yamlfmt.
Thank you for the additional example.
On the root issue #86 I added an explanation for why this bug occurs, but I'll copy that explanation here for visibility:
This is caused by the hack around the fact that yaml.v3 doesn't retain plain line-break information. yamlfmt will insert a magic string before being serialized into yaml.v3's node structure. Then after the new output is produced, we use the magic strings to put them back in. However, one place that newline information will actually be retained is in block scalars. So the magic line string being thrown on there messes with the serialization. I can't think of a way around this without somehow getting rid of the hack. I've tried in the past to fix this in yaml.v3 but I came up short. I've been wanting to build my own yaml parser instead to rid myself of yaml.v3 in general, and in that case this and many other fixes/features I've wanted to implement would be possible. Haven't had the time to invest to make that happen though.
from yamlfmt.
Related Issues (20)
- Support reviewdog HOT 1
- don't remove newline from end of file HOT 1
- Ordered keys HOT 1
- 0.10.0 release? HOT 2
- Add option to remove trailing spaces HOT 2
- Unexpected reformatting of block scalar? HOT 2
- Preserve multiline for line ending with \ HOT 4
- Exclude is still a little bit wonky HOT 8
- Feature Request: Optional exclude content from .gitignore HOT 1
- Docs request: `best_width`, YAML library HOT 2
- Request: `indent` being respected beyond top level HOT 1
- Support system-installed yamlfmt HOT 15
- Wrong front matter interpretation HOT 1
- Feature request: allow to retain some empty lines HOT 5
- yamlfmt does not respect `excldue` HOT 5
- yamlfmt -dry and yamlfmt (no -dry) have a difference of opinion HOT 1
- Support finding a local yamlfmt config file named `.yamlfmt.yaml` HOT 1
- Simple, single line output when there is a file with incorrect formatting HOT 2
- Do not touch file if there are no changes HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yamlfmt.