From 565cdf25b60ceb79ef903e81a03962314af36119 Mon Sep 17 00:00:00 2001 From: Turiiya <34311583+ttytm@users.noreply.github.com> Date: Mon, 11 Mar 2024 17:16:09 +0200 Subject: [PATCH] doc: fix multiline codeblock comments (#20996) --- cmd/tools/vdoc/tests/testdata/multiline/main.comments.out | 7 +++++++ cmd/tools/vdoc/tests/testdata/multiline/main.out | 1 + cmd/tools/vdoc/tests/testdata/multiline/main.v | 8 ++++++++ vlib/v/doc/utils.v | 2 +- 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/cmd/tools/vdoc/tests/testdata/multiline/main.comments.out b/cmd/tools/vdoc/tests/testdata/multiline/main.comments.out index 579ae732fcbc28..868af5388bf679 100644 --- a/cmd/tools/vdoc/tests/testdata/multiline/main.comments.out +++ b/cmd/tools/vdoc/tests/testdata/multiline/main.comments.out @@ -44,3 +44,10 @@ fn a8() Fixme: this should be it's own paragraph. fn a9() normal comment +fn foo() + foo does stuff + ``` + this is a multiline codeblock. + second line + third line. + ``` diff --git a/cmd/tools/vdoc/tests/testdata/multiline/main.out b/cmd/tools/vdoc/tests/testdata/multiline/main.out index 361c5becef5c78..cb9efca8f71ec1 100644 --- a/cmd/tools/vdoc/tests/testdata/multiline/main.out +++ b/cmd/tools/vdoc/tests/testdata/multiline/main.out @@ -9,3 +9,4 @@ fn a6() fn a7() fn a8() fn a9() +fn foo() diff --git a/cmd/tools/vdoc/tests/testdata/multiline/main.v b/cmd/tools/vdoc/tests/testdata/multiline/main.v index 6dea35b7886a93..9e82c0d02b4369 100644 --- a/cmd/tools/vdoc/tests/testdata/multiline/main.v +++ b/cmd/tools/vdoc/tests/testdata/multiline/main.v @@ -62,3 +62,11 @@ pub fn a8() { pub fn a9() { println('hi') } + +// foo does stuff +// ``` +// this is a multiline codeblock. +// second line +// third line. +// ``` +pub fn foo() {} diff --git a/vlib/v/doc/utils.v b/vlib/v/doc/utils.v index 4ffb24bb6a5d57..920c009fc87582 100644 --- a/vlib/v/doc/utils.v +++ b/vlib/v/doc/utils.v @@ -62,8 +62,8 @@ pub fn merge_doc_comments(comments []DocComment) string { } mut comment := '' mut next_on_newline := true + mut is_codeblock := false for cmt in doc_comments.reverse() { - mut is_codeblock := false line_loop: for line in cmt.split_into_lines() { l := line.trim_left('\x01').trim_space() if is_codeblock {