From b31882565b6ef6c44daae64d1c0b2427b940dc1b Mon Sep 17 00:00:00 2001 From: Mathew Pareles Date: Thu, 2 Jan 2025 17:11:31 -0800 Subject: [PATCH] fix watchreact --- .../contrib/void/browser/react/build.js | 37 +++++++++++++++++-- .../browser/react/src/markdown/BlockCode.tsx | 1 - .../react/src/markdown/ChatMarkdownRender.tsx | 5 +-- .../react/src/sidebar-tsx/SidebarChat.tsx | 28 ++++++-------- .../void/browser/react/src/util/inputs.tsx | 2 +- 5 files changed, 49 insertions(+), 24 deletions(-) diff --git a/src/vs/workbench/contrib/void/browser/react/build.js b/src/vs/workbench/contrib/void/browser/react/build.js index 118e2eaa..1ce5a6ee 100755 --- a/src/vs/workbench/contrib/void/browser/react/build.js +++ b/src/vs/workbench/contrib/void/browser/react/build.js @@ -4,13 +4,42 @@ *--------------------------------------------------------------------------------------------*/ import { spawn, execSync } from 'child_process'; +// Added lines below +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const __void_name = 'void' + +// hack to refresh styles automatically +function saveStylesFile() { + setTimeout(() => { + try { + // Find "void" in __dirname and use that as our base: + const voidIdx = __dirname.indexOf(__void_name); + const baseDir = __dirname.substring(0, voidIdx + __void_name.length); + const target = path.join( + baseDir, + 'src/vs/workbench/contrib/void/browser/react/src2/styles.css' + ); + + // Or re-write with the same content: + const content = fs.readFileSync(target, 'utf8'); + fs.writeFileSync(target, content, 'utf8'); + console.log('[scope-tailwind] Force-saved styles.css'); + } catch (err) { + console.error('[scope-tailwind] Error saving styles.css:', err); + } + }, 3000); +} const args = process.argv.slice(2); const isWatch = args.includes('--watch') || args.includes('-w'); if (isWatch) { // Watch mode - // Create a watcher for scope-tailwind using nodemon const scopeTailwindWatcher = spawn('npx', [ 'nodemon', '--watch', 'src', @@ -19,15 +48,17 @@ if (isWatch) { 'npx scope-tailwind ./src -o src2/ -s void-scope -c styles.css -p "void-"' ]); - // Create a watcher for tsup in watch mode const tsupWatcher = spawn('npx', [ 'tsup', '--watch' ]); - // Handle scope-tailwind watcher output scopeTailwindWatcher.stdout.on('data', (data) => { console.log(`[scope-tailwind] ${data}`); + // If the output mentions "styles.css", trigger the save: + if (data.toString().includes('styles.css')) { + saveStylesFile(); + } }); scopeTailwindWatcher.stderr.on('data', (data) => { 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 8ecc9e8f..e64c43c3 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 @@ -70,7 +70,6 @@ export const BlockCode = ({ text, buttonsOnHover, language }: { text: string, bu return (<>
- {buttonsOnHover === null ? null : (
{buttonsOnHover}
diff --git a/src/vs/workbench/contrib/void/browser/react/src/markdown/ChatMarkdownRender.tsx b/src/vs/workbench/contrib/void/browser/react/src/markdown/ChatMarkdownRender.tsx index 62d24b1c..ef5221f7 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/markdown/ChatMarkdownRender.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/markdown/ChatMarkdownRender.tsx @@ -45,19 +45,18 @@ const CodeButtonsOnHover = ({ text }: { text: string }) => { }) }, [inlineDiffService]) - const isSingleLine = !text.includes('\n') return <>