fatty 0.99.0 → 0.99.3

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 (120) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.org +11 -29
  3. data/README.md +2207 -18
  4. data/README.org +2066 -104
  5. data/exe/fatty +236 -93
  6. data/help/help.md +233 -0
  7. data/lib/fatty/action.rb +3 -7
  8. data/lib/fatty/actionable.rb +2 -0
  9. data/lib/fatty/alert.rb +65 -39
  10. data/lib/fatty/ansi/renderer.rb +26 -6
  11. data/lib/fatty/ansi.rb +1 -0
  12. data/lib/fatty/api/alert.rb +15 -0
  13. data/lib/fatty/api/choose.rb +145 -0
  14. data/lib/fatty/api/environment.rb +12 -0
  15. data/lib/fatty/api/keytest.rb +11 -0
  16. data/lib/fatty/api/menu.rb +104 -0
  17. data/lib/fatty/api/output.rb +55 -0
  18. data/lib/fatty/api/progress.rb +24 -0
  19. data/lib/fatty/api/prompt.rb +77 -0
  20. data/lib/fatty/api/status.rb +55 -0
  21. data/lib/fatty/api.rb +38 -0
  22. data/lib/fatty/callback_environment.rb +74 -0
  23. data/lib/fatty/colors/color.rb +366 -232
  24. data/lib/fatty/colors/pairs.rb +2 -0
  25. data/lib/fatty/command.rb +78 -0
  26. data/lib/fatty/config.rb +227 -39
  27. data/lib/fatty/config_files/config.yml +4 -12
  28. data/lib/fatty/config_files/keydefs.yml +13 -23
  29. data/lib/fatty/config_files/themes/capuchin_monk.yml +140 -0
  30. data/lib/fatty/config_files/themes/catppuccin_latte.yml +140 -0
  31. data/lib/fatty/config_files/themes/catppuccin_mocha.yml +140 -0
  32. data/lib/fatty/config_files/themes/cyberpunk.yml +141 -0
  33. data/lib/fatty/config_files/themes/dracula.yml +140 -0
  34. data/lib/fatty/config_files/themes/everforest_dark.yml +140 -0
  35. data/lib/fatty/config_files/themes/gruvbox_dark.yml +140 -0
  36. data/lib/fatty/config_files/themes/gruvbox_light.yml +140 -0
  37. data/lib/fatty/config_files/themes/mono.yml +119 -47
  38. data/lib/fatty/config_files/themes/monokai.yml +140 -0
  39. data/lib/fatty/config_files/themes/nordic.yml +1 -0
  40. data/lib/fatty/config_files/themes/onedark.yml +140 -0
  41. data/lib/fatty/config_files/themes/solarized_dark.yml +1 -0
  42. data/lib/fatty/config_files/themes/solarized_light.yml +140 -0
  43. data/lib/fatty/config_files/themes/terminal.yml +67 -0
  44. data/lib/fatty/config_files/themes/tokyo_night.yml +140 -0
  45. data/lib/fatty/config_files/themes/wordperfect.yml +80 -9
  46. data/lib/fatty/core_ext/hash.rb +19 -0
  47. data/lib/fatty/core_ext/string.rb +19 -12
  48. data/lib/fatty/core_ext.rb +1 -0
  49. data/lib/fatty/curses/context.rb +86 -84
  50. data/lib/fatty/curses/event_source.rb +128 -40
  51. data/lib/fatty/curses/key_decoder.rb +77 -11
  52. data/lib/fatty/env.rb +21 -20
  53. data/lib/fatty/help.rb +1 -29
  54. data/lib/fatty/history/entry.rb +2 -0
  55. data/lib/fatty/history.rb +17 -14
  56. data/lib/fatty/input_buffer.rb +71 -47
  57. data/lib/fatty/input_field.rb +216 -149
  58. data/lib/fatty/key_event.rb +67 -66
  59. data/lib/fatty/key_map.rb +54 -16
  60. data/lib/fatty/keymaps/emacs.rb +40 -6
  61. data/lib/fatty/log_formats/json.rb +2 -0
  62. data/lib/fatty/log_formats/text.rb +2 -0
  63. data/lib/fatty/logger.rb +7 -2
  64. data/lib/fatty/markdown/ansi_renderer.rb +75 -6
  65. data/lib/fatty/markdown/render.rb +2 -3
  66. data/lib/fatty/mouse_event.rb +142 -2
  67. data/lib/fatty/output_buffer.rb +2 -0
  68. data/lib/fatty/pager.rb +158 -47
  69. data/lib/fatty/progress.rb +417 -0
  70. data/lib/fatty/renderer/curses.rb +340 -184
  71. data/lib/fatty/renderer/truecolor.rb +266 -163
  72. data/lib/fatty/renderer.rb +115 -97
  73. data/lib/fatty/screen.rb +2 -0
  74. data/lib/fatty/session/alert_session.rb +39 -21
  75. data/lib/fatty/session/isearch_session.rb +92 -38
  76. data/lib/fatty/session/keytest_session.rb +105 -85
  77. data/lib/fatty/session/modal_session.rb +38 -1
  78. data/lib/fatty/session/output_session.rb +472 -21
  79. data/lib/fatty/session/popup_session.rb +251 -134
  80. data/lib/fatty/session/prompt_session.rb +68 -26
  81. data/lib/fatty/session/search_session.rb +79 -31
  82. data/lib/fatty/session/shell_session.rb +383 -368
  83. data/lib/fatty/session/status_session.rb +167 -0
  84. data/lib/fatty/session.rb +95 -95
  85. data/lib/fatty/terminal/popup_owner.rb +14 -11
  86. data/lib/fatty/terminal.rb +515 -813
  87. data/lib/fatty/themes/loader.rb +4 -2
  88. data/lib/fatty/themes/manager.rb +4 -0
  89. data/lib/fatty/themes/registry.rb +2 -0
  90. data/lib/fatty/themes/resolver.rb +175 -162
  91. data/lib/fatty/version.rb +1 -1
  92. data/lib/fatty/viewport.rb +8 -1
  93. data/lib/fatty.rb +35 -7
  94. metadata +42 -40
  95. data/.envrc +0 -2
  96. data/.simplecov +0 -23
  97. data/.yardopts +0 -4
  98. data/CHANGELOG.md +0 -34
  99. data/Rakefile +0 -15
  100. data/TODO.org +0 -163
  101. data/examples/markdown/native-markdown.md +0 -370
  102. data/examples/markdown/ox-gfm-markdown.md +0 -373
  103. data/examples/markdown/ox-gfm-markdown.org +0 -376
  104. data/fatty.gemspec +0 -42
  105. data/lib/fatty/accept_env.rb +0 -32
  106. data/lib/fatty/config_files/help.md +0 -120
  107. data/lib/fatty/config_files/help.org +0 -124
  108. data/lib/fatty/config_files/themes/wordperfect_light.yml +0 -77
  109. data/lib/fatty/menu_env.rb +0 -22
  110. data/lib/fatty/session/input_session.rb +0 -99
  111. data/lib/fatty/sessions.rb +0 -14
  112. data/lib/fatty/terminal/progress.rb +0 -374
  113. data/lib/fatty/view/alert_view.rb +0 -14
  114. data/lib/fatty/view/cursor_view.rb +0 -18
  115. data/lib/fatty/view/input_view.rb +0 -9
  116. data/lib/fatty/view/output_view.rb +0 -9
  117. data/lib/fatty/view/status_view.rb +0 -14
  118. data/lib/fatty/view.rb +0 -33
  119. data/lib/fatty/views.rb +0 -9
  120. data/sig/fatty.rbs +0 -4
