PowerShell / PowerShell/PSScriptAnalyzer
new feature: unusable parameters warning
Personne n'a encore pris cette issue.
- Langage dominant
- C#
- Étoiles
- 2.2k
- Forks
- 414
- Merge moyen
- 13 h 1 min
- PR mergées (30 j)
- 2
Description
Problem to be solved
PowerShell (theoretically) supports parameters whose name can consist only from numbers. For example, this is a valid declaration:
function p1([switch]$1) {if ($1) {'Yes'} else {'No'}}
However, it is very hard to call properly this script. This one will not work:
PS /home/iiric> p1
No
PS /home/iiric> p1 -1
No
This is because parser will think -1 is a negative number rather than a parameter name in this instance.
Proper (=hard) way would be to use splatting.
$params = @{ '1' = $true }
PS> p1 @params
Yes
Generally, this is not the only example of such unusable parameters. See response by @vexx32 in PowerShell repo issue.
Summary of the new feature
Create a PSSA rule that warns when such parameters are created, so users are aware ahead of time that they're making parameters that they won't be able to refer to.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par examiner les règles existantes de PSScriptAnalyzer et la manière dont elles signalent les diagnostics, puis étudiez le problème PowerShell lié pour connaître les cas considérés comme inutilisables. Le travail est terminé lorsque l’analyseur avertit qu’un paramètre ne peut pas être référencé normalement, notamment un paramètre composé uniquement de chiffres tel que $1.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- csharp, powershell
- Domaine
- tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100