diff --git a/README.md b/README.md
index b11600f..c9fd0d5 100644
--- a/README.md
+++ b/README.md
@@ -15,10 +15,12 @@ You can get the extension in the [marketplace](https://marketplace.visualstudio.
## Dev Instructions
+This project uses yarn workspaces.
+
- Clone the repository
- Run `yarn` in the repository root
- Run `yarn build` initially (or `yarn dev` for every project)
-- Run `yarn dev` **inside** the project you are working on.
+- Run `yarn dev` for the project you are working on.
For the UI, `yarn dev` will start a webserver that you can access on port 8080.
You can use VS Code do launch and debug the extension.
diff --git a/docs/exported/main/Main.png b/docs/exported/main/Main.png
new file mode 100644
index 0000000..0c1c34a
Binary files /dev/null and b/docs/exported/main/Main.png differ
diff --git a/docs/main.plantuml b/docs/main.plantuml
new file mode 100644
index 0000000..6ba613e
--- /dev/null
+++ b/docs/main.plantuml
@@ -0,0 +1,12 @@
+@startuml Main
+
+[data-extraction]
+[debug-visualizer-webview]
+[debug-visualizer]
+
+[debug-visualizer-webview] ..> [debug-visualizer]: "Uses RPC contracts, connects using websockets"
+[debug-visualizer] ..> [debug-visualizer-webview]: "Opens Webview in VS Code"
+
+[debug-visualizer] ..> [data-extraction]: "Injects Runtime into JavaScript applications"
+
+@enduml
\ No newline at end of file
diff --git a/extension/package.json b/extension/package.json
index 7c6d393..4d5ad3b 100644
--- a/extension/package.json
+++ b/extension/package.json
@@ -1,5 +1,6 @@
{
"name": "debug-visualizer",
+ "private": true,
"displayName": "Debug Visualizer",
"description": "An extension that visualizes values while debugging.",
"icon": "docs/logo.png",
@@ -49,7 +50,7 @@
"pub": "vsce publish --yarn --baseImagesUrl https://github.com/hediet/vscode-debug-visualizer/raw/master/extension --baseContentUrl https://github.com/hediet/vscode-debug-visualizer/raw/master/extension",
"vscode:prepublish": "yarn build",
"build": "webpack --mode production",
- "dev": "tsc -watch -p ./"
+ "dev": "shx rm -rf dist && tsc -watch -p ./"
},
"dependencies": {
"@hediet/std": "^0.6.0",
@@ -74,6 +75,7 @@
"typescript": "^3.8.2",
"webpack": "^4.41.6",
"webpack-cli": "^3.3.11",
- "ts-loader": "^6.2.1"
+ "ts-loader": "^6.2.1",
+ "shx": "^0.3.2"
}
}
diff --git a/extension/src/ConnectionHandler.ts b/extension/src/ConnectionHandler.ts
index 4256382..0f0cb5f 100644
--- a/extension/src/ConnectionHandler.ts
+++ b/extension/src/ConnectionHandler.ts
@@ -1,5 +1,5 @@
import { Disposable } from "@hediet/std/disposable";
-import { debugVisualizerUIContract } from "@hediet/debug-visualizer-vscode-shared";
+import { debugVisualizerUIContract } from "./contract";
import { ConsoleRpcLogger, RequestHandlingError } from "@hediet/typed-json-rpc";
import { EvaluationWatcher, DataSource } from "./DataSource/DataSource";
import { WebSocketStream } from "@hediet/typed-json-rpc-websocket";
diff --git a/extension/src/DataSource/DataSource.ts b/extension/src/DataSource/DataSource.ts
index a8ea47f..be13202 100644
--- a/extension/src/DataSource/DataSource.ts
+++ b/extension/src/DataSource/DataSource.ts
@@ -1,8 +1,5 @@
import { DataExtractorId } from "@hediet/debug-visualizer-data-extraction";
-import {
- DataExtractionState,
- CompletionItem,
-} from "@hediet/debug-visualizer-vscode-shared";
+import { DataExtractionState, CompletionItem } from "../contract";
export interface DataSource {
createEvaluationWatcher(
diff --git a/extension/src/DataSource/DataSourceImpl.ts b/extension/src/DataSource/DataSourceImpl.ts
index e6292b6..7f27b98 100644
--- a/extension/src/DataSource/DataSourceImpl.ts
+++ b/extension/src/DataSource/DataSourceImpl.ts
@@ -6,10 +6,7 @@ import {
import { observable, autorun, action } from "mobx";
import { Disposable } from "@hediet/std/disposable";
import { DataExtractorId } from "@hediet/debug-visualizer-data-extraction";
-import {
- DataExtractionState,
- CompletionItem,
-} from "@hediet/debug-visualizer-vscode-shared";
+import { DataExtractionState, CompletionItem } from "../contract";
import { hotClass } from "@hediet/node-reload";
import { VsCodeDebuggerView } from "../VsCodeDebugger";
import { DataExtractionProviderFactory } from "./DataExtractionProvider/DataExtractionProvider";
diff --git a/extension/src/Server.ts b/extension/src/Server.ts
index a7bb61c..0136b49 100644
--- a/extension/src/Server.ts
+++ b/extension/src/Server.ts
@@ -1,7 +1,6 @@
import { WebSocketStream } from "@hediet/typed-json-rpc-websocket";
import { AddressInfo } from "net";
import WebSocket = require("ws");
-import { join } from "path";
import { ConnectionHandler } from "./ConnectionHandler";
import { Sources } from "./DataSource";
import * as express from "express";
@@ -9,6 +8,7 @@ import * as http from "http";
import * as serveStatic from "serve-static";
import { Config } from "./Config";
import cryptoRandomString = require("crypto-random-string");
+import { distPath } from "debug-visualizer-webview";
export class Server {
private server: http.Server;
@@ -16,11 +16,17 @@ export class Server {
constructor(sources: Sources, config: Config) {
const app = express();
- const distPath = join(__dirname, "../ui/dist");
+
app.use(serveStatic(distPath));
this.server = app.listen();
+ console.log(
+ `Serving "${distPath}" on port ${
+ (this.server.address() as AddressInfo).port
+ }`
+ );
+
const wss = new WebSocket.Server({ server: this.server });
wss.on("connection", ws => {
const stream = new WebSocketStream(ws);
diff --git a/extension/src/VsCodeDebugger.ts b/extension/src/VsCodeDebugger.ts
index 31fc397..97f0895 100644
--- a/extension/src/VsCodeDebugger.ts
+++ b/extension/src/VsCodeDebugger.ts
@@ -1,7 +1,7 @@
import { Disposable } from "@hediet/std/disposable";
import { debug, DebugSession } from "vscode";
import { EventEmitter } from "@hediet/std/events";
-import { CompletionItem } from "@hediet/debug-visualizer-vscode-shared";
+import { CompletionItem } from "./contract";
import { observable, runInAction } from "mobx";
export class VsCodeDebugger {
diff --git a/shared/src/contract.ts b/extension/src/contract.ts
similarity index 100%
rename from shared/src/contract.ts
rename to extension/src/contract.ts
diff --git a/extension/src/types.d.ts b/extension/src/types.d.ts
index 33a08b8..ef361e7 100644
--- a/extension/src/types.d.ts
+++ b/extension/src/types.d.ts
@@ -4,3 +4,7 @@ declare namespace NodeJS {
USE_DEV_UI?: "true";
}
}
+
+declare module "debug-visualizer-webview" {
+ export const distPath: string;
+}
diff --git a/extension/webpack.config.ts b/extension/webpack.config.ts
index 42f2beb..0881eb4 100644
--- a/extension/webpack.config.ts
+++ b/extension/webpack.config.ts
@@ -2,6 +2,7 @@ import * as webpack from "webpack";
import path = require("path");
import { CleanWebpackPlugin } from "clean-webpack-plugin";
import CopyPlugin = require("copy-webpack-plugin");
+import { readFileSync } from "fs";
const r = (file: string) => path.resolve(__dirname, file);
@@ -19,6 +20,7 @@ module.exports = {
vscode: "commonjs vscode",
"@hediet/debug-visualizer-data-extraction":
"@hediet/debug-visualizer-data-extraction",
+ "debug-visualizer-webview": "debug-visualizer-webview",
},
resolve: {
extensions: [".ts", ".js"],
@@ -41,14 +43,22 @@ module.exports = {
},
plugins: [
new CleanWebpackPlugin(),
- new CopyPlugin([
- {
- from: r("../data-extraction/"),
- to: r(
- "./dist/node_modules/@hediet/debug-visualizer-data-extraction/"
- ),
- ignore: ["**/node_modules/**/*"],
- },
- ]),
+ includeDependency(r("../data-extraction/")),
+ includeDependency(r("../webview/")),
],
} as webpack.Configuration;
+
+function includeDependency(location: string) {
+ const content = readFileSync(path.join(location, "package.json"), {
+ encoding: "utf8",
+ });
+ const pkgName = JSON.parse(content).name;
+
+ return new CopyPlugin([
+ {
+ from: location,
+ to: r(`./dist/node_modules/${pkgName}`),
+ ignore: ["**/node_modules/**/*"],
+ },
+ ]);
+}
diff --git a/package.json b/package.json
index dc69cdd..0afa6a6 100644
--- a/package.json
+++ b/package.json
@@ -1,16 +1,14 @@
{
"private": true,
"workspaces": [
- "./shared",
"./data-extraction",
"./extension",
- "./extension/ui"
+ "./webview"
],
"scripts": {
- "build": "yarn build-data-extraction && yarn build-shared && yarn build-extension && yarn build-ui",
+ "build": "yarn build-data-extraction && yarn build-extension && yarn build-ui",
"build-data-extraction": "yarn workspace @hediet/debug-visualizer-data-extraction build",
- "build-shared": "yarn workspace @hediet/debug-visualizer-vscode-shared build",
"build-extension": "yarn workspace debug-visualizer build",
- "build-ui": "yarn workspace debug-visualizer-ui build"
+ "build-ui": "yarn workspace debug-visualizer-webview build"
}
}
diff --git a/shared/package.json b/shared/package.json
deleted file mode 100644
index cfc6e49..0000000
--- a/shared/package.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "name": "@hediet/debug-visualizer-vscode-shared",
- "private": true,
- "version": "1.0.0",
- "main": "dist/index.js",
- "types": "dist/index.d.ts",
- "author": {
- "name": "Henning Dieterichs",
- "email": "henning.dieterichs@live.de"
- },
- "license": "MIT",
- "files": [
- "dist",
- "src"
- ],
- "scripts": {
- "dev": "tsc --watch",
- "build": "tsc"
- },
- "dependencies": {
- "@hediet/std": "^0.6.0",
- "@hediet/typed-json-rpc": "^0.7.7"
- }
-}
diff --git a/shared/src/index.ts b/shared/src/index.ts
deleted file mode 100644
index 52ef7a8..0000000
--- a/shared/src/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./contract";
diff --git a/shared/tsconfig.json b/shared/tsconfig.json
deleted file mode 100644
index 02e20c7..0000000
--- a/shared/tsconfig.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "compilerOptions": {
- "target": "esnext",
- "module": "commonjs",
- "strict": true,
- "outDir": "dist",
- "skipLibCheck": true,
- "rootDir": "./src",
- "resolveJsonModule": true,
- "declaration": true,
- "declarationMap": true,
- "newLine": "LF",
- "sourceMap": true
- },
- "include": ["./src/**/*"]
-}
diff --git a/webview/index.js b/webview/index.js
new file mode 100644
index 0000000..82a7dea
--- /dev/null
+++ b/webview/index.js
@@ -0,0 +1,5 @@
+// This is the entry point when this package is used as library from the extension.
+// This package MUST NOT be bundled.
+const path = require("path");
+
+module.exports.distPath = path.join(__dirname, "dist");
diff --git a/extension/ui/package.json b/webview/package.json
similarity index 96%
rename from extension/ui/package.json
rename to webview/package.json
index a40f6e6..f1ac8c8 100644
--- a/extension/ui/package.json
+++ b/webview/package.json
@@ -1,11 +1,12 @@
{
- "name": "debug-visualizer-ui",
+ "name": "debug-visualizer-webview",
"version": "0.0.1",
"scripts": {
"dev": "webpack-dev-server --hot",
"dev-playground": "webpack-dev-server --hot --port 8090 --playground",
"build": "webpack"
},
+ "main": "./index.js",
"dependencies": {
"@blueprintjs/core": "^3.23.1",
"@hediet/std": "^0.6.0",
diff --git a/extension/ui/src/Components/ExpressionInput.tsx b/webview/src/components/ExpressionInput.tsx
similarity index 98%
rename from extension/ui/src/Components/ExpressionInput.tsx
rename to webview/src/components/ExpressionInput.tsx
index 53420ce..955b399 100644
--- a/extension/ui/src/Components/ExpressionInput.tsx
+++ b/webview/src/components/ExpressionInput.tsx
@@ -1,5 +1,5 @@
import React = require("react");
-import { Model } from "../Model/Model";
+import { Model } from "../model/Model";
import { observer, disposeOnUnmount } from "mobx-react";
import { observable, action, autorun } from "mobx";
import * as monaco from "monaco-editor";
diff --git a/extension/ui/src/Components/GUI.tsx b/webview/src/components/GUI.tsx
similarity index 98%
rename from extension/ui/src/Components/GUI.tsx
rename to webview/src/components/GUI.tsx
index af71e3a..c761ada 100644
--- a/extension/ui/src/Components/GUI.tsx
+++ b/webview/src/components/GUI.tsx
@@ -2,7 +2,7 @@ import React = require("react");
import { Button, Spinner } from "@blueprintjs/core";
import { observable, action } from "mobx";
import { observer } from "mobx-react";
-import { Model } from "../Model/Model";
+import { Model } from "../model/Model";
import { ExpressionInput } from "./ExpressionInput";
import { Visualizer } from "./Visualizer";
import classnames = require("classnames");
diff --git a/extension/ui/src/Components/NoData.tsx b/webview/src/components/NoData.tsx
similarity index 100%
rename from extension/ui/src/Components/NoData.tsx
rename to webview/src/components/NoData.tsx
diff --git a/extension/ui/src/Components/Point.ts b/webview/src/components/Point.ts
similarity index 100%
rename from extension/ui/src/Components/Point.ts
rename to webview/src/components/Point.ts
diff --git a/extension/ui/src/Components/SvgElements.tsx b/webview/src/components/SvgElements.tsx
similarity index 100%
rename from extension/ui/src/Components/SvgElements.tsx
rename to webview/src/components/SvgElements.tsx
diff --git a/extension/ui/src/Components/Visualizer.tsx b/webview/src/components/Visualizer.tsx
similarity index 96%
rename from extension/ui/src/Components/Visualizer.tsx
rename to webview/src/components/Visualizer.tsx
index 5b5ce89..c52a7ff 100644
--- a/extension/ui/src/Components/Visualizer.tsx
+++ b/webview/src/components/Visualizer.tsx
@@ -1,5 +1,5 @@
import React = require("react");
-import { Model } from "../Model/Model";
+import { Model } from "../model/Model";
import { observer } from "mobx-react";
import { NoData } from "./NoData";
diff --git a/extension/ui/src/Components/VisualizerHeaderDetails.tsx b/webview/src/components/VisualizerHeaderDetails.tsx
similarity index 97%
rename from extension/ui/src/Components/VisualizerHeaderDetails.tsx
rename to webview/src/components/VisualizerHeaderDetails.tsx
index e8325bc..28dfcc4 100644
--- a/extension/ui/src/Components/VisualizerHeaderDetails.tsx
+++ b/webview/src/components/VisualizerHeaderDetails.tsx
@@ -3,8 +3,8 @@ import { Popover } from "@blueprintjs/core";
import { DataExtractorInfo } from "@hediet/debug-visualizer-data-extraction";
import { computed } from "mobx";
import { observer } from "mobx-react";
-import { Model } from "../Model/Model";
-import { VisualizationId } from "../Visualizers/Visualizer";
+import { Model } from "../model/Model";
+import { VisualizationId } from "../visualizers/Visualizer";
@observer
export class VisualizerHeaderDetails extends React.Component<{ model: Model }> {
diff --git a/extension/ui/src/index.tsx b/webview/src/index.tsx
similarity index 77%
rename from extension/ui/src/index.tsx
rename to webview/src/index.tsx
index ef1fa8f..2892db2 100644
--- a/extension/ui/src/index.tsx
+++ b/webview/src/index.tsx
@@ -1,8 +1,8 @@
import * as React from "react";
import * as ReactDOM from "react-dom";
import "./style.scss";
-import { Model } from "./Model/Model";
-import Components = require("./Components/GUI");
+import { Model } from "./model/Model";
+import Components = require("./components/GUI");
const model = new Model();
@@ -15,7 +15,7 @@ if (model.runningMode !== "webView") {
}
function render(target: HTMLDivElement) {
- const c = require("./Components/GUI") as typeof Components;
+ const c = require("./components/GUI") as typeof Components;
ReactDOM.render(, target);
}
@@ -31,7 +31,7 @@ declare var module: {
declare var require: (name: string) => any;
if (module.hot) {
- module.hot.accept("./Components/GUI", () => {
+ module.hot.accept("./components/GUI", () => {
render(target);
});
}
diff --git a/extension/ui/src/Model/Model.ts b/webview/src/model/Model.ts
similarity index 96%
rename from extension/ui/src/Model/Model.ts
rename to webview/src/model/Model.ts
index ee83890..dec9a63 100644
--- a/extension/ui/src/Model/Model.ts
+++ b/webview/src/model/Model.ts
@@ -1,13 +1,13 @@
import {
debugVisualizerUIContract,
DataExtractionState,
-} from "@hediet/debug-visualizer-vscode-shared";
+} from "debug-visualizer/src/contract";
import { WebSocketStream } from "@hediet/typed-json-rpc-websocket";
import { ConsoleRpcLogger } from "@hediet/typed-json-rpc";
import { observable, action, computed, when, autorun } from "mobx";
import { DataExtractorId } from "@hediet/debug-visualizer-data-extraction";
-import { Visualization, VisualizationId } from "../Visualizers/Visualizer";
-import { knownVisualizations } from "../Visualizers";
+import { Visualization, VisualizationId } from "../visualizers/Visualizer";
+import { knownVisualizations } from "../visualizers";
import { getApi as getVsCodeApi } from "./VsCodeApi";
import { MonacoBridge } from "./MonacoBridge";
import { Disposable } from "@hediet/std/disposable";
diff --git a/extension/ui/src/Model/MonacoBridge.ts b/webview/src/model/MonacoBridge.ts
similarity index 100%
rename from extension/ui/src/Model/MonacoBridge.ts
rename to webview/src/model/MonacoBridge.ts
diff --git a/extension/ui/src/Model/VsCodeApi.ts b/webview/src/model/VsCodeApi.ts
similarity index 100%
rename from extension/ui/src/Model/VsCodeApi.ts
rename to webview/src/model/VsCodeApi.ts
diff --git a/extension/ui/src/Model/lib.es5.d.ts.txt b/webview/src/model/lib.es5.d.ts.txt
similarity index 100%
rename from extension/ui/src/Model/lib.es5.d.ts.txt
rename to webview/src/model/lib.es5.d.ts.txt
diff --git a/extension/ui/src/playground.tsx b/webview/src/playground.tsx
similarity index 100%
rename from extension/ui/src/playground.tsx
rename to webview/src/playground.tsx
diff --git a/extension/ui/src/playground/index.tsx b/webview/src/playground/index.tsx
similarity index 94%
rename from extension/ui/src/playground/index.tsx
rename to webview/src/playground/index.tsx
index c6304de..837c3cb 100644
--- a/extension/ui/src/playground/index.tsx
+++ b/webview/src/playground/index.tsx
@@ -1,6 +1,6 @@
import React = require("react");
import "../style.scss";
-import { DecoratedGridComponent } from "../Visualizers/GridVisualizer";
+import { DecoratedGridComponent } from "../visualizers/GridVisualizer";
import { observable } from "mobx";
import { observer } from "mobx-react";
diff --git a/extension/ui/src/style.scss b/webview/src/style.scss
similarity index 100%
rename from extension/ui/src/style.scss
rename to webview/src/style.scss
diff --git a/extension/ui/src/Visualizers/AstVisualizer.tsx b/webview/src/visualizers/AstVisualizer.tsx
similarity index 98%
rename from extension/ui/src/Visualizers/AstVisualizer.tsx
rename to webview/src/visualizers/AstVisualizer.tsx
index e2b1b52..68eb11c 100644
--- a/extension/ui/src/Visualizers/AstVisualizer.tsx
+++ b/webview/src/visualizers/AstVisualizer.tsx
@@ -8,13 +8,13 @@ import {
isCommonDataType,
CommonDataTypes,
} from "@hediet/debug-visualizer-data-extraction";
-import { createTreeViewModelFromTreeNodeData } from "./TreeVisualizer/Visualizer";
+import { createTreeViewModelFromTreeNodeData } from "./TreeVisualizer/TreeVisualizer";
import { TreeWithPathView, TreeViewModel } from "./TreeVisualizer/Views";
import React = require("react");
import { observer, disposeOnUnmount } from "mobx-react";
import { observable, autorun, trace } from "mobx";
import * as monaco from "monaco-editor";
-import { getLanguageId } from "./TextVisualizer/MonacoTextVisualizer";
+import { getLanguageId } from "./text-visualizers/MonacoTextVisualizer";
import LineColumn = require("line-column");
export class AstVisualizer extends VisualizationProvider {
diff --git a/extension/ui/src/Visualizers/GridVisualizer.tsx b/webview/src/visualizers/GridVisualizer.tsx
similarity index 100%
rename from extension/ui/src/Visualizers/GridVisualizer.tsx
rename to webview/src/visualizers/GridVisualizer.tsx
diff --git a/extension/ui/src/Visualizers/PlotlyVisualizer.tsx b/webview/src/visualizers/PlotlyVisualizer.tsx
similarity index 100%
rename from extension/ui/src/Visualizers/PlotlyVisualizer.tsx
rename to webview/src/visualizers/PlotlyVisualizer.tsx
diff --git a/extension/ui/src/Visualizers/SvgVisualizer.tsx b/webview/src/visualizers/SvgVisualizer.tsx
similarity index 100%
rename from extension/ui/src/Visualizers/SvgVisualizer.tsx
rename to webview/src/visualizers/SvgVisualizer.tsx
diff --git a/extension/ui/src/Visualizers/TreeVisualizer/Visualizer.tsx b/webview/src/visualizers/TreeVisualizer/TreeVisualizer.tsx
similarity index 100%
rename from extension/ui/src/Visualizers/TreeVisualizer/Visualizer.tsx
rename to webview/src/visualizers/TreeVisualizer/TreeVisualizer.tsx
index ccd6a7e..42726de 100644
--- a/extension/ui/src/Visualizers/TreeVisualizer/Visualizer.tsx
+++ b/webview/src/visualizers/TreeVisualizer/TreeVisualizer.tsx
@@ -16,6 +16,25 @@ import {
} from "../Visualizer";
import React = require("react");
+export class TreeVisualizer extends VisualizationProvider {
+ getVisualizations(
+ data: ExtractedData,
+ collector: VisualizationCollector
+ ): void {
+ if (isCommonDataType(data, { tree: true })) {
+ collector.addVisualization({
+ id: asVisualizationId("tree"),
+ name: "Tree",
+ priority: 100,
+ render() {
+ const m = createTreeViewModelFromTreeNodeData(data.root);
+ return ;
+ },
+ });
+ }
+ }
+}
+
export function createTreeViewModelFromTreeNodeData(
root: TreeNode
): TreeViewModel {
@@ -46,22 +65,3 @@ export function createTreeViewModelFromTreeNodeData(
return model;
}
}
-
-export class TreeVisualizer extends VisualizationProvider {
- getVisualizations(
- data: ExtractedData,
- collector: VisualizationCollector
- ): void {
- if (isCommonDataType(data, { tree: true })) {
- collector.addVisualization({
- id: asVisualizationId("tree"),
- name: "Tree",
- priority: 100,
- render() {
- const m = createTreeViewModelFromTreeNodeData(data.root);
- return ;
- },
- });
- }
- }
-}
diff --git a/extension/ui/src/Visualizers/TreeVisualizer/Views.tsx b/webview/src/visualizers/TreeVisualizer/Views.tsx
similarity index 99%
rename from extension/ui/src/Visualizers/TreeVisualizer/Views.tsx
rename to webview/src/visualizers/TreeVisualizer/Views.tsx
index 697413a..b2e6247 100644
--- a/extension/ui/src/Visualizers/TreeVisualizer/Views.tsx
+++ b/webview/src/visualizers/TreeVisualizer/Views.tsx
@@ -2,8 +2,8 @@ import { observer, disposeOnUnmount } from "mobx-react";
import { observable, autorun, computed, action, runInAction } from "mobx";
import React = require("react");
import classNames = require("classnames");
-import { Rectangle, Point } from "../../Components/Point";
-import { SvgLine } from "../../Components/SvgElements";
+import { Rectangle, Point } from "../../components/Point";
+import { SvgLine } from "../../components/SvgElements";
import "./style.scss";
export class TreeViewModel {
diff --git a/extension/ui/src/Visualizers/TreeVisualizer/style.scss b/webview/src/visualizers/TreeVisualizer/style.scss
similarity index 100%
rename from extension/ui/src/Visualizers/TreeVisualizer/style.scss
rename to webview/src/visualizers/TreeVisualizer/style.scss
diff --git a/extension/ui/src/Visualizers/Visualizer.ts b/webview/src/visualizers/Visualizer.ts
similarity index 100%
rename from extension/ui/src/Visualizers/Visualizer.ts
rename to webview/src/visualizers/Visualizer.ts
diff --git a/extension/ui/src/Visualizers/GraphVisualizer/GraphvizDotVisualizer.tsx b/webview/src/visualizers/graph-visualizers/GraphvizDotVisualizer.tsx
similarity index 100%
rename from extension/ui/src/Visualizers/GraphVisualizer/GraphvizDotVisualizer.tsx
rename to webview/src/visualizers/graph-visualizers/GraphvizDotVisualizer.tsx
diff --git a/extension/ui/src/Visualizers/GraphVisualizer/GraphvizGraphVisualizer.tsx b/webview/src/visualizers/graph-visualizers/GraphvizGraphVisualizer.tsx
similarity index 100%
rename from extension/ui/src/Visualizers/GraphVisualizer/GraphvizGraphVisualizer.tsx
rename to webview/src/visualizers/graph-visualizers/GraphvizGraphVisualizer.tsx
diff --git a/extension/ui/src/Visualizers/GraphVisualizer/VisJsGraphVisualizer.tsx b/webview/src/visualizers/graph-visualizers/VisJsGraphVisualizer.tsx
similarity index 100%
rename from extension/ui/src/Visualizers/GraphVisualizer/VisJsGraphVisualizer.tsx
rename to webview/src/visualizers/graph-visualizers/VisJsGraphVisualizer.tsx
diff --git a/extension/ui/src/Visualizers/index.ts b/webview/src/visualizers/index.ts
similarity index 57%
rename from extension/ui/src/Visualizers/index.ts
rename to webview/src/visualizers/index.ts
index 8e34328..8df895f 100644
--- a/extension/ui/src/Visualizers/index.ts
+++ b/webview/src/visualizers/index.ts
@@ -1,13 +1,13 @@
import "./style.scss";
import { ComposedVisualizationProvider } from "./Visualizer";
-import { TreeVisualizer } from "./TreeVisualizer/Visualizer";
-import { GraphvizGraphVisualizer } from "./GraphVisualizer/GraphvizGraphVisualizer";
+import { TreeVisualizer } from "./TreeVisualizer/TreeVisualizer";
+import { GraphvizGraphVisualizer } from "./graph-visualizers/GraphvizGraphVisualizer";
import { SvgVisualizer } from "./SvgVisualizer";
-import { GraphvizDotVisualizer } from "./GraphVisualizer/GraphvizDotVisualizer";
-import { TextVisualizer } from "./TextVisualizer/TextVisualizer";
-import { MonacoTextVisualizer } from "./TextVisualizer/MonacoTextVisualizer";
+import { GraphvizDotVisualizer } from "./graph-visualizers/GraphvizDotVisualizer";
+import { TextVisualizer } from "./text-visualizers/TextVisualizer";
+import { MonacoTextVisualizer } from "./text-visualizers/MonacoTextVisualizer";
import { AstVisualizer } from "./AstVisualizer";
-import { VisJsGraphVisualizer } from "./GraphVisualizer/VisJsGraphVisualizer";
+import { VisJsGraphVisualizer } from "./graph-visualizers/VisJsGraphVisualizer";
import { PlotlyVisualizer } from "./PlotlyVisualizer";
import { GridVisualizer } from "./GridVisualizer";
diff --git a/extension/ui/src/Visualizers/style.scss b/webview/src/visualizers/style.scss
similarity index 100%
rename from extension/ui/src/Visualizers/style.scss
rename to webview/src/visualizers/style.scss
diff --git a/extension/ui/src/Visualizers/TextVisualizer/MonacoTextVisualizer.tsx b/webview/src/visualizers/text-visualizers/MonacoTextVisualizer.tsx
similarity index 100%
rename from extension/ui/src/Visualizers/TextVisualizer/MonacoTextVisualizer.tsx
rename to webview/src/visualizers/text-visualizers/MonacoTextVisualizer.tsx
diff --git a/extension/ui/src/Visualizers/TextVisualizer/TextVisualizer.tsx b/webview/src/visualizers/text-visualizers/TextVisualizer.tsx
similarity index 100%
rename from extension/ui/src/Visualizers/TextVisualizer/TextVisualizer.tsx
rename to webview/src/visualizers/text-visualizers/TextVisualizer.tsx
diff --git a/extension/ui/src/Visualizers/types.d.ts b/webview/src/visualizers/types.d.ts
similarity index 100%
rename from extension/ui/src/Visualizers/types.d.ts
rename to webview/src/visualizers/types.d.ts
diff --git a/extension/ui/src/vscode-dark.scss b/webview/src/vscode-dark.scss
similarity index 100%
rename from extension/ui/src/vscode-dark.scss
rename to webview/src/vscode-dark.scss
diff --git a/extension/ui/src/vscode-light.scss b/webview/src/vscode-light.scss
similarity index 100%
rename from extension/ui/src/vscode-light.scss
rename to webview/src/vscode-light.scss
diff --git a/extension/ui/tsconfig.json b/webview/tsconfig.json
similarity index 100%
rename from extension/ui/tsconfig.json
rename to webview/tsconfig.json
diff --git a/extension/ui/webpack.config.js b/webview/webpack.config.js
similarity index 100%
rename from extension/ui/webpack.config.js
rename to webview/webpack.config.js
diff --git a/extension/ui/webpack.config.ts b/webview/webpack.config.ts
similarity index 89%
rename from extension/ui/webpack.config.ts
rename to webview/webpack.config.ts
index 986e780..6393e27 100644
--- a/extension/ui/webpack.config.ts
+++ b/webview/webpack.config.ts
@@ -47,7 +47,12 @@ module.exports = {
new CleanWebpackPlugin(),
];
if (mode === "default") {
- plugins.push(new MonacoWebpackPlugin());
+ plugins.push(
+ new MonacoWebpackPlugin({
+ // Add more languages here once webworker issues are solved.
+ languages: ["typescript"],
+ })
+ );
}
return plugins;
})(),
diff --git a/extension/ui/yarn.lock b/webview/yarn.lock
similarity index 100%
rename from extension/ui/yarn.lock
rename to webview/yarn.lock
diff --git a/yarn.lock b/yarn.lock
index 5b9f64a..3f344f8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2906,6 +2906,11 @@ es6-iterator@^2.0.3, es6-iterator@~2.0.3:
es5-ext "^0.10.35"
es6-symbol "^3.1.1"
+es6-object-assign@^1.0.3:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c"
+ integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=
+
es6-promise@^3.0.2:
version "3.3.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
@@ -4659,7 +4664,7 @@ internal-ip@^4.3.0:
default-gateway "^4.2.0"
ipaddr.js "^1.9.0"
-interpret@1.2.0:
+interpret@1.2.0, interpret@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
@@ -7292,6 +7297,13 @@ readdirp@^3.1.1:
dependencies:
picomatch "^2.0.4"
+rechoir@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
+ integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=
+ dependencies:
+ resolve "^1.1.6"
+
redent@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
@@ -7581,7 +7593,7 @@ resolve@^0.6.1:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.6.3.tgz#dd957982e7e736debdf53b58a4dd91754575dd46"
integrity sha1-3ZV5gufnNt699TtYpN2RdUV13UY=
-resolve@^1.0.0, resolve@^1.1.5:
+resolve@^1.0.0, resolve@^1.1.5, resolve@^1.1.6:
version "1.15.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8"
integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==
@@ -7979,6 +7991,24 @@ shebang-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
+shelljs@^0.8.1:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097"
+ integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==
+ dependencies:
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
+
+shx@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.2.tgz#40501ce14eb5e0cbcac7ddbd4b325563aad8c123"
+ integrity sha512-aS0mWtW3T2sHAenrSrip2XGv39O9dXIFUqxAEWHEOS1ePtGIBavdPJY1kE2IHl14V/4iCbUiNDPGdyYTtmhSoA==
+ dependencies:
+ es6-object-assign "^1.0.3"
+ minimist "^1.2.0"
+ shelljs "^0.8.1"
+
signal-exit@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"