Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Need a better (cross-platform friendly) way to configure additional PowerShell paths #5233

Open
Labels
Issue-EnhancementA feature request (enhancement).
@chawyehsu

Description

Prerequisites

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

Summary

Context

  • I use PowerShell across operating systems

  • I customized additional PowerShell executables for vscode-powershell using powerShellAdditionalExePaths:

    "powershell.powerShellAdditionalExePaths": {
     "PowerShell 7.5 (macOS)": "/opt/homebrew/bin/pwsh",
     "PowerShell 7 (Windows)": "C:/<path>/<to>/pwsh.exe"
    },
    "powershell.powerShellDefaultVersion": "PowerShell 7 (Windows)",
  • I'm syncing and reusing my vscode settings across operating systems

The problem

Every time I work with PowerShell files I have to bear the annoying warning of addtional executable I've configured for the other platform not being found.

Image

Proposed Design

Introduce a new cross-platform/syncing firendly way to customize additional executables

Proposed interface:

type OS = "Windows" | "macOS" | "Linux"
interface AddtionalPowerShellLocation {
 name: String
 path: String
 os: OS
 default: Boolean | undefined
}
type Locations = AddtionalPowerShellLocation[]

To not break1 existing powerShellAdditionalExePaths, it'd be a new additionalPowerShellLocations key for holding these locations:

"powershell.additionalPowerShellLocations": [
 {
 "name": "PowerShell 7",
 "path": "/opt/powershell/pwsh",
 "os": "macOS",
 "default": true
 },
 {
 "name": "PowerShell 7",
 "path": "C:/PowerShell/stable/pwsh.exe",
 "os": "Windows",
 "default": true
 },
 {
 "name": "PowerShell Nightly",
 "path": "C:/PowerShell/nightly/pwsh.exe",
 "os": "Windows"
 },
 {
 "name": "PowerShell Nightly",
 "path": "/opt/powershell-nightly/pwsh",
 "os": "macOS"
 },
 {
 "name": "PowerShell 7",
 "path": "/opt/powershell7/pwsh",
 "os": "Linux"
 }
]

Then vscode-powershell can filter out items that are not for the target platform, and launch the first additonal PowerShell executable it successfully resolved. Nothing changes for system fallbacks in this proposal.

powerShellAdditionalExePaths and powerShellDefaultVersion then could be marked as deprecated.

The proposed design might not be optimal, so please comment.

Footnotes

  1. It was a breaking change when powerShellAdditionalExePaths was introduced https://github.com/PowerShell/vscode-powershell/issues/4167

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-EnhancementA feature request (enhancement).

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /