1
0

action.go 2.0 KB

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