diff --git a/vscode-extension/package-lock.json b/vscode-extension/package-lock.json index 94f3270..3cf39af 100644 --- a/vscode-extension/package-lock.json +++ b/vscode-extension/package-lock.json @@ -13,6 +13,7 @@ "diff": "^8.0.0-beta", "express": "^4.19.2", "openai": "^4.53.2", + "react-inspector": "^9.0.0", "ws": "^8.18.0" }, "devDependencies": { @@ -2618,6 +2619,25 @@ "node": ">= 0.8" } }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-inspector": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-9.0.0.tgz", + "integrity": "sha512-w/VJucSeHxlwRa2nfM2k7YhpT1r5EtlDOClSR+L7DyQP91QMdfFEDXDs9bPYN4kzP7umFtom7L0b2GGjph4Kow==", + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0" + } + }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5143,6 +5163,18 @@ "unpipe": "1.0.0" } }, + "react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "peer": true + }, + "react-inspector": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-9.0.0.tgz", + "integrity": "sha512-w/VJucSeHxlwRa2nfM2k7YhpT1r5EtlDOClSR+L7DyQP91QMdfFEDXDs9bPYN4kzP7umFtom7L0b2GGjph4Kow==", + "requires": {} + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", diff --git a/vscode-extension/package.json b/vscode-extension/package.json index 254a7db..aef845d 100644 --- a/vscode-extension/package.json +++ b/vscode-extension/package.json @@ -10,6 +10,7 @@ }, "main": "./out/extension.js", "contributes": { + "viewsContainers": { "activitybar": [ { @@ -111,6 +112,7 @@ "diff": "^8.0.0-beta", "express": "^4.19.2", "openai": "^4.53.2", + "react-inspector": "^9.0.0", "ws": "^8.18.0" }, "extensionDependencies": [ diff --git a/vscode-extension/webview-ui/package.json b/vscode-extension/webview-ui/package.json index 9202628..a73be1b 100644 --- a/vscode-extension/webview-ui/package.json +++ b/vscode-extension/webview-ui/package.json @@ -28,7 +28,7 @@ "@types/react-dom": "^18.0.0", "@types/vscode-webview": "^1.57.0", "@vitejs/plugin-react": "^1.0.7", - "typescript": "^4.4.4", + "typescript": "^5.9.3", "vite": "^6.4.1" } } diff --git a/vscode-extension/webview-ui/src/tools.tsx b/vscode-extension/webview-ui/src/tools.tsx index d02cbfe..4dc3adb 100644 --- a/vscode-extension/webview-ui/src/tools.tsx +++ b/vscode-extension/webview-ui/src/tools.tsx @@ -1,141 +1,122 @@ import { AnnotationEditorProps } from "./App"; import React, { useEffect, useState, useRef } from "react"; +import { ObjectInspector } from "react-inspector"; import e from "cors"; -import "./tools.css"; +import './tools.css'; import LMUnitTest from "./LMUnitTest"; import ShowDebuggedExample from "./ShowDebuggedExample"; import { ChatMessage, lmApi, mockLmApi } from "./lm-api-client"; +import ReactMarkdown from 'react-markdown'; import { vscode } from "./utilities/vscode"; -import { - Generator, - FormalSpecification, - ExplainInEnglish, - OutputVisualizer, -} from "./additionalTools"; - -import MarkdownNote from "./MarkdownEditor"; - -type AnnotationType = React.FC; -interface ImageData { - file: File; - src: string; -} - -const commonTextStyle: React.CSSProperties = { - fontFamily: "Poppins, sans-serif", - fontSize: "14px", - color: "black", -}; + type AnnotationType = React.FC + interface ImageData { + file: File; + src: string; + } -const ColorPicker: AnnotationType = (props) => { - return ( -
- props.utils.setMetadata({ colorName: e.target.value })} - /> - props.utils.setText(e.target.value)} - /> -
- ); -}; + const commonTextStyle: React.CSSProperties = { + fontFamily: "Poppins, sans-serif", + fontSize: "14px", + color: "black", + }; -const Comment: React.FC = (props) => { - type Reply = { - datetime: string; - text: string; - }; + const ColorPicker: AnnotationType = (props) => { + return ( +
+ props.utils.setMetadata({ colorName: e.target.value })} + /> + props.utils.setText(e.target.value)} + /> +
+ ); + }; - const [comment, setComment] = useState(props.value.metadata.comment || ""); - const [replies, setReplies] = useState(props.value.metadata.replies || []); - const [newReplyText, setNewReplyText] = useState(""); + const Comment: React.FC = (props) => { + type Reply = { + datetime: string; + text: string; + }; - // useEffect(() => { - // const handler = setTimeout(() => { - // props.utils.setMetadata({ comment, replies }); - // }, 300); + const [comment, setComment] = useState(props.value.metadata.comment || ""); + const [replies, setReplies] = useState(props.value.metadata.replies || []); + const [newReplyText, setNewReplyText] = useState(""); - // return () => { - // clearTimeout(handler); - // }; - // }, [comment, replies]); + // useEffect(() => { + // const handler = setTimeout(() => { + // props.utils.setMetadata({ comment, replies }); + // }, 300); - const handleAddReply = () => { - if (newReplyText.trim() !== "") { - setReplies([...replies, { text: newReplyText, datetime: new Date().toLocaleString() }]); - setNewReplyText(""); - } - }; + // return () => { + // clearTimeout(handler); + // }; + // }, [comment, replies]); - const handleDeleteReply = (index: number) => { - const newReplies = replies.filter((_, i) => i !== index); - setReplies(newReplies); - }; - // setComment(e.target.value)} - return ( -
-
-
Alex Smith
-
- Today at 12:00 PM -
-
-
- {/* user icon */} - - - - - + const handleAddReply = () => { + if (newReplyText.trim() !== "") { + setReplies([...replies, { text: newReplyText, datetime: new Date().toLocaleString() }]); + setNewReplyText(""); + } + }; -