Skip to content

Commit 78ea057

Browse files
authored
Merge pull request #161 from glennsarti/gh-88-use-smarter-node-graph
(GH-88) Use local Graph Renderer for node graphs
2 parents 0591ce5 + ac1c9ad commit 78ea057

File tree

2 files changed

+9
-26
lines changed

2 files changed

+9
-26
lines changed

client/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@
309309
},
310310
"dependencies": {
311311
"vscode-languageclient": "~3.3.0",
312-
"vscode-extension-telemetry": "^0.0.6"
312+
"vscode-extension-telemetry": "^0.0.6",
313+
"viz.js":"~1.8.0"
313314
}
314315
}

client/src/providers/previewNodeGraphProvider.ts

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { CompileNodeGraphRequest } from '../messages';
66
import { IConnectionManager, ConnectionStatus } from '../connection';
77
import { reporter } from '../telemetry/telemetry';
88
import * as messages from '../messages';
9+
import * as viz from 'viz.js';
910

1011
export function isNodeGraphFile(document: vscode.TextDocument) {
1112
return document.languageId === 'puppet'
@@ -63,7 +64,7 @@ export class PuppetNodeGraphContentProvider implements vscode.TextDocumentConten
6364
.then(
6465
(compileResult) => {
6566

66-
var graphContent = ''
67+
var svgContent = '';
6768
if (compileResult.dotContent != null) {
6869
var styling = `
6970
bgcolor = "transparent"
@@ -74,9 +75,10 @@ export class PuppetNodeGraphContentProvider implements vscode.TextDocumentConten
7475
7576
label = ""`
7677

77-
graphContent = compileResult.dotContent;
78+
var graphContent = compileResult.dotContent;
7879
graphContent = graphContent.replace(`label = "vscode"`,styling);
79-
graphContent = `<textarea id="graphviz_data" style="display:none">\n` + graphContent + `\n</textarea>`;
80+
81+
svgContent = viz(graphContent,"svg");
8082
}
8183

8284
var errorContent = `<div style='font-size: 1.5em'>${compileResult.error}</div>`
@@ -85,31 +87,11 @@ export class PuppetNodeGraphContentProvider implements vscode.TextDocumentConten
8587
reporter.sendTelemetryEvent(messages.PuppetCommandStrings.PuppetNodeGraphToTheSideCommandId);
8688
}
8789

88-
// WARNING - THIS IS A MAJOR HACK!!!
8990
return `
9091
${errorContent}
91-
${graphContent}
9292
<div id="graphviz_svg_div">
93-
<!-- Target for dynamic svg generation -->
94-
</div>
95-
96-
<!-- Defer loading of javascript by placing these tags at the tail end of the document -->
97-
<script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> </script>
98-
<script language="javascript" type="text/javascript" src="http://www.webgraphviz.com/viz.js"></script>
99-
100-
<script language="javascript" type="text/javascript">
101-
var svg_div = jQuery('#graphviz_svg_div');
102-
var graphviz_data_textarea = jQuery('#graphviz_data');
103-
104-
// Startup function: call UpdateGraphviz
105-
jQuery(function() {
106-
svg_div.html("");
107-
var data = graphviz_data_textarea.val();
108-
// Generate the Visualization of the Graph into "svg".
109-
var svg = Viz(data, "svg");
110-
svg_div.html(svg);
111-
});
112-
</script>`;
93+
${svgContent}
94+
</div>`;
11395
})
11496
});
11597
}

0 commit comments

Comments
 (0)