mui 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +163 -0
  3. data/CHANGELOG.md +448 -0
  4. data/README.md +309 -6
  5. data/docs/_config.yml +56 -0
  6. data/docs/configuration.md +301 -0
  7. data/docs/getting-started.md +140 -0
  8. data/docs/index.md +55 -0
  9. data/docs/jobs.md +297 -0
  10. data/docs/keybindings.md +229 -0
  11. data/docs/plugins.md +285 -0
  12. data/docs/syntax-highlighting.md +149 -0
  13. data/exe/mui +1 -2
  14. data/lib/mui/autocmd.rb +66 -0
  15. data/lib/mui/buffer.rb +275 -0
  16. data/lib/mui/buffer_word_cache.rb +131 -0
  17. data/lib/mui/buffer_word_completer.rb +77 -0
  18. data/lib/mui/color_manager.rb +136 -0
  19. data/lib/mui/color_scheme.rb +63 -0
  20. data/lib/mui/command_completer.rb +30 -0
  21. data/lib/mui/command_context.rb +90 -0
  22. data/lib/mui/command_history.rb +89 -0
  23. data/lib/mui/command_line.rb +167 -0
  24. data/lib/mui/command_registry.rb +44 -0
  25. data/lib/mui/completion_renderer.rb +84 -0
  26. data/lib/mui/completion_state.rb +58 -0
  27. data/lib/mui/config.rb +58 -0
  28. data/lib/mui/editor.rb +395 -0
  29. data/lib/mui/error.rb +29 -0
  30. data/lib/mui/file_completer.rb +51 -0
  31. data/lib/mui/floating_window.rb +161 -0
  32. data/lib/mui/handler_result.rb +107 -0
  33. data/lib/mui/highlight.rb +22 -0
  34. data/lib/mui/highlighters/base.rb +23 -0
  35. data/lib/mui/highlighters/search_highlighter.rb +27 -0
  36. data/lib/mui/highlighters/selection_highlighter.rb +48 -0
  37. data/lib/mui/highlighters/syntax_highlighter.rb +107 -0
  38. data/lib/mui/input.rb +17 -0
  39. data/lib/mui/insert_completion_renderer.rb +92 -0
  40. data/lib/mui/insert_completion_state.rb +77 -0
  41. data/lib/mui/job.rb +81 -0
  42. data/lib/mui/job_manager.rb +113 -0
  43. data/lib/mui/key_code.rb +30 -0
  44. data/lib/mui/key_handler/base.rb +187 -0
  45. data/lib/mui/key_handler/command_mode.rb +511 -0
  46. data/lib/mui/key_handler/insert_mode.rb +323 -0
  47. data/lib/mui/key_handler/motions/motion_handler.rb +56 -0
  48. data/lib/mui/key_handler/normal_mode.rb +552 -0
  49. data/lib/mui/key_handler/operators/base_operator.rb +134 -0
  50. data/lib/mui/key_handler/operators/change_operator.rb +179 -0
  51. data/lib/mui/key_handler/operators/delete_operator.rb +176 -0
  52. data/lib/mui/key_handler/operators/paste_operator.rb +119 -0
  53. data/lib/mui/key_handler/operators/yank_operator.rb +127 -0
  54. data/lib/mui/key_handler/search_mode.rb +191 -0
  55. data/lib/mui/key_handler/visual_line_mode.rb +20 -0
  56. data/lib/mui/key_handler/visual_mode.rb +402 -0
  57. data/lib/mui/key_handler/window_command.rb +112 -0
  58. data/lib/mui/key_handler.rb +16 -0
  59. data/lib/mui/key_notation_parser.rb +152 -0
  60. data/lib/mui/key_sequence.rb +67 -0
  61. data/lib/mui/key_sequence_buffer.rb +85 -0
  62. data/lib/mui/key_sequence_handler.rb +163 -0
  63. data/lib/mui/key_sequence_matcher.rb +79 -0
  64. data/lib/mui/layout/calculator.rb +15 -0
  65. data/lib/mui/layout/leaf_node.rb +33 -0
  66. data/lib/mui/layout/node.rb +29 -0
  67. data/lib/mui/layout/split_node.rb +132 -0
  68. data/lib/mui/line_renderer.rb +173 -0
  69. data/lib/mui/mode.rb +13 -0
  70. data/lib/mui/mode_manager.rb +186 -0
  71. data/lib/mui/motion.rb +139 -0
  72. data/lib/mui/plugin.rb +35 -0
  73. data/lib/mui/plugin_manager.rb +106 -0
  74. data/lib/mui/register.rb +110 -0
  75. data/lib/mui/screen.rb +103 -0
  76. data/lib/mui/search_completer.rb +50 -0
  77. data/lib/mui/search_input.rb +40 -0
  78. data/lib/mui/search_state.rb +121 -0
  79. data/lib/mui/selection.rb +55 -0
  80. data/lib/mui/status_line_renderer.rb +40 -0
  81. data/lib/mui/syntax/language_detector.rb +106 -0
  82. data/lib/mui/syntax/lexer_base.rb +106 -0
  83. data/lib/mui/syntax/lexers/c_lexer.rb +127 -0
  84. data/lib/mui/syntax/lexers/css_lexer.rb +121 -0
  85. data/lib/mui/syntax/lexers/go_lexer.rb +205 -0
  86. data/lib/mui/syntax/lexers/html_lexer.rb +118 -0
  87. data/lib/mui/syntax/lexers/javascript_lexer.rb +197 -0
  88. data/lib/mui/syntax/lexers/markdown_lexer.rb +210 -0
  89. data/lib/mui/syntax/lexers/ruby_lexer.rb +114 -0
  90. data/lib/mui/syntax/lexers/rust_lexer.rb +148 -0
  91. data/lib/mui/syntax/lexers/typescript_lexer.rb +203 -0
  92. data/lib/mui/syntax/token.rb +42 -0
  93. data/lib/mui/syntax/token_cache.rb +91 -0
  94. data/lib/mui/tab_bar_renderer.rb +87 -0
  95. data/lib/mui/tab_manager.rb +96 -0
  96. data/lib/mui/tab_page.rb +35 -0
  97. data/lib/mui/terminal_adapter/base.rb +92 -0
  98. data/lib/mui/terminal_adapter/curses.rb +164 -0
  99. data/lib/mui/terminal_adapter.rb +4 -0
  100. data/lib/mui/themes/default.rb +315 -0
  101. data/lib/mui/undo_manager.rb +83 -0
  102. data/lib/mui/undoable_action.rb +175 -0
  103. data/lib/mui/unicode_width.rb +100 -0
  104. data/lib/mui/version.rb +1 -1
  105. data/lib/mui/window.rb +201 -0
  106. data/lib/mui/window_manager.rb +256 -0
  107. data/lib/mui/wrap_cache.rb +40 -0
  108. data/lib/mui/wrap_helper.rb +84 -0
  109. data/lib/mui.rb +171 -2
  110. metadata +123 -5
