Skip to content

Commit 6c1605a

Browse files
committed
additional changes to getast utility method
1 parent 5d32932 commit 6c1605a

File tree

1 file changed

+10
-26
lines changed
  • src/PowerShellEditorServices/Services/PowerShell/Refactoring

1 file changed

+10
-26
lines changed

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

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -108,24 +108,14 @@ public static FunctionDefinitionAst GetFunctionDefByCommandAst(string OldName, i
108108

109109
public static Ast GetAst(int StartLineNumber, int StartColumnNumber, Ast Ast)
110110
{
111+
Ast token = null;
111112

112-
// Get all the tokens on the startline so we can look for an appropriate Ast to return
113-
IEnumerable<Ast> tokens = Ast.FindAll(ast =>
113+
token = Ast.Find(ast =>
114114
{
115-
return StartLineNumber == ast.Extent.StartLineNumber;
115+
return StartLineNumber == ast.Extent.StartLineNumber &&
116+
ast.Extent.EndColumnNumber >= StartColumnNumber &&
117+
StartColumnNumber >= ast.Extent.StartColumnNumber;
116118
}, true);
117-
// Check if the Ast is a FunctionDefinitionAst
118-
IEnumerable<FunctionDefinitionAst> Functions = tokens.OfType<FunctionDefinitionAst>();
119-
if (Functions.Any())
120-
{
121-
foreach (FunctionDefinitionAst Function in Functions)
122-
{
123-
if (Function.Extent.StartLineNumber != Function.Extent.EndLineNumber)
124-
{
125-
return Function;
126-
}
127-
}
128-
}
129119

130120
if (token is NamedBlockAst)
131121
{
@@ -144,20 +134,14 @@ public static Ast GetAst(int StartLineNumber, int StartColumnNumber, Ast Ast)
144134

145135
IEnumerable<Ast> tokens = token.FindAll(ast =>
146136
{
147-
return ast.Extent.StartLineNumber == StartLineNumber &&
148-
ast.Extent.StartColumnNumber <= StartColumnNumber &&
149-
ast.Extent.EndColumnNumber >= StartColumnNumber;
137+
return ast.Extent.EndColumnNumber >= StartColumnNumber
138+
&& StartColumnNumber >= ast.Extent.StartColumnNumber;
150139
}, true);
151-
if (token != null)
140+
if (tokens.Count() > 1)
152141
{
153-
if (token.First() is AssignmentStatementAst Assignment)
154-
{
155-
return Assignment.Left;
156-
}
157-
return token.Last();
142+
token = tokens.LastOrDefault();
158143
}
159-
160-
return token.First();
144+
return token;
161145
}
162146
}
163147
}

0 commit comments

Comments
 (0)