Skip to content

Commit 8fe3ecf

Browse files
committed
Make WrapStyle.clone re-render the prefix
1 parent 2d9a391 commit 8fe3ecf

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

examples/dir-tree.raku

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,9 @@ class DirTreeDemo is TopLevel {
7474
# Set line wrapping style for log: Grapheme wrapping with wrap markers
7575
my $log = %.by-id<details>;
7676
my $marker = $.terminal.caps.symbol-set >= Uni1 ?? '' !! '> ';
77-
my $wrap-style = $log.wrap-style.new:
78-
:$.terminal,
79-
wrap-mode => GraphemeWrap,
80-
wrapped-line-prefix => ' ' x 8 ~ $marker;
77+
my $wrap-style = $log.wrap-style.clone:
78+
wrap-mode => GraphemeWrap,
79+
wrapped-line-prefix => ' ' x 8 ~ $marker;
8180
$log.set-wrap-style($wrap-style);
8281
}
8382
}

lib/Terminal/Widgets/WrappableBuffer.rakumod

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,16 @@ class Terminal::Widgets::WrapStyle {
3939
has @.rendered-prefix is built(False);
4040
has $.prefix-length is built(False);
4141

42-
submethod TWEAK() {
42+
# Ensure render-prefix is called on any new or clone
43+
submethod TWEAK { self.render-prefix }
44+
method clone { callsame.render-prefix }
45+
46+
method render-prefix() {
4347
my $renderer = $!terminal.locale.renderer;
4448
@!rendered-prefix = $renderer.render($!wrapped-line-prefix);
4549
$!prefix-length = @!rendered-prefix.map(*.width).sum;
50+
51+
self
4652
}
4753
}
4854

0 commit comments

Comments
 (0)