feat(core): add exit and restart built-ins

This commit is contained in:
Federico Terzi 2021-08-16 20:39:15 +02:00
parent 7439cc1081
commit d4cede1862
2 changed files with 51 additions and 0 deletions

View File

@ -26,6 +26,7 @@ use espanso_engine::event::EventType;
use super::context::Context; use super::context::Context;
mod debug; mod debug;
mod process;
mod search; mod search;
const MIN_BUILTIN_MATCH_ID: i32 = 1_000_000_000; const MIN_BUILTIN_MATCH_ID: i32 = 1_000_000_000;
@ -54,6 +55,8 @@ pub fn get_builtin_matches(config: &dyn Config) -> Vec<BuiltInMatch> {
let mut matches = vec![ let mut matches = vec![
debug::create_match_paste_active_config_info(), debug::create_match_paste_active_config_info(),
debug::create_match_paste_active_app_info(), debug::create_match_paste_active_app_info(),
process::create_match_exit(),
process::create_match_restart(),
]; ];
if config.search_trigger().is_some() || config.search_shortcut().is_some() { if config.search_trigger().is_some() || config.search_shortcut().is_some() {

View File

@ -0,0 +1,48 @@
/*
* This file is part of espanso.
*
* Copyright (C) 2019-2021 Federico Terzi
*
* espanso is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* espanso is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with espanso. If not, see <https://www.gnu.org/licenses/>.
*/
use espanso_engine::event::{EventType, ExitMode};
use crate::cli::worker::builtin::generate_next_builtin_id;
use super::BuiltInMatch;
pub fn create_match_exit() -> BuiltInMatch {
BuiltInMatch {
id: generate_next_builtin_id(),
label: "Exit espanso",
triggers: Vec::new(),
action: |_| {
EventType::ExitRequested(ExitMode::ExitAllProcesses)
},
..Default::default()
}
}
pub fn create_match_restart() -> BuiltInMatch {
BuiltInMatch {
id: generate_next_builtin_id(),
label: "Restart espanso",
triggers: Vec::new(),
action: |_| {
EventType::ExitRequested(ExitMode::RestartWorker)
},
..Default::default()
}
}