feat(config): add regex option
This commit is contained in:
parent
bfe6b13ae7
commit
745c329580
|
@ -491,7 +491,7 @@ fn triggers_for_match(m: &Value) -> Vec<String> {
|
|||
} else if let Some(trigger) = m.get("trigger").and_then(|v| v.as_str()) {
|
||||
vec![trigger.to_string()]
|
||||
} else {
|
||||
panic!("Match does not have any trigger defined: {:?}", m)
|
||||
vec![]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
* along with espanso. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
use crate::{counter::next_id, matches::{ImageEffect, Match, Params, TextFormat, UpperCasingStyle, Value, Variable, group::{path::resolve_imports, MatchGroup}}};
|
||||
use crate::{counter::next_id, matches::{ImageEffect, Match, Params, RegexCause, TextFormat, UpperCasingStyle, Value, Variable, group::{path::resolve_imports, MatchGroup}}};
|
||||
use anyhow::Result;
|
||||
use log::{error, warn};
|
||||
use parse::YAMLMatchGroup;
|
||||
|
@ -137,6 +137,10 @@ impl TryFrom<YAMLMatch> for Match {
|
|||
.unwrap_or(TriggerCause::default().propagate_case),
|
||||
uppercase_style,
|
||||
})
|
||||
} else if let Some(regex) = yaml_match.regex { // TODO: add test case
|
||||
MatchCause::Regex(RegexCause {
|
||||
regex,
|
||||
})
|
||||
} else {
|
||||
MatchCause::None
|
||||
};
|
||||
|
|
|
@ -64,6 +64,9 @@ pub struct YAMLMatch {
|
|||
#[serde(default)]
|
||||
pub triggers: Option<Vec<String>>,
|
||||
|
||||
#[serde(default)]
|
||||
pub regex: Option<String>,
|
||||
|
||||
#[serde(default)]
|
||||
pub replace: Option<String>,
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ impl Default for Match {
|
|||
pub enum MatchCause {
|
||||
None,
|
||||
Trigger(TriggerCause),
|
||||
// TODO: regex
|
||||
Regex(RegexCause),
|
||||
// TODO: shortcut
|
||||
}
|
||||
|
||||
|
@ -88,6 +88,19 @@ pub enum UpperCasingStyle {
|
|||
CapitalizeWords,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct RegexCause {
|
||||
pub regex: String,
|
||||
}
|
||||
|
||||
impl Default for RegexCause {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
regex: String::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Effects
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash, EnumAsInner)]
|
||||
|
|
Loading…
Reference in New Issue
Block a user