Add #Requires -PSEdition and -Assembly #197
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
-PSEdition
works correctly, but-Assembly
is a bit of a cheat. It mostly looks right, but currently it matches the argument asvariable.parameter.powershells
, with a couple of exceptions:Assembly names can have dots in,
#Requires -Assembly System.Management.Automation
. This is true of modules too, but currently-Modules AzureRM.Netcore
gets tokenised as twovariable.parameter.powershell
s with the dot as ameta.requires.powershell
. It looks more or less right as is, but it's an easy enough fix.Assemblies can be specified by file paths, eg
#Requires -Assembly path\to\foo.dll
. The dots and path separators both get tokenised asmeta.requires.powershell
, but paths are a bit more complicated to handle. I was hoping there was already a pattern for matching a path, but nothing jumped out at me?Assemblies can be specified using an assembly specifier, eg
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
, which would require allowing quotes, commas, and spaces at least.