#[macro_use]
extern crate lazy_static;
macro_rules! regexp {
($($arg:tt)*) => {{
let reg_str = format!($($arg)*);
let mut rule_str = String::from(reg_str).replace(
r"\p{CJK}",
r"\p{Han}|\p{Hangul}|\p{Katakana}|\p{Hiragana}|\p{Bopomofo}",
);
rule_str = String::from(rule_str).replace(
r"\p{CJK_N}",
r"\p{Han}\p{Hangul}\p{Katakana}\p{Hiragana}\p{Bopomofo}",
);
rule_str = String::from(rule_str).replace(
r"\p{CJ}",
r"\p{Han}|\p{Katakana}|\p{Hiragana}|\p{Bopomofo}",
);
rule_str = String::from(rule_str).replace(
r"\p{CJ_N}",
r"\p{Han}\p{Katakana}\p{Hiragana}\p{Bopomofo}",
);
let res = regex::Regex::new(&rule_str).unwrap();
res
}};
}
#[macro_export]
macro_rules! map {
{$($key:expr => $value:expr),+ $(,)?} => {{
let mut m = HashMap::new();
$(
m.insert($key, $value);
)+
m
}};
() => (
HashMap::new()
);
}
#[allow(unused_macros)]
macro_rules! assert_json_eq {
($expected:expr, $actual:expr) => {{
let expected = $expected;
let actual = $actual;
let expect_json = serde_json::from_str(expected).unwrap_or(serde_json::Value::default());
let result = serde_json::from_str(actual.as_str()).unwrap_or(serde_json::Value::default());
assert_eq!(expect_json, result);
}};
}
mod code;
mod diff;
mod format;
mod result;
mod rule;
mod serde_any;
pub mod config;
pub mod ignorer;
pub use code::{format_for, get_file_extension, is_support_type, lint_for};
pub use config::Config;
pub use format::*;
pub use result::{FormatResult, LineResult, LintResult};
pub use rule::{halfwidth, spellcheck};
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_format() {
assert_eq!("Hello 世界。", format("Hello世界."));
}
#[test]
fn test_format_for() {
assert_eq!("Hello 世界。", format_for("Hello世界.", "text").out);
}
}