1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
#[cfg(dbus)] pub mod konsole; #[cfg(dbus)] pub mod gnome_terminal; #[cfg(dbus)] pub mod plasma; pub mod vscode; pub mod vim; pub mod alacritty; pub mod sublime_text; #[cfg(mac)] pub mod macos; #[cfg(mac)] pub mod iterm2; #[cfg(dbus)] pub use konsole::Konsole; #[cfg(dbus)] pub use gnome_terminal::GnomeTerminal; #[cfg(dbus)] pub use plasma::Plasma; pub use vscode::VSCode; pub use alacritty::Alacritty; pub use vim::Vim; pub use vim::Neovim; pub use sublime_text::SublimeText; #[cfg(mac)] pub use macos::MacOS; #[cfg(mac)] pub use iterm2::Iterm2; use std::option::Option; use crate::themeable::Themeable; pub fn get(name: &str) -> Option<Box<dyn Themeable>> { match name { #[cfg(dbus)] "konsole" => Some(Box::new(Konsole::default())), #[cfg(dbus)] "gnome-terminal" => Some(Box::new(GnomeTerminal::default())), #[cfg(dbus)] "plasma" => Some(Box::new(Plasma {})), #[cfg(mac)] "macos" => Some(Box::new(MacOS {})), #[cfg(mac)] "iterm2" => Some(Box::new(Iterm2 {})), "vscode" => Some(Box::new(VSCode {})), "alacritty" => Some(Box::new(Alacritty {})), "vim" => Some(Box::new(Vim {})), "nvim" => Some(Box::new(Neovim {})), "sublime-text" => Some(Box::new(SublimeText {})), _ => None, } } pub fn all_names() -> Vec<&'static str> { vec!( "alacritty", "nvim", "vim", "vscode", #[cfg(dbus)] "gnome-terminal", #[cfg(dbus)] "konsole", #[cfg(dbus)] "plasma", #[cfg(mac)] "macos", #[cfg(mac)] "iterm2", "sublime-text", ) }