From 4dea084977625febbcc019e2798c8a35fe9ab0cf Mon Sep 17 00:00:00 2001 From: loziniak Date: Mon, 28 Nov 2022 10:07:32 +0100 Subject: [PATCH 1/5] add Red language --- lib/languages/red.txt | 8 +++++++ test/languages/red_test.rb | 43 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 lib/languages/red.txt create mode 100644 test/languages/red_test.rb diff --git a/lib/languages/red.txt b/lib/languages/red.txt new file mode 100644 index 0000000..51b2775 --- /dev/null +++ b/lib/languages/red.txt @@ -0,0 +1,8 @@ +!e +;\p +Red [\p-->>]\pj +Red +[\p-->>]\pj +comment [\p-->>]\pj +comment +[\p-->>]\pj +comment {\p-->>}\pj +comment +{\p-->>}\pj diff --git a/test/languages/red_test.rb b/test/languages/red_test.rb new file mode 100644 index 0000000..22ecd3d --- /dev/null +++ b/test/languages/red_test.rb @@ -0,0 +1,43 @@ +require "test_helper" + +module SnippetExtractor + module Languages + class RedTest < Minitest::Test + def test_full_example + code = <<~CODE + Red [] ; a comment + + ; single line comment + x: 1 ; line comment 1 + x: 2 ;-- line comment 2 + x: 3 ;@@ line comment 3 + + comment ['this + 'is 'multiline + 'comment] + comment {and this + as well} + + function add100 [x [integer!]] [ + "; this should not count as comment " + { comment [and neither + this] } + ] + CODE + + expected = <<~CODE + x: 1 + x: 2 + x: 3 + function add100 [x [integer!]] [ + "; this should not count as comment " + { comment [and neither + this] } + ] + CODE + + assert_equal expected, ExtractSnippet.(code, :red) + end + end + end +end From c7c03daf6e3e136616eb4cd864352afade99a432 Mon Sep 17 00:00:00 2001 From: loziniak Date: Sun, 18 Dec 2022 15:26:05 +0100 Subject: [PATCH 2/5] Red: comments inside strings are not ignored --- test/languages/red_test.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/languages/red_test.rb b/test/languages/red_test.rb index 22ecd3d..0b21964 100644 --- a/test/languages/red_test.rb +++ b/test/languages/red_test.rb @@ -19,9 +19,9 @@ def test_full_example as well} function add100 [x [integer!]] [ - "; this should not count as comment " - { comment [and neither - this] } + " this should not count as comment " + { and neither + this } ] CODE @@ -30,9 +30,9 @@ def test_full_example x: 2 x: 3 function add100 [x [integer!]] [ - "; this should not count as comment " - { comment [and neither - this] } + " this should not count as comment " + { and neither + this } ] CODE From 4b1a78d63ceb0d85893b614b43d672ab973c203f Mon Sep 17 00:00:00 2001 From: loziniak Date: Sun, 18 Dec 2022 15:27:24 +0100 Subject: [PATCH 3/5] Red: try config suggested in #63 --- lib/languages/red.txt | 12 ++++++------ test/languages/red_test.rb | 16 ++++++++++++---- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/lib/languages/red.txt b/lib/languages/red.txt index 51b2775..5801b5e 100644 --- a/lib/languages/red.txt +++ b/lib/languages/red.txt @@ -1,8 +1,8 @@ !e ;\p -Red [\p-->>]\pj -Red +[\p-->>]\pj -comment [\p-->>]\pj -comment +[\p-->>]\pj -comment {\p-->>}\pj -comment +{\p-->>}\pj +Red [\pj-->>]\pj +Red +[\pj-->>]\pj +comment [\pj-->>]\pj +comment +[\pj-->>]\pj +comment {\pj-->>}\pj +comment +{\pj-->>}\pj diff --git a/test/languages/red_test.rb b/test/languages/red_test.rb index 0b21964..71514bf 100644 --- a/test/languages/red_test.rb +++ b/test/languages/red_test.rb @@ -5,16 +5,20 @@ module Languages class RedTest < Minitest::Test def test_full_example code = <<~CODE - Red [] ; a comment + Red [a-header] ; a comment ; single line comment x: 1 ; line comment 1 + y: 11 x: 2 ;-- line comment 2 x: 3 ;@@ line comment 3 comment ['this 'is 'multiline 'comment] + + print "no comments!" + comment {and this as well} @@ -26,9 +30,13 @@ def test_full_example CODE expected = <<~CODE - x: 1 - x: 2 - x: 3 + x: 1 + y: 11 + x: 2 + x: 3 + + print "no comments!" + function add100 [x [integer!]] [ " this should not count as comment " { and neither From 722131710ea0ffb75f018343d7be4e34db80e33f Mon Sep 17 00:00:00 2001 From: loziniak Date: Mon, 19 Dec 2022 10:14:50 +0100 Subject: [PATCH 4/5] Red: take into account extractor limit of 10 lines references #66 --- test/languages/red_test.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/languages/red_test.rb b/test/languages/red_test.rb index 71514bf..2464618 100644 --- a/test/languages/red_test.rb +++ b/test/languages/red_test.rb @@ -40,8 +40,6 @@ def test_full_example function add100 [x [integer!]] [ " this should not count as comment " { and neither - this } - ] CODE assert_equal expected, ExtractSnippet.(code, :red) From 0c374d935c1e75095d76883f8b3d2aee1dbb686d Mon Sep 17 00:00:00 2001 From: loziniak Date: Mon, 19 Dec 2022 10:19:19 +0100 Subject: [PATCH 5/5] Red: extractor will clear trailing whitespace references #65 --- test/languages/red_test.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/languages/red_test.rb b/test/languages/red_test.rb index 2464618..a19c50d 100644 --- a/test/languages/red_test.rb +++ b/test/languages/red_test.rb @@ -30,10 +30,10 @@ def test_full_example CODE expected = <<~CODE - x: 1 + x: 1 y: 11 - x: 2 - x: 3 + x: 2 + x: 3 print "no comments!"