summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-12-18 17:51:21 +0200
committerKyren223 <Kyren223@proton.me>2024-12-18 17:51:21 +0200
commit9e3f12d2903d0ad14b86e25eeb7b3f79f3db1df3 (patch)
tree90c12cd2de9f3a6d11c88129b151a99f8bce0eb2
parent6b13e0184d296273eb6c473e5e065824e6370746 (diff)
Implemented support for placeholders to prompt the user to send a
message (only if there is exactly 1 blank line)
-rw-r--r--internal/client/ui/viminput/viminput.go25
1 files changed, 22 insertions, 3 deletions
diff --git a/internal/client/ui/viminput/viminput.go b/internal/client/ui/viminput/viminput.go
index ec391b7..6044ae7 100644
--- a/internal/client/ui/viminput/viminput.go
+++ b/internal/client/ui/viminput/viminput.go
@@ -123,13 +123,16 @@ func (m Model) View() string {
lineDecoration := m.LineDecoration(i, m)
builder.WriteString(lineDecoration)
- if m.cursorLine != i {
- builder.WriteString(string(line))
- } else if len(m.lines) == 1 && len(line) == 0 && m.Placeholder != "" {
+ if len(m.lines) == 1 && len(line) == 0 && m.Placeholder != "" {
cursorChar := m.PlaceholderStyle.Render(m.Placeholder[0:1])
rest := m.PlaceholderStyle.Render(m.Placeholder[1:])
builder.WriteString(CursorStyle.Render(cursorChar))
builder.WriteString(rest)
+ continue
+ }
+
+ if m.cursorLine != i {
+ builder.WriteString(string(line))
} else if m.cursorColumn == len(line) {
builder.WriteString(string(line))
builder.WriteString(CursorStyle.Render(" "))
@@ -152,6 +155,14 @@ func (m Model) View() string {
lineDecoration := m.LineDecoration(i, m)
builder.WriteString(lineDecoration)
+ if len(m.lines) == 1 && len(line) == 0 && m.Placeholder != "" {
+ cursorChar := m.PlaceholderStyle.Render(m.Placeholder[0:1])
+ rest := m.PlaceholderStyle.Render(m.Placeholder[1:])
+ builder.WriteString(CursorStyle.Render(cursorChar))
+ builder.WriteString(rest)
+ continue
+ }
+
before := isAnchorBefore && m.vline < i && i < m.cursorLine
after := !isAnchorBefore && m.cursorLine < i && i < m.vline
isInBetween := before || after
@@ -252,6 +263,14 @@ func (m Model) View() string {
lineDecoration := m.LineDecoration(i, m)
builder.WriteString(lineDecoration)
+ if len(m.lines) == 1 && len(line) == 0 && m.Placeholder != "" {
+ cursorChar := m.PlaceholderStyle.Render(m.Placeholder[0:1])
+ rest := m.PlaceholderStyle.Render(m.Placeholder[1:])
+ builder.WriteString(CursorStyle.Render(cursorChar))
+ builder.WriteString(rest)
+ continue
+ }
+
before := isAnchorBefore && m.vline <= i && i < m.cursorLine
after := !isAnchorBefore && m.cursorLine < i && i <= m.vline
isInBetween := before || after