Skip to content

Commit d811566

Browse files
author
Kapil Borle
committed
Modify correction extent of avoid using alias
1 parent e997906 commit d811566

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

Rules/AvoidAlias.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,14 @@ private List<CorrectionExtent> GetCorrectionExtent(CommandAst cmdAst, string cmd
7575
{
7676
var corrections = new List<CorrectionExtent>();
7777
var ext = cmdAst.Extent;
78+
var alias = cmdAst.GetCommandName();
79+
var startColumnNumber = ext.StartColumnNumber + ext.Text.IndexOf(alias);
80+
var endColumnNumber = startColumnNumber + alias.Length;
7881
corrections.Add(new CorrectionExtent(
7982
ext.StartLineNumber,
8083
ext.EndLineNumber,
81-
ext.StartColumnNumber,
82-
ext.EndColumnNumber,
84+
startColumnNumber,
85+
endColumnNumber,
8386
cmdletName,
8487
ext.File));
8588
return corrections;

Tests/Rules/AvoidUsingAlias.tests.ps1

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
$violationMessage = "'cls' is an alias of 'Clear-Host'. Alias can introduce possible problems and make scripts hard to maintain. Please consider changing alias to its full content."
33
$violationName = "PSAvoidUsingCmdletAliases"
44
$directory = Split-Path -Parent $MyInvocation.MyCommand.Path
5-
$violations = Invoke-ScriptAnalyzer $directory\AvoidUsingAlias.ps1 | Where-Object {$_.RuleName -eq $violationName}
5+
$violationsFilepath = Join-Path $directory 'AvoidUsingAlias.ps1'
6+
$violations = Invoke-ScriptAnalyzer $violationsFilepath | Where-Object {$_.RuleName -eq $violationName}
67
$noViolations = Invoke-ScriptAnalyzer $directory\AvoidUsingAliasNoViolations.ps1 | Where-Object {$_.RuleName -eq $violationName}
78

89
Describe "AvoidUsingAlias" {
@@ -16,11 +17,14 @@ Describe "AvoidUsingAlias" {
1617
}
1718

1819
It "suggests correction" {
20+
Import-Module .\PSScriptAnalyzerTestHelper.psm1
1921
$violations[0].SuggestedCorrections.Count | Should Be 1
2022
$violations[0].SuggestedCorrections.Text | Should Be 'Invoke-Expression'
23+
Get-ExtentText $violations[0].SuggestedCorrections[0] $violationsFilepath | Should Be 'iex'
2124

2225
$violations[1].SuggestedCorrections.Count | Should Be 1
2326
$violations[1].SuggestedCorrections.Text | Should Be 'Clear-Host'
27+
Get-ExtentText $violations[1].SuggestedCorrections[0] $violationsFilepath | Should Be 'cls'
2428
}
2529
}
2630

0 commit comments

Comments
 (0)