-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a toml esq configuration reader and writer #620
Conversation
Qodana Community for JVM11 new problems were found
💡 Qodana analysis was run in the pull request mode: only the changed files were checked Contact Qodana teamContact us at qodana-support@jetbrains.com
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files
... and 24 files with indirect coverage changes @@ Coverage Diff @@
## main #620 +/- ##
============================================
+ Coverage 35.44% 35.70% +0.26%
- Complexity 4919 4932 +13
============================================
Files 1352 1356 +4
Lines 47930 48253 +323
Branches 9663 9718 +55
============================================
+ Hits 16989 17231 +242
- Misses 27497 27578 +81
Partials 3444 3444
🚀 New features to boost your workflow:
|
After consideration about yaml in #618 I wrote a toml parser but it wasn't as performant as I would've liked. I came up with a few improvements over the current yaml parser I had. Namely: parsing numbers by hand and managing & reading everything as bytes rather than char arrays.
My first implementation highlighted the complexity and weird edge case design decisions for toml, like supporting a flexible version of RFC 3339 dates rather than ISO 8601, allowing multi-line arrays but not multi-line maps, and not having a way to reduce duplication of table headers.
I addressed this by implementing my own syntax, removing the complexities for my use-case and adding a select few improvements. It's closer in style to .ini than .toml but is both more limited and more expressive than either.