diff options
| author | Kyren223 <Kyren223@proton.me> | 2024-12-18 17:51:21 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2024-12-18 17:51:21 +0200 |
| commit | 9e3f12d2903d0ad14b86e25eeb7b3f79f3db1df3 (patch) | |
| tree | 90c12cd2de9f3a6d11c88129b151a99f8bce0eb2 /internal/client/ui | |
| parent | 6b13e0184d296273eb6c473e5e065824e6370746 (diff) | |
Implemented support for placeholders to prompt the user to send a
message (only if there is exactly 1 blank line)
Diffstat (limited to 'internal/client/ui')
| -rw-r--r-- | internal/client/ui/viminput/viminput.go | 25 |
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 |