@@ -0,0 +1,140 @@
1
+ name: gruvbox_dark
2
+ inherit: null
3
+ markdown_code_theme: gruvbox_dark
4
+
5
+ output:
6
+ fg: "#ebdbb2"
7
+ bg: "#282828"
8
+
9
+ input:
10
+ fg: "#fbf1c7"
11
+ bg: "#3c3836"
12
+ attrs: [bold]
13
+
14
+ input_suggestion:
15
+ fg: "#928374"
16
+ bg: "#3c3836"
17
+ attrs: [dim]
18
+
19
+ cursor:
20
+ fg: "#282828"
21
+ bg: "#fabd2f"
22
+
23
+ region:
24
+ fg: "#282828"
25
+ bg: "#fabd2f"
26
+
27
+ good:
28
+ fg: "#b8bb26"
29
+ bg: "#282828"
30
+
31
+ info:
32
+ fg: "#ebdbb2"
33
+ bg: "#282828"
34
+
35
+ warn:
36
+ fg: "#282828"
37
+ bg: "#fabd2f"
38
+
39
+ error:
40
+ fg: "#fbf1c7"
41
+ bg: "#cc241d"
42
+
43
+ pager_status:
44
+ fg: "#282828"
45
+ bg: "#b8bb26"
46
+
47
+ search_input:
48
+ fg: "#282828"
49
+ bg: "#83a598"
50
+
51
+ match_current:
52
+ fg: "#282828"
53
+ bg: "#fabd2f"
54
+
55
+ match_other:
56
+ fg: "#282828"
57
+ bg: "#a89984"
58
+
59
+ popup:
60
+ fg: "#ebdbb2"
61
+ bg: "#3c3836"
62
+
63
+ popup_input:
64
+ fg: "#fbf1c7"
65
+ bg: "#504945"
66
+
67
+ popup_counts:
68
+ fg: "#282828"
69
+ bg: "#ebdbb2"
70
+
71
+ popup_selection:
72
+ fg: "#282828"
73
+ bg: "#fabd2f"
74
+
75
+ popup_frame:
76
+ fg: "#83a598"
77
+ bg: "#3c3836"
78
+ border: single
79
+ corners: rounded
80
+
81
+ markdown_h1:
82
+ fg: "#fabd2f"
83
+ bg: "#282828"
84
+ attrs: [bold]
85
+
86
+ markdown_h2:
87
+ fg: "#83a598"
88
+ bg: "#282828"
89
+ attrs: [bold]
90
+
91
+ markdown_h3:
92
+ fg: "#b8bb26"
93
+ bg: "#282828"
94
+ attrs: [bold]
95
+
96
+ markdown_code:
97
+ fg: "#b8bb26"
98
+ bg: "#3c3836"
99
+
100
+ markdown_code_gutter:
101
+ fg: "#928374"
102
+ bg: "#3c3836"
103
+ attrs: [dim]
104
+
105
+ markdown_strong:
106
+ fg: "#fbf1c7"
107
+ bg: "#282828"
108
+ attrs: [bold]
109
+
110
+ markdown_emphasis:
111
+ fg: "#ebdbb2"
112
+ bg: "#282828"
113
+ attrs: [italic]
114
+
115
+ markdown_link:
116
+ fg: "#83a598"
117
+ bg: "#282828"
118
+ attrs: [underline]
119
+
120
+ markdown_url:
121
+ fg: "#8ec07c"
122
+ bg: "#282828"
123
+
124
+ markdown_quote_gutter:
125
+ fg: "#928374"
126
+ bg: "#282828"
127
+
128
+ markdown_highlight:
129
+ fg: "#282828"
130
+ bg: "#fabd2f"
131
+
132
+ markdown_table_header:
133
+ fg: "#fbf1c7"
134
+ bg: "#3c3836"
135
+ attrs: [bold]
136
+
137
+ markdown_hrule:
138
+ fg: "#665c54"
139
+ bg: "#282828"
140
+ attrs: [dim]
@@ -0,0 +1,140 @@
1
+ name: gruvbox_light
2
+ inherit: null
3
+ markdown_code_theme: gruvbox_light
4
+
5
+ output:
6
+ fg: "#3c3836"
7
+ bg: "#fbf1c7"
8
+
9
+ input:
10
+ fg: "#282828"
11
+ bg: "#ebdbb2"
12
+ attrs: [bold]
13
+
14
+ input_suggestion:
15
+ fg: "#928374"
16
+ bg: "#ebdbb2"
17
+ attrs: [dim]
18
+
19
+ cursor:
20
+ fg: "#fbf1c7"
21
+ bg: "#af3a03"
22
+
23
+ region:
24
+ fg: "#fbf1c7"
25
+ bg: "#af3a03"
26
+
27
+ good:
28
+ fg: "#79740e"
29
+ bg: "#fbf1c7"
30
+
31
+ info:
32
+ fg: "#3c3836"
33
+ bg: "#fbf1c7"
34
+
35
+ warn:
36
+ fg: "#282828"
37
+ bg: "#d79921"
38
+
39
+ error:
40
+ fg: "#fbf1c7"
41
+ bg: "#cc241d"
42
+
43
+ pager_status:
44
+ fg: "#fbf1c7"
45
+ bg: "#79740e"
46
+
47
+ search_input:
48
+ fg: "#fbf1c7"
49
+ bg: "#076678"
50
+
51
+ match_current:
52
+ fg: "#282828"
53
+ bg: "#d79921"
54
+
55
+ match_other:
56
+ fg: "#282828"
57
+ bg: "#bdae93"
58
+
59
+ popup:
60
+ fg: "#3c3836"
61
+ bg: "#ebdbb2"
62
+
63
+ popup_input:
64
+ fg: "#282828"
65
+ bg: "#fbf1c7"
66
+
67
+ popup_counts:
68
+ fg: "#fbf1c7"
69
+ bg: "#665c54"
70
+
71
+ popup_selection:
72
+ fg: "#fbf1c7"
73
+ bg: "#af3a03"
74
+
75
+ popup_frame:
76
+ fg: "#076678"
77
+ bg: "#ebdbb2"
78
+ border: single
79
+ corners: rounded
80
+
81
+ markdown_h1:
82
+ fg: "#af3a03"
83
+ bg: "#fbf1c7"
84
+ attrs: [bold]
85
+
86
+ markdown_h2:
87
+ fg: "#076678"
88
+ bg: "#fbf1c7"
89
+ attrs: [bold]
90
+
91
+ markdown_h3:
92
+ fg: "#79740e"
93
+ bg: "#fbf1c7"
94
+ attrs: [bold]
95
+
96
+ markdown_code:
97
+ fg: "#79740e"
98
+ bg: "#ebdbb2"
99
+
100
+ markdown_code_gutter:
101
+ fg: "#928374"
102
+ bg: "#ebdbb2"
103
+ attrs: [dim]
104
+
105
+ markdown_strong:
106
+ fg: "#282828"
107
+ bg: "#fbf1c7"
108
+ attrs: [bold]
109
+
110
+ markdown_emphasis:
111
+ fg: "#3c3836"
112
+ bg: "#fbf1c7"
113
+ attrs: [italic]
114
+
115
+ markdown_link:
116
+ fg: "#076678"
117
+ bg: "#fbf1c7"
118
+ attrs: [underline]
119
+
120
+ markdown_url:
121
+ fg: "#427b58"
122
+ bg: "#fbf1c7"
123
+
124
+ markdown_quote_gutter:
125
+ fg: "#928374"
126
+ bg: "#fbf1c7"
127
+
128
+ markdown_highlight:
129
+ fg: "#282828"
130
+ bg: "#d79921"
131
+
132
+ markdown_table_header:
133
+ fg: "#282828"
134
+ bg: "#ebdbb2"
135
+ attrs: [bold]
136
+
137
+ markdown_hrule:
138
+ fg: "#bdae93"
139
+ bg: "#fbf1c7"
140
+ attrs: [dim]
@@ -1,76 +1,148 @@
1
1
  name: mono
