diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2016-09-21 01:23:41 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2016-09-21 01:23:41 +0900 |
commit | 00f96aae769be244ea5f14811d58d8adddf587f7 (patch) | |
tree | 426769da0d6d47bfbcc0d3590c32685424e45be0 | |
parent | a749e6bd16a4fa1374dd454868a4084288ff78dd (diff) |
Avoid rendering delay when displaying extremely long lines
Related #666
-rw-r--r-- | src/terminal.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/terminal.go b/src/terminal.go index c036117e..0e9436a7 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -401,6 +401,8 @@ func displayWidth(runes []rune) int { const ( minWidth = 16 minHeight = 4 + + maxDisplayWidthCalc = 1024 ) func calculateSize(base int, size sizeSpec, margin int, minSize int) int { @@ -651,6 +653,11 @@ func displayWidthWithLimit(runes []rune, prefixWidth int, limit int) int { } func trimLeft(runes []rune, width int) ([]rune, int32) { + if len(runes) > maxDisplayWidthCalc && len(runes) > width { + trimmed := len(runes) - width + return runes[trimmed:], int32(trimmed) + } + currentWidth := displayWidth(runes) var trimmed int32 |