metadata CHANGED
@@ -1,14 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - S-H-GAMELINKS
8
8
  bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
- dependencies: []
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: curses
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
12
26
  description: Mui (無為) is a Vim-like TUI text editor written in Ruby. Inspired by the
13
27
  concept of 'wu wei' (effortless action), it aims to be a minimal yet extensible
14
28
  editor.
@@ -19,22 +33,126 @@ executables:
19
33
  extensions: []
20
34
  extra_rdoc_files: []
21
35
  files:
36
+ - ".rubocop_todo.yml"
22
37
  - CHANGELOG.md
23
38
  - LICENSE.txt
24
39
  - README.md
25
40
  - Rakefile
41
+ - docs/_config.yml
42
+ - docs/configuration.md
43
+ - docs/getting-started.md
44
+ - docs/index.md
45
+ - docs/jobs.md
46
+ - docs/keybindings.md
47
+ - docs/plugins.md
48
+ - docs/syntax-highlighting.md
26
49
  - exe/mui
27
50
  - lib/mui.rb
51
+ - lib/mui/autocmd.rb
52
+ - lib/mui/buffer.rb
53
+ - lib/mui/buffer_word_cache.rb
54
+ - lib/mui/buffer_word_completer.rb
55
+ - lib/mui/color_manager.rb
56
+ - lib/mui/color_scheme.rb
57
+ - lib/mui/command_completer.rb
58
+ - lib/mui/command_context.rb
59
+ - lib/mui/command_history.rb
60
+ - lib/mui/command_line.rb
61
+ - lib/mui/command_registry.rb
62
+ - lib/mui/completion_renderer.rb
63
+ - lib/mui/completion_state.rb
64
+ - lib/mui/config.rb
65
+ - lib/mui/editor.rb
66
+ - lib/mui/error.rb
67
+ - lib/mui/file_completer.rb
68
+ - lib/mui/floating_window.rb
69
+ - lib/mui/handler_result.rb
70
+ - lib/mui/highlight.rb
71
+ - lib/mui/highlighters/base.rb
72
+ - lib/mui/highlighters/search_highlighter.rb
73
+ - lib/mui/highlighters/selection_highlighter.rb
74
+ - lib/mui/highlighters/syntax_highlighter.rb
75
+ - lib/mui/input.rb
76
+ - lib/mui/insert_completion_renderer.rb
77
+ - lib/mui/insert_completion_state.rb
78
+ - lib/mui/job.rb
79
+ - lib/mui/job_manager.rb
80
+ - lib/mui/key_code.rb
81
+ - lib/mui/key_handler.rb
82
+ - lib/mui/key_handler/base.rb
83
+ - lib/mui/key_handler/command_mode.rb
84
+ - lib/mui/key_handler/insert_mode.rb
85
+ - lib/mui/key_handler/motions/motion_handler.rb
86
+ - lib/mui/key_handler/normal_mode.rb
87
+ - lib/mui/key_handler/operators/base_operator.rb
88
+ - lib/mui/key_handler/operators/change_operator.rb
89
+ - lib/mui/key_handler/operators/delete_operator.rb
90
+ - lib/mui/key_handler/operators/paste_operator.rb
91
+ - lib/mui/key_handler/operators/yank_operator.rb
92
+ - lib/mui/key_handler/search_mode.rb
93
+ - lib/mui/key_handler/visual_line_mode.rb
94
+ - lib/mui/key_handler/visual_mode.rb
95
+ - lib/mui/key_handler/window_command.rb
96
+ - lib/mui/key_notation_parser.rb
97
+ - lib/mui/key_sequence.rb
98
+ - lib/mui/key_sequence_buffer.rb
99
+ - lib/mui/key_sequence_handler.rb
100
+ - lib/mui/key_sequence_matcher.rb
101
+ - lib/mui/layout/calculator.rb
102
+ - lib/mui/layout/leaf_node.rb
103
+ - lib/mui/layout/node.rb
104
+ - lib/mui/layout/split_node.rb
105
+ - lib/mui/line_renderer.rb
106
+ - lib/mui/mode.rb
107
+ - lib/mui/mode_manager.rb
108
+ - lib/mui/motion.rb
109
+ - lib/mui/plugin.rb
110
+ - lib/mui/plugin_manager.rb
111
+ - lib/mui/register.rb
112
+ - lib/mui/screen.rb
113
+ - lib/mui/search_completer.rb
114
+ - lib/mui/search_input.rb
115
+ - lib/mui/search_state.rb
116
+ - lib/mui/selection.rb
117
+ - lib/mui/status_line_renderer.rb
118
+ - lib/mui/syntax/language_detector.rb
119
+ - lib/mui/syntax/lexer_base.rb
120
+ - lib/mui/syntax/lexers/c_lexer.rb
121
+ - lib/mui/syntax/lexers/css_lexer.rb
122
+ - lib/mui/syntax/lexers/go_lexer.rb
123
+ - lib/mui/syntax/lexers/html_lexer.rb
124
+ - lib/mui/syntax/lexers/javascript_lexer.rb
125
+ - lib/mui/syntax/lexers/markdown_lexer.rb
126
+ - lib/mui/syntax/lexers/ruby_lexer.rb
127
+ - lib/mui/syntax/lexers/rust_lexer.rb
128
+ - lib/mui/syntax/lexers/typescript_lexer.rb
129
+ - lib/mui/syntax/token.rb
130
+ - lib/mui/syntax/token_cache.rb
131
+ - lib/mui/tab_bar_renderer.rb
132
+ - lib/mui/tab_manager.rb
133
+ - lib/mui/tab_page.rb
134
+ - lib/mui/terminal_adapter.rb
135
+ - lib/mui/terminal_adapter/base.rb
136
+ - lib/mui/terminal_adapter/curses.rb
137
+ - lib/mui/themes/default.rb
138
+ - lib/mui/undo_manager.rb
139
+ - lib/mui/undoable_action.rb
140
+ - lib/mui/unicode_width.rb
28
141
  - lib/mui/version.rb