2
2
  inherit: null
3
+ markdown_code_theme: github_dark
3
4
 
4
5
  output:
5
- fg: black
6
- bg: white
6
+ fg: "#d7d7d7"
7
+ bg: "#000000"
7
8
 
8
9
  input:
9
- fg: white
10
- bg: black
10
+ fg: "#ffffff"
11
+ bg: "#262626"
12
+ attrs: [bold]
11
13
 
12
14
  input_suggestion:
13
- fg: gray
14
- bg: white
15
+ fg: "#808080"
16
+ bg: "#262626"
17
+ attrs: [dim]
15
18
 
16
19
  cursor:
17
- fg: black
18
- bg: white
20
+ fg: "#000000"
21
+ bg: "#ffffff"
19
22
 
20
23
  region:
21
- fg: black
22
- bg: white
23
-
24
- match_current:
25
- fg: black
26
- bg: yellow
27
-
28
- match_other:
29
- fg: black
30
- bg: lightgray
31
-
32
- search:
33
- fg: black
34
- bg: cyan
35
-
36
- pager_status:
37
- fg: black
38
- bg: white
24
+ fg: "#000000"
25
+ bg: "#d7d7d7"
39
26
 
40
27
  good:
41
- fg: "green"
42
- bg: "white"
28
+ fg: "#ffffff"
29
+ bg: "#000000"
30
+ attrs: [bold]
43
31
 
