diff options
| author | Jonas Schievink <jonasschievink@gmail.com> | 2021-05-11 16:15:31 +0200 |
|---|---|---|
| committer | Jonas Schievink <jonasschievink@gmail.com> | 2021-05-11 16:15:31 +0200 |
| commit | a85a2c4d151d9d2e8fb016d76aad99a6ca88bc75 (patch) | |
| tree | 636c0727298fd9d60a7b2a639c49dca8ba73d813 /editors/code/src | |
| parent | 9fa9d166d8141bb9ca4fcf0544c49b903fb85e09 (diff) | |
| download | rust-a85a2c4d151d9d2e8fb016d76aad99a6ca88bc75.tar.gz rust-a85a2c4d151d9d2e8fb016d76aad99a6ca88bc75.zip | |
Allow viewing the crate graph in a webview
Diffstat (limited to 'editors/code/src')
| -rw-r--r-- | editors/code/src/commands.ts | 8 | ||||
| -rw-r--r-- | editors/code/src/lsp_ext.ts | 2 | ||||
| -rw-r--r-- | editors/code/src/main.ts | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/editors/code/src/commands.ts b/editors/code/src/commands.ts index 4092435dbe7..8ab259af221 100644 --- a/editors/code/src/commands.ts +++ b/editors/code/src/commands.ts @@ -429,6 +429,14 @@ export function viewHir(ctx: Ctx): Cmd { }; } +export function viewCrateGraph(ctx: Ctx): Cmd { + return async () => { + const panel = vscode.window.createWebviewPanel("rust-analyzer.crate-graph", "rust-analyzer crate graph", vscode.ViewColumn.Two); + const svg = await ctx.client.sendRequest(ra.viewCrateGraph); + panel.webview.html = svg; + }; +} + // Opens the virtual file that will show the syntax tree // // The contents of the file come from the `TextDocumentContentProvider` diff --git a/editors/code/src/lsp_ext.ts b/editors/code/src/lsp_ext.ts index f78de894b54..aa745a65ce6 100644 --- a/editors/code/src/lsp_ext.ts +++ b/editors/code/src/lsp_ext.ts @@ -27,6 +27,8 @@ export const syntaxTree = new lc.RequestType<SyntaxTreeParams, string, void>("ru export const viewHir = new lc.RequestType<lc.TextDocumentPositionParams, string, void>("rust-analyzer/viewHir"); +export const viewCrateGraph = new lc.RequestType0<string, void>("rust-analyzer/viewCrateGraph"); + export interface ExpandMacroParams { textDocument: lc.TextDocumentIdentifier; position: lc.Position; diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index 643fb643f3a..516322d035d 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts @@ -106,6 +106,7 @@ async function tryActivate(context: vscode.ExtensionContext) { ctx.registerCommand('parentModule', commands.parentModule); ctx.registerCommand('syntaxTree', commands.syntaxTree); ctx.registerCommand('viewHir', commands.viewHir); + ctx.registerCommand('viewCrateGraph', commands.viewCrateGraph); ctx.registerCommand('expandMacro', commands.expandMacro); ctx.registerCommand('run', commands.run); ctx.registerCommand('copyRunCommandLine', commands.copyRunCommandLine); |
