diff --git a/src/assets.rs b/src/assets.rs
index 00a1c2f6..0448df09 100644
--- a/src/assets.rs
+++ b/src/assets.rs
@@ -191,63 +191,50 @@ impl HighlightingAssets {
         input: &mut OpenedInput,
         mapping: &SyntaxMapping,
     ) -> &SyntaxReference {
-        let syntax = if let Some(language) = language {
+        let syntax = if match input.kind {
+            OpenedInputKind::ThemePreviewFile => true,
+            _ => false,
+        } {
+            // FIXME: replace the above match statement with matches macro when min Rust >= 1.42.0
+            self.syntax_set.find_syntax_by_name("Rust")
+        } else if let Some(language) = language {
             self.syntax_set.find_syntax_by_token(language)
         } else {
-            match input.kind {
-                OpenedInputKind::OrdinaryFile(ref actual_path) => {
-                    let path_str = input
-                        .metadata
-                        .user_provided_name
-                        .as_ref()
-                        .unwrap_or(actual_path);
-                    let path = Path::new(path_str);
-                    let line_syntax = self.get_first_line_syntax(&mut input.reader);
+            let line_syntax = self.get_first_line_syntax(&mut input.reader);
 
-                    let absolute_path = path.canonicalize().ok().unwrap_or_else(|| path.to_owned());
-                    match mapping.get_syntax_for(absolute_path) {
-                        Some(MappingTarget::MapTo(syntax_name)) => {
-                            // TODO: we should probably return an error here if this syntax can not be
-                            // found. Currently, we just fall back to 'plain'.
-                            self.syntax_set.find_syntax_by_name(syntax_name)
-                        }
-                        Some(MappingTarget::MapToUnknown) => line_syntax,
-                        None => {
-                            let file_name = path.file_name().unwrap_or_default();
-                            self.get_extension_syntax(file_name).or(line_syntax)
-                        }
-                    }
-                }
-                OpenedInputKind::StdIn => {
-                    if let Some(ref name) = input.metadata.user_provided_name {
-                        self.get_extension_syntax(&name)
-                            .or_else(|| self.get_first_line_syntax(&mut input.reader))
-                    } else {
-                        self.get_first_line_syntax(&mut input.reader)
-                    }
-                }
-                OpenedInputKind::CustomReader => {
-                    if let Some(ref path_str) = input.metadata.user_provided_name {
-                        let path = Path::new(path_str);
-                        let absolute_path =
-                            path.canonicalize().ok().unwrap_or_else(|| path.to_owned());
-                        let line_syntax = self.get_first_line_syntax(&mut input.reader);
+            // Get the path of the file:
+            // If this was set by the metadata, that will take priority.
+            // If it wasn't, it will use the real file path (if available).
+            let path_str =
+                input
+                    .metadata
+                    .user_provided_name
+                    .as_ref()
+                    .or_else(|| match input.kind {
+                        OpenedInputKind::OrdinaryFile(ref path) => Some(path),
+                        _ => None,
+                    });
 
-                        match mapping.get_syntax_for(absolute_path) {
-                            Some(MappingTarget::MapTo(syntax_name)) => {
-                                self.syntax_set.find_syntax_by_name(syntax_name)
-                            }
-                            Some(MappingTarget::MapToUnknown) => line_syntax,
-                            None => {
-                                let file_name = path.file_name().unwrap_or_default();
-                                self.get_extension_syntax(file_name).or(line_syntax)
-                            }
-                        }
-                    } else {
-                        self.get_first_line_syntax(&mut input.reader)
+            if let Some(path_str) = path_str {
+                // If a path was provided, we try and detect the syntax based on extension mappings.
+                let path = Path::new(path_str);
+                let absolute_path = path.canonicalize().ok().unwrap_or_else(|| path.to_owned());
+
+                match mapping.get_syntax_for(absolute_path) {
+                    Some(MappingTarget::MapToUnknown) => line_syntax,
+                    Some(MappingTarget::MapTo(syntax_name)) => {
+                        // TODO: we should probably return an error here if this syntax can not be
+                        // found. Currently, we just fall back to 'plain'.
+                        self.syntax_set.find_syntax_by_name(syntax_name)
+                    }
+                    None => {
+                        let file_name = path.file_name().unwrap_or_default();
+                        self.get_extension_syntax(file_name).or(line_syntax)
                     }
                 }
-                OpenedInputKind::ThemePreviewFile => self.syntax_set.find_syntax_by_name("Rust"),
+            } else {
+                // If a path wasn't provided, we fall back to the detect first-line syntax.
+                line_syntax
             }
         };