Skip to content

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

Open
@JustinGrote

Description

@JustinGrote

Prerequisites

  • I have written a descriptive issue title.
  • 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions