gitm/integrations/editor/mod.rs
1use crate::config::{Configuration, Editors};
2
3pub mod editor_nvim;
4pub mod editor_vscode;
5
6pub trait EditorOpen {
7 fn open(&self, dir: &str) -> Result<(), ()>;
8}
9
10pub fn get_editor<'a>(config: &Configuration) -> Option<&'a dyn EditorOpen> {
11 let editor: &'a dyn EditorOpen = match config.editor? {
12 Editors::Neovim => &editor_nvim::Neovim,
13 Editors::VSCode => &editor_vscode::VSCode,
14 };
15
16 Some(editor)
17}