Skip to content

Commit 828f677

Browse files
SeeminglySciencedaviwil
authored andcommitted
A few minor fixes
- Fix an issue with parameter set resolution in ConvertTo-ScriptExtent. - Fix importing editor commands from a module that is in the middle of being imported. - Add parameter validation to FullScriptExtent constructors.
1 parent b10caa1 commit 828f677

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed

module/PowerShellEditorServices/Commands/Public/ConvertTo-ScriptExtent.ps1

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@ function ConvertTo-ScriptExtent {
55
[CmdletBinding()]
66
[OutputType([System.Management.Automation.Language.IScriptExtent])]
77
param(
8+
[Parameter(Mandatory, ValueFromPipelineByPropertyName, ParameterSetName='ByOffset')]
9+
[Alias('StartOffset', 'Offset')]
10+
[int]
11+
$StartOffsetNumber,
12+
13+
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName='ByOffset')]
14+
[Alias('EndOffset')]
15+
[int]
16+
$EndOffsetNumber,
17+
818
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName='ByPosition')]
919
[Alias('StartLine', 'Line')]
1020
[int]
@@ -25,16 +35,6 @@ function ConvertTo-ScriptExtent {
2535
[int]
2636
$EndColumnNumber,
2737

28-
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName='ByOffset')]
29-
[Alias('StartOffset', 'Offset')]
30-
[int]
31-
$StartOffsetNumber,
32-
33-
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName='ByOffset')]
34-
[Alias('EndOffset')]
35-
[int]
36-
$EndOffsetNumber,
37-
3838
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName='ByPosition')]
3939
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName='ByOffset')]
4040
[Parameter(ValueFromPipelineByPropertyName, ParameterSetName='ByBuffer')]
@@ -52,7 +52,10 @@ function ConvertTo-ScriptExtent {
5252
[Microsoft.PowerShell.EditorServices.BufferPosition]
5353
$EndBuffer,
5454

55-
[Parameter(ValueFromPipeline)]
55+
[Parameter(Mandatory,
56+
ValueFromPipeline,
57+
ValueFromPipelineByPropertyName,
58+
ParameterSetName='ByExtent')]
5659
[System.Management.Automation.Language.IScriptExtent]
5760
$Extent
5861
)

module/PowerShellEditorServices/Commands/Public/Import-EditorCommand.ps1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ function Import-EditorCommand {
3535
process {
3636
if (-not $ModuleToSearch) { return }
3737

38-
$caller = (Get-PSCallStack)[1]
38+
$caller = (Get-PSCallStack)[2]
3939

40-
if ($caller.InvocationInfo.MyCommand.Module.Name -eq $ModuleToSearch) {
41-
$moduleInfo = $caller.InvocationInfo.MyCommand.Module
40+
if ($caller.InvocationInfo.MyCommand.ScriptBlock.Module.Name -eq $ModuleToSearch) {
41+
$moduleInfo = $caller.InvocationInfo.MyCommand.ScriptBlock.Module
4242

4343
return $moduleInfo.Invoke(
4444
{

src/PowerShellEditorServices/Language/FullScriptExtent.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Management.Automation.Language;
22
using Microsoft.PowerShell.EditorServices.Extensions;
3+
using Microsoft.PowerShell.EditorServices.Utility;
34

45
namespace Microsoft.PowerShell.EditorServices
56
{
@@ -116,6 +117,9 @@ public string Text
116117
/// <param name="bufferRange">The buffer range this extent is located at.</param>
117118
public FullScriptExtent(FileContext fileContext, BufferRange bufferRange)
118119
{
120+
Validate.IsNotNull(nameof(fileContext), fileContext);
121+
Validate.IsNotNull(nameof(bufferRange), bufferRange);
122+
119123
BufferRange = bufferRange;
120124
FileContext = fileContext;
121125

@@ -136,6 +140,10 @@ public FullScriptExtent(FileContext fileContext, BufferRange bufferRange)
136140
/// <param name="endOffset">The zero based offset this extent ends at.</param>
137141
public FullScriptExtent(FileContext fileContext, int startOffset, int endOffset)
138142
{
143+
Validate.IsNotNull(nameof(fileContext), fileContext);
144+
Validate.IsNotNull(nameof(startOffset), startOffset);
145+
Validate.IsNotNull(nameof(endOffset), endOffset);
146+
139147
FileContext = fileContext;
140148
StartOffset = startOffset;
141149
EndOffset = endOffset;
@@ -146,6 +154,9 @@ public FullScriptExtent(FileContext fileContext, int startOffset, int endOffset)
146154

147155
#region Public Methods
148156

157+
/// <summary>
158+
/// Return the text this extent refers to.
159+
/// </summary>
149160
public override string ToString()
150161
{
151162
return Text;

0 commit comments

Comments
 (0)