diff --git a/README.md b/README.md index 218cd6efd..bee439b5d 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,8 @@ Open the command palette (`⌘ + ⇧ + p`) and simply call the `Start Protein Vi Right-click on the file or selection of files in the file editor and select `Launch Protein Viewer from File(s)` +You can also open a file in the editor from the integrated terminal (for example on a remote server) and then run `Launch Protein Viewer from File(s)` from the command palette to load the active file. + **✅ Supported Formats** * `.pdb` diff --git a/out/extension.js b/out/extension.js index c2029b792..afb0e900c 100644 --- a/out/extension.js +++ b/out/extension.js @@ -15,9 +15,18 @@ async function activate(context) { }); }); const activateFromFiles = vscode.commands.registerCommand("protein-viewer.activateFromFiles", (file_uri, selectedFiles) => { - console.log(file_uri); - console.log(selectedFiles); - ProteinViewerPanel_1.ProteinViewerPanel.renderFromFiles(context.extensionUri, selectedFiles); + const filesToOpen = selectedFiles && selectedFiles.length > 0 + ? selectedFiles + : file_uri + ? [file_uri] + : vscode.window.activeTextEditor + ? [vscode.window.activeTextEditor.document.uri] + : []; + if (filesToOpen.length === 0) { + void vscode.window.showErrorMessage("No structure file selected or active."); + return; + } + ProteinViewerPanel_1.ProteinViewerPanel.renderFromFiles(context.extensionUri, filesToOpen); }); const activateFromFolder = vscode.commands.registerCommand("protein-viewer.activateFromFolder", (folder_uri) => { vscode.workspace.findFiles(`${vscode.workspace.asRelativePath(folder_uri)}/*.pdb`).then((files_uri) => { diff --git a/out/extension.js.map b/out/extension.js.map index cfd8963dd..93b84a49d 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/src/extension.ts b/src/extension.ts index bea71387d..b1e32e14f 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -14,10 +14,21 @@ export async function activate(context: vscode.ExtensionContext) { }); }); - const activateFromFiles = vscode.commands.registerCommand("protein-viewer.activateFromFiles", (file_uri: vscode.Uri, selectedFiles: vscode.Uri[]) => { - console.log(file_uri); - console.log(selectedFiles); - ProteinViewerPanel.renderFromFiles(context.extensionUri, selectedFiles); + const activateFromFiles = vscode.commands.registerCommand("protein-viewer.activateFromFiles", (file_uri: vscode.Uri | undefined, selectedFiles: vscode.Uri[] | undefined) => { + const filesToOpen = selectedFiles && selectedFiles.length > 0 + ? selectedFiles + : file_uri + ? [file_uri] + : vscode.window.activeTextEditor + ? [vscode.window.activeTextEditor.document.uri] + : []; + + if (filesToOpen.length === 0) { + void vscode.window.showErrorMessage("No structure file selected or active."); + return; + } + + ProteinViewerPanel.renderFromFiles(context.extensionUri, filesToOpen); }); const activateFromFolder = vscode.commands.registerCommand("protein-viewer.activateFromFolder", (folder_uri: vscode.Uri) => {