Skip to content

Commit c8a96bc

Browse files
committed
updated visitors to use generic GetAstNodeByLineAndColumn
1 parent 9eeba30 commit c8a96bc

File tree

2 files changed

+6
-45
lines changed

2 files changed

+6
-45
lines changed

src/PowerShellEditorServices/Services/PowerShell/Refactoring/IterativeFunctionVistor.cs

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,15 @@ public IterativeFunctionRename(string OldName, string NewName, int StartLineNumb
3131
this.StartColumnNumber = StartColumnNumber;
3232
this.ScriptAst = ScriptAst;
3333

34-
Ast Node = GetAstNodeByLineAndColumn(OldName, StartLineNumber, StartColumnNumber, ScriptAst);
34+
Ast Node = Utilities.GetAstNodeByLineAndColumn(StartLineNumber, StartColumnNumber, ScriptAst, typeof(FunctionDefinitionAst), typeof(CommandAst));
35+
3536
if (Node != null)
3637
{
37-
if (Node is FunctionDefinitionAst FuncDef)
38+
if (Node is FunctionDefinitionAst FuncDef && FuncDef.Name.ToLower() == OldName.ToLower())
3839
{
3940
TargetFunctionAst = FuncDef;
4041
}
41-
if (Node is CommandAst)
42+
if (Node is CommandAst commdef && commdef.GetCommandName().ToLower() == OldName.ToLower())
4243
{
4344
TargetFunctionAst = GetFunctionDefByCommandAst(OldName, StartLineNumber, StartColumnNumber, ScriptAst);
4445
if (TargetFunctionAst == null)
@@ -196,31 +197,6 @@ public void ProcessNode(Ast node, bool shouldRename)
196197
Log.Add($"ShouldRename after proc: {shouldRename}");
197198
}
198199

199-
public static Ast GetAstNodeByLineAndColumn(string OldName, int StartLineNumber, int StartColumnNumber, Ast ScriptFile)
200-
{
201-
Ast result = null;
202-
// Looking for a function
203-
result = ScriptFile.Find(ast =>
204-
{
205-
return ast.Extent.StartLineNumber == StartLineNumber &&
206-
ast.Extent.StartColumnNumber == StartColumnNumber &&
207-
ast is FunctionDefinitionAst FuncDef &&
208-
FuncDef.Name.ToLower() == OldName.ToLower();
209-
}, true);
210-
// Looking for a a Command call
211-
if (null == result)
212-
{
213-
result = ScriptFile.Find(ast =>
214-
{
215-
return ast.Extent.StartLineNumber == StartLineNumber &&
216-
ast.Extent.StartColumnNumber == StartColumnNumber &&
217-
ast is CommandAst CommDef &&
218-
CommDef.GetCommandName().ToLower() == OldName.ToLower();
219-
}, true);
220-
}
221-
return result;
222-
}
223-
224200
public static FunctionDefinitionAst GetFunctionDefByCommandAst(string OldName, int StartLineNumber, int StartColumnNumber, Ast ScriptFile)
225201
{
226202
// Look up the targetted object

src/PowerShellEditorServices/Services/PowerShell/Refactoring/IterativeVariableVisitor.cs

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,27 +56,12 @@ public IterativeVariableRename(string NewName, int StartLineNumber, int StartCol
5656
}
5757
}
5858

59-
public static Ast GetAstNodeByLineAndColumn(int StartLineNumber, int StartColumnNumber, Ast ScriptAst)
60-
{
61-
Ast result = null;
62-
result = ScriptAst.Find(ast =>
63-
{
64-
return ast.Extent.StartLineNumber == StartLineNumber &&
65-
ast.Extent.StartColumnNumber == StartColumnNumber &&
66-
ast is VariableExpressionAst or CommandParameterAst or StringConstantExpressionAst;
67-
}, true);
68-
if (result == null)
69-
{
70-
throw new TargetSymbolNotFoundException();
71-
}
72-
return result;
73-
}
74-
7559
public static Ast GetVariableTopAssignment(int StartLineNumber, int StartColumnNumber, Ast ScriptAst)
7660
{
7761

7862
// Look up the target object
79-
Ast node = GetAstNodeByLineAndColumn(StartLineNumber, StartColumnNumber, ScriptAst);
63+
Ast node = Utilities.GetAstNodeByLineAndColumn(StartLineNumber, StartColumnNumber,
64+
ScriptAst,typeof(VariableExpressionAst), typeof(CommandParameterAst), typeof(StringConstantExpressionAst));
8065

8166
string name = node switch
8267
{

0 commit comments

Comments
 (0)