Skip to content

Commit 6bf8d65

Browse files
authored
list: add unindent all function (#217)
1 parent eb654fb commit 6bf8d65

File tree

4 files changed

+60
-0
lines changed

4 files changed

+60
-0
lines changed

list/list.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@ func (l *List) UnIndent() {
120120
}
121121
}
122122

123+
func (l *List) UnIndentAll() {
124+
l.level = 0
125+
}
126+
123127
func (l *List) initForRender() {
124128
// pick a default style
125129
l.Style()

list/list_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,14 @@ func TestList_UnIndent(t *testing.T) {
149149
list.UnIndent()
150150
assert.Equal(t, 0, list.level)
151151
}
152+
153+
func TestList_UnIndentAll(t *testing.T) {
154+
list := List{level: 3}
155+
156+
list.UnIndentAll()
157+
assert.Equal(t, 0, list.level)
158+
159+
// Ensure level is still 0 after 2 consecutive calls
160+
list.UnIndentAll()
161+
assert.Equal(t, 0, list.level)
162+
}

list/render_test.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,3 +289,47 @@ func TestList_Render_Styles(t *testing.T) {
289289
fmt.Println(mismatch)
290290
}
291291
}
292+
293+
func TestList_Render_UnindentAll(t *testing.T) {
294+
lw := NewWriter()
295+
lw.AppendItem(testItem1)
296+
lw.Indent()
297+
lw.AppendItems(testItems2)
298+
lw.Indent()
299+
lw.AppendItems(testItems3)
300+
lw.UnIndentAll()
301+
lw.AppendItem(testItem4)
302+
lw.Indent()
303+
lw.AppendItem(testItem5)
304+
lw.UnIndentAll()
305+
lw.AppendItem("The Mandalorian")
306+
lw.Indent()
307+
lw.AppendItem("This")
308+
lw.Indent()
309+
lw.AppendItem("Is")
310+
lw.Indent()
311+
lw.AppendItem("The")
312+
lw.Indent()
313+
lw.AppendItem("Way")
314+
lw.Indent()
315+
lw.UnIndentAll()
316+
lw.AppendItem("Right?")
317+
318+
expectedOut := `* Game Of Thrones
319+
* Winter
320+
* Is
321+
* Coming
322+
* This
323+
* Is
324+
* Known
325+
* The Dark Tower
326+
* The Gunslinger
327+
* The Mandalorian
328+
* This
329+
* Is
330+
* The
331+
* Way
332+
* Right?`
333+
assert.Equal(t, expectedOut, lw.Render())
334+
335+
}

list/writer.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ type Writer interface {
1717
SetStyle(style Style)
1818
Style() *Style
1919
UnIndent()
20+
UnIndentAll()
2021
}
2122

2223
// NewWriter initializes and returns a Writer.

0 commit comments

Comments
 (0)