Skip to content

Commit 7f6e8f9

Browse files
author
James Brundage
committed
ParameterAST: Adding .Help (Fixes #305)
1 parent 8202784 commit 7f6e8f9

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

Types/ParameterAST/TypeName.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
System.Management.Automation.Language.ParamBlockAst

Types/ParameterAST/get_Help.ps1

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
$parameter = $this
2+
$parameterIndex = $parameter.Parent.Parameters.IndexOf($this)
3+
4+
if ($parameterIndex -eq 0) { # For the first parameter
5+
$parentExtent = $parameter.Parent.Extent.ToString()
6+
# This starts after the first parenthesis.
7+
$afterFirstParens = $parentExtent.IndexOf('(') + 1
8+
# and goes until the start of the parameter.
9+
$parentExtent.Substring($afterFirstParens,
10+
$parameter.Extent.StartOffset -
11+
$parameter.Parent.Extent.StartOffset -
12+
$afterFirstParens) -replace '^[\s\r\n]+'
13+
# (don't forget to trim leading whitespace)
14+
} else {
15+
# for every other parameter it is the content between parameters.
16+
$lastParameter = $parameter.Parent.Parameters[$parameterIndex - 1]
17+
$relativeOffset = $lastParameter.Extent.EndOffset + 1 - $parameter.Parent.Extent.StartOffset
18+
$distance = $parameter.Extent.StartOffset - $lastParameter.Extent.EndOffset - 1
19+
# (don't forget to trim leading whitespace and commas)
20+
$parameter.Parent.Extent.ToString().Substring($relativeOffset,$distance) -replace '^[\,\s\r\n]+'
21+
}

0 commit comments

Comments
 (0)