Replace LanguageRegistry trait with a simple callback

This commit is contained in:
Max Brunsfeld 2019-02-19 17:07:12 -08:00
parent e89b6b2402
commit a46515b80f
4 changed files with 96 additions and 87 deletions

View file

@ -10,7 +10,7 @@ use std::process::Command;
use std::time::SystemTime;
use std::{fs, mem};
use tree_sitter::{Language, PropertySheet};
use tree_sitter_highlight::{load_property_sheet, LanguageRegistry, Properties};
use tree_sitter_highlight::{load_property_sheet, Properties};
#[cfg(unix)]
const DYLIB_EXTENSION: &'static str = "so";
@ -320,37 +320,6 @@ impl Loader {
}
}
impl LanguageRegistry for Loader {
fn language_for_injection_string<'a>(
&'a self,
string: &str,
) -> Option<(Language, &'a PropertySheet<Properties>)> {
match self.language_configuration_for_injection_string(string) {
Err(message) => {
eprintln!(
"Failed to load language for injection string '{}': {}",
string, message.0
);
None
}
Ok(None) => None,
Ok(Some((language, configuration))) => {
match configuration.highlight_property_sheet(language) {
Err(message) => {
eprintln!(
"Failed to load property sheet for injection string '{}': {}",
string, message.0
);
None
}
Ok(None) => None,
Ok(Some(sheet)) => Some((language, sheet)),
}
}
}
}
}
impl LanguageConfiguration {
pub fn highlight_property_sheet(
&self,