From a0569b1eadd8a34f68f72052b07908242c8329df Mon Sep 17 00:00:00 2001 From: Andrew Pareles Date: Wed, 22 Jan 2025 22:38:33 -0800 Subject: [PATCH] better FIM codeblock matching --- .../void/browser/helpers/extractCodeFromResult.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/contrib/void/browser/helpers/extractCodeFromResult.ts b/src/vs/workbench/contrib/void/browser/helpers/extractCodeFromResult.ts index d7e109ae..e322cda3 100644 --- a/src/vs/workbench/contrib/void/browser/helpers/extractCodeFromResult.ts +++ b/src/vs/workbench/contrib/void/browser/helpers/extractCodeFromResult.ts @@ -76,16 +76,20 @@ class SurroundingsRemover { removeCodeBlock = () => { + // Match either: + // 1. ```language\n\n```\n? + // 2. ```\n```\n? + const pm = this const foundCodeBlock = pm.removePrefix('```') if (!foundCodeBlock) return false pm.removeFromStartUntil('\n', true) // language - const foundCodeBlockEnd = pm.removeSuffix('```') + const foundCodeBlockEnd = pm.removeSuffix('```') || pm.removeSuffix('```\n') if (!foundCodeBlockEnd) return false - pm.removeSuffix('\n') + pm.removeSuffix('\n') // remove the newline before ``` return true } @@ -105,9 +109,6 @@ class SurroundingsRemover { export const extractCodeFromRegular = ({ text, recentlyAddedTextLen }: { text: string, recentlyAddedTextLen: number }): [string, string] => { - // Match either: - // 1. ```language\n``` - // 2. `````` const pm = new SurroundingsRemover(text)