PowerShell / PowerShell/vscode-powershell
Need a better (cross-platform friendly) way to configure additional PowerShell paths
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 1.9k
- Fork
- 548
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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.
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 break[^1] 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.
[^1]: It was a breaking change when powerShellAdditionalExePaths was introduced https://github.com/PowerShell/vscode-powershell/issues/4167
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Non sono indicati né un file sorgente né un test. Inizia individuando il codice che legge powershell.powerShellAdditionalExePaths e powershell.powerShellDefaultVersion, quindi esamina come funzionano l'individuazione degli eseguibili e il filtraggio della piattaforma; il lavoro è completato quando una configurazione multipiattaforma di additionalPowerShellLocations funziona senza interrompere le impostazioni esistenti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- powershell, typescript
- Ambito
- developer-experience, tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Tranquilla
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 35/100