summaryrefslogtreecommitdiff
path: root/internal/client/ui
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-12-21 19:42:01 +0200
committerKyren223 <Kyren223@proton.me>2024-12-21 19:42:01 +0200
commiteb6156ff10d8ba1bca1b8223ab33bad2eabc4f7a (patch)
tree4c4b88fbf19788749acb45b9c223d358811ce272 /internal/client/ui
parente6237f5b1265f43d25963408ab09689e38050a3e (diff)
Refactored local config and added support for tab in insert mode in
viminput
Diffstat (limited to 'internal/client/ui')
-rw-r--r--internal/client/ui/viminput/viminput.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/client/ui/viminput/viminput.go b/internal/client/ui/viminput/viminput.go
index 5017344..270cb73 100644
--- a/internal/client/ui/viminput/viminput.go
+++ b/internal/client/ui/viminput/viminput.go
@@ -7,6 +7,7 @@ import (
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/lipgloss"
+ "github.com/kyren223/eko/internal/client/config"
"github.com/kyren223/eko/internal/client/ui/colors"
"github.com/kyren223/eko/pkg/assert"
)
@@ -608,6 +609,20 @@ func (m *Model) handleInsertModeKeys(key tea.KeyMsg) {
return
}
+ if key.Type == tea.KeyTab || key.Type == tea.KeyShiftTab {
+ conf := config.Read()
+ var runes []rune
+ if conf.InsertModeTabToSpace {
+ runes = []rune(strings.Repeat(" ", int(conf.InsertModeSpacesPerTab)))
+ } else {
+ runes = []rune{'\t'}
+ }
+ line := m.lines[m.cursorLine]
+ m.lines[m.cursorLine] = slices.Insert(line, m.cursorColumn, runes...)
+ m.SetCursorColumn(m.cursorColumn + len(runes))
+ return
+ }
+
if key.Type == tea.KeyBackspace {
line := m.lines[m.cursorLine]
if m.cursorColumn == 0 && m.cursorLine != 0 {