v/doc: parse multi-line examples
parent
02c80bd445
commit
42e4148643
|
|
@ -175,7 +175,7 @@ pub struct WindowAttribute {
|
|||
// - `size` - snapshot size
|
||||
// - `step` - gap size between each snapshot, default is 1.
|
||||
//
|
||||
// Example: arrays.window([1, 2, 3, 4], size: 2) => [[1, 2], [2, 3], [3, 4]]
|
||||
// Example: arrays.window([1, 2, 3, 4], size: 2) // => [[1, 2], [2, 3], [3, 4]]
|
||||
// Example: arrays.window([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], size: 3, step: 2) // => [[1, 2, 3], [3, 4, 5], [5, 6, 7], [7, 8, 9]]
|
||||
pub fn window<T>(list []T, attr WindowAttribute) [][]T {
|
||||
// allocate snapshot array
|
||||
|
|
@ -394,7 +394,7 @@ pub fn binary_search<T>(arr []T, target T) ?int {
|
|||
// Example:
|
||||
// ```v
|
||||
// mut x := [1,2,3,4,5,6]
|
||||
// arrays.rotate_left(mut x,2)
|
||||
// arrays.rotate_left(mut x, 2)
|
||||
// println(x) // [3, 4, 5, 6, 1, 2]
|
||||
// ```
|
||||
pub fn rotate_left<T>(mut arr []T, mid int) {
|
||||
|
|
|
|||
|
|
@ -61,9 +61,30 @@ pub fn (dc DocNode) merge_comments_without_examples() string {
|
|||
// examples returns a `[]string` containing examples parsed from `DocNode.comments`.
|
||||
pub fn (dn DocNode) examples() []string {
|
||||
mut output := []string{}
|
||||
for comment in dn.comments {
|
||||
for i, comment in dn.comments {
|
||||
if comment.is_example() {
|
||||
output << comment.example()
|
||||
} else if comment.text == '\x01 Example:' {
|
||||
mut j := i + 1
|
||||
//~ comments = dn.comments
|
||||
mut ml_ex := ''
|
||||
mdcode := '\x01 ```'
|
||||
if j + 2 < dn.comments.len && dn.comments[j].text == mdcode + 'v'
|
||||
{
|
||||
j++
|
||||
for j < dn.comments.len && dn.comments[j].text != mdcode {
|
||||
//~ println(dn.comments[j].text)
|
||||
if ml_ex.len > 0 {
|
||||
ml_ex += '\n'
|
||||
}
|
||||
s := dn.comments[j].text
|
||||
if s.len > 2 { ml_ex += s[2..] }
|
||||
j++
|
||||
}
|
||||
println(ml_ex)
|
||||
output << ml_ex
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return output
|
||||
|
|
|
|||
Loading…
Reference in New Issue