in src/tools.rs [158:183]
fn get_emacs_mode(buf: &[u8]) -> Option<String> {
// we just try to use the emacs info (if there)
for (i, line) in buf.splitn(5, |c| *c == b'\n').enumerate() {
if let Some(cap) = get_regex(&RE1_EMACS, line, FIRST_EMACS_EXPRESSION) {
return mode_to_str(&cap[1]);
} else if let Some(cap) = get_regex(&RE2_EMACS, line, SECOND_EMACS_EXPRESSION) {
return mode_to_str(&cap[1]);
} else if let Some(cap) = get_regex(&RE1_VIM, line, VIM_EXPRESSION) {
return mode_to_str(&cap[1]);
}
if i == 3 {
break;
}
}
for (i, line) in buf.rsplitn(5, |c| *c == b'\n').enumerate() {
if let Some(cap) = get_regex(&RE1_VIM, line, VIM_EXPRESSION) {
return mode_to_str(&cap[1]);
}
if i == 3 {
break;
}
}
None
}