diff options
| author | Kyren223 <Kyren223@proton.me> | 2024-12-21 19:42:01 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2024-12-21 19:42:01 +0200 |
| commit | eb6156ff10d8ba1bca1b8223ab33bad2eabc4f7a (patch) | |
| tree | 4c4b88fbf19788749acb45b9c223d358811ce272 /internal/client/ui/viminput/viminput.go | |
| parent | e6237f5b1265f43d25963408ab09689e38050a3e (diff) | |
Refactored local config and added support for tab in insert mode in
viminput
Diffstat (limited to 'internal/client/ui/viminput/viminput.go')
| -rw-r--r-- | internal/client/ui/viminput/viminput.go | 15 |
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 { |