44
32
  info:
45
- fg: black
46
- bg: white
33
+ fg: "#d7d7d7"
34
+ bg: "#000000"
47
35
 
48
36
  warn:
49
- fg: default
50
- bg: default
37
+ fg: "#000000"
38
+ bg: "#d7d7d7"
39
+ attrs: [bold]
51
40
 
52
41
  error:
53
- fg: default
54
- bg: default
42
+ fg: "#ffffff"
43
+ bg: "#5f5f5f"
44
+ attrs: [bold]
55
45
 
56
- popup:
57
- fg: black
58
- bg: white
46
+ pager_status:
47
+ fg: "#000000"
48
+ bg: "#d7d7d7"
49
+ attrs: [bold]
59
50
 
60
- popup_selection:
61
- fg: white
62
- bg: black
51
+ search_input:
52
+ fg: "#000000"
53
+ bg: "#ffffff"
54
+
55
+ match_current:
56
+ fg: "#000000"
57
+ bg: "#ffffff"
58
+ attrs: [bold]
59
+
60
+ match_other:
61
+ fg: "#ffffff"
62
+ bg: "#5f5f5f"
63
+
64
+ popup:
65
+ fg: "#d7d7d7"
66
+ bg: "#262626"
63
67
 
64
68
  popup_input:
