From 9c6b3c9d1d1763074341042ef0f74ab45bb56da1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20=C4=90=E1=BB=A9c=20To=C3=A0n?= <33489972+ndtoan96@users.noreply.github.com> Date: Wed, 13 Sep 2023 23:01:16 +0700 Subject: [PATCH] feat: fallback to built-in highlighting if `jq` is not installed (#151) --- core/src/manager/preview/provider.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/src/manager/preview/provider.rs b/core/src/manager/preview/provider.rs index 4ac499db..3271b0ae 100644 --- a/core/src/manager/preview/provider.rs +++ b/core/src/manager/preview/provider.rs @@ -3,6 +3,7 @@ use std::{io::BufRead, path::Path, sync::atomic::{AtomicUsize, Ordering}}; use adaptor::ADAPTOR; use anyhow::anyhow; use config::{MANAGER, PREVIEW}; +use futures::TryFutureExt; use shared::{MimeKind, PeekError}; use syntect::{easy::HighlightFile, util::as_24_bit_terminal_escaped}; use tokio::fs; @@ -69,7 +70,9 @@ impl Provider { } pub(super) async fn json(path: &Path, skip: usize) -> Result { - external::jq(path, skip, MANAGER.layout.preview_height()).await + external::jq(path, skip, MANAGER.layout.preview_height()) + .or_else(|_| Provider::highlight(path, skip)) + .await } pub(super) async fn archive(path: &Path, skip: usize) -> Result {