about summary refs log tree commit diff
path: root/editors/code/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-04-13 20:03:44 +0000
committerbors <bors@rust-lang.org>2023-04-13 20:03:44 +0000
commit2c251a7e2bdd44120f900063bc1809c1475a7372 (patch)
tree2b6591b6d55fc6376a399994e0c60803040e87a5 /editors/code/src
parent08ce44e7d5eb6498c999dea5042cfac0e8f5eeda (diff)
parent34177d85526695074b031201e199833a95c471d3 (diff)
downloadrust-2c251a7e2bdd44120f900063bc1809c1475a7372.tar.gz
rust-2c251a7e2bdd44120f900063bc1809c1475a7372.zip
Auto merge of #14565 - Veykril:view-crate-graph, r=Veykril
minor: Allow copying the graphviz source from the view crategraph webview
Diffstat (limited to 'editors/code/src')
-rw-r--r--editors/code/src/commands.ts7
1 files changed, 6 insertions, 1 deletions
diff --git a/editors/code/src/commands.ts b/editors/code/src/commands.ts
index 507a6260e17..5209fecc069 100644
--- a/editors/code/src/commands.ts
+++ b/editors/code/src/commands.ts
@@ -667,17 +667,22 @@ function crateGraph(ctx: CtxInit, full: boolean): Cmd {
                 <script type="text/javascript" src="${uri}/d3-graphviz/build/d3-graphviz.min.js"></script>
                 <div id="graph"></div>
                 <script>
+                    let dot = \`${dot}\`;
                     let graph = d3.select("#graph")
                                   .graphviz({ useWorker: false, useSharedWorker: false })
                                   .fit(true)
                                   .zoomScaleExtent([0.1, Infinity])
-                                  .renderDot(\`${dot}\`);
+                                  .renderDot(dot);
 
                     d3.select(window).on("click", (event) => {
                         if (event.ctrlKey) {
                             graph.resetZoom(d3.transition().duration(100));
                         }
                     });
+                    d3.select(window).on("copy", (event) => {
+                        event.clipboardData.setData("text/plain", dot);
+                        event.preventDefault();
+                    });
                 </script>
             </body>
             `;