From 78f3819c3318849b43ec278f20b3503c2b99ffcd Mon Sep 17 00:00:00 2001 From: Mathew Pareles Date: Wed, 1 Jan 2025 23:19:16 -0800 Subject: [PATCH] move extractCodeFromResult --- .../void/browser/autocompleteService.ts | 5 ++--- .../browser/helpers/extractCodeFromResult.ts | 14 +++++++++++++ .../browser/react/src/markdown/BlockCode.tsx | 21 ++----------------- 3 files changed, 18 insertions(+), 22 deletions(-) create mode 100644 src/vs/workbench/contrib/void/browser/helpers/extractCodeFromResult.ts diff --git a/src/vs/workbench/contrib/void/browser/autocompleteService.ts b/src/vs/workbench/contrib/void/browser/autocompleteService.ts index 9d54fcb9..3bd4d955 100644 --- a/src/vs/workbench/contrib/void/browser/autocompleteService.ts +++ b/src/vs/workbench/contrib/void/browser/autocompleteService.ts @@ -17,6 +17,7 @@ import { IEditorService } from '../../../services/editor/common/editorService.js import { isCodeEditor } from '../../../../editor/browser/editorBrowser.js'; import { EditorResourceAccessor } from '../../../common/editor.js'; import { IModelService } from '../../../../editor/common/services/model.js'; +import { extractCodeFromResult } from './helpers/extractCodeFromResult.js'; // The extension this was called from is here - https://github.com/voideditor/void/blob/autocomplete/extensions/void/src/extension/extension.ts @@ -754,7 +755,5 @@ export class AutocompleteService extends Disposable implements IAutocompleteServ registerSingleton(IAutocompleteService, AutocompleteService, InstantiationType.Eager); -function extractCodeFromResult(fullText: string): string { - throw new Error('Function not implemented.'); -} + diff --git a/src/vs/workbench/contrib/void/browser/helpers/extractCodeFromResult.ts b/src/vs/workbench/contrib/void/browser/helpers/extractCodeFromResult.ts new file mode 100644 index 00000000..7df3041c --- /dev/null +++ b/src/vs/workbench/contrib/void/browser/helpers/extractCodeFromResult.ts @@ -0,0 +1,14 @@ + +export const extractCodeFromResult = (result: string) => { + // Match either: + // 1. ```language\n``` + // 2. `````` + const match = result.match(/```(?:\w+\n)?([\s\S]*?)```|```([\s\S]*?)```/); + + if (!match) { + return result; + } + + // Return whichever group matched (non-empty) + return match[1] ?? match[2] ?? result; +} diff --git a/src/vs/workbench/contrib/void/browser/react/src/markdown/BlockCode.tsx b/src/vs/workbench/contrib/void/browser/react/src/markdown/BlockCode.tsx index 0a36b4c7..8ecc9e8f 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/markdown/BlockCode.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/markdown/BlockCode.tsx @@ -3,25 +3,8 @@ * Void Editor additions licensed under the AGPL 3.0 License. *--------------------------------------------------------------------------------------------*/ -import React, { ReactNode } from "react" +import { ReactNode } from "react" import { VoidCodeEditor } from '../util/inputs.js'; -import { ILanguageService } from '../../../../../../../editor/common/languages/language.js'; - - -export const extractCodeFromResult = (result: string) => { - // Match either: - // 1. ```language\n``` - // 2. `````` - const match = result.match(/```(?:\w+\n)?([\s\S]*?)```|```([\s\S]*?)```/); - - if (!match) { - return result; - } - - // Return whichever group matched (non-empty) - return match[1] ?? match[2] ?? result; -} - const extensionMap: { [key: string]: string } = { @@ -90,7 +73,7 @@ export const BlockCode = ({ text, buttonsOnHover, language }: { text: string, bu {buttonsOnHover === null ? null : (
-
{buttonsOnHover}
+
{buttonsOnHover}
)}