about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2023-04-13 22:01:57 +0200
committerLukas Wirth <lukastw97@gmail.com>2023-04-13 22:01:57 +0200
commit34177d85526695074b031201e199833a95c471d3 (patch)
tree1a7c84b66cf634737471abaefc20caa21ee70e3b
parent7a6d5c680cdb9cee3c292ed2ac4f0ea3893694e1 (diff)
downloadrust-34177d85526695074b031201e199833a95c471d3.tar.gz
rust-34177d85526695074b031201e199833a95c471d3.zip
minor: Allow copying the graphviz source from the view crategraph webview
-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>
             `;