gitkraft_gui/features/
editor.rs1use iced::widget::pick_list;
7use iced::{Element, Length};
8
9use crate::message::Message;
10
11fn all_editors() -> Vec<gitkraft_core::Editor> {
13 use gitkraft_core::Editor;
14 vec![
15 Editor::None,
16 Editor::Helix,
17 Editor::Neovim,
18 Editor::Vim,
19 Editor::Nano,
20 Editor::Micro,
21 Editor::Emacs,
22 Editor::VSCode,
23 Editor::Zed,
24 Editor::Sublime,
25 Editor::RustRover,
26 Editor::IntelliJIdea,
27 Editor::WebStorm,
28 Editor::PyCharm,
29 Editor::GoLand,
30 Editor::CLion,
31 Editor::Fleet,
32 Editor::AndroidStudio,
33 ]
34}
35
36pub fn editor_selector(current: &gitkraft_core::Editor) -> Element<'static, Message> {
42 let choices = all_editors();
43 let selected = choices.iter().find(|e| *e == current).cloned();
44
45 pick_list(choices, selected, Message::EditorChanged)
46 .placeholder("Select editor")
47 .text_size(13.0)
48 .width(Length::Fixed(160.0))
49 .into()
50}