From 397419041649bbe2b7d61ae87e5bec698c343302 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Tue, 26 May 2026 18:04:55 +0200 Subject: fix(tree-sitter-yts): Avoid deleting the grammer.js file Tree-sitter replaced it with an empty one during the update. --- tree-sitter-yts/grammar.js | 61 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 3 deletions(-) (limited to 'tree-sitter-yts/grammar.js') diff --git a/tree-sitter-yts/grammar.js b/tree-sitter-yts/grammar.js index 2b36254..cf76d78 100644 --- a/tree-sitter-yts/grammar.js +++ b/tree-sitter-yts/grammar.js @@ -11,7 +11,62 @@ export default grammar({ name: "yts", rules: { - // TODO: add the actual grammar rules - source_file: $ => "hello" - } + source_file: ($) => repeat(choice($.line, $.comment)), + line: ($) => + seq( + $.command, + repeat($.flag), + $.id, + $.title, + $.date, + $.author, + $.duration, + $.url, + "\n", + ), + + command: ($) => + choice( + "pick", + "p", + "watch", + "w", + "watched", + "wd", + "add", + "a", + "drop", + "d", + "url", + "u", + ), + flag: ($) => + choice( + /-\w [^\s]+/, + /-\w '[^']*'/, + /-\w "[^"]*"/, + /-\w=[^\s]+/, + /-\w='[^']*'/, + /-\w="[^"]*"/, + + /--\w[\w-]+ [^\s]+/, + /--\w[\w-]+ '[^']*'/, + /--\w[\w-]+ "[^"]*"/, + /--\w[\w-]+=[^\s]+/, + /--\w[\w-]+='[^']*'/, + /--\w[\w-]+="[^"]*"/, + ), + id: ($) => /[a-z0-9]+/, + title: ($) => seq($._q, /[^"]+/, $._q), + date: ($) => + seq($._q, choice("[No release date]", /\d{4}-\d{2}-\d{2}/), $._q), + author: ($) => seq($._q, choice("[No author]", /[^"]+/), $._q), + duration: ($) => + seq($._q, seq(choice("[No duration]", /\d+m \d+s/, /\d+h \d+m/)), $._q), + url: ($) => seq($._q, /[^"]+/, $._q), + comment: ($) => /#.*/, + _q: ($) => $.quote, + quote: ($) => /"/, + }, + extras: ($) => [/\s/], }); -- cgit v1.3.1