소스 검색

Fix some issues with new input system

Johan Rong 1 개월 전
부모
커밋
35aa343182
4개의 변경된 파일25개의 추가작업 그리고 36개의 파일을 삭제
  1. 2 1
      .gitignore
  2. 0 5
      internal/buffer/cursor.go
  3. 14 14
      internal/editor/action.go
  4. 9 16
      internal/editor/update.go

+ 2 - 1
.gitignore

@@ -1,3 +1,4 @@
 .direnv
 .nix-go
-build
+build
+.vscode

+ 0 - 5
internal/buffer/cursor.go

@@ -15,11 +15,6 @@ type CursorManager struct {
 	PrimaryIdx int
 }
 
-func (cm *CursorManager) AddCursor(cur Cursor) {
-	cm.Cursors = append(cm.Cursors, cur)
-	cm.DeduplicateAndSort()
-}
-
 func (cm *CursorManager) DeduplicateAndSort() {
 	if len(cm.Cursors) <= 1 {
 		return

+ 14 - 14
internal/editor/action.go

@@ -9,7 +9,7 @@ type Action = struct {
 	Binding  key.Binding
 	Command  string
 	HasArgs  bool
-	Callback func(Model, []string) tea.Cmd
+	Callback func(*Model, []string) tea.Cmd
 }
 
 //type Actionmap = struct {
@@ -24,7 +24,7 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				m.Buffer.MoveHoriz(-1)	
 				return nil
 			},
@@ -35,7 +35,7 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				m.Buffer.MoveHoriz(1)
 				return nil
 			},
@@ -46,7 +46,7 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				m.Buffer.MoveVert(-1)
 				return nil
 			},
@@ -57,8 +57,8 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
-				m.Buffer.MoveVert(-1)
+			Callback: func(m *Model, args []string) tea.Cmd {
+				m.Buffer.MoveVert(1)
 				return nil
 			},
 		},
@@ -68,7 +68,7 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				m.Buffer.AddCursorVert(-1)
 				return nil
 			},
@@ -79,7 +79,7 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				m.Buffer.AddCursorVert(1)
 				return nil
 			},
@@ -90,7 +90,7 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				m.Buffer.ClearCursors()
 				return nil
 			},
@@ -101,7 +101,7 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				//TODO: implement m.Buffer.
 				return nil
 			},
@@ -112,7 +112,7 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				// TODO: implement m.Buffer.
 				return nil
 			},
@@ -123,7 +123,7 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				m.Buffer.Delete()
 				return nil
 			},
@@ -134,7 +134,7 @@ func DefaultActions() []Action {
 			),
 			Command: "TODO:",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				m.Buffer.Insert('\n')
 				return nil
 			},
@@ -145,7 +145,7 @@ func DefaultActions() []Action {
 			),
 			Command: "q",
 			HasArgs: false,
-			Callback: func(m Model, args []string) tea.Cmd {
+			Callback: func(m *Model, args []string) tea.Cmd {
 				return tea.Quit
 			},
 		},

+ 9 - 16
internal/editor/update.go

@@ -1,6 +1,7 @@
 package editor
 
 import (
+	//"fmt"
 	"charm.land/bubbles/v2/key"
 	tea "charm.land/bubbletea/v2"
 )
@@ -21,30 +22,22 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
 	case tea.MouseWheelMsg:
 		return m, nil
 	case tea.KeyPressMsg:
-		found := false
-
 		for i := range m.Actions {
 			action := m.Actions[i]
 
 			if key.Matches(msg, action.Binding) {
-				found = true
-				cmd := action.Callback(m, []string{})
-
-				if cmd != nil {
-					m.Viewport.SetContent(m.renderedContent())
-					return m, cmd
-				}
+				//fmt.Println(msg, action.Binding)
+				cmd := action.Callback(&m, []string{})
 
-				break
+				m.Viewport.SetContent(m.renderedContent())
+				return m, cmd
 			}
 		}
 
-		if !found {
-			key := msg.Key()
-			if key.Text != "" {
-				for _, r := range key.Text {
-					m.Buffer.Insert(r)
-				}
+		key := msg.Key()
+		if key.Text != "" {
+			for _, r := range key.Text {
+				m.Buffer.Insert(r)
 			}
 		}