1use reovim_core::{declare_counted_event_command, declare_event_command, event_bus::Event};
4
5declare_counted_event_command! {
8 ExplorerCursorUp,
9 id: "explorer_cursor_up",
10 description: "Move cursor up",
11}
12
13declare_counted_event_command! {
14 ExplorerCursorDown,
15 id: "explorer_cursor_down",
16 description: "Move cursor down",
17}
18
19declare_event_command! {
22 ExplorerPageUp,
23 id: "explorer_page_up",
24 description: "Page up",
25}
26
27declare_event_command! {
28 ExplorerPageDown,
29 id: "explorer_page_down",
30 description: "Page down",
31}
32
33declare_event_command! {
34 ExplorerGotoFirst,
35 id: "explorer_goto_first",
36 description: "Go to first item",
37}
38
39declare_event_command! {
40 ExplorerGotoLast,
41 id: "explorer_goto_last",
42 description: "Go to last item",
43}
44
45declare_event_command! {
48 ExplorerToggleNode,
49 id: "explorer_toggle_node",
50 description: "Toggle expand/collapse on current node",
51}
52
53declare_event_command! {
54 ExplorerOpenNode,
55 id: "explorer_open_node",
56 description: "Open file or toggle directory",
57}
58
59declare_event_command! {
60 ExplorerCloseParent,
61 id: "explorer_close_parent",
62 description: "Close parent directory",
63}
64
65declare_event_command! {
66 ExplorerGoToParent,
67 id: "explorer_goto_parent",
68 description: "Go to parent directory",
69}
70
71declare_event_command! {
74 ExplorerRefresh,
75 id: "explorer_refresh",
76 description: "Refresh tree from filesystem",
77}
78
79declare_event_command! {
80 ExplorerToggleHidden,
81 id: "explorer_toggle_hidden",
82 description: "Toggle showing hidden files",
83}
84
85declare_event_command! {
86 ExplorerToggleSizes,
87 id: "explorer_toggle_sizes",
88 description: "Toggle showing file sizes",
89}
90
91declare_event_command! {
94 ExplorerYank,
95 id: "explorer_yank",
96 description: "Yank (copy) current item to clipboard",
97}
98
99declare_event_command! {
100 ExplorerCut,
101 id: "explorer_cut",
102 description: "Cut current item to clipboard",
103}
104
105declare_event_command! {
106 ExplorerPaste,
107 id: "explorer_paste",
108 description: "Paste from clipboard",
109}
110
111declare_event_command! {
114 ExplorerClose,
115 id: "explorer_close",
116 description: "Close explorer (switch to editor)",
117}
118
119declare_event_command! {
120 ExplorerFocusEditor,
121 id: "explorer_focus_editor",
122 description: "Focus editor window",
123}
124
125declare_event_command! {
126 ExplorerToggle,
127 id: "explorer_toggle",
128 description: "Toggle explorer visibility",
129}
130
131declare_event_command! {
134 ExplorerCreateFile,
135 id: "explorer_create_file",
136 description: "Start creating a new file",
137}
138
139declare_event_command! {
140 ExplorerCreateDir,
141 id: "explorer_create_dir",
142 description: "Start creating a new directory",
143}
144
145declare_event_command! {
146 ExplorerRename,
147 id: "explorer_rename",
148 description: "Start renaming current item",
149}
150
151declare_event_command! {
152 ExplorerDelete,
153 id: "explorer_delete",
154 description: "Delete current item",
155}
156
157declare_event_command! {
160 ExplorerStartFilter,
161 id: "explorer_start_filter",
162 description: "Start filtering by pattern",
163}
164
165declare_event_command! {
166 ExplorerClearFilter,
167 id: "explorer_clear_filter",
168 description: "Clear current filter",
169}
170
171declare_event_command! {
172 ExplorerToggleGitIgnore,
173 id: "explorer_toggle_gitignore",
174 description: "Toggle gitignore filtering",
175}
176
177declare_event_command! {
180 ExplorerRevealCurrentFile,
181 id: "explorer_reveal_current_file",
182 description: "Reveal current file in explorer",
183}
184
185declare_event_command! {
186 ExplorerCollapseAll,
187 id: "explorer_collapse_all",
188 description: "Collapse all directories",
189}
190
191declare_event_command! {
192 ExplorerExpandAll,
193 id: "explorer_expand_all",
194 description: "Expand all directories",
195}
196
197declare_event_command! {
198 ExplorerChangeRoot,
199 id: "explorer_change_root",
200 description: "Change root to selected directory",
201}
202
203declare_event_command! {
204 ExplorerOpenInSplit,
205 id: "explorer_open_in_split",
206 description: "Open file in split",
207}
208
209declare_event_command! {
210 ExplorerOpenInVSplit,
211 id: "explorer_open_in_vsplit",
212 description: "Open file in vertical split",
213}
214
215declare_event_command! {
216 ExplorerOpenExternal,
217 id: "explorer_open_external",
218 description: "Open with external program",
219}
220
221declare_event_command! {
222 ExplorerShowInfo,
223 id: "explorer_show_info",
224 description: "Show file/directory info",
225}
226
227declare_event_command! {
228 ExplorerClosePopup,
229 id: "explorer_close_popup",
230 description: "Close file details popup",
231}
232
233declare_event_command! {
234 ExplorerCopyPath,
235 id: "explorer_copy_path",
236 description: "Copy file path to clipboard",
237}
238
239declare_event_command! {
242 ExplorerConfirmInput,
243 id: "explorer_confirm_input",
244 description: "Confirm input operation",
245}
246
247declare_event_command! {
248 ExplorerCancelInput,
249 id: "explorer_cancel_input",
250 description: "Cancel input operation",
251}
252
253#[derive(Debug, Clone, Copy)]
255pub struct ExplorerInputChar {
256 pub c: char,
257}
258
259impl ExplorerInputChar {
260 #[must_use]
261 pub const fn new(c: char) -> Self {
262 Self { c }
263 }
264}
265
266impl Event for ExplorerInputChar {
267 fn priority(&self) -> u32 {
268 100
269 }
270}
271
272declare_event_command! {
273 ExplorerInputBackspace,
274 id: "explorer_input_backspace",
275 description: "Delete character in input",
276}
277
278declare_event_command! {
281 ExplorerVisualMode,
282 id: "explorer_visual_mode",
283 description: "Enter visual selection mode",
284}
285
286declare_event_command! {
287 ExplorerToggleSelect,
288 id: "explorer_toggle_select",
289 description: "Toggle selection of current item",
290}
291
292declare_event_command! {
293 ExplorerSelectAll,
294 id: "explorer_select_all",
295 description: "Select all items",
296}
297
298declare_event_command! {
299 ExplorerExitVisual,
300 id: "explorer_exit_visual",
301 description: "Exit visual mode",
302}