on master help sign in
src/printer.rs: Simplify Plain Text fallback code

By forwarding the task to find the `Plain Text` syntax to `assets`. Not only does the code become simpler; we also get rid of a call to `self.get_syntax_set()` which is beneficial to the long term goal of replacing `syntaxes.bin` with `minimal_syntaxes.bin`. Note that the use of `.expect()` is not a regression in error handling. It was previously hidden in `.find_syntax_plain_text()`.

commitaefc8fd8243b8270849aeecee7dc443210cd9b3b authorMartin Nordholts <enselic@gmail.com> dateMon 27 Sep 2021, 20:09 (5 years ago) parent405a80f
2 files changed+7−6
src/assets.rs+4−1 src/printer.rs+3−5
src/assets.rs+4−1
@@ -245,7 +245,10 @@ impl HighlightingAssets {
245245 }
246246 }
247247
248− fn find_syntax_by_name(&self, syntax_name: &str) -> Result<Option<SyntaxReferenceInSet>> {
248+ pub(crate) fn find_syntax_by_name(
249+ &self,
250+ syntax_name: &str,
251+ ) -> Result<Option<SyntaxReferenceInSet>> {
249252 let syntax_set = self.get_syntax_set()?;
250253 Ok(syntax_set
251254 .find_syntax_by_name(syntax_name)
src/printer.rs+3−5
@@ -187,11 +187,9 @@ impl<'a> InteractivePrinter<'a> {
187187 let syntax_in_set =
188188 match assets.get_syntax(config.language, input, &config.syntax_mapping) {
189189 Ok(syntax_in_set) => syntax_in_set,
190− Err(Error::UndetectedSyntax(_)) => {
191− let syntax_set = assets.get_syntax_set()?;
192− let syntax = syntax_set.find_syntax_plain_text();
193− SyntaxReferenceInSet { syntax, syntax_set }
194− }
190+ Err(Error::UndetectedSyntax(_)) => assets
191+ .find_syntax_by_name("Plain Text")?
192+ .expect("A plain text syntax is available"),
195193 Err(e) => return Err(e),
196194 };
197195