Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 800eb81

Browse files
committed
refactor: use lipgloss wrap, nbsp for codespan, new uv api, and update testdata
1 parent 23437b1 commit 800eb81

19 files changed

Lines changed: 83 additions & 78 deletions

ansi/baseelement.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"strings"
88
"text/template"
99

10-
"github.com/charmbracelet/lipgloss/v2"
10+
"charm.land/lipgloss/v2"
1111
"github.com/charmbracelet/x/ansi"
1212
"golang.org/x/text/cases"
1313
"golang.org/x/text/language"
@@ -61,22 +61,22 @@ func renderText(w io.Writer, rules StylePrimitive, s string) (int, error) { //no
6161
style = style.BackgroundColor(lipgloss.Color(*rules.BackgroundColor))
6262
}
6363
if rules.Underline != nil && *rules.Underline {
64-
style = style.Underline()
64+
style = style.Underline(true)
6565
}
6666
if rules.Bold != nil && *rules.Bold {
6767
style = style.Bold()
6868
}
6969
if rules.Italic != nil && *rules.Italic {
70-
style = style.Italic()
70+
style = style.Italic(true)
7171
}
7272
if rules.CrossedOut != nil && *rules.CrossedOut {
73-
style = style.Strikethrough()
73+
style = style.Strikethrough(true)
7474
}
7575
if rules.Inverse != nil && *rules.Inverse {
76-
style = style.Reverse()
76+
style = style.Reverse(true)
7777
}
7878
if rules.Blink != nil && *rules.Blink {
79-
style = style.SlowBlink()
79+
style = style.Blink(true)
8080
}
8181

8282
n, err := io.WriteString(w, style.Styled(s))

ansi/blockelement.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"fmt"
66
"io"
77

8-
"github.com/charmbracelet/x/cellbuf"
8+
"charm.land/lipgloss/v2"
99
)
1010

