From 7344139b5532c2f04b436664643246d86afcc853 Mon Sep 17 00:00:00 2001 From: Oliver <480930+rivo@users.noreply.github.com> Date: Sat, 26 Aug 2023 16:19:31 +0200 Subject: [PATCH] Finished new parser implementation. --- demos/presentation/cover.go | 2 +- demos/presentation/end.go | 12 +- demos/textview/screenshot.png | Bin 108938 -> 172420 bytes doc.go | 40 +- inputfield.go | 15 + strings.go | 99 +++ textview.go | 1207 +++++++++++++++------------------ util.go | 350 +--------- 8 files changed, 705 insertions(+), 1020 deletions(-) diff --git a/demos/presentation/cover.go b/demos/presentation/cover.go index eaeea9d..5245a69 100644 --- a/demos/presentation/cover.go +++ b/demos/presentation/cover.go @@ -19,7 +19,7 @@ const logo = ` const ( subtitle = `tview - Rich Widgets for Terminal UIs` - navigation = `Ctrl-N: Next slide Ctrl-P: Previous slide Ctrl-C: Exit` + navigation = `[yellow]Ctrl-N[-]: Next slide [yellow]Ctrl-P[-]: Previous slide [yellow]Ctrl-C[-]: Exit` mouse = `(or use your mouse)` ) diff --git a/demos/presentation/end.go b/demos/presentation/end.go index c085b31..dad0525 100644 --- a/demos/presentation/end.go +++ b/demos/presentation/end.go @@ -9,10 +9,12 @@ import ( // End shows the final slide. func End(nextSlide func()) (title string, content tview.Primitive) { - textView := tview.NewTextView().SetDoneFunc(func(key tcell.Key) { - nextSlide() - }) - url := "https://github.com/rivo/tview" + textView := tview.NewTextView(). + SetDynamicColors(true). + SetDoneFunc(func(key tcell.Key) { + nextSlide() + }) + url := "[:::https://github.com/rivo/tview]https://github.com/rivo/tview" fmt.Fprint(textView, url) - return "End", Center(len(url), 1, textView) + return "End", Center(tview.TaggedStringWidth(url), 1, textView) } diff --git a/demos/textview/screenshot.png b/demos/textview/screenshot.png index 8d7f0bb31fa004dab8424f0f978c268d071b1793..902113410126d29a7e1d863c93e9ea48deb1138c 100644 GIT binary patch literal 172420 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ÚnN)V+$Zn&%00xrG(mLJGnP?c9Hb5H!BzmuV? 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%0DdDK(hEu``#N;979H>IELJtKo+=6nZ6X`{g`hrfn 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

k`6UoTrzPG-3NAOWpVWa-D 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 0 { + _, text, state = step(text, state, stepOptionsStyle) + width += state.Width() + } + return +} + +// WordWrap splits a text such that each resulting line does not exceed the +// given screen width. Split points are determined using the algorithm described +// in [Unicode Standard Annex #14]. +// +// This function considers style tags to have no width. +// +// [Unicode Standard Annex #14]: https://www.unicode.org/reports/tr14/ +func WordWrap(text string, width int) (lines []string) { + if width <= 0 { + return + } + + var ( + state *stepState + lineWidth, lineLength, lastOption, lastOptionWidth int + ) + str := text + for len(str) > 0 { + // Parse the next character. + var c string + c, str, state = step(str, state, stepOptionsStyle) + cWidth := state.Width() + + // Would it exceed the line width? + if lineWidth+cWidth > width { + if lastOptionWidth == 0 { + // No split point so far. Just split at the current position. + lines = append(lines, text[:lineLength]) + text = text[lineLength:] + lineWidth, lineLength, lastOption, lastOptionWidth = 0, 0, 0, 0 + } else { + // Split at the last split point. + lines = append(lines, text[:lastOption]) + text = text[lastOption:] + lineWidth -= lastOptionWidth + lineLength -= lastOption + lastOption, lastOptionWidth = 0, 0 + } + } + + // Move ahead. + lineWidth += cWidth + lineLength += state.GrossLength() + + // Check for split points. + if lineBreak, optional := state.LineBreak(); lineBreak { + if optional { + // Remember this split point. + lastOption = lineLength + lastOptionWidth = lineWidth + } else if str != "" || c != "" && uniseg.HasTrailingLineBreakInString(c) { + // We must split here. + lines = append(lines, strings.TrimRight(text[:lineLength], "\n\r")) + text = text[lineLength:] + lineWidth, lineLength, lastOption, lastOptionWidth = 0, 0, 0, 0 + } + } + } + lines = append(lines, text) + + return +} + +// Escape escapes the given text such that color and/or region tags are not +// recognized and substituted by the print functions of this package. For +// example, to include a tag-like string in a box title or in a TextView: +// +// box.SetTitle(tview.Escape("[squarebrackets]")) +// fmt.Fprint(textView, tview.Escape(`["quoted"]`)) +func Escape(text string) string { + return nonEscapePattern.ReplaceAllString(text, "$1[]") +} + +// stripTags strips style tags from the given string. (Region tags are not +// stripped.) +func stripTags(text string) string { + var ( + str strings.Builder + state *stepState + ) + for len(text) > 0 { + var c string + c, text, state = step(text, state, stepOptionsStyle) + str.WriteString(c) + } + return str.String() +} diff --git a/textview.go b/textview.go index 63bf2d3..892f7a8 100644 --- a/textview.go +++ b/textview.go @@ -1,47 +1,24 @@ package tview import ( - "bytes" - "fmt" - "regexp" "strings" "sync" - "unicode/utf8" "github.com/gdamore/tcell/v2" colorful "github.com/lucasb-eyer/go-colorful" "github.com/rivo/uniseg" ) -var ( - openColorRegex = regexp.MustCompile(`\[([a-zA-Z]*|#[0-9a-zA-Z]*)$`) - openRegionRegex = regexp.MustCompile(`\["[a-zA-Z0-9_,;: \-\.]*"?$`) - newLineRegex = regexp.MustCompile(`\r?\n`) +// TabSize is the number of spaces with which a tab character will be replaced. +var TabSize = 4 - // TabSize is the number of spaces with which a tab character will be replaced. - TabSize = 4 -) - -// textViewIndex contains information about a line displayed in the text view. -type textViewIndex struct { - Line int // The index into the "buffer" slice. - Pos int // The index into the "buffer" string (byte position). - NextPos int // The (byte) index of the next line start within this buffer string. - Width int // The screen width of this line. - ForegroundColor string // The starting foreground color ("" = don't change, "-" = reset). - BackgroundColor string // The starting background color ("" = don't change, "-" = reset). - Attributes string // The starting attributes ("" = don't change, "-" = reset). - Region string // The starting region ID. -} - -// textViewRegion contains information about a region. -type textViewRegion struct { - // The region ID. - ID string - - // The starting and end screen position of the region as determined the last - // time Draw() was called. A negative value indicates out-of-rect positions. - FromX, FromY, ToX, ToY int +// textViewLine contains information about a line displayed in the text view. +type textViewLine struct { + offset int // The string position in the buffer where this line starts. + width int // The screen width of this line. + length int // The string length (in bytes) of this line. + state *stepState // The parser state at the beginning of the line, before parsing the first character. + regions map[string][2]int // The start and end columns of all regions in this line. Only valid for visible lines. May be nil. } // TextViewWriter is a writer that can be used to write to and clear a TextView @@ -74,19 +51,24 @@ func (w TextViewWriter) HasFocus() bool { return w.t.hasFocus } -// TextView is a box which displays text. While the text to be displayed can be -// changed or appended to, there is no functionality that allows the user to -// edit text. For that, TextArea should be used. +// TextView is a component to display read-only text. While the text to be +// displayed can be changed or appended to, there is no functionality that +// allows the user to edit it. For that, [TextArea] should be used. // // TextView implements the io.Writer interface so you can stream text to it, // appending to the existing text. This does not trigger a redraw automatically -// but if a handler is installed via SetChangedFunc(), you can cause it to be -// redrawn. (See SetChangedFunc() for more details.) +// but if a handler is installed via [TextView.SetChangedFunc], you can cause it +// to be redrawn. (See [TextView.SetChangedFunc] for more details.) +// +// Tab characters advance the text to the next tab stop at every [TabSize] +// screen columns, but only if the text is left-aligned. If the text is centered +// or right-aligned, tab characters are simply replaced with [TabSize] spaces. // // # Navigation // -// If the text view is scrollable (the default), text is kept in a buffer which -// may be larger than the screen and can be navigated similarly to Vim: +// If the text view is set to be scrollable (which is the default), text is kept +// in a buffer which may be larger than the screen and can be navigated +// with Vim-like key binds: // // - h, left arrow: Move left. // - l, right arrow: Move right. @@ -98,23 +80,24 @@ func (w TextViewWriter) HasFocus() bool { // - Ctrl-B, page up: Move up by one page. // // If the text is not scrollable, any text above the top visible line is -// discarded. +// discarded. This can be useful when you want to continuously stream text to +// the text view and only keep the latest lines. // -// Use SetInputCapture() to override or modify keyboard input. +// Use [Box.SetInputCapture] to override or modify keyboard input. // -// # Colors +// # Styles / Colors // -// If dynamic colors are enabled via SetDynamicColors(), text color can be -// changed dynamically by embedding color strings in square brackets. This works -// the same way as anywhere else. Please see the package documentation for more +// If dynamic colors are enabled via [TextView.SetDynamicColors], text style can +// be changed dynamically by embedding color strings in square brackets. This +// works the same way as anywhere else. See the package documentation for more // information. // // # Regions and Highlights // -// If regions are enabled via SetRegions(), you can define text regions within -// the text and assign region IDs to them. Text regions start with region tags. -// Region tags are square brackets that contain a region ID in double quotes, -// for example: +// If regions are enabled via [TextView.SetRegions], you can define text regions +// within the text and assign region IDs to them. Text regions start with region +// tags. Region tags are square brackets that contain a region ID in double +// quotes, for example: // // We define a ["rg"]region[""] here. // @@ -124,18 +107,27 @@ func (w TextViewWriter) HasFocus() bool { // // [a-zA-Z0-9_,;: \-\.]+ // -// Regions can be highlighted by calling the Highlight() function with one or -// more region IDs. This can be used to display search results, for example. +// Regions can be highlighted by calling the [TextView.Highlight] function with +// one or more region IDs. This can be used to display search results, for +// example. // -// The ScrollToHighlight() function can be used to jump to the currently -// highlighted region once when the text view is drawn the next time. +// The [TextView.ScrollToHighlight] function can be used to jump to the +// currently highlighted region once when the text view is drawn the next time. // // # Large Texts // -// This widget is not designed for very large texts as word wrapping, color and -// region tag handling, and proper Unicode handling will result in a significant -// performance hit the longer your text gets. Consider using SetMaxLines() to -// limit the number of lines in the text view. +// The text view can handle reasonably large texts. It will parse the text as +// needed. For optimal performance, it is best to access or display parts of the +// text very far down only if really needed. For example, call +// [TextView.ScrollToBeginning] before adding the text to the text view, to +// avoid scrolling the text all the way to the bottom, forcing a full-text +// parse. +// +// For even larger texts or "infinite" streams of text such as log files, you +// should consider using [TextView.SetMaxLines] to limit the number of lines in +// the text view buffer. Or disable the text view's scrollability altogether +// (using [TextView.SetScrollable]). This will cause the text view to discard +// lines moving out of the visible area at the top. // // See https://github.com/rivo/tview/wiki/TextView for an example. type TextView struct { @@ -147,14 +139,18 @@ type TextView struct { width, height int // The text buffer. - buffer []string + text strings.Builder - // The last bytes that have been received but are not part of the buffer yet. - recentBytes []byte + // The line index. It is valid at any time but may not contain trailing + // lines which are not visible. + lineIndex []*textViewLine - // The processed line index. This is nil if the buffer has changed and needs - // to be re-indexed. - index []*textViewIndex + // The screen width of the longest line in the index. + longestLine int + + // Regions mapped by their ID to the line where they start. Regions which + // cannot be found in [TextView.lineIndex] are not contained. + regions map[string]int // The label text shown, usually when part of a form. label string @@ -168,34 +164,23 @@ type TextView struct { // The text alignment, one of AlignLeft, AlignCenter, or AlignRight. align int - // Information about visible regions as of the last call to Draw(). - regionInfos []*textViewRegion - - // Indices into the "index" slice which correspond to the first line of the - // first highlight and the last line of the last highlight. This is calculated - // during re-indexing. Set to -1 if there is no current highlight. - fromHighlight, toHighlight int - - // The screen space column of the highlight in its first line. Set to -1 if - // there is no current highlight. - posHighlight int - - // A set of region IDs that are currently highlighted. + // Currently highlighted regions. highlights map[string]struct{} - // The last width for which the current text view is drawn. + // The last width for which the current text view was drawn. lastWidth int - // The screen width of the longest line in the index (not the buffer). - longestLine int + // The height of the content the last time the text view was drawn. + pageSize int // The index of the first line shown in the text view. lineOffset int - // If set to true, the text view will always remain at the end of the content. + // If set to true, the text view will always remain at the end of the + // content when text is added. trackEnd bool - // The number of characters to be skipped on each line (not used in wrap + // The width of the characters to be skipped on each line (not used in wrap // mode). columnOffset int @@ -203,43 +188,40 @@ type TextView struct { // latest word-wrapped lines. Ignored if 0. maxLines int - // The height of the content the last time the text view was drawn. - pageSize int - // If set to true, the text view will keep a buffer of text which can be // navigated when the text is longer than what fits into the box. scrollable bool - // If set to true, lines that are longer than the available width are wrapped - // onto the next line. If set to false, any characters beyond the available - // width are discarded. + // If set to true, lines that are longer than the available width are + // wrapped onto the next line. If set to false, any characters beyond the + // available width are discarded. wrap bool - // If set to true and if wrap is also true, lines are split at spaces or - // after punctuation characters. + // If set to true and if wrap is also true, Unicode line breaking is + // applied. wordWrap bool // The (starting) style of the text. This also defines the background color // of the main text element. textStyle tcell.Style - // If set to true, the text color can be changed dynamically by piping color - // strings in square brackets to the text view. - dynamicColors bool + // Whether or not style tags are used. + styleTags bool - // If set to true, region tags can be used to define regions. - regions bool + // Whether or not region tags are used. + regionTags bool // A temporary flag which, when true, will automatically bring the current - // highlight(s) into the visible screen. + // highlight(s) into the visible screen the next time the text view is + // drawn. scrollToHighlights bool // If true, setting new highlights will be a XOR instead of an overwrite // operation. toggleHighlights bool - // An optional function which is called when the content of the text view has - // changed. + // An optional function which is called when the content of the text view + // has changed. changed func() // An optional function which is called when the user presses one of the @@ -258,16 +240,16 @@ type TextView struct { // NewTextView returns a new text view. func NewTextView() *TextView { return &TextView{ - Box: NewBox(), - labelStyle: tcell.StyleDefault.Foreground(Styles.SecondaryTextColor), - highlights: make(map[string]struct{}), - lineOffset: -1, - scrollable: true, - align: AlignLeft, - wrap: true, - textStyle: tcell.StyleDefault.Background(Styles.PrimitiveBackgroundColor).Foreground(Styles.PrimaryTextColor), - regions: false, - dynamicColors: false, + Box: NewBox(), + labelStyle: tcell.StyleDefault.Foreground(Styles.SecondaryTextColor), + highlights: make(map[string]struct{}), + lineOffset: -1, + scrollable: true, + align: AlignLeft, + wrap: true, + textStyle: tcell.StyleDefault.Background(Styles.PrimitiveBackgroundColor).Foreground(Styles.PrimaryTextColor), + regionTags: false, + styleTags: false, } } @@ -315,8 +297,8 @@ func (t *TextView) SetDisabled(disabled bool) FormItem { } // SetScrollable sets the flag that decides whether or not the text view is -// scrollable. If true, text is kept in a buffer and can be navigated. If false, -// the last line will always be visible. +// scrollable. If false, text that moves above the text view's top row will be +// permanently deleted. func (t *TextView) SetScrollable(scrollable bool) *TextView { t.scrollable = scrollable if !scrollable { @@ -330,20 +312,19 @@ func (t *TextView) SetScrollable(scrollable bool) *TextView { // beyond the available width are not displayed. func (t *TextView) SetWrap(wrap bool) *TextView { if t.wrap != wrap { - t.index = nil + t.resetIndex() // This invalidates the entire index. } t.wrap = wrap return t } // SetWordWrap sets the flag that, if true and if the "wrap" flag is also true -// (see SetWrap()), wraps the line at spaces or after punctuation marks. Note -// that trailing spaces will not be printed. +// (see [TextView.SetWrap]), wraps according to [Unicode Standard Annex #14]. // // This flag is ignored if the "wrap" flag is false. func (t *TextView) SetWordWrap(wrapOnWords bool) *TextView { - if t.wordWrap != wrapOnWords { - t.index = nil + if t.wrap && t.wordWrap != wrapOnWords { + t.resetIndex() // This invalidates the entire index. } t.wordWrap = wrapOnWords return t @@ -351,11 +332,11 @@ func (t *TextView) SetWordWrap(wrapOnWords bool) *TextView { // SetMaxLines sets the maximum number of lines for this text view. Lines at the // beginning of the text will be discarded when the text view is drawn, so as to -// remain below this value. Broken lines via word wrapping are counted -// individually. +// remain below this value. Only lines above the first visible line are removed. +// +// Broken-over lines via word/character wrapping are counted individually. // -// Note that GetText() will return the shortened text and may start with color -// and/or region tags that were open at the cutoff point. +// Note that [TextView.GetText] will return the shortened text. // // A value of 0 (the default) will keep all lines in place. func (t *TextView) SetMaxLines(maxLines int) *TextView { @@ -366,18 +347,14 @@ func (t *TextView) SetMaxLines(maxLines int) *TextView { // SetTextAlign sets the text alignment within the text view. This must be // either AlignLeft, AlignCenter, or AlignRight. func (t *TextView) SetTextAlign(align int) *TextView { - if t.align != align { - t.index = nil - } t.align = align return t } -// SetTextColor sets the initial color of the text (which can be changed -// dynamically by sending color strings in square brackets to the text view if -// dynamic colors are enabled). +// SetTextColor sets the initial color of the text. func (t *TextView) SetTextColor(color tcell.Color) *TextView { t.textStyle = t.textStyle.Foreground(color) + t.resetIndex() return t } @@ -387,15 +364,15 @@ func (t *TextView) SetTextColor(color tcell.Color) *TextView { func (t *TextView) SetBackgroundColor(color tcell.Color) *Box { t.Box.SetBackgroundColor(color) t.textStyle = t.textStyle.Background(color) + t.resetIndex() return t.Box } -// SetTextStyle sets the initial style of the text (which can be changed -// dynamically by sending color strings in square brackets to the text view if -// dynamic colors are enabled). This style's background color also determines -// the background color of the main text element (even if empty). +// SetTextStyle sets the initial style of the text. This style's background +// color also determines the background color of the main text element. func (t *TextView) SetTextStyle(style tcell.Style) *TextView { t.textStyle = style + t.resetIndex() return t } @@ -404,84 +381,101 @@ func (t *TextView) SetTextStyle(style tcell.Style) *TextView { // interface directly, this does not trigger an automatic redraw but it will // trigger the "changed" callback if one is set. func (t *TextView) SetText(text string) *TextView { - batch := t.BatchWriter() - defer batch.Close() - - batch.Clear() - fmt.Fprint(batch, text) + t.Lock() + defer t.Unlock() + t.text.Reset() + t.text.WriteString(text) + t.resetIndex() + if t.changed != nil { + go t.changed() + } return t } // GetText returns the current text of this text view. If "stripAllTags" is set // to true, any region/style tags are stripped from the text. func (t *TextView) GetText(stripAllTags bool) string { - // Get the buffer. - buffer := t.buffer - if !stripAllTags { - buffer = make([]string, len(t.buffer), len(t.buffer)+1) - copy(buffer, t.buffer) - buffer = append(buffer, string(t.recentBytes)) + if !stripAllTags || (!t.styleTags && !t.regionTags) { + return t.text.String() } - // Add newlines again. - text := strings.Join(buffer, "\n") - - // Strip from tags if required. - if stripAllTags { - if t.regions { - text = regionPattern.ReplaceAllString(text, "") - } - if t.dynamicColors { - text = stripTags(text) - } - if t.regions && !t.dynamicColors { - text = escapePattern.ReplaceAllString(text, `[$1$2]`) - } + var ( + str strings.Builder + state *stepState + text = t.text.String() + opts stepOptions + ch string + ) + if t.styleTags { + opts = stepOptionsStyle } - - return text + if t.regionTags { + opts |= stepOptionsRegion + } + for len(text) > 0 { + ch, text, state = step(text, state, opts) + str.WriteString(ch) + } + return str.String() } // GetOriginalLineCount returns the number of lines in the original text buffer, -// i.e. the number of newline characters plus one. +// without applying any wrapping. This is an expensive call as it needs to +// iterate over the entire text. func (t *TextView) GetOriginalLineCount() int { - return len(t.buffer) + if t.text.Len() == 0 { + return 0 + } + + var ( + state *stepState + str = t.text.String() + lines int = 1 + ) + for len(str) > 0 { + _, str, state = step(str, state, stepOptionsNone) + if lineBreak, optional := state.LineBreak(); lineBreak && !optional { + lines++ + } + } + + return lines } // SetDynamicColors sets the flag that allows the text color to be changed -// dynamically. See class description for details. +// dynamically with style tags. See class description for details. func (t *TextView) SetDynamicColors(dynamic bool) *TextView { - if t.dynamicColors != dynamic { - t.index = nil + if t.styleTags != dynamic { + t.resetIndex() // This invalidates the entire index. } - t.dynamicColors = dynamic + t.styleTags = dynamic return t } // SetRegions sets the flag that allows to define regions in the text. See class // description for details. func (t *TextView) SetRegions(regions bool) *TextView { - if t.regions != regions { - t.index = nil + if t.regionTags != regions { + t.resetIndex() // This invalidates the entire index. } - t.regions = regions + t.regionTags = regions return t } // SetChangedFunc sets a handler function which is called when the text of the -// text view has changed. This is useful when text is written to this io.Writer -// in a separate goroutine. Doing so does not automatically cause the screen to -// be refreshed so you may want to use the "changed" handler to redraw the -// screen. +// text view has changed. This is useful when text is written to this +// [io.Writer] in a separate goroutine. Doing so does not automatically cause +// the screen to be refreshed so you may want to use the "changed" handler to +// redraw the screen. // // Note that to avoid race conditions or deadlocks, there are a few rules you // should follow: // -// - You can call Application.Draw() from this handler. -// - You can call TextView.HasFocus() from this handler. +// - You can call [Application.Draw] from this handler. +// - You can call [TextView.HasFocus] from this handler. // - During the execution of this handler, access to any other variables from // this primitive or any other primitive must be queued using -// Application.QueueUpdate(). +// [Application.QueueUpdate]. // // See package description for details on dealing with concurrency. func (t *TextView) SetChangedFunc(handler func()) *TextView { @@ -502,8 +496,9 @@ func (t *TextView) SetDoneFunc(handler func(key tcell.Key)) *TextView { // highlighted, those that are not highlighted anymore, and those that remain // highlighted. // -// Note that because regions are only determined during drawing, this function -// can only fire for regions that have existed during the last call to Draw(). +// Note that because regions are only determined when drawing the text view, +// this function can only fire for regions that have existed when the text view +// was last drawn. func (t *TextView) SetHighlightedFunc(handler func(added, removed, remaining []string)) *TextView { t.highlighted = handler return t @@ -566,36 +561,53 @@ func (t *TextView) GetScrollOffset() (row, column int) { return t.lineOffset, t.columnOffset } -// Clear removes all text from the buffer. +// Clear removes all text from the buffer. This triggers the "changed" callback. func (t *TextView) Clear() *TextView { t.Lock() defer t.Unlock() - t.clear() + if t.changed != nil { + go t.changed() + } return t } // clear is the internal implementaton of clear. It is used by TextViewWriter // and anywhere that we need to perform a write without locking the buffer. func (t *TextView) clear() { - t.buffer = nil - t.recentBytes = nil - t.index = nil + t.text.Reset() + t.resetIndex() } // Highlight specifies which regions should be highlighted. If highlight -// toggling is set to true (see SetToggleHighlights()), the highlight of the -// provided regions is toggled (highlighted regions are un-highlighted and vice -// versa). If toggling is set to false, the provided regions are highlighted and -// all other regions will not be highlighted (you may also provide nil to turn -// off all highlights). +// toggling is set to true (see [TextView.SetToggleHighlights]), the highlight +// of the provided regions is toggled (i.e. highlighted regions are +// un-highlighted and vice versa). If toggling is set to false, the provided +// regions are highlighted and all other regions will not be highlighted (you +// may also provide nil to turn off all highlights). // // For more information on regions, see class description. Empty region strings // are ignored. // // Text in highlighted regions will be drawn inverted, i.e. with their // background and foreground colors swapped. +// +// If toggling is set to false, clicking outside of any region will remove all +// highlights. +// +// This function is expensive if a specified region is in a part of the text +// that has not yet been parsed. func (t *TextView) Highlight(regionIDs ...string) *TextView { + // Make sure we know these regions. + t.parseAhead(t.lastWidth, func(lineNumber int, line *textViewLine) bool { + for _, regionID := range regionIDs { + if _, ok := t.regions[regionID]; !ok { + return false + } + } + return true + }) + // Toggle highlights. if t.toggleHighlights { var newIDs []string @@ -640,10 +652,9 @@ func (t *TextView) Highlight(regionIDs ...string) *TextView { } t.highlights[id] = struct{}{} } - t.index = nil // Notify. - if t.highlighted != nil && len(added) > 0 || len(removed) > 0 { + if t.highlighted != nil && (len(added) > 0 || len(removed) > 0) { t.highlighted(added, removed, remaining) } @@ -659,9 +670,9 @@ func (t *TextView) GetHighlights() (regionIDs []string) { } // SetToggleHighlights sets a flag to determine how regions are highlighted. -// When set to true, the Highlight() function (or a mouse click) will toggle the -// provided/selected regions. When set to false, Highlight() (or a mouse click) -// will simply highlight the provided regions. +// When set to true, the [TextView.Highlight] function (or a mouse click) will +// toggle the provided/selected regions. When set to false, [TextView.Highlight] +// (or a mouse click) will simply highlight the provided regions. func (t *TextView) SetToggleHighlights(toggle bool) *TextView { t.toggleHighlights = toggle return t @@ -676,88 +687,64 @@ func (t *TextView) SetToggleHighlights(toggle bool) *TextView { // Nothing happens if there are no highlighted regions or if the text view is // not scrollable. func (t *TextView) ScrollToHighlight() *TextView { - if len(t.highlights) == 0 || !t.scrollable || !t.regions { + if len(t.highlights) == 0 || !t.scrollable || !t.regionTags { return t } - t.index = nil t.scrollToHighlights = true t.trackEnd = false return t } -// GetRegionText returns the text of the region with the given ID. If dynamic -// colors are enabled, style tags are stripped from the text. Newlines are -// always returned as '\n' runes. +// GetRegionText returns the text of the first region with the given ID. If +// dynamic colors are enabled, style tags are stripped from the text. // // If the region does not exist or if regions are turned off, an empty string // is returned. +// +// This function can be expensive if the specified region is way beyond the +// visible area of the text view as the text needs to be parsed until the region +// can be found, or if the region does not contain any text. func (t *TextView) GetRegionText(regionID string) string { - if !t.regions || regionID == "" { + if !t.regionTags || regionID == "" { return "" } - var ( - buffer bytes.Buffer - currentRegionID string - ) - - for _, str := range t.buffer { - // Find all style tags in this line. - var colorTagIndices [][]int - if t.dynamicColors { - colorTagIndices = colorPattern.FindAllStringIndex(str, -1) - } - - // Find all regions in this line. - var ( - regionIndices [][]int - regions [][]string - ) - if t.regions { - regionIndices = regionPattern.FindAllStringIndex(str, -1) - regions = regionPattern.FindAllStringSubmatch(str, -1) - } - - // Analyze this line. - var currentTag, currentRegion int - for pos, ch := range str { - // Skip any style tags. - if currentTag < len(colorTagIndices) && pos >= colorTagIndices[currentTag][0] && pos < colorTagIndices[currentTag][1] { - tag := currentTag - if pos == colorTagIndices[tag][1]-1 { - currentTag++ - } - if colorTagIndices[tag][1]-colorTagIndices[tag][0] > 2 { - continue - } - } - - // Skip any regions. - if currentRegion < len(regionIndices) && pos >= regionIndices[currentRegion][0] && pos < regionIndices[currentRegion][1] { - if pos == regionIndices[currentRegion][1]-1 { - if currentRegionID == regionID { - // This is the end of the requested region. We're done. - return buffer.String() - } - currentRegionID = regions[currentRegion][1] - currentRegion++ - } - continue - } - - // Add this rune. - if currentRegionID == regionID { - buffer.WriteRune(ch) - } + // Parse until we find the region. + lineNumber, ok := t.regions[regionID] + if !ok { + lineNumber = -1 + t.parseAhead(t.lastWidth, func(number int, line *textViewLine) bool { + lineNumber, ok = t.regions[regionID] + return ok + }) + if lineNumber < 0 { + return "" // We couldn't find this region. } + } - // Add newline. - if currentRegionID == regionID { - buffer.WriteRune('\n') + // Extract text from region. + var ( + line = t.lineIndex[lineNumber] + text = t.text.String()[line.offset:] + st = *line.state + state = &st + options = stepOptionsRegion + regionText strings.Builder + ) + if t.styleTags { + options |= stepOptionsStyle + } + for len(text) > 0 { + var ch string + ch, text, state = step(text, state, options) + if state.region == regionID { + regionText.WriteString(ch) + } else if regionText.Len() > 0 { + break } } - return escapePattern.ReplaceAllString(buffer.String(), `[$1$2]`) + return regionText.String() } // Focus is called when this primitive receives focus. @@ -785,9 +772,7 @@ func (t *TextView) HasFocus() bool { return t.Box.HasFocus() } -// Write lets us implement the io.Writer interface. Tab characters will be -// replaced with TabSize space characters. A "\n" or "\r\n" will be interpreted -// as a new line. +// Write lets us implement the io.Writer interface. func (t *TextView) Write(p []byte) (n int, err error) { t.Lock() defer t.Unlock() @@ -795,7 +780,7 @@ func (t *TextView) Write(p []byte) (n int, err error) { return t.write(p) } -// write is the internal implementation of Write. It is used by TextViewWriter +// write is the internal implementation of Write. It is used by [TextViewWriter] // and anywhere that we need to perform a write without locking the buffer. func (t *TextView) write(p []byte) (n int, err error) { // Notify at the end. @@ -808,59 +793,13 @@ func (t *TextView) write(p []byte) (n int, err error) { }() } - // Copy data over. - newBytes := append(t.recentBytes, p...) - t.recentBytes = nil - - // If we have a trailing invalid UTF-8 byte, we'll wait. - if r, _ := utf8.DecodeLastRune(p); r == utf8.RuneError { - t.recentBytes = newBytes - return len(p), nil - } - - // If we have a trailing open dynamic color, exclude it. - if t.dynamicColors { - location := openColorRegex.FindIndex(newBytes) - if location != nil { - t.recentBytes = newBytes[location[0]:] - newBytes = newBytes[:location[0]] - } - } - - // If we have a trailing open region, exclude it. - if t.regions { - location := openRegionRegex.FindIndex(newBytes) - if location != nil { - t.recentBytes = newBytes[location[0]:] - newBytes = newBytes[:location[0]] - } - } - - // Transform the new bytes into strings. - newBytes = bytes.Replace(newBytes, []byte{'\t'}, bytes.Repeat([]byte{' '}, TabSize), -1) - for index, line := range newLineRegex.Split(string(newBytes), -1) { - if index == 0 { - if len(t.buffer) == 0 { - t.buffer = []string{line} - } else { - t.buffer[len(t.buffer)-1] += line - } - } else { - t.buffer = append(t.buffer, line) - } - } - - // Reset the index. - t.index = nil - - return len(p), nil + return t.text.Write(p) } // BatchWriter returns a new writer that can be used to write into the buffer -// but without Locking/Unlocking the buffer on every write, as TextView's -// Write() and Clear() functions do. The lock will be acquired once when -// BatchWriter is called, and will be released when the returned writer is -// closed. Example: +// but without Locking/Unlocking the buffer on every write, as [TextView.Write] +// and [TextView.Clear] do. The lock will be acquired once when BatchWriter is +// called, and will be released when the returned writer is closed. Example: // // tv := tview.NewTextView() // w := tv.BatchWriter() @@ -880,238 +819,155 @@ func (t *TextView) BatchWriter() TextViewWriter { } } -// reindexBuffer re-indexes the buffer such that we can use it to easily draw -// the buffer onto the screen. Each line in the index will contain a pointer -// into the buffer from which on we will print text. It will also contain the -// colors, attributes, and region with which the line starts. +// resetIndex resets all indexed data, including the line index. +func (t *TextView) resetIndex() { + t.lineIndex = nil + t.regions = make(map[string]int) + t.longestLine = 0 +} + +// parseAhead parses the text buffer starting at the last line in +// [TextView.lineIndex] until either the end of the buffer or until stop returns +// true for the last complete line that was parsed. If wrapping is enabled, +// width will be used as the available screen width. +// +// There is no guarantee that stop will ever be called. // -// If maxLines is greater than 0, any extra lines will be dropped from the -// buffer. -func (t *TextView) reindexBuffer(width int) { - if t.index != nil { - return // Nothing has changed. We can still use the current index. +// The function adds entries to the [TextView.lineIndex] slice and the +// [TextView.regions] map and adjusts [TextView.longestLine]. +func (t *TextView) parseAhead(width int, stop func(lineNumber int, line *textViewLine) bool) { + if t.text.Len() == 0 || width == 0 { + return // No text. Nothing to parse. } - t.index = nil - t.fromHighlight, t.toHighlight, t.posHighlight = -1, -1, -1 - // If there's no space, there's no index. - if width < 1 { - return + // What kind of tags do we scan for? + var options stepOptions + if t.styleTags { + options |= stepOptionsStyle + } + if t.regionTags { + options |= stepOptionsRegion } - // Initial states. - regionID := "" + // Start parsing at the last line in the index. + var lastLine *textViewLine + str := t.text.String() + if len(t.lineIndex) == 0 { + // Insert the first line. + lastLine = &textViewLine{ + state: &stepState{ + unisegState: -1, + style: t.textStyle, + }, + } + t.lineIndex = append(t.lineIndex, lastLine) + } else { + // Reset the last line. + lastLine = t.lineIndex[len(t.lineIndex)-1] + lastLine.width = 0 + lastLine.length = 0 + str = str[lastLine.offset:] + } + + // Parse. var ( - highlighted bool - foregroundColor, backgroundColor, attributes string + lastOption int // Text index of the last optional split point. + lastOptionWidth int // Line width at last optional split point. + lastOptionState *stepState // State at last optional split point. + leftPos int // The current position in the line (only for left-alignment). + offset = lastLine.offset // Text index of the current position. + st = *lastLine.state // Current state. + state = &st // Pointer to current state. ) - - // Go through each line in the buffer. - for bufferIndex, str := range t.buffer { - colorTagIndices, colorTags, regionIndices, regions, escapeIndices, strippedStr, _ := decomposeString(str, t.dynamicColors, t.regions) - - // Split the line if required. - var splitLines []string - str = strippedStr - if t.wrap && len(str) > 0 { - for len(str) > 0 { - // Truncate str to width. - var splitPos, clusterWidth, lineWidth int - state := -1 - remaining := str - for splitPos == 0 || len(remaining) > 0 { // We'll extract at least one grapheme cluster. - var cluster string - cluster, remaining, clusterWidth, state = uniseg.FirstGraphemeClusterInString(remaining, state) - lineWidth += clusterWidth - if splitPos > 0 && lineWidth > width { - break - } - splitPos += len(cluster) - } - extract := str[:splitPos] - - if t.wordWrap && len(extract) < len(str) { - // Add any spaces from the next line. - if spaces := spacePattern.FindStringIndex(str[len(extract):]); spaces != nil && spaces[0] == 0 { - extract = str[:len(extract)+spaces[1]] - } - - // Can we split before the mandatory end? - matches := boundaryPattern.FindAllStringIndex(extract, -1) - if len(matches) > 0 { - // Yes. Let's split there. - extract = extract[:matches[len(matches)-1][1]] - } - } - splitLines = append(splitLines, extract) - str = str[len(extract):] + for len(str) > 0 { + var c string + region := state.region + c, str, state = step(str, state, options) + w := state.Width() + if c == "\t" { + if t.align == AlignLeft { + w = TabSize - leftPos%TabSize + } else { + w = TabSize } - } else { - // No need to split the line. - splitLines = []string{str} } - - // Create index from split lines. - var originalPos, colorPos, regionPos, escapePos int - for _, splitLine := range splitLines { - line := &textViewIndex{ - Line: bufferIndex, - Pos: originalPos, - ForegroundColor: foregroundColor, - BackgroundColor: backgroundColor, - Attributes: attributes, - Region: regionID, - } - - // Shift original position with tags. - lineLength := len(splitLine) - remainingLength := lineLength - tagEnd := originalPos - totalTagLength := 0 - for { - // Which tag comes next? - nextTag := make([][3]int, 0, 3) - if colorPos < len(colorTagIndices) { - nextTag = append(nextTag, [3]int{colorTagIndices[colorPos][0], colorTagIndices[colorPos][1], 0}) // 0 = style tag. - } - if regionPos < len(regionIndices) { - nextTag = append(nextTag, [3]int{regionIndices[regionPos][0], regionIndices[regionPos][1], 1}) // 1 = region tag. - } - if escapePos < len(escapeIndices) { - nextTag = append(nextTag, [3]int{escapeIndices[escapePos][0], escapeIndices[escapePos][1], 2}) // 2 = escape tag. - } - minPos := -1 - tagIndex := -1 - for index, pair := range nextTag { - if minPos < 0 || pair[0] < minPos { - minPos = pair[0] - tagIndex = index - } + length := state.GrossLength() + + // Would it exceed the line width? + if t.wrap && lastLine.width+w > width { + if lastOptionWidth == 0 { + // No split point so far. Just split at the current position. + if stop(len(t.lineIndex)-1, lastLine) { + return } - - // Is the next tag in range? - if tagIndex < 0 || minPos > tagEnd+remainingLength { - break // No. We're done with this line. + st := *state + lastLine = &textViewLine{ + offset: offset, + state: &st, } - - // Advance. - strippedTagStart := nextTag[tagIndex][0] - originalPos - totalTagLength - tagEnd = nextTag[tagIndex][1] - tagLength := tagEnd - nextTag[tagIndex][0] - if nextTag[tagIndex][2] == 2 { - tagLength = 1 + lastOption, lastOptionWidth, leftPos = 0, 0, 0 + } else { + // Split at the last split point. + newLine := &textViewLine{ + offset: lastLine.offset + lastOption, + width: lastLine.width - lastOptionWidth, + length: lastLine.length - lastOption, + state: lastOptionState, } - totalTagLength += tagLength - remainingLength = lineLength - (tagEnd - originalPos - totalTagLength) - - // Process the tag. - switch nextTag[tagIndex][2] { - case 0: - // Process style tags. - foregroundColor, backgroundColor, attributes = styleFromTag(foregroundColor, backgroundColor, attributes, colorTags[colorPos]) - colorPos++ - case 1: - // Process region tags. - regionID = regions[regionPos][1] - _, highlighted = t.highlights[regionID] - - // Update highlight range. - if highlighted { - line := len(t.index) - if t.fromHighlight < 0 { - t.fromHighlight, t.toHighlight = line, line - t.posHighlight = uniseg.StringWidth(splitLine[:strippedTagStart]) - } else if line > t.toHighlight { - t.toHighlight = line - } - } - - regionPos++ - case 2: - // Process escape tags. - escapePos++ + lastLine.width = lastOptionWidth + lastLine.length = lastOption + if stop(len(t.lineIndex)-1, lastLine) { + return } + lastLine = newLine + lastOption, lastOptionWidth = 0, 0 + leftPos -= lastOptionWidth } + t.lineIndex = append(t.lineIndex, lastLine) + } - // Advance to next line. - originalPos += lineLength + totalTagLength + // Move ahead. + lastLine.width += w + lastLine.length += length + offset += length + leftPos += w - // Append this line. - line.NextPos = originalPos - line.Width = uniseg.StringWidth(splitLine) - t.index = append(t.index, line) + // Do we have a new longest line? + if lastLine.width > t.longestLine { + t.longestLine = lastLine.width } - // Word-wrapped lines may have trailing whitespace. Remove it. - if t.wrap && t.wordWrap { - for _, line := range t.index { - str := t.buffer[line.Line][line.Pos:line.NextPos] - spaces := spacePattern.FindAllStringIndex(str, -1) - if spaces != nil && spaces[len(spaces)-1][1] == len(str) { - oldNextPos := line.NextPos - line.NextPos -= spaces[len(spaces)-1][1] - spaces[len(spaces)-1][0] - line.Width -= uniseg.StringWidth(t.buffer[line.Line][line.NextPos:oldNextPos]) + // Check for split points. + if lineBreak, optional := state.LineBreak(); lineBreak { + if optional { + if t.wrap && t.wordWrap { + // Remember this split point. + lastOption = offset - lastLine.offset + lastOptionWidth = lastLine.width + st := *state + lastOptionState = &st + } + } else if str != "" || c != "" && uniseg.HasTrailingLineBreakInString(c) { + // We must split here. + if stop(len(t.lineIndex)-1, lastLine) { + return } + st := *state + lastLine = &textViewLine{ + offset: offset, + state: &st, + } + t.lineIndex = append(t.lineIndex, lastLine) + lastOption, lastOptionWidth, leftPos = 0, 0, 0 } } - } - // Drop lines beyond maxLines. - if t.maxLines > 0 && len(t.index) > t.maxLines { - removedLines := len(t.index) - t.maxLines - - // Adjust the index. - t.index = t.index[removedLines:] - if t.fromHighlight >= 0 { - t.fromHighlight -= removedLines - if t.fromHighlight < 0 { - t.fromHighlight = 0 - } - } - if t.toHighlight >= 0 { - t.toHighlight -= removedLines - if t.toHighlight < 0 { - t.fromHighlight, t.toHighlight, t.posHighlight = -1, -1, -1 + // Add new regions if any. + if t.regionTags && state.region != "" && state.region != region { + if _, ok := t.regions[state.region]; !ok { + t.regions[state.region] = len(t.lineIndex) - 1 } } - bufferShift := t.index[0].Line - for _, line := range t.index { - line.Line -= bufferShift - } - - // Adjust the original buffer. - t.buffer = t.buffer[bufferShift:] - var prefix string - if t.index[0].ForegroundColor != "" || t.index[0].BackgroundColor != "" || t.index[0].Attributes != "" { - prefix = fmt.Sprintf("[%s:%s:%s]", t.index[0].ForegroundColor, t.index[0].BackgroundColor, t.index[0].Attributes) - } - if t.index[0].Region != "" { - prefix += fmt.Sprintf(`["%s"]`, t.index[0].Region) - } - posShift := t.index[0].Pos - t.buffer[0] = prefix + t.buffer[0][posShift:] - t.lineOffset -= removedLines - if t.lineOffset < 0 { - t.lineOffset = 0 - } - - // Adjust positions of first buffer line. - posShift -= len(prefix) - for _, line := range t.index { - if line.Line != 0 { - break - } - line.Pos -= posShift - line.NextPos -= posShift - } - } - - // Calculate longest line. - t.longestLine = 0 - for _, line := range t.index { - if line.Width > t.longestLine { - t.longestLine = line.Width - } } } @@ -1164,70 +1020,97 @@ func (t *TextView) Draw(screen tcell.Screen) { // If the width has changed, we need to reindex. if width != t.lastWidth && t.wrap { - t.index = nil + t.resetIndex() } t.lastWidth = width - // Re-index. - t.reindexBuffer(width) - if t.regions { - t.regionInfos = nil + // What are our parse options? + var options stepOptions + if t.styleTags { + options |= stepOptionsStyle } - - // If we don't have an index, there's nothing to draw. - if t.index == nil { - return + if t.regionTags { + options |= stepOptionsRegion } - // Move to highlighted regions. - if t.regions && t.scrollToHighlights && t.fromHighlight >= 0 { - // Do we fit the entire height? - if t.toHighlight-t.fromHighlight+1 < height { - // Yes, let's center the highlights. - t.lineOffset = (t.fromHighlight + t.toHighlight - height) / 2 - } else { - // No, let's move to the start of the highlights. - t.lineOffset = t.fromHighlight + // Scroll to highlighted regions. + if t.regionTags && t.scrollToHighlights { + // What is the line range for all highlighted regions? + var ( + firstRegion string + fromHighlight, toHighlight int + ) + for regionID := range t.highlights { + // We can safely assume that the region is known. + line := t.regions[regionID] + if firstRegion == "" || line > toHighlight { + toHighlight = line + } + if firstRegion == "" || line < fromHighlight { + fromHighlight = line + firstRegion = regionID + } } + if firstRegion != "" { + // Do we fit the entire height? + if toHighlight-fromHighlight+1 < height { + // Yes, let's center the highlights. + t.lineOffset = (fromHighlight + toHighlight - height) / 2 + } else { + // No, let's move to the start of the highlights. + t.lineOffset = fromHighlight + } - // If the highlight is too far to the right, move it to the middle. - if t.posHighlight-t.columnOffset > 3*width/4 { - t.columnOffset = t.posHighlight - width/2 - } + // If the highlight is too far to the right, move it to the middle. + if t.wrap { + // Find the first highlight's column in screen space. + line := t.lineIndex[fromHighlight] + st := *line.state + state := &st + str := t.text.String()[line.offset:] + var posHighlight int + for len(str) > 0 && posHighlight < line.width && state.region != firstRegion { + _, str, state = step(str, state, options) + posHighlight += state.Width() + } - // If the highlight is off-screen on the left, move it on-screen. - if t.posHighlight-t.columnOffset < 0 { - t.columnOffset = t.posHighlight - width/4 + if posHighlight-t.columnOffset > 3*width/4 { + t.columnOffset = posHighlight - width/2 + } + + // If the highlight is off-screen on the left, move it on-screen. + if posHighlight-t.columnOffset < 0 { + t.columnOffset = posHighlight - width/4 + } + } } } t.scrollToHighlights = false + // Make sure our index has enough lines. + t.parseAhead(width, func(lineNumber int, line *textViewLine) bool { + return lineNumber >= t.lineOffset+height + }) + // Adjust line offset. - if t.lineOffset+height > len(t.index) { - t.trackEnd = true - } if t.trackEnd { - t.lineOffset = len(t.index) - height + t.parseAhead(width, func(lineNumber int, line *textViewLine) bool { + return false + }) + t.lineOffset = len(t.lineIndex) - height } if t.lineOffset < 0 { t.lineOffset = 0 } // Adjust column offset. - if t.align == AlignLeft { + if t.align == AlignLeft || t.align == AlignRight { if t.columnOffset+width > t.longestLine { t.columnOffset = t.longestLine - width } if t.columnOffset < 0 { t.columnOffset = 0 } - } else if t.align == AlignRight { - if t.columnOffset-width < -t.longestLine { - t.columnOffset = width - t.longestLine - } - if t.columnOffset > 0 { - t.columnOffset = 0 - } } else { // AlignCenter. half := (t.longestLine - width) / 2 if half > 0 { @@ -1242,104 +1125,71 @@ func (t *TextView) Draw(screen tcell.Screen) { } } - // Draw the buffer. - for line := t.lineOffset; line < len(t.index); line++ { + // Draw visible lines. + for line := t.lineOffset; line < len(t.lineIndex); line++ { // Are we done? if line-t.lineOffset >= height { break } - // Get the text for this line. - index := t.index[line] - text := t.buffer[index.Line][index.Pos:index.NextPos] - foregroundColor := index.ForegroundColor - backgroundColor := index.BackgroundColor - attributes := index.Attributes - regionID := index.Region - if t.regions { - if len(t.regionInfos) > 0 && t.regionInfos[len(t.regionInfos)-1].ID != regionID { - // End last region. - t.regionInfos[len(t.regionInfos)-1].ToX = x - t.regionInfos[len(t.regionInfos)-1].ToY = y + line - t.lineOffset + info := t.lineIndex[line] + info.regions = nil + + // Determine starting point of the text and the screen. + var skipWidth, xPos int + switch t.align { + case AlignLeft: + skipWidth = t.columnOffset + case AlignCenter: + skipWidth = t.columnOffset + (info.width-width)/2 + if skipWidth < 0 { + skipWidth = 0 + xPos = (width-info.width)/2 - t.columnOffset } - if regionID != "" && (len(t.regionInfos) == 0 || t.regionInfos[len(t.regionInfos)-1].ID != regionID) { - // Start a new region. - t.regionInfos = append(t.regionInfos, &textViewRegion{ - ID: regionID, - FromX: x, - FromY: y + line - t.lineOffset, - ToX: -1, - ToY: -1, - }) + case AlignRight: + maxWidth := width + if t.longestLine > width { + maxWidth = t.longestLine + } + skipWidth = t.columnOffset - (maxWidth - info.width) + if skipWidth < 0 { + skipWidth = 0 + xPos = maxWidth - info.width - t.columnOffset } } - // Process tags. - colorTagIndices, colorTags, regionIndices, regions, escapeIndices, strippedText, _ := decomposeString(text, t.dynamicColors, t.regions) - - // Calculate the position of the line. - var skip, posX int - if t.align == AlignLeft { - posX = -t.columnOffset - } else if t.align == AlignRight { - posX = width - index.Width - t.columnOffset - } else { // AlignCenter. - posX = (width-index.Width)/2 - t.columnOffset - } - if posX < 0 { - skip = -posX - posX = 0 - } - - // Print the line. - if y+line-t.lineOffset >= 0 { - var colorPos, regionPos, escapePos, tagOffset, skipped int - iterateString(strippedText, func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth, boundaries int) bool { - // Process tags. - for { - if colorPos < len(colorTags) && textPos+tagOffset >= colorTagIndices[colorPos][0] && textPos+tagOffset < colorTagIndices[colorPos][1] { - // Get the color. - foregroundColor, backgroundColor, attributes = styleFromTag(foregroundColor, backgroundColor, attributes, colorTags[colorPos]) - tagOffset += colorTagIndices[colorPos][1] - colorTagIndices[colorPos][0] - colorPos++ - } else if regionPos < len(regionIndices) && textPos+tagOffset >= regionIndices[regionPos][0] && textPos+tagOffset < regionIndices[regionPos][1] { - // Get the region. - if regionID != "" && len(t.regionInfos) > 0 && t.regionInfos[len(t.regionInfos)-1].ID == regionID { - // End last region. - t.regionInfos[len(t.regionInfos)-1].ToX = x + posX - t.regionInfos[len(t.regionInfos)-1].ToY = y + line - t.lineOffset - } - regionID = regions[regionPos][1] - if regionID != "" { - // Start new region. - t.regionInfos = append(t.regionInfos, &textViewRegion{ - ID: regionID, - FromX: x + posX, - FromY: y + line - t.lineOffset, - ToX: -1, - ToY: -1, - }) - } - tagOffset += regionIndices[regionPos][1] - regionIndices[regionPos][0] - regionPos++ - } else { - break - } + // Draw the line text. + str := t.text.String()[info.offset:] + st := *info.state + state := &st + var processed int + for len(str) > 0 && xPos < width && processed < info.length { + var ch string + ch, str, state = step(str, state, options) + w := state.Width() + if ch == "\t" { + if t.align == AlignLeft { + w = TabSize - xPos%TabSize + } else { + w = TabSize } + } + processed += state.GrossLength() - // Skip the second-to-last character of an escape tag. - if escapePos < len(escapeIndices) && textPos+tagOffset == escapeIndices[escapePos][1]-2 { - tagOffset++ - escapePos++ - } + // Don't draw anything while we skip characters. + if skipWidth > 0 { + skipWidth -= w + continue + } - // Mix the existing style with the new style. - style := overlayStyle(t.textStyle, foregroundColor, backgroundColor, attributes) + // Draw this character. + if w > 0 { + style := state.Style() // Do we highlight this character? var highlighted bool - if regionID != "" { - if _, ok := t.highlights[regionID]; ok { + if state.region != "" { + if _, ok := t.highlights[state.region]; ok { highlighted = true } } @@ -1358,42 +1208,59 @@ func (t *TextView) Draw(screen tcell.Screen) { style = style.Background(fg).Foreground(bg) } - // Skip to the right. - if !t.wrap && skipped < skip { - skipped += screenWidth - return false - } - - // Stop at the right border. - if posX+screenWidth > width { - return true + // Paint on screen. + for offset := w - 1; offset >= 0; offset-- { + runes := []rune(ch) + if offset == 0 { + screen.SetContent(x+xPos+offset, y+line-t.lineOffset, runes[0], runes[1:], style) + } else { + screen.SetContent(x+xPos+offset, y+line-t.lineOffset, ' ', nil, style) + } } - // Draw the character. - for offset := screenWidth - 1; offset >= 0; offset-- { - if offset == 0 { - screen.SetContent(x+posX+offset, y+line-t.lineOffset, main, comb, style) + // Register this region. + if state.region != "" { + if info.regions == nil { + info.regions = make(map[string][2]int) + } + fromTo, ok := info.regions[state.region] + if !ok { + fromTo = [2]int{xPos, xPos + w} } else { - screen.SetContent(x+posX+offset, y+line-t.lineOffset, ' ', nil, style) + if xPos < fromTo[0] { + fromTo[0] = xPos + } + if xPos+w > fromTo[1] { + fromTo[1] = xPos + w + } } + info.regions[state.region] = fromTo } + } - // Advance. - posX += screenWidth - return false - }) + xPos += w } } // If this view is not scrollable, we'll purge the buffer of lines that have // scrolled out of view. + var purgeStart int if !t.scrollable && t.lineOffset > 0 { - if t.lineOffset >= len(t.index) { - t.buffer = nil - } else { - t.buffer = t.buffer[t.index[t.lineOffset].Line:] - } - t.index = nil + purgeStart = t.lineOffset + } + + // If we reached the maximum number of lines, we'll purge the buffer of the + // oldest lines. + if t.maxLines > 0 && len(t.lineIndex) > t.maxLines { + purgeStart = len(t.lineIndex) - t.maxLines + } + + // Purge. + if purgeStart > 0 { + newText := t.text.String()[t.lineIndex[purgeStart].offset:] + t.text.Reset() + t.text.WriteString(newText) + t.resetIndex() t.lineOffset = 0 } } @@ -1475,17 +1342,25 @@ func (t *TextView) MouseHandler() func(action MouseAction, event *tcell.EventMou setFocus(t) consumed = true case MouseLeftClick: - if t.regions { + if t.regionTags { // Find a region to highlight. - for _, region := range t.regionInfos { - if y == region.FromY && x < region.FromX || - y == region.ToY && x >= region.ToX || - region.FromY >= 0 && y < region.FromY || - region.ToY >= 0 && y > region.ToY { - continue + rectX, rectY, _, _ := t.GetInnerRect() + x -= rectX + y -= rectY + var highlightedID string + if y+t.lineOffset < len(t.lineIndex) { + line := t.lineIndex[y+t.lineOffset] + for regionID, fromTo := range line.regions { + if x >= fromTo[0] && x < fromTo[1] { + highlightedID = regionID + break + } } - t.Highlight(region.ID) - break + } + if highlightedID != "" { + t.Highlight(highlightedID) + } else if !t.toggleHighlights { + t.Highlight() } } consumed = true diff --git a/util.go b/util.go index d6a4147..8920307 100644 --- a/util.go +++ b/util.go @@ -4,12 +4,9 @@ import ( "math" "os" "regexp" - "sort" "strconv" - "strings" "github.com/gdamore/tcell/v2" - "github.com/rivo/uniseg" ) // Text alignment within a box. Also used to align images. @@ -21,39 +18,12 @@ const ( AlignBottom = 2 ) -// Common regular expressions. var ( - colorPattern = regexp.MustCompile(`\[([a-zA-Z]+|#[0-9a-zA-Z]{6}|\-)?(:([a-zA-Z]+|#[0-9a-zA-Z]{6}|\-)?(:([lbidrus]+|\-)?)?)?\]`) - regionPattern = regexp.MustCompile(`\["([a-zA-Z0-9_,;: \-\.]*)"\]`) - escapePattern = regexp.MustCompile(`\[([a-zA-Z0-9_,;: \-\."#]+)\[(\[*)\]`) + // Regular expression used to escape style/region tags. nonEscapePattern = regexp.MustCompile(`(\[[a-zA-Z0-9_,;: \-\."#]+\[*)\]`) - boundaryPattern = regexp.MustCompile(`(([,\.\-:;!\?&#+]|\n)[ \t\f\r]*|([ \t\f\r]+))`) - spacePattern = regexp.MustCompile(`\s+`) -) - -// Positions of substrings in regular expressions. -const ( - colorForegroundPos = 1 - colorBackgroundPos = 3 - colorFlagPos = 5 -) - -// The number of colors available in the terminal. -var availableColors = 256 - -// Predefined InputField acceptance functions. -var ( - // InputFieldInteger accepts integers. - InputFieldInteger func(text string, ch rune) bool - - // InputFieldFloat accepts floating-point numbers. - InputFieldFloat func(text string, ch rune) bool - // InputFieldMaxLength returns an input field accept handler which accepts - // input strings up to a given length. Use it like this: - // - // inputField.SetAcceptanceFunc(InputFieldMaxLength(10)) // Accept up to 10 characters. - InputFieldMaxLength func(maxLength int) func(text string, ch rune) bool + // The number of colors available in the terminal. + availableColors = 256 ) // Package initialization. @@ -86,153 +56,6 @@ func init() { } } -// styleFromTag takes the given style, defined by a foreground color (fgColor), -// a background color (bgColor), and style attributes, and modifies it based on -// the substrings (tagSubstrings) extracted by the regular expression for color -// tags. The new colors and attributes are returned where empty strings mean -// "don't modify" and a dash ("-") means "reset to default". -func styleFromTag(fgColor, bgColor, attributes string, tagSubstrings []string) (newFgColor, newBgColor, newAttributes string) { - if tagSubstrings[colorForegroundPos] != "" { - color := tagSubstrings[colorForegroundPos] - if color == "-" { - fgColor = "-" - } else if color != "" { - fgColor = color - } - } - - if tagSubstrings[colorBackgroundPos-1] != "" { - color := tagSubstrings[colorBackgroundPos] - if color == "-" { - bgColor = "-" - } else if color != "" { - bgColor = color - } - } - - if tagSubstrings[colorFlagPos-1] != "" { - flags := tagSubstrings[colorFlagPos] - if flags == "-" { - attributes = "-" - } else if flags != "" { - attributes = flags - } - } - - return fgColor, bgColor, attributes -} - -// overlayStyle calculates a new style based on "style" and applying tag-based -// colors/attributes to it (see also styleFromTag()). -func overlayStyle(style tcell.Style, fgColor, bgColor, attributes string) tcell.Style { - _, _, defAttr := style.Decompose() - - if fgColor != "" && fgColor != "-" { - style = style.Foreground(tcell.GetColor(fgColor)) - } - - if bgColor != "" && bgColor != "-" { - style = style.Background(tcell.GetColor(bgColor)) - } - - if attributes == "-" { - style = style.Bold(defAttr&tcell.AttrBold > 0). - Italic(defAttr&tcell.AttrItalic > 0). - Blink(defAttr&tcell.AttrBlink > 0). - Reverse(defAttr&tcell.AttrReverse > 0). - Underline(defAttr&tcell.AttrUnderline > 0). - Dim(defAttr&tcell.AttrDim > 0) - } else if attributes != "" { - style = style.Normal() - for _, flag := range attributes { - switch flag { - case 'l': - style = style.Blink(true) - case 'b': - style = style.Bold(true) - case 'i': - style = style.Italic(true) - case 'd': - style = style.Dim(true) - case 'r': - style = style.Reverse(true) - case 'u': - style = style.Underline(true) - case 's': - style = style.StrikeThrough(true) - } - } - } - - return style -} - -// decomposeString returns information about a string which may contain color -// tags or region tags, depending on which ones are requested to be found. It -// returns the indices of the style tags (as returned by -// re.FindAllStringIndex()), the style tags themselves (as returned by -// re.FindAllStringSubmatch()), the indices of region tags and the region tags -// themselves, the indices of an escaped tags (only if at least style tags or -// region tags are requested), the string stripped by any tags and escaped, and -// the screen width of the stripped string. -func decomposeString(text string, findColors, findRegions bool) (colorIndices [][]int, colors [][]string, regionIndices [][]int, regions [][]string, escapeIndices [][]int, stripped string, width int) { - // Shortcut for the trivial case. - if !findColors && !findRegions { - return nil, nil, nil, nil, nil, text, uniseg.StringWidth(text) - } - - // Get positions of any tags. - if findColors { - colorIndices = colorPattern.FindAllStringIndex(text, -1) - colors = colorPattern.FindAllStringSubmatch(text, -1) - } - if findRegions { - regionIndices = regionPattern.FindAllStringIndex(text, -1) - regions = regionPattern.FindAllStringSubmatch(text, -1) - } - escapeIndices = escapePattern.FindAllStringIndex(text, -1) - - // Because the color pattern detects empty tags, we need to filter them out. - for i := len(colorIndices) - 1; i >= 0; i-- { - if colorIndices[i][1]-colorIndices[i][0] == 2 { - colorIndices = append(colorIndices[:i], colorIndices[i+1:]...) - colors = append(colors[:i], colors[i+1:]...) - } - } - - // Make a (sorted) list of all tags. - allIndices := make([][3]int, 0, len(colorIndices)+len(regionIndices)+len(escapeIndices)) - for indexType, index := range [][][]int{colorIndices, regionIndices, escapeIndices} { - for _, tag := range index { - allIndices = append(allIndices, [3]int{tag[0], tag[1], indexType}) - } - } - sort.Slice(allIndices, func(i int, j int) bool { - return allIndices[i][0] < allIndices[j][0] - }) - - // Remove the tags from the original string. - var from int - buf := make([]byte, 0, len(text)) - for _, indices := range allIndices { - if indices[2] == 2 { // Escape sequences are not simply removed. - buf = append(buf, []byte(text[from:indices[1]-2])...) - buf = append(buf, ']') - from = indices[1] - } else { - buf = append(buf, []byte(text[from:indices[0]])...) - from = indices[1] - } - } - buf = append(buf, text[from:]...) - stripped = string(buf) - - // Get the width of the stripped string. - width = uniseg.StringWidth(stripped) - - return -} - // Print prints text onto the screen into the given box at (x,y,maxWidth,1), // not exceeding that box. "align" is one of AlignLeft, AlignCenter, or // AlignRight. The screen's background color will not be changed. @@ -324,24 +147,26 @@ func printWithStyle(screen tcell.Screen, text string, x, y, skipWidth, maxWidth, if c == "" { break // We don't care about the style at the end. } - runes := []rune(c) width := state.Width() - finalStyle := state.Style() - if maintainBackground { - _, backgroundColor, _ := finalStyle.Decompose() - if backgroundColor == tcell.ColorDefault { - _, _, existingStyle, _ := screen.GetContent(x, y) - _, background, _ := existingStyle.Decompose() - finalStyle = finalStyle.Background(background) + if width > 0 { + finalStyle := state.Style() + if maintainBackground { + _, backgroundColor, _ := finalStyle.Decompose() + if backgroundColor == tcell.ColorDefault { + _, _, existingStyle, _ := screen.GetContent(x, y) + _, background, _ := existingStyle.Decompose() + finalStyle = finalStyle.Background(background) + } } - } - for offset := width - 1; offset >= 0; offset-- { - // To avoid undesired effects, we populate all cells. - if offset == 0 { - screen.SetContent(x+offset, y, runes[0], runes[1:], finalStyle) - } else { - screen.SetContent(x+offset, y, ' ', nil, finalStyle) + for offset := width - 1; offset >= 0; offset-- { + // To avoid undesired effects, we populate all cells. + runes := []rune(c) + if offset == 0 { + screen.SetContent(x+offset, y, runes[0], runes[1:], finalStyle) + } else { + screen.SetContent(x+offset, y, ' ', nil, finalStyle) + } } } @@ -357,138 +182,3 @@ func printWithStyle(screen tcell.Screen, text string, x, y, skipWidth, maxWidth, func PrintSimple(screen tcell.Screen, text string, x, y int) { Print(screen, text, x, y, math.MaxInt32, AlignLeft, Styles.PrimaryTextColor) } - -// TaggedStringWidth returns the width of the given string needed to print it on -// screen. The text may contain style tags which are not counted. -func TaggedStringWidth(text string) (width int) { - var state *stepState - for len(text) > 0 { - _, text, state = step(text, state, stepOptionsStyle) - width += state.Width() - } - return -} - -// WordWrap splits a text such that each resulting line does not exceed the -// given screen width. Split points are determined using the algorithm described -// in [Unicode Standard Annex #14] . -// -// This function considers style tags to have no width. -// -// [Unicode Standard Annex #14]: https://www.unicode.org/reports/tr14/ -func WordWrap(text string, width int) (lines []string) { - if width <= 0 { - return - } - - var ( - state *stepState - lineWidth, lineLength, lastOption, lastOptionWidth int - ) - str := text - for len(str) > 0 { - // Parse the next character. - var c string - c, str, state = step(str, state, stepOptionsStyle) - cWidth := state.Width() - - // Would it exceed the line width? - if lineWidth+cWidth > width { - if lastOptionWidth == 0 { - // No split point so far. Just split at the current position. - lines = append(lines, text[:lineLength]) - text = text[lineLength:] - lineWidth, lineLength, lastOption, lastOptionWidth = 0, 0, 0, 0 - } else { - // Split at the last split point. - lines = append(lines, text[:lastOption]) - text = text[lastOption:] - lineWidth -= lastOptionWidth - lineLength -= lastOption - lastOption, lastOptionWidth = 0, 0 - } - } - - // Move ahead. - lineWidth += cWidth - lineLength += state.GrossLength() - - // Check for split points. - if lineBreak, optional := state.LineBreak(); lineBreak { - if optional { - // Remember this split point. - lastOption = lineLength - lastOptionWidth = lineWidth - } else if str != "" || c != "" && uniseg.HasTrailingLineBreakInString(c) { - // We must split here. - lines = append(lines, strings.TrimRight(text[:lineLength], "\n\r")) - text = text[lineLength:] - lineWidth, lineLength, lastOption, lastOptionWidth = 0, 0, 0, 0 - } - } - } - lines = append(lines, text) - - return -} - -// Escape escapes the given text such that color and/or region tags are not -// recognized and substituted by the print functions of this package. For -// example, to include a tag-like string in a box title or in a TextView: -// -// box.SetTitle(tview.Escape("[squarebrackets]")) -// fmt.Fprint(textView, tview.Escape(`["quoted"]`)) -func Escape(text string) string { - return nonEscapePattern.ReplaceAllString(text, "$1[]") -} - -// iterateString iterates through the given string one printed character at a -// time. For each such character, the callback function is called with the -// Unicode code points of the character (the first rune and any combining runes -// which may be nil if there aren't any), the starting position (in bytes) -// within the original string, its length in bytes, the screen position of the -// character, the screen width of it, and a boundaries value which includes -// word/sentence boundary or line break information (see the -// github.com/rivo/uniseg package, Step() function, for more information). The -// iteration stops if the callback returns true. This function returns true if -// the iteration was stopped before the last character. -func iterateString(text string, callback func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth, boundaries int) bool) bool { - var screenPos, textPos, boundaries int - - state := -1 - for len(text) > 0 { - var cluster string - cluster, text, boundaries, state = uniseg.StepString(text, state) - - width := boundaries >> uniseg.ShiftWidth - runes := []rune(cluster) - var comb []rune - if len(runes) > 1 { - comb = runes[1:] - } - - if callback(runes[0], comb, textPos, len(cluster), screenPos, width, boundaries) { - return true - } - - screenPos += width - textPos += len(cluster) - } - - return false -} - -// stripTags strips style tags from the given string. (Region tags are not -// stripped.) -func stripTags(text string) string { - var ( - str strings.Builder - state *stepState - ) - for len(text) > 0 { - var c string - c, text, state = step(text, state, stepOptionsStyle) - str.WriteString(c) - } - return str.String() -}