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
: -
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.
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
-
It was a breaking change when
powerShellAdditionalExePaths
was introduced https://github.com/PowerShell/vscode-powershell/issues/4167 ↩