142
+ - lib/mui/window.rb
143
+ - lib/mui/window_manager.rb
144
+ - lib/mui/wrap_cache.rb
145
+ - lib/mui/wrap_helper.rb
29
146
  - sig/mui.rbs
30
- homepage: https://github.com/S-H-GAMELINKS/mui
147
+ homepage: https://s-h-gamelinks.github.io/mui/
31
148
  licenses:
32
149
  - MIT
33
150
  metadata:
34
151
  allowed_push_host: https://rubygems.org
35
- homepage_uri: https://github.com/S-H-GAMELINKS/mui
152
+ homepage_uri: https://s-h-gamelinks.github.io/mui/
36
153
  source_code_uri: https://github.com/S-H-GAMELINKS/mui
37
154
  changelog_uri: https://github.com/S-H-GAMELINKS/mui/blob/main/CHANGELOG.md
155
+ rubygems_mfa_required: 'true'
38
156
  rdoc_options: []
39
157
  require_paths:
40
158
  - lib
@@ -49,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
49
167
  - !ruby/object:Gem::Version
50
168
  version: '0'
51
169
  requirements: []
52
- rubygems_version: 4.0.0.beta2
170
+ rubygems_version: 3.6.9
53
171
  specification_version: 4
54
172
  summary: Mui - A Vim-like TUI editor written in Ruby
55
173
  test_files: []