aboutsummaryrefslogtreecommitdiff
path: root/ui/messages/tstring
diff options
context:
space:
mode:
Diffstat (limited to 'ui/messages/tstring')
-rw-r--r--ui/messages/tstring/string.go33
1 files changed, 32 insertions, 1 deletions
diff --git a/ui/messages/tstring/string.go b/ui/messages/tstring/string.go
index ad0b2c8..d1ad446 100644
--- a/ui/messages/tstring/string.go
+++ b/ui/messages/tstring/string.go
@@ -19,8 +19,8 @@ package tstring
import (
"strings"
- "maunium.net/go/tcell"
"github.com/mattn/go-runewidth"
+ "maunium.net/go/tcell"
)
type TString []Cell
@@ -49,6 +49,37 @@ func NewStyleTString(str string, style tcell.Style) TString {
return newStr
}
+func (str TString) AppendTString(data TString) TString {
+ return append(str, data...)
+}
+
+func (str TString) Append(data string) TString {
+ newStr := make(TString, len(str)+len(data))
+ copy(newStr, str)
+ for i, char := range data {
+ newStr[i+len(str)] = NewCell(char)
+ }
+ return newStr
+}
+
+func (str TString) AppendColor(data string, color tcell.Color) TString {
+ newStr := make(TString, len(str)+len(data))
+ copy(newStr, str)
+ for i, char := range data {
+ newStr[i+len(str)] = NewColorCell(char, color)
+ }
+ return newStr
+}
+
+func (str TString) AppendStyle(data string, style tcell.Style) TString {
+ newStr := make(TString, len(str)+len(data))
+ copy(newStr, str)
+ for i, char := range data {
+ newStr[i+len(str)] = NewStyleCell(char, style)
+ }
+ return newStr
+}
+
func (str TString) Colorize(from, length int, color tcell.Color) {
for i := from; i < from+length; i++ {
str[i].Style = str[i].Style.Foreground(color)