diff --git a/src/diagram/index.ts b/src/diagram/index.ts index a0f39a6..4a10da5 100644 --- a/src/diagram/index.ts +++ b/src/diagram/index.ts @@ -38,7 +38,7 @@ export default function useDiagram(context: ExtensionContext) { const position = editor?.selection.active; const line = editor?.document.lineAt(position?.line!); const text = editor?.document.getText(new Range(line?.range.start!, line?.range.end!)); - const regex = /(?`); - panel.webview.postMessage({ - regexpGroups: regexpList, - }); + if (regexpList.length) { + const panel = window.createWebviewPanel( + 'Diagram', + 'Diagram', + ViewColumn.Two, + { + enableScripts: true, + } + ); + panel.webview.html = getWebViewContent(context, 'out/diagram/index.html') + .replace('{{ inject-script }}', ``); + panel.webview.postMessage({ + regexpGroups: regexpList, + }); + } else { + window.showWarningMessage('未找到正则表达式'); + } }); } diff --git a/src/diagram/webview/components/Diagram.tsx b/src/diagram/webview/components/Diagram.tsx index f5b8b1c..e4f3b3c 100644 --- a/src/diagram/webview/components/Diagram.tsx +++ b/src/diagram/webview/components/Diagram.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { parse, visualize, Raphael } from 'regulex-cjs'; import { useEffect } from 'react'; -interface IDiagramProps { +interface IDiagramProps extends React.HTMLAttributes { regexp: string | RegExp; } diff --git a/src/diagram/webview/views/RegexpDiagram.tsx b/src/diagram/webview/views/RegexpDiagram.tsx index 7a88e48..b295208 100644 --- a/src/diagram/webview/views/RegexpDiagram.tsx +++ b/src/diagram/webview/views/RegexpDiagram.tsx @@ -8,7 +8,7 @@ export const RegexpDiagramView: React.FC = () => { return ( <>
- {regexpGroups.map((regexp: string) => )} + {regexpGroups.map((regexp: string) => )}
);