From 00f96aae769be244ea5f14811d58d8adddf587f7 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Wed, 21 Sep 2016 01:23:41 +0900 Subject: Avoid rendering delay when displaying extremely long lines Related #666 --- src/terminal.go | 7 +++++++ 1 file changed, 7 insertions(+) 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 -- cgit v1.2.3