From 0c896a721d1dd0368e8634d3c6fee7ed1da84ee0 Mon Sep 17 00:00:00 2001 From: minneelyyyy Date: Mon, 28 Oct 2024 18:44:36 -0400 Subject: [PATCH] better code block parsing --- src/commands/eval.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/commands/eval.rs b/src/commands/eval.rs index 5487583..8383c51 100644 --- a/src/commands/eval.rs +++ b/src/commands/eval.rs @@ -7,8 +7,21 @@ pub async fn eval(ctx: Context<'_>, #[rest] expr: String) -> Result<(), Error> { - let expr = expr.strip_prefix("```") - .and_then(|s| s.strip_suffix("```")).unwrap_or(&expr); + let expr = if expr.starts_with("```\n") { + expr.strip_prefix("```\n") + .and_then(|s| s.strip_suffix("```")) + .unwrap_or(&expr) + } else if expr.starts_with("```") { + expr.strip_prefix("```") + .and_then(|s| s.strip_suffix("```")) + .unwrap_or(&expr) + } else if expr.starts_with('`') { + expr.strip_prefix("`") + .and_then(|s| s.strip_suffix("`")) + .unwrap_or(&expr) + } else { + &expr + }; let runtime = lamm::Runtime::new(Cursor::new(expr), ""); @@ -32,4 +45,4 @@ pub async fn eval(ctx: Context<'_>, }?; Ok(()) -} +} \ No newline at end of file