Skip to content

Commit

Permalink
feat: $psTech(s) ( Fixes #1067 )
Browse files Browse the repository at this point in the history
  • Loading branch information
James Brundage committed Mar 17, 2024
1 parent 681500a commit 34e5593
Showing 1 changed file with 35 additions and 27 deletions.
62 changes: 35 additions & 27 deletions PipeScript.ps1.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -78,21 +78,26 @@ foreach ($typesXmlNoteProperty in $typesXmlNoteProperties){
}
}

# A few extension types we want to publish as variables
$PipeScript.Extensions |
. {
begin {
# Languages will populate `$psLanguage(s)`
$LanguagesByName = [Ordered]@{}
# Languages will populate `$psLanguage(s)`
$LanguagesByName = [Ordered]@{}

# Interpreters will populate `$psInterpreter(s)`
$InterpretersByName = [Ordered]@{}
# Interpreters will populate `$psInterpreter(s)`
$InterpretersByName = [Ordered]@{}

# Parsers will populate `$psParsers`
$ParsersByName = [Ordered]@{}
}
# Technologies will populate `$psTech(s)`
$TechsByName = [Ordered]@{}

# Parsers will populate `$psParser(s)`
$ParsersByName = [Ordered]@{}

# A few extension types we want to publish as variables
$PipeScript.Extensions |
. {
process {
if ($_.Name -notlike 'Language*') {
if ($_.Name -notlike 'Language*') {
if ($_.pstypenames -contains 'Tech.Command') {
$TechsByName[$_.Name] = $_
}
if ($_.pstypenames -contains 'Parser.Command') {
$ParsersByName[$_.Name] = $_
}
Expand All @@ -106,27 +111,30 @@ $PipeScript.Extensions |
if ($languageObject.Interpreter) {
$InterpretersByName[$languageObject.LanguageName] = $languageObject
}
}
}
}

end {
$PSLanguage = $PSLanguages = [PSCustomObject]$LanguagesByName
$PSLanguage.pstypenames.clear()
$PSLanguage.pstypenames.insert(0,'PipeScript.Languages')

$PSInterpreter = $PSInterpreters = [PSCustomObject]$InterpretersByName
$PSInterpreter.pstypenames.clear()
$PSInterpreter.pstypenames.insert(0,'PipeScript.Interpreters')
$PSLanguage = $PSLanguages = [PSCustomObject]$LanguagesByName
$PSLanguage.pstypenames.clear()
$PSLanguage.pstypenames.insert(0,'PipeScript.Languages')

$PSParser = $PSParsers = [PSCustomObject]$ParsersByName
$PSParser.pstypenames.clear()
$PSParser.pstypenames.insert(0,'PipeScript.Parsers')
}
}
$PSInterpreter = $PSInterpreters = [PSCustomObject]$InterpretersByName
$PSInterpreter.pstypenames.clear()
$PSInterpreter.pstypenames.insert(0,'PipeScript.Interpreters')

$PSTech = $PSTechs = $PSTechnology = $PSTechnologies = [PSCustomObject]$TechsByName
$PSTech.pstypenames.clear()
$PSTech.pstypenames.insert(0,'PipeScript.Techs')

$PSParser = $PSParsers = [PSCustomObject]$ParsersByName
$PSParser.pstypenames.clear()
$PSParser.pstypenames.insert(0,'PipeScript.Parsers')

Export-ModuleMember -Function * -Alias * -Variable $MyInvocation.MyCommand.ScriptBlock.Module.Name,
'PSLanguage', 'PSLanguages',
'PSInterpreter', 'PSInterpreters',
'PSParser','PSParsers'
'PSParser','PSParsers',
'PSTech', 'PSTechs', 'PSTechnology', 'PSTechnologies'

$PreCommandAction = {
param($LookupArgs)
Expand Down

0 comments on commit 34e5593

Please sign in to comment.