Commit Graph

378 Commits

Author SHA1 Message Date
Bram Gotink a50b5100df
Align KDL Query grammar with prose
The values() and props() accessors were only mentioned in the
grammaer, with no explanation whatsoever about what they were
supposed to do.

The val() accessor required an argument in the grammar while
the prose repeatedly mentions val() as equivalent to val(0).
2025-02-19 22:09:31 +01:00
Bram Gotink b942867c58
Make whitespace required around query operators (#500) 2025-02-18 15:19:19 -08:00
Bram Gotink ee79f9f755
Escape U+200E and U+200F (#506)
Fixes #502
2025-02-18 15:18:18 -08:00
Lars Willighagen 84911feb11
Remove mandatory node-space before slashdash and children block (#499)
* Remove mandatory node-space before slashdash

Fix #495

* Add tests

* Fix more tests

* Fix tests again
2025-01-28 16:48:09 -08:00
Bram Gotink c54ebd9473
Align test formatting (#501)
Other tests don't have quotes around strings if the string
is a valid identifier, this test is the odd one out.
2025-01-28 16:45:14 -08:00
Lars Willighagen 6c55186c03
Add link to Kate Editor Support (#498) 2025-01-23 12:30:47 -08:00
Kat Marchán 21a9eb3f65
actual tweaks, plus some automatic reformatting (#497) 2025-01-22 22:40:36 -08:00
Kat Marchán aab44fcd1b
minor tweaks to wording/clarifications (#484) 2025-01-22 16:52:12 -08:00
Evgeny d76063e8e9
Exclude hex above max Unicode Scalar Value (#456)
* Exclude hex above max Unicode Scalar Value

simplify surrogate regex to use ranges

* allow leading 0s, but still limit max length to 6

* Add explicit regex-set rules to hex unicode

document {1,3} ranges

* add space-separators between sets

* Make test fail *only* for length limits

Previously it failed due to specifying a codepoint past max *as well*, obscuring the intended fail condition.

---------

Co-authored-by: Tab Atkins Jr. <jackalmage@gmail.com>
2025-01-21 09:16:45 -08:00
Kat Marchán e9e6a844bd
Add Onyx to list of users 2025-01-21 03:03:56 -08:00
Tab Atkins-Bittner 7322f37800 Add the compact form of html-standard.kdl as a secondary benchmarking point. 2025-01-20 17:29:13 -08:00
Kat Marchán 919e154dcd
UTF-8 is a hard requirement, actually (#490) 2025-01-20 04:13:45 -08:00
Kat Marchán 53a884c93d
Create SPEC.md 2025-01-19 09:45:05 -08:00
Tab Atkins Jr. 23159696d1
Add the html standard, in kdl format, as a large-document benchmark. (#488)
* Add the html standard, in kdl format, as a large-document benchmark.

* Explain the purpose of the benchmarks
2025-01-18 08:58:43 -08:00
Clar Fon 82a91697a1
Fix typo: RFC1123 is the RFC that defines requirements for hostnames (#487) 2025-01-18 01:18:17 -08:00
Jeffrey Yasskin 4263a9de3f
Convert the specification into RFC format (#466)
Fixes: https://github.com/kdl-org/kdl/issues/461

* Initial conversion to Internet-Draft.

* Setup repository for draft-marchan-kdl2 using https://github.com/martinthomson/i-d-template

* Remove unnecessary changes.

* Tweak source to make the I-D build.

* Fix zkat's name. Guess at their preferred initials.

* Separate links where linking text equals the anchor.

This works around https://github.com/cabo/kramdown-rfc/issues/249.

* Replace horizontal rules with subsections.

RFCXML v3 doesn't include horizontal rules.

* Use ~~~kdl  instead of `` for strings with significant whitespace.

That compiles to <sourcecode> which preserves sequences of spaces.

* Give breadcrumbs to the RFC format definitions.

* Point contributors to https://author-tools.ietf.org/.

For if installing the dependencies is inconvenient.

* Separate a code block from adjacent text.

* Remove a workflow that overwrites customized files.

* Remove the 'archive' workflow.

* Use "Term ({{term}})" uniformly instead of just when the term matches the anchor.

* Fix the instructions for preserving the RFCXML.

* Remove the default copyright notice until the spec is relicensed.

* Take the IETF licensing details out of CONTRIBUTING.md.
2025-01-17 21:06:17 -08:00
Tab Atkins Jr. 0c2dde6d3c
Support empty multiline strings (#483)
* Support empty multiline strings

Per <https://github.com/kdl-org/kdl/discussions/481>, the grammar doesn't actually allow the first and last newline in a multiline string to be the same (indicating an empty string). This looks like the minimal fix for it.

* Add tests for empty multilines

* remove accidental newline
2025-01-17 16:28:52 -08:00
Bram Gotink 20375a187e
align prose text on initial identifier characters with grammar (#464) 2025-01-17 09:54:19 -08:00
Dani Smith 91cd421988
update SPEC to keep lines lengths short (#470) 2025-01-17 09:52:28 -08:00
Dani Smith 34e4259dfc
Remove Identifier String termination phrase (#485)
Fixes: https://github.com/kdl-org/kdl/issues/480
2025-01-17 09:18:43 -08:00
Evgeny a3b37857e2
Note Sublime Text support of v2 (#474) 2025-01-12 10:15:51 -08:00
Evgeny 9c9d2b2445
test: add a fail-test braces in bare ids (#477)
or a child block without space separator

current test is inadequate as it has extra fail that can mask this one
2025-01-12 09:17:44 -08:00
Dani Smith 39a098237d
identifier strings can technically be terminated by EOF (#469) 2025-01-09 08:56:33 -08:00
Kat Marchán 1147fe965a
kdljs now supports v2 2025-01-08 09:01:30 -08:00
Lars Willighagen 72a3c769d7
Fix q-ws rule in KQL grammar (#463) 2025-01-05 07:35:37 -08:00
Dani Smith 757eb5517a
Update KDL Play link (#462) 2025-01-04 10:00:12 -08:00
Kat Marchán 2843744a87
Add Iron Vault to users list
Idk why I forgot this one haha
2025-01-02 16:56:31 -08:00
Dani Smith 6d2bc50939
Add Dart v2 to README (#458) 2025-01-02 10:48:36 -08:00
Dani Smith 3b19a761ff
Add 128-bit number formats to Schema spec (#459) 2025-01-02 10:41:34 -08:00
eilvelia ce3b2eeb7f
Show ocaml-kdl v2 support (#457) 2024-12-27 16:27:29 -08:00
Dani Smith 353fd85a2b
Show kdl-rb v2 support (#454) 2024-12-24 02:10:42 -08:00
Evgeny 3c1cf4f2a1
test: add a fail-test for escaped non Unicode Scalar Values (#452)
* test: add a fail-test for escaped non Unicode Scalar Values

* test: split multiple codepoints into 1 per file
2024-12-24 00:14:24 -08:00
Evgeny 76dc3e3002
doc: resolve inconsistency in banned chars in escaped form (#450)
Also add it explicitly to the spec grammar to make it clear that escaped forms are also affected
2024-12-23 23:57:10 -08:00
Bram Gotink 646dafcd35
update vertical tab test (#449) 2024-12-23 11:49:12 -08:00
Kat Marchán c930f1d124
I guess I should probably be more honest here 2024-12-22 13:43:51 -08:00
Evgeny 0f77ec4f9f
doc: change Unicode link to a friendly html version (#448)
(version bumped, but the table is the same)

Spec v1 is missing vertical tab, but that's frozen, so only formatting change
2024-12-22 00:55:53 -08:00
Kat Marchán 6ceecd85d6
Release KDL 2.0.0 (#434)
* Release KDL 2.0.0

* fix grammar for multiline quoted strings to allow escaped whitespace on closing line

* Add unicode-space to raw string

* Remove nonexistent equals-sign from the grammar (#435)

* fix multiline string tests

* grammar: fix disallowed-keyword-identifiers and string-character (#436)

* Back out "fix multiline string tests"

This backs out commit 0c5604b462.

* add extra javascript implementation (#437)

* reword interaction multiline + whitespace escape (#439)

* More tests for backslash behaviour (#438)

* More tests for baskslash behaviour

* Incorrect example of escaped final newline

* Test with non-literal indent

* Make line-space a superset of node-space (#440)

* Allow escline everywhere

* escline tests

* Always escape \ inside single quotes in the grammar text (#441)

to match the other uses of it and the metalanguage description below

* Add tests for mandatory whitespace between arguments or properties (#442)

* Add an optional version marker (#444)

* Add version marker to the grammer

* Add version marker to the Changelog

* Update SPEC.md

Co-authored-by: eilvelia <hi@eilvelia.cat>

* add a mandatory newline after the version marker

* add mandatory space between version number

---------

Co-authored-by: eilvelia <hi@eilvelia.cat>

* Fix a changelog line erroneously truncated in #444 (#445)

* fix: move vertical tab to the line-breaking whitespace to match Unicode (#446)

* add vertical tab change test

* final tweaks before release

---------

Co-authored-by: eilvelia <hi@eilvelia.cat>
Co-authored-by: Bram Gotink <bram@gotink.me>
Co-authored-by: Thomas Jollans <tjol@tjol.eu>
Co-authored-by: Evgeny <eugenesvk@users.noreply.github.com>
2024-12-21 18:33:50 -08:00
Kat Marchán 0e58f61b18
Release 2.0.0-draft.8 2024-12-14 17:23:09 -08:00
Tommy Williams edbdab2891
Update README.md (#383)
swap neovim integration link 
from tree-sitter project to the specific language grammar
2024-12-12 14:58:51 -08:00
Thomas Jollans 7aa01a21b7
Clarify spec for whitespace-only lines in multiline strings (#433) 2024-12-12 14:47:39 -08:00
Thomas Jollans b82c924013
More tests for whitespace in multi-line strings (#432)
* More tests for whitespace in multi-line strings

* replace \r\n with \n in slashdash_newline_before_node.kdl
2024-12-12 13:15:04 -08:00
Tab Atkins Jr. d1ceb44f40
Make the raw-string productions non-greedy, and describe the infallibility (#430)
* Make the raw-string productions non-greedy, and describe the infallibility. Closes #415

* More explicitly use and reference a cut point, rather than infallibility.
2024-12-12 11:08:50 -08:00
Kat Marchán 717e86cb1c
went over tests and tweaked a few things (#431) 2024-12-11 19:45:25 -08:00
Tab Atkins Jr. ebef8751c0
fix multiline_string_whitespace_only, closes #429
ws-only lines don't contribute *any* content to the string (beyond their existence as a newline)
2024-12-11 18:16:00 -08:00
Tab Atkins Jr. ca2bd45a66
typo
Accidental lingering `)` in single-line-raw-string-body, with no matching `(` to pair with.
2024-12-11 16:51:38 -08:00
Kat Marchán 1a6b17b0ae
Minor housekeeping around README 2024-12-11 00:24:41 -08:00
Kat Marchán ace7ec7a96
Release 2.0.0-draft.7 2024-12-10 23:31:07 -08:00
Kat Marchán 171bc71f42
Allow node-space after slashdash and add a bunch more slashdash tests (#427)
Fixes: https://github.com/kdl-org/kdl/issues/426
2024-12-10 20:43:58 -08:00
Thomas Jollans 75a0869a6c
Clarify raw single-line string grammar (#425) 2024-12-10 16:45:35 -08:00
Tab Atkins-Bittner 91f7ec05fa Add a lint for test expectations that don't end in a newline. 2024-12-10 16:03:05 -08:00