@@ -218,7 +218,7 @@ impl HighlightingAssets {
218218 }
219219 }
220220 }
221− OpenedInputKind::StdIn | OpenedInputKind::CustomReader => {
221+ OpenedInputKind::StdIn => {
222222 if let Some(ref name) = input.metadata.user_provided_name {
223223 self.get_extension_syntax(&name)
224224 .or_else(|| self.get_first_line_syntax(&mut input.reader))
@@ -226,6 +226,29 @@ impl HighlightingAssets {
226226 self.get_first_line_syntax(&mut input.reader)
227227 }
228228 }
229+ OpenedInputKind::CustomReader => {
230+ if let Some(ref path_str) = input.metadata.user_provided_name {
231+ let path = Path::new(path_str);
232+ let absolute_path =
233+ path.canonicalize().ok().unwrap_or_else(|| path.to_owned());
234+ let line_syntax = self.get_first_line_syntax(&mut input.reader);
235+
236+ match mapping.get_syntax_for(path_str) {
237+ Some(MappingTarget::MapTo(syntax_name)) => {
238+ println!("Mapped {:?} as {:?}", path_str, syntax_name);
239+ self.syntax_set.find_syntax_by_name(syntax_name)
240+ }
241+ Some(MappingTarget::MapToUnknown) => line_syntax,
242+ None => {
243+ println!("Test {:?}", path_str);
244+ let file_name = path.file_name().unwrap_or_default();
245+ self.get_extension_syntax(file_name).or(line_syntax)
246+ }
247+ }
248+ } else {
249+ self.get_first_line_syntax(&mut input.reader)
250+ }
251+ }
229252 OpenedInputKind::ThemePreviewFile => self.syntax_set.find_syntax_by_name("Rust"),
230253 }
231254 };