@@ -18,7 +18,7 @@ use crate::syntax_mapping::{MappingTarget, SyntaxMapping};
19#[derive(Debug)]
19#[derive(Debug)]
20pub struct HighlightingAssets {
20pub struct HighlightingAssets {
21− pub(crate) syntax_set: SyntaxSet,
21+ syntax_set: SyntaxSet,
22 pub(crate) theme_set: ThemeSet,
22 pub(crate) theme_set: ThemeSet,
23 fallback_theme: Option<&'static str>,
23 fallback_theme: Option<&'static str>,
@@ -127,7 +127,7 @@ impl HighlightingAssets {
127 let _ = fs::create_dir_all(target_dir);
127 let _ = fs::create_dir_all(target_dir);
128 asset_to_cache(&self.theme_set, &target_dir.join("themes.bin"), "theme set")?;
128 asset_to_cache(&self.theme_set, &target_dir.join("themes.bin"), "theme set")?;
129 asset_to_cache(
129 asset_to_cache(
130− &self.syntax_set,
130+ self.get_syntax_set(),
131 &target_dir.join("syntaxes.bin"),
131 &target_dir.join("syntaxes.bin"),
132 "syntax set",
132 "syntax set",
@@ -146,8 +146,12 @@ impl HighlightingAssets {
146 self.fallback_theme = Some(theme);
146 self.fallback_theme = Some(theme);
149+ pub(crate) fn get_syntax_set(&self) -> &SyntaxSet {
149 pub fn syntaxes(&self) -> &[SyntaxReference] {
153 pub fn syntaxes(&self) -> &[SyntaxReference] {
150− self.syntax_set.syntaxes()
154+ self.get_syntax_set().syntaxes()
153 pub fn themes(&self) -> impl Iterator<Item = &str> {
157 pub fn themes(&self) -> impl Iterator<Item = &str> {
@@ -163,7 +167,7 @@ impl HighlightingAssets {
163 match mapping.get_syntax_for(file_name) {
167 match mapping.get_syntax_for(file_name) {
164 Some(MappingTarget::MapToUnknown) => None,
168 Some(MappingTarget::MapToUnknown) => None,
165 Some(MappingTarget::MapTo(syntax_name)) => {
169 Some(MappingTarget::MapTo(syntax_name)) => {
166− self.syntax_set.find_syntax_by_name(syntax_name)
170+ self.get_syntax_set().find_syntax_by_name(syntax_name)
168 None => self.get_extension_syntax(file_name.as_os_str()),
172 None => self.get_extension_syntax(file_name.as_os_str()),
@@ -192,7 +196,7 @@ impl HighlightingAssets {
192 mapping: &SyntaxMapping,
196 mapping: &SyntaxMapping,
193 ) -> Result<&SyntaxReference> {
197 ) -> Result<&SyntaxReference> {
194 if let Some(language) = language {
198 if let Some(language) = language {
195− self.syntax_set
199+ self.get_syntax_set()
196 .find_syntax_by_token(language)
200 .find_syntax_by_token(language)
197 .ok_or_else(|| ErrorKind::UnknownSyntax(language.to_owned()).into())
201 .ok_or_else(|| ErrorKind::UnknownSyntax(language.to_owned()).into())
@@ -225,7 +229,7 @@ impl HighlightingAssets {
227 Some(MappingTarget::MapTo(syntax_name)) => self
231 Some(MappingTarget::MapTo(syntax_name)) => self
228− .syntax_set
232+ .get_syntax_set()
229 .find_syntax_by_name(syntax_name)
233 .find_syntax_by_name(syntax_name)
230 .ok_or_else(|| ErrorKind::UnknownSyntax(syntax_name.to_owned()).into()),
234 .ok_or_else(|| ErrorKind::UnknownSyntax(syntax_name.to_owned()).into()),
@@ -246,11 +250,11 @@ impl HighlightingAssets {
248 fn get_extension_syntax(&self, file_name: &OsStr) -> Option<&SyntaxReference> {
252 fn get_extension_syntax(&self, file_name: &OsStr) -> Option<&SyntaxReference> {
249− self.syntax_set
253+ self.get_syntax_set()
250 .find_syntax_by_extension(file_name.to_str().unwrap_or_default())
254 .find_syntax_by_extension(file_name.to_str().unwrap_or_default())
251 .or_else(|| {
255 .or_else(|| {
252 let file_path = Path::new(file_name);
256 let file_path = Path::new(file_name);
253− self.syntax_set
257+ self.get_syntax_set()
254 .find_syntax_by_extension(
258 .find_syntax_by_extension(
255 file_path
259 file_path
256 .extension()
260 .extension()
@@ -274,7 +278,7 @@ impl HighlightingAssets {
274 fn get_first_line_syntax(&self, reader: &mut InputReader) -> Option<&SyntaxReference> {
278 fn get_first_line_syntax(&self, reader: &mut InputReader) -> Option<&SyntaxReference> {
275 String::from_utf8(reader.first_line.clone())
279 String::from_utf8(reader.first_line.clone())
277− .and_then(|l| self.syntax_set.find_syntax_by_first_line(&l))
281+ .and_then(|l| self.get_syntax_set().find_syntax_by_first_line(&l))
@@ -347,7 +351,7 @@ mod tests {
348 self.assets
352 self.assets
349 .get_syntax(None, &mut opened_input, &self.syntax_mapping)
353 .get_syntax(None, &mut opened_input, &self.syntax_mapping)
350− .unwrap_or_else(|_| self.assets.syntax_set.find_syntax_plain_text())
354+ .unwrap_or_else(|_| self.assets.get_syntax_set().find_syntax_plain_text())
@@ -361,7 +365,7 @@ mod tests {
362 self.assets
366 self.assets
363 .get_syntax(None, &mut opened_input, &self.syntax_mapping)
367 .get_syntax(None, &mut opened_input, &self.syntax_mapping)
364− .unwrap_or_else(|_| self.assets.syntax_set.find_syntax_plain_text())
368+ .unwrap_or_else(|_| self.assets.get_syntax_set().find_syntax_plain_text())
@@ -385,7 +389,7 @@ mod tests {
386 self.assets
390 self.assets
387 .get_syntax(None, &mut opened_input, &self.syntax_mapping)
391 .get_syntax(None, &mut opened_input, &self.syntax_mapping)
388− .unwrap_or_else(|_| self.assets.syntax_set.find_syntax_plain_text())
392+ .unwrap_or_else(|_| self.assets.get_syntax_set().find_syntax_plain_text())
@@ -543,7 +547,7 @@ mod tests {
543 assert_eq!(
547 assert_eq!(
544 test.assets
548 test.assets
545 .get_syntax(None, &mut opened_input, &test.syntax_mapping)
549 .get_syntax(None, &mut opened_input, &test.syntax_mapping)
546− .unwrap_or_else(|_| test.assets.syntax_set.find_syntax_plain_text())
550+ .unwrap_or_else(|_| test.assets.get_syntax_set().find_syntax_plain_text())
548 "SSH Config"
552 "SSH Config"