@@ -108,24 +108,14 @@ 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
if ( token is NamedBlockAst )
131
121
{
@@ -144,20 +134,14 @@ public static Ast GetAst(int StartLineNumber, int StartColumnNumber, Ast Ast)
144
134
145
135
IEnumerable < Ast > tokens = token . FindAll ( ast =>
146
136
{
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 ;
150
139
} , true ) ;
151
- if ( token != null )
140
+ if ( tokens . Count ( ) > 1 )
152
141
{
153
- if ( token . First ( ) is AssignmentStatementAst Assignment )
154
- {
155
- return Assignment . Left ;
156
- }
157
- return token . Last ( ) ;
142
+ token = tokens . LastOrDefault ( ) ;
158
143
}
159
-
160
- return token . First ( ) ;
144
+ return token ;
161
145
}
162
146
}
163
147
}
0 commit comments