1
0

action.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package editor
  2. import (
  3. //"charm.land/bubbles/v2/key"
  4. //tea "charm.land/bubbletea/v2"
  5. )
  6. type Action = struct {
  7. Binding string
  8. Command string
  9. HasArgs bool
  10. Callback func(*Model, []string)
  11. }
  12. func DefaultActions() []Action {
  13. return []Action{
  14. Action{
  15. Binding: "left",
  16. Command: "TODO:",
  17. HasArgs: false,
  18. Callback: func(m *Model, args []string) {
  19. m.Buffer.MoveHoriz(-1)
  20. },
  21. },
  22. Action{
  23. Binding: "right",
  24. Command: "TODO:",
  25. HasArgs: false,
  26. Callback: func(m *Model, args []string) {
  27. m.Buffer.MoveHoriz(1)
  28. },
  29. },
  30. Action{
  31. Binding: "up",
  32. Command: "TODO:",
  33. HasArgs: false,
  34. Callback: func(m *Model, args []string) {
  35. m.Buffer.MoveVert(-1)
  36. },
  37. },
  38. Action{
  39. Binding: "down",
  40. Command: "TODO:",
  41. HasArgs: false,
  42. Callback: func(m *Model, args []string) {
  43. m.Buffer.MoveVert(1)
  44. },
  45. },
  46. Action{
  47. Binding: "shift+up",
  48. Command: "TODO:",
  49. HasArgs: false,
  50. Callback: func(m *Model, args []string) {
  51. m.Buffer.AddCursorVert(-1)
  52. },
  53. },
  54. Action{
  55. Binding: "shift+down",
  56. Command: "TODO:",
  57. HasArgs: false,
  58. Callback: func(m *Model, args []string) {
  59. m.Buffer.AddCursorVert(1)
  60. },
  61. },
  62. Action{
  63. Binding: "esc",
  64. Command: "TODO:",
  65. HasArgs: false,
  66. Callback: func(m *Model, args []string) {
  67. m.Buffer.ClearCursors()
  68. },
  69. },
  70. Action{
  71. Binding: "tab",
  72. Command: "TODO:",
  73. HasArgs: false,
  74. Callback: func(m *Model, args []string) {
  75. //TODO: implement m.Buffer.
  76. },
  77. },
  78. Action{
  79. Binding: "shift+tab",
  80. Command: "TODO:",
  81. HasArgs: false,
  82. Callback: func(m *Model, args []string) {
  83. // TODO: implement m.Buffer.
  84. },
  85. },
  86. Action{
  87. Binding: "backspace",
  88. Command: "TODO:",
  89. HasArgs: false,
  90. Callback: func(m *Model, args []string) {
  91. m.Buffer.Delete()
  92. },
  93. },
  94. Action{
  95. Binding: "enter",
  96. Command: "TODO:",
  97. HasArgs: false,
  98. Callback: func(m *Model, args []string) {
  99. m.Buffer.Insert('\n')
  100. },
  101. },
  102. Action{
  103. Binding: "ctrl+c",
  104. Command: "q",
  105. HasArgs: false,
  106. Callback: func(m *Model, args []string) {
  107. m.Quit()
  108. },
  109. },
  110. }
  111. }