vscode-powershell icon indicating copy to clipboard operation
vscode-powershell copied to clipboard

Enhancement: Text Editor Drop API support for .ps1/.psm1 files

Open JustinGrote opened this issue 3 years ago • 0 comments

Prerequisites

  • [X] I have written a descriptive issue title.
  • [X] I have searched all issues to ensure it has not already been reported.

Summary

Just dropping this here for posterity/discussion. The new vscode release has a proposed API that allows you to drag and drop files into the editor window that will end up stable most likely in the next release. https://code.visualstudio.com/updates/v1_67#_drop-into-editor

Proposed Design

I think our implementation should translate this into a dot-source, so you can drag a .ps1 file and get a relative path mapping from your current editor. If the editor is unsaved, it will be an absolute path reference instead.

The relative should be built using $PSScriptRoot, so $PSScriptRoot/../mydraggedfile.ps1. Maybe have a preference to toggle this behavior over just normal relative pathing.

Files with a .psd1 or .psm1 prefix would have Import-Module prepended.

Files with a .dll prefix would have Add-Type -path prepended. A binary module should have its .psd1 dropped instead if the intention is to have it via import-module, it's considered bad form to import-module a .dll directly except for testing purposes.

Any other file type would simply drop in as a string reference.

Perhaps have an extensible setting for more file types with a simple templating substitution? For instance a setting like this:

{
  "extension": ".xlsx",
  "template": "Import-Excel -Path ${filename}"
}

Multiple files dropped would result in individual lines generated for each.

JustinGrote avatar May 07 '22 00:05 JustinGrote