diff --git a/out/extension.js b/out/extension.js index 78ec98cc..59eeadfa 100644 --- a/out/extension.js +++ b/out/extension.js @@ -89,7 +89,13 @@ async function activate(context) { }); }); }); - context.subscriptions.push(helloCommand, activateFromFiles, activateFromFolder, ESMFold); + const viewCurrentPDB = vscode.commands.registerCommand("protein-viewer.viewCurrentPDB", () => { + const activeEditor = vscode.window.activeTextEditor?.document.uri; + if (activeEditor) { + ProteinViewerPanel_1.ProteinViewerPanel.renderFromFiles(context.extensionUri, [activeEditor]); + } + }); + context.subscriptions.push(helloCommand, activateFromFiles, activateFromFolder, ESMFold, viewCurrentPDB); } // this method is called when your extension is deactivated // export function deactivate() {} diff --git a/out/extension.js.map b/out/extension.js.map index 6d327e81..d9193d89 100644 --- a/out/extension.js.map +++ b/out/extension.js.map @@ -1 +1 @@ -{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/out/test/suite/extension.test.js b/out/test/suite/extension.test.js index d7db3c9a..3561641b 100644 --- a/out/test/suite/extension.test.js +++ b/out/test/suite/extension.test.js @@ -21,7 +21,7 @@ suite('Extension', () => { }); test('registers all contributed commands', async () => { const commands = await vscode.commands.getCommands(true); - for (const id of ['start', 'activateFromFiles', 'activateFromFolder', 'ESMFold']) { + for (const id of ['start', 'activateFromFiles', 'activateFromFolder', 'ESMFold', 'viewCurrentPDB']) { assert.ok(commands.includes(`protein-viewer.${id}`), `missing protein-viewer.${id}`); } }); @@ -50,6 +50,12 @@ suite('Extension', () => { assert.match(html, /3eiy\.PDB", "pdb"/); assert.match(html, /esmfold\.pdb", "pdb"/); }); + test('viewCurrentPDB opens the active editor file', async () => { + const file = vscode.Uri.file(path.join(testFiles, '3eiy.PDB')); + await vscode.window.showTextDocument(file); + await vscode.commands.executeCommand('protein-viewer.viewCurrentPDB'); + assert.match(panelHtml(), /3eiy\.PDB", "pdb"/); + }); suite('start', () => { const realShowInputBox = vscode.window.showInputBox; const stubInput = (value) => { diff --git a/out/test/suite/extension.test.js.map b/out/test/suite/extension.test.js.map index 72722522..c8258828 100644 --- a/out/test/suite/extension.test.js.map +++ b/out/test/suite/extension.test.js.map @@ -1 +1 @@ -{"version":3,"file":"extension.test.js","sourceRoot":"","sources":["../../../src/test/suite/extension.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"extension.test.js","sourceRoot":"","sources":["../../../src/test/suite/extension.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 6013b431..06d95924 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,8 @@ "onCommand:protein-viewer.start", "onCommand:protein-viewer.activateFromFiles", "onCommand:protein-viewer.activateFromFolder", - "onCommand:protein-viewer.ESMFold" + "onCommand:protein-viewer.ESMFold", + "onCommand:protein-viewer.viewCurrentPDB" ], "main": "./out/extension.js", "contributes": { @@ -68,6 +69,10 @@ { "command": "protein-viewer.ESMFold", "title": "ESMFold Sequence" + }, + { + "command": "protein-viewer.viewCurrentPDB", + "title": "View structure in Protein Viewer" } ], "menus": { diff --git a/src/extension.ts b/src/extension.ts index 5925e981..2ac1868f 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -94,7 +94,15 @@ export async function activate(context: vscode.ExtensionContext) { }); }); - context.subscriptions.push(helloCommand, activateFromFiles, activateFromFolder, ESMFold); + + const viewCurrentPDB = vscode.commands.registerCommand("protein-viewer.viewCurrentPDB", () => { + const activeEditor = vscode.window.activeTextEditor?.document.uri; + if (activeEditor) { + ProteinViewerPanel.renderFromFiles(context.extensionUri, [activeEditor]); + } + }); + + context.subscriptions.push(helloCommand, activateFromFiles, activateFromFolder, ESMFold, viewCurrentPDB); } // this method is called when your extension is deactivated diff --git a/src/test/suite/extension.test.ts b/src/test/suite/extension.test.ts index 1002fa59..32db3f90 100644 --- a/src/test/suite/extension.test.ts +++ b/src/test/suite/extension.test.ts @@ -24,7 +24,7 @@ suite('Extension', () => { test('registers all contributed commands', async () => { const commands = await vscode.commands.getCommands(true); - for (const id of ['start', 'activateFromFiles', 'activateFromFolder', 'ESMFold']) { + for (const id of ['start', 'activateFromFiles', 'activateFromFolder', 'ESMFold', 'viewCurrentPDB']) { assert.ok(commands.includes(`protein-viewer.${id}`), `missing protein-viewer.${id}`); } }); @@ -58,6 +58,13 @@ suite('Extension', () => { assert.match(html, /esmfold\.pdb", "pdb"/); }); + test('viewCurrentPDB opens the active editor file', async () => { + const file = vscode.Uri.file(path.join(testFiles, '3eiy.PDB')); + await vscode.window.showTextDocument(file); + await vscode.commands.executeCommand('protein-viewer.viewCurrentPDB'); + assert.match(panelHtml(), /3eiy\.PDB", "pdb"/); + }); + suite('start', () => { const realShowInputBox = vscode.window.showInputBox; const stubInput = (value: string | undefined) => {