@@ -108,42 +108,26 @@ public static FunctionDefinitionAst GetFunctionDefByCommandAst(string OldName, i
108
108
109
109
public static Ast GetAst ( int StartLineNumber , int StartColumnNumber , Ast Ast )
110
110
{
111
+ Ast token = null ;
111
112
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 =>
114
114
{
115
- return StartLineNumber == ast . Extent . StartLineNumber ;
115
+ return StartLineNumber == ast . Extent . StartLineNumber &&
116
+ ast . Extent . EndColumnNumber >= StartColumnNumber &&
117
+ StartColumnNumber >= ast . Extent . StartColumnNumber ;
116
118
} , 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
- }
129
119
130
120
IEnumerable < Ast > token = null ;
131
121
token = Ast . FindAll ( ast =>
132
122
{
133
- return ast . Extent . StartLineNumber == StartLineNumber &&
134
- ast . Extent . StartColumnNumber <= StartColumnNumber &&
135
- ast . Extent . EndColumnNumber >= StartColumnNumber ;
123
+ return ast . Extent . EndColumnNumber >= StartColumnNumber
124
+ && StartColumnNumber >= ast . Extent . StartColumnNumber ;
136
125
} , true ) ;
137
- if ( token != null )
126
+ if ( tokens . Count ( ) > 1 )
138
127
{
139
- if ( token . First ( ) is AssignmentStatementAst Assignment )
140
- {
141
- return Assignment . Left ;
142
- }
143
- return token . Last ( ) ;
128
+ token = tokens . LastOrDefault ( ) ;
144
129
}
145
-
146
- return token . First ( ) ;
130
+ return token ;
147
131
}
148
132
}
149
133
}
0 commit comments