Commit Graph

197 Commits

Author SHA1 Message Date
Felix Krause bf87d508d0 Fixed presenter regarding new style annotations
* fixed presentation of flow mappings inside block collections
 * improved logic checking whether a collection can be written on a
   single line
 * fixed tests
2023-11-14 15:30:43 +01:00
Felix Krause a698289223 New pragmas for customizing presentation
* added yaml/style that defines representation pragmas
   `scalar` and `collection`
 * implemented those pragmas
 * updated docs. also fixes some invalid links in docs
2023-11-11 15:36:10 +01:00
Felix Krause 03c95da97c Presenter improvements and new features
* Presenter now tries to write style given in event
 * Can write single quoted
 * several fixes to line length handling
 * sever other presenter fixes
 * updated server deps
 * updated server code to use new presenter features
   (or rather, not use, as the server *should* alter the
   input style instead of outputting it as-is)
2023-11-11 13:20:56 +01:00
Felix Krause 854d33378e fixes #101, minor improvements
* improved error reporting on wrong tags
 * removed a debug `echo` call
 * fixed problems with sparse objects and Option (#101)
2023-11-05 15:10:29 +01:00
Felix Krause f60725fc93 Made loading work at compile time
* dumping doesn't work at CT
 * timestamps don't work at CT
 * aliases don't work at CT
 * renamed tserialization -> tnative to mirror rename of native.nim file
 * added comptime tests to tnative, currently only execute when doing
   nim nativeTests, because of compiler bug
 * Fixes #70, #91
2023-08-30 21:14:31 +02:00
Felix Krause 940675a52e Reworked loading API
* moved load procs to yaml/loading.nim
 * moved input YamlStream into ConstructionContext
 * made ConstructionContext a non-ref object
 * harmonized code style & comments
 * renamed yaml/serialization.nim to yaml/native.nim
2023-08-29 23:23:15 +02:00
Felix Krause 18fc8ba3f5 Reworked dumping API
* removed default value objects,
   use Nim2 default vaules for fields instead.
 * moved dump procs to yaml/dumping and introduced Dumper
 * modified serialization procs to use ctx as first argument,
   so that prefix calls can be used
 * changed defaults for presentation to be more like other
   YAML implementations, e.g. no directives by default.
 * Removed deprecated procs in DOM API
 * Removed PresentationStyle – use the setXStyle procs of Dumper
   instead.
 * Fixed some warnings emerging from transitioning to Nim2
2023-08-29 20:46:26 +02:00
Felix Krause 189844a72b Rewrote large parts of presenter
* PresentationOptions has gained more fine-tuning options:
   * directivesEnd: specifies when `---` is written. ref #135
   * containers: specifies whether containers use block or flow style
   * suppressAddrs: if set, suppresses output of attributes
   * quoting: specifies how strings should be quoted
   * condenseFlow: specifies whether flow sequences should be on a
     single line
   * explicitKeys: specifies whether mapping keys should always have '?'
 * PresentationStyle is now a list of presets that set
   multiple options in PresentationOptions.
 * Does not output trailing spaces anymore. ref #135
 * Writes compact notation, i.e. a mapping in a sequence starts on the
   line with the sequence's `-`, unless attributes are written
 * Added tests for the presenter
 * Existing code might change behavior because of whitespace, `---` and
   compact notation. The API has been extended so that existing code is
   affected as little as possible.
2023-07-31 19:16:24 +02:00
Felix Krause 84e59c16d4 fixed tjson to conform to new type hints 2023-04-10 17:18:14 +02:00
theamarin ee7dc11a90
Adapt type hinting to Yaml 1.2.2 (#132)
Updated type hinting for YAML 1.2.

 * previously outdated regexes from YAML 1.1 were used.
 * removed special cases for leading zeros that are not part of YAML 1.2.
 * updated literal regexes for infinity, NaN and boolean values.
 * added tests for type hinting

Co-authored-by: theamarin <theamarin@thecreation.de>
2023-04-10 17:17:03 +02:00
Felix Krause 576cf11d81 Can load fields of parent types. ref #131
* dumping fields of parent types not working yet
2023-04-04 19:29:20 +02:00
Felix Krause 39444f6536 Consolidated exceptions 2023-03-18 13:54:45 +01:00
Felix Krause 034b9b8453 Reworked some exceptions and compiler warnings
* LexerError is properly rewritten as YamlParserError in parser
 * updated some code to remove warnings and hints that got emitted
 * Fixes #129
2023-03-13 22:06:07 +01:00
Felix Krause 300dbce72a Updated test suite, fixed lexer issues 2023-03-10 22:21:18 +01:00
Felix Krause 5f7677d914 Improved presenter.
* added maxLineLength to PresentationOptions. Fixes #119
 * write a newline to the end of the document.
   required for the output files to be POSIX-compliant text files.
   also improves QoL when dumping to stdout.
2022-09-07 15:15:55 +02:00
Felix Krause 741fd18047 Deprecated DOM API, YamlNode now supported by serialization API
* implements #48
 * also fixes #108
 * updated docs
2022-06-05 12:27:19 +02:00
Felix Krause c681498701 updated tests, fixed problems 2021-10-22 17:42:48 +02:00
Felix Krause c1cc0be3f3 fixed lexer errors discovered by new parser tests 2021-10-22 17:22:43 +02:00
Felix Krause 386d516770 updated yaml-test-suite 2021-10-21 17:37:51 +02:00
Felix Krause d20707c4e4 disable DOM API when using ARC (ref #85) 2021-05-18 00:42:58 +02:00
Felix Krause 329e18e44c removed obsolete TagLibrary type. control tag directives when dumping. fixes #95 2021-03-23 18:51:05 +01:00
Felix Krause e3e810fce0 all tests green again 2020-11-10 19:07:46 +01:00
Felix Krause 9d92e8a2c5 all serialization tests green again 2020-11-10 15:40:01 +01:00
Felix Krause 4305bccbf0 made anchor resolution during deserialization safer 2020-11-10 14:48:19 +01:00
Felix Krause aa65c066d5 changed TagId to Tag. removed JS stuff that wasn't working anyway. 2020-11-10 13:55:22 +01:00
Felix Krause 6238104622 started making serializationTests green again 2020-11-06 21:39:50 +01:00
Felix Krause 48d601d959 parser tests working, other tests compiling 2020-11-06 16:21:58 +01:00
Felix Krause e2f8e6419e lots of fixes for parser, started updating serialization 2020-11-05 20:23:42 +01:00
Felix Krause ae4c097a25 fixed parser test framework; started making parser tests green 2020-11-04 22:47:52 +01:00
Felix Krause 2840d4d654 made lexer tests green again 2020-11-04 19:32:09 +01:00
Felix Krause 4c604b09df made lexer & parser tests compile (not succeed) again 2020-11-04 16:40:37 +01:00
Felix Krause 05b8528f3e translated parser from AdaYaml 2020-11-03 21:17:31 +01:00
Jakob Homan d173f2a7f6 Correct command is nim test rather than nim tests. 2020-10-05 10:38:04 +02:00
narimiran c339661a6f fix deprecated stuff 2020-07-22 13:52:44 +02:00
Felix Krause 951efdf18e added {.sparse.}. fixes #82 2020-06-26 23:21:22 +02:00
Felix Krause bce3981849 replaced field/object macros with annotations; fixes #66 2020-06-26 21:29:41 +02:00
flyx 1dfc2a3333 Implemented Option serialization. Fixes #78 2020-03-08 19:58:02 +01:00
k0zmo fd4a718586 Adhere to new rules of object variants (re)initialization 2019-07-06 11:14:34 +02:00
Vindaar 8a7750cb6c make sure to also append '\0' for JS as well as C backend
Also remove now unnecessary `os` (was imported for internal
`assertStringEqual` test) module import in `tserialization`.
2018-10-12 16:00:39 +02:00
Vindaar 2d47de8c4e ignore yaml test suite case 'S98Z' 2018-10-12 16:00:39 +02:00
Vindaar a211eab2c6 whitespace removal to get rid of 'number of spaces around...'
Since whitespace wasn't aligning all `==` anyways, removal seems fine.
2018-10-12 16:00:39 +02:00
Vindaar da9396a2f3 remove internal string assert test 2018-10-12 16:00:39 +02:00
Vindaar ebe4201cbc replace `assertStringEqual` by version checking for content and len
Now check for content *and* length of the strings in
`tserialization`. Also adds a test case for the case with which the
old version would have failed (one string longer than the other, thus
being different).

This version tries to keep the error reporting mechanism the same as
the old version.
2018-10-12 16:00:39 +02:00
Vindaar 81e50d73d9 remove commented out old code 2018-10-12 16:00:39 +02:00
Vindaar 9a445c18bb fix `assertStringEqual` to make sure not to access null terminator 2018-10-12 16:00:39 +02:00
Vindaar f290876df7 replace `echo` + `quit(1)` by error call in `tquickstart.nim`
The call to `quit 1` failed on my machine. Hence use macros.error.
2018-10-12 16:00:39 +02:00
Vindaar fb13dc1627 further `isNil` checks in `tserialization` fixed 2018-10-12 16:00:39 +02:00
Vindaar 4821ef95fb [soft] take out yTagNimNilString/Seq and related (?) nil tests 2018-10-12 16:00:39 +02:00
Felix Krause e7e532ccb8 Version 0.10.3 2017-09-20 19:04:57 +02:00
Felix Krause af58ab68de Version 0.10.2 2017-08-30 18:14:08 +02:00