1111
// BlockElement provides a render buffer for children of a block element.
@@ -33,7 +33,7 @@ func (e *BlockElement) Finish(w io.Writer, ctx RenderContext) error {
3333
bs := ctx.blockStack
3434

3535
if e.Margin { //nolint: nestif
36-
s := cellbuf.Wrap(
36+
s := lipgloss.Wrap(
3737
bs.Current().Block.String(),
3838
int(bs.Width(ctx)), //nolint: gosec
3939
" ,.;-+|",

ansi/codeblock.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ func (e *CodeBlockElement) Render(w io.Writer, ctx RenderContext) error {
128128
iw := NewIndentWriter(w, int(indentation+margin), func(_ io.Writer) { //nolint:gosec
129129
_, _ = renderText(w, bs.Current().Style.StylePrimitive, " ")
130130
})
131-
defer iw.Close()
131+
defer iw.Close() //nolint:errcheck
132132

133133
if len(theme) > 0 {
134134
_, _ = renderText(iw, bs.Current().Style.StylePrimitive, rules.BlockPrefix)

ansi/heading.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"fmt"
66
"io"
77

8-
"github.com/charmbracelet/x/cellbuf"
8+
"charm.land/lipgloss/v2"
99
)
1010

1111
// A HeadingElement is used to render headings.
@@ -65,7 +65,7 @@ func (e *HeadingElement) Finish(w io.Writer, ctx RenderContext) error {
6565
mw := NewMarginWriter(ctx, w, rules)
6666
defer mw.Close()
6767

68-
flow := cellbuf.Wrap(bs.Current().Block.String(), int(bs.Width(ctx)), "") //nolint: gosec
68+
flow := lipgloss.Wrap(bs.Current().Block.String(), int(bs.Width(ctx)), "") //nolint: gosec
6969
_, err := io.WriteString(mw, flow)
7070
if err != nil {
7171
return fmt.Errorf("glamour: error writing to writer: %w", err)

ansi/margin.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"io"
88
"strings"
99

10+
"charm.land/lipgloss/v2"
1011
"github.com/charmbracelet/x/ansi"
11-
"github.com/charmbracelet/x/cellbuf"
1212
)
1313

1414
// MarginWriter is a Writer that applies indentation and padding around
@@ -44,7 +44,7 @@ func NewMarginWriter(ctx RenderContext, w io.Writer, rules StyleBlock) *MarginWr
4444
})
4545

4646
return &MarginWriter{
47-
w: cellbuf.NewPenWriter(w),
47+
w: lipgloss.NewWrapWriter(w),
4848
iw: iw,
4949
}
5050
}
@@ -74,7 +74,7 @@ type PaddingFunc = func(w io.Writer)
7474
type PaddingWriter struct {
7575
Padding int
7676
PadFunc PaddingFunc
77-
w *cellbuf.PenWriter
77+
w *lipgloss.WrapWriter
7878
cache bytes.Buffer
7979
}
8080

@@ -83,7 +83,7 @@ func NewPaddingWriter(w io.Writer, padding int, padFunc PaddingFunc) *PaddingWri
8383
return &PaddingWriter{
8484
Padding: padding,
8585
PadFunc: padFunc,
86-
w: cellbuf.NewPenWriter(w),
86+
w: lipgloss.NewWrapWriter(w),
8787
}
8888
}
8989

@@ -133,7 +133,7 @@ type IndentWriter struct {
133133
Indent int
134134
IndentFunc PaddingFunc
135135
w io.Writer
136-
pw *cellbuf.PenWriter
136+
pw *lipgloss.WrapWriter
137137
skipIndent bool
138138
}
139139

@@ -142,29 +142,29 @@ func NewIndentWriter(w io.Writer, indent int, indentFunc IndentFunc) *IndentWrit
142142
return &IndentWriter{
143143
Indent: indent,
144144
IndentFunc: indentFunc,
145-
pw: cellbuf.NewPenWriter(w),
145+
pw: lipgloss.NewWrapWriter(w),
146146
w: w,
147147
}
148148
}
149149

150150
func (w *IndentWriter) resetPen() {
151151
style := w.pw.Style()
152152
link := w.pw.Link()
153-
if !style.Empty() {
153+
if !style.IsZero() {
154154
_, _ = io.WriteString(w.w, ansi.ResetStyle)
155155
}
156-
if !link.Empty() {
156+
if !link.IsZero() {
157157
_, _ = io.WriteString(w.w, ansi.ResetHyperlink())
158158
}
159159
}
160160

161161
func (w *IndentWriter) restorePen() {
162162
style := w.pw.Style()
163163
link := w.pw.Link()
164-
if !style.Empty() {
165-
_, _ = io.WriteString(w.w, style.Sequence())
164+
if !style.IsZero() {
165+
_, _ = io.WriteString(w.w, style.String())
166166
}
167-
if !link.Empty() {
167+
if !link.IsZero() {
168168
_, _ = io.WriteString(w.w, ansi.SetHyperlink(link.URL, link.Params))
169169
}
170170
}

ansi/paragraph.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"io"
77
"strings"
88

9-
"github.com/charmbracelet/x/cellbuf"
9+
"charm.land/lipgloss/v2"
1010
)
1111

1212
// A ParagraphElement is used to render individual paragraphs.
@@ -45,7 +45,7 @@ func (e *ParagraphElement) Finish(w io.Writer, ctx RenderContext) error {
4545
if !ctx.options.PreserveNewLines {
4646
blk = strings.ReplaceAll(blk, "\n", " ")
4747
}
48-
flow := cellbuf.Wrap(blk, int(bs.Width(ctx)), "") //nolint: gosec
48+
flow := lipgloss.Wrap(blk, int(bs.Width(ctx)), "") //nolint: gosec
4949

5050
_, err := io.WriteString(mw, flow)
5151
if err != nil {

ansi/table.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55
"fmt"
66
"io"
77

8-
"github.com/charmbracelet/lipgloss/v2"
9-
"github.com/charmbracelet/lipgloss/v2/table"
8+
"charm.land/lipgloss/v2"
9+
"charm.land/lipgloss/v2/table"
1010
astext "github.com/yuin/goldmark/extension/ast"
1111
)
1212

ansi/testdata/TestRenderer/table_with_background.golden

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ansi/testdata/TestRendererIssues/117.golden

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ansi/testdata/TestRendererIssues/315.golden

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)