65
- fg: white
66
- bg: black
69
+ fg: "#ffffff"
70
+ bg: "#000000"
71
+ attrs: [bold]
67
72
 
68
73
  popup_counts:
69
- fg: white
70
- bg: gray
74
+ fg: "#000000"
75
+ bg: "#d7d7d7"
76
+ attrs: [bold]
77
+
78
+ popup_selection:
79
+ fg: "#000000"
80
+ bg: "#ffffff"
71
81
 
72
82
  popup_frame:
73
- fg: black
74
- bg: white
83
+ fg: "#d7d7d7"
84
+ bg: "#262626"
85
+ border: single
75
86
  corners: square
76
- border: ascii
87
+
88
+ markdown_h1:
89
+ fg: "#ffffff"
90
+ bg: "#000000"
91
+ attrs: [bold]
92
+
93
+ markdown_h2:
94
+ fg: "#ffffff"
95
+ bg: "#000000"
96
+ attrs: [bold]
97
+
98
+ markdown_h3:
99
+ fg: "#d7d7d7"
100
+ bg: "#000000"
101
+ attrs: [bold]
102
+
103
+ markdown_code:
104
+ fg: "#ffffff"
105
+ bg: "#262626"
106
+
107
+ markdown_code_gutter:
108
+ fg: "#808080"
109
+ bg: "#262626"
110
+ attrs: [dim]
111
+
112
+ markdown_strong:
113
+ fg: "#ffffff"
114
+ bg: "#000000"
115
+ attrs: [bold]
116
+
117
+ markdown_emphasis:
118
+ fg: "#d7d7d7"
119
+ bg: "#000000"
120
+ attrs: [italic]
121
+
122
+ markdown_link:
123
+ fg: "#ffffff"
124
+ bg: "#000000"
125
+ attrs: [underline]
126
+
127
+ markdown_url:
128
+ fg: "#d7d7d7"
129
+ bg: "#000000"
130
+ attrs: [underline]
131
+
132
+ markdown_quote_gutter:
133
+ fg: "#808080"
134
+ bg: "#000000"
135
+
136
+ markdown_highlight:
137
+ fg: "#000000"
138
+ bg: "#ffffff"
139
+
140
+ markdown_table_header:
141
+ fg: "#ffffff"
142
+ bg: "#262626"
143
+ attrs: [bold]
144
+
145
+ markdown_hrule:
146
+ fg: "#808080"
147
+ bg: "#000000"
148
+ attrs: [dim]
@@ -0,0 +1,140 @@
1
+ name: monokai
2
+ inherit: null
3
+ markdown_code_theme: monokai
4
+
5
+ output:
6
+ fg: "#f8f8f2"
7
+ bg: "#272822"
8
+
9
+ input:
10
+ fg: "#f8f8f2"
11
+ bg: "#3e3d32"
12
+ attrs: [bold]
13
+
14
+ input_suggestion:
15
+ fg: "#75715e"
16
+ bg: "#3e3d32"
17
+ attrs: [dim]
18
+
19
+ cursor:
20
+ fg: "#272822"
21
+ bg: "#f92672"
22
+
23
+ region:
24
+ fg: "#272822"
25
+ bg: "#66d9ef"
26
+
27
+ good:
28
+ fg: "#a6e22e"
29
+ bg: "#272822"
30
+
31
+ info:
32
+ fg: "#f8f8f2"
33
+ bg: "#272822"
34
+
35
+ warn:
36
+ fg: "#272822"
37
+ bg: "#e6db74"
38
+
39
+ error:
40
+ fg: "#f8f8f2"
41
+ bg: "#f92672"
42
+
43
+ pager_status:
44
+ fg: "#272822"
45
+ bg: "#a6e22e"
46
+
47
+ search_input:
48
+ fg: "#272822"
49
+ bg: "#66d9ef"
50
+
51
+ match_current:
52
+ fg: "#272822"
53
+ bg: "#e6db74"
54
+
55
+ match_other:
56
+ fg: "#272822"
57
+ bg: "#ae81ff"
58
+
59
+ popup:
60
+ fg: "#f8f8f2"
61
+ bg: "#3e3d32"
62
+
63
+ popup_input:
64
+ fg: "#f8f8f2"
65
+ bg: "#49483e"
66
+
67
+ popup_counts:
68
+ fg: "#272822"
69
+ bg: "#f8f8f2"
70
+
71
+ popup_selection:
72
+ fg: "#272822"
73
+ bg: "#66d9ef"
74
+
75
+ popup_frame:
76
+ fg: "#a6e22e"
77
+ bg: "#3e3d32"
78
+ border: single
79
+ corners: rounded
80
+
81
+ markdown_h1:
82
+ fg: "#f92672"
83
+ bg: "#272822"
84
+ attrs: [bold]
85
+
86
+ markdown_h2:
87
+ fg: "#66d9ef"
88
+ bg: "#272822"
89
+ attrs: [bold]
90
+
91
+ markdown_h3:
92
+ fg: "#a6e22e"
93
+ bg: "#272822"
94
+ attrs: [bold]
95
+
96
+ markdown_code:
97
+ fg: "#a6e22e"
98
+ bg: "#3e3d32"
99
+
100
+ markdown_code_gutter:
101
+ fg: "#75715e"
102
+ bg: "#3e3d32"
103
+ attrs: [dim]
104
+
105
+ markdown_strong:
106
+ fg: "#f8f8f2"
107
+ bg: "#272822"
108
+ attrs: [bold]
109
+
110
+ markdown_emphasis:
111
+ fg: "#f8f8f2"
112
+ bg: "#272822"
113
+ attrs: [italic]
114
+
115
+ markdown_link:
116
+ fg: "#66d9ef"
117
+ bg: "#272822"
118
+ attrs: [underline]
119
+
120
+ markdown_url:
121
+ fg: "#ae81ff"
122
+ bg: "#272822"
123
+
124
+ markdown_quote_gutter:
125
+ fg: "#75715e"
126
+ bg: "#272822"
127
+
128
+ markdown_highlight:
129
+ fg: "#272822"
130
+ bg: "#e6db74"
131
+
132
+ markdown_table_header:
133
+ fg: "#f8f8f2"
134
+ bg: "#3e3d32"
135
+ attrs: [bold]
136
+
137
+ markdown_hrule:
138
+ fg: "#75715e"
139
+ bg: "#272822"
140
+ attrs: [dim]
@@ -1,5 +1,6 @@
1
1
  name: nordic
2
2
  inherit: null
3
+ markdown_code_theme: monokai
3
4
 
4
5
  output:
5
6
  fg: "#d8dee9"