1
0

action.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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.Current().MoveHoriz(-1)
  16. },
  17. },
  18. Action{
  19. Binding: "right",
  20. Command: "TODO:",
  21. HasArgs: false,
  22. Callback: func(m *Model, args []string) {
  23. m.Current().MoveHoriz(1)
  24. },
  25. },
  26. Action{
  27. Binding: "up",
  28. Command: "TODO:",
  29. HasArgs: false,
  30. Callback: func(m *Model, args []string) {
  31. m.Current().MoveVert(-1)
  32. },
  33. },
  34. Action{
  35. Binding: "down",
  36. Command: "TODO:",
  37. HasArgs: false,
  38. Callback: func(m *Model, args []string) {
  39. m.Current().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.Current().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.Current().AddCursorVert(1)
  56. },
  57. },
  58. Action{
  59. Binding: "esc",
  60. Command: "TODO:",
  61. HasArgs: false,
  62. Callback: func(m *Model, args []string) {
  63. m.Current().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.Current().
  72. for _ = range 4 {
  73. m.Current().Insert(' ')
  74. }
  75. },
  76. },
  77. Action{
  78. Binding: "shift+tab",
  79. Command: "TODO:",
  80. HasArgs: false,
  81. Callback: func(m *Model, args []string) {
  82. // TODO: implement m.Current().
  83. },
  84. },
  85. Action{
  86. Binding: "backspace",
  87. Command: "TODO:",
  88. HasArgs: false,
  89. Callback: func(m *Model, args []string) {
  90. m.Current().Delete()
  91. },
  92. },
  93. Action{
  94. Binding: "enter",
  95. Command: "TODO:",
  96. HasArgs: false,
  97. Callback: func(m *Model, args []string) {
  98. m.Current().Insert('\n')
  99. },
  100. },
  101. Action{
  102. Binding: "ctrl+c",
  103. Command: "q",
  104. HasArgs: false,
  105. Callback: func(m *Model, args []string) {
  106. m.Quit()
  107. },
  108. },
  109. }
  110. }