diff --git a/package-lock.json b/package-lock.json index 0f89c5e..3b6f35f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,16 @@ { "name": "rcheck", - "version": "0.0.1", + "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rcheck", - "version": "0.0.1", + "version": "0.1.0", "dependencies": { "@types/ejs": "^3.1.5", "@vscode-elements/elements": "^2.3.1", + "@vscode/codicons": "^0.0.44", "axios": "^1.9.0", "chalk": "~5.6.0", "commander": "~11.0.0", @@ -2537,8 +2538,7 @@ "version": "0.0.44", "resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.44.tgz", "integrity": "sha512-F7qPRumUK3EHjNdopfICLGRf3iNPoZQt+McTHAn4AlOWPB3W2kL4H0S7uqEqbyZ6rCxaeDjpAn3MCUnwTu/VJQ==", - "license": "CC-BY-4.0", - "peer": true + "license": "CC-BY-4.0" }, "node_modules/@vscode/iconv-lite-umd": { "version": "0.7.0", diff --git a/package.json b/package.json index f4e6343..38524d6 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "dependencies": { "@types/ejs": "^3.1.5", "@vscode-elements/elements": "^2.3.1", + "@vscode/codicons": "^0.0.44", "axios": "^1.9.0", "chalk": "~5.6.0", "commander": "~11.0.0", diff --git a/src/extension/cex.ts b/src/extension/cex.ts index 017d56b..5480794 100644 --- a/src/extension/cex.ts +++ b/src/extension/cex.ts @@ -32,32 +32,3 @@ export function renderStep(trace: Step[], x: Step) { return render; } -export function formatStep(render: State) { - return ` - -${Object.keys(render).sort().map(agent => ( - ` - - - ` -)).join("\n")} -
${agent}:${ - Object.keys(render[agent]) - .sort() - .filter(k => (k === "**state**") || !k.startsWith("**")) - .map(k => `${(k === "**state**") ? "state" : k}: ${render[agent][k]}`) - .filter(s => s.trim().length > 0) - .join(", ") - }
` -} - -export function formatTransition(t: Transition) { - const isSupplyGet = t.hasOwnProperty("___get-supply___"); - return ` - - - - - -
${isSupplyGet ? "Supplier" : "Sender"}: ${t.sender}
Command:
${t.send}
${isSupplyGet ? "Getter" : "Receivers"}: ${t.receivers.join(", ")}
` - } diff --git a/src/extension/common.ts b/src/extension/common.ts index 6b74cdf..2d80a50 100644 --- a/src/extension/common.ts +++ b/src/extension/common.ts @@ -54,13 +54,19 @@ export async function renderTemplate(ctx: vscode.ExtensionContext, fname: string const elementsUri = webview.asWebviewUri( vscode.Uri.joinPath( ctx.extensionUri, - "node_modules", - "@vscode-elements/elements", - "dist", - "bundled.js" + "node_modules", "@vscode-elements", + "elements", "dist", "bundled.js" + ) + ); + const codiconsUri = webview.asWebviewUri( + vscode.Uri.joinPath( + ctx.extensionUri, + "node_modules", "@vscode", "codicons", + "dist", "codicon.css" ) ); data["elementsUri"] = elementsUri; + data["codiconsUri"] = codiconsUri; data["cspSource"] = webview.cspSource; const html = ejs.renderFile(filePath, data); return html; diff --git a/src/extension/html/_step.html b/src/extension/html/_step.html new file mode 100644 index 0000000..bcd5376 --- /dev/null +++ b/src/extension/html/_step.html @@ -0,0 +1,38 @@ +{% if (transition != undefined) { %} + + + + + + + + + +
{%= isSupplyGet ? "Supplier" : "Sender" %}: {%= transition.sender %}
Command:
{%= transition.send %}
{%= isSupplyGet ? "Getter" : "Receivers" %}: {%= transition.receivers.join(", ") %}
+
+
+{% } %} + + +{%= depth %} +{% if (loop) { %}
Loop starts here{% } %} +{% if (deadlock) { %}
Deadlock state{% } %} +
+ + + {% Object.keys(step).sort().forEach(function(agent) { %} + + + + {% }); %} +
{%= agent %}: + {% Object.keys(step[agent]).filter(k => (k === "**state**") || !k.startsWith("**")).sort().forEach(function(varName) { %} +
{% if (varName === "**state**") { %} + state + {% } else { %} + {%= varName %} + {% } %}: {%= step[agent][varName] %}
+ {% }); %} +
+
+
\ No newline at end of file diff --git a/src/extension/html/_verify.single.html b/src/extension/html/_verify.single.html new file mode 100644 index 0000000..476acb8 --- /dev/null +++ b/src/extension/html/_verify.single.html @@ -0,0 +1,21 @@ +

{%= spec %} +{% if (isTrue) { %} ✅ +{% } else if (isFalse) { %} ❌ +{% } else { %} ❔ {% } %} +

+ + + +# +Changed Variables + + + {%- tbody %} + + + +
+ +
{%= output %}
+
+
\ No newline at end of file diff --git a/src/extension/html/simulate.html b/src/extension/html/simulate.html index f04f6a0..c017118 100644 --- a/src/extension/html/simulate.html +++ b/src/extension/html/simulate.html @@ -4,7 +4,7 @@ - Simulator: {%=fname%} + R-CHECK simulator: {%=fname%}