@@ -15,7 +15,7 @@ namespace Microsoft.Windows.PowerShell.ScriptAnalyzer
15
15
public class TokenOperations
16
16
{
17
17
private readonly Token [ ] tokens ;
18
- private LinkedList < Token > tokensLL ;
18
+ private readonly Lazy < LinkedList < Token > > tokensLL ;
19
19
private readonly Ast ast ;
20
20
21
21
public Ast Ast { get { return ast ; } }
@@ -39,7 +39,7 @@ public TokenOperations(Token[] tokens, Ast ast)
39
39
40
40
this . tokens = tokens ;
41
41
this . ast = ast ;
42
- this . tokensLL = new LinkedList < Token > ( this . tokens ) ;
42
+ this . tokensLL = new Lazy < LinkedList < Token > > ( ( ) => new LinkedList < Token > ( this . tokens ) ) ;
43
43
}
44
44
45
45
/// <summary>
@@ -150,68 +150,6 @@ private IEnumerable<Token> GetBraceInCommandElement(TokenKind tokenKind)
150
150
}
151
151
}
152
152
153
- public IEnumerable < Token > GetCloseBraceInOneLineIfStatement ( )
154
- {
155
- return GetBraceInOneLineIfStatment ( TokenKind . RCurly ) ;
156
- }
157
-
158
- public IEnumerable < Token > GetOpenBraceInOneLineIfStatement ( )
159
- {
160
- return GetBraceInOneLineIfStatment ( TokenKind . LCurly ) ;
161
- }
162
-
163
- // TODO Fix code duplication in the following method and GetBraceInCommandElement
164
- private IEnumerable < Token > GetBraceInOneLineIfStatment ( TokenKind tokenKind )
165
- {
166
- var ifStatementAsts = ast . FindAll ( ast =>
167
- {
168
- var ifAst = ast as IfStatementAst ;
169
- if ( ifAst == null )
170
- {
171
- return false ;
172
- }
173
-
174
- return ifAst . Extent . StartLineNumber == ifAst . Extent . EndLineNumber ;
175
- } ,
176
- true ) ;
177
-
178
- if ( ifStatementAsts == null )
179
- {
180
- yield break ;
181
- }
182
-
183
- var braceTokens = new List < Token > ( ) ;
184
- foreach ( var ast in ifStatementAsts )
185
- {
186
- var ifStatementAst = ast as IfStatementAst ;
187
- foreach ( var clause in ifStatementAst . Clauses )
188
- {
189
- var tokenIf
190
- = tokenKind == TokenKind . LCurly
191
- ? GetTokens ( clause . Item2 ) . FirstOrDefault ( )
192
- : GetTokens ( clause . Item2 ) . LastOrDefault ( ) ;
193
- if ( tokenIf != null )
194
- {
195
- yield return tokenIf ;
196
- }
197
- }
198
-
199
- if ( ifStatementAst . ElseClause == null )
200
- {
201
- continue ;
202
- }
203
-
204
- var tokenElse
205
- = tokenKind == TokenKind . LCurly
206
- ? GetTokens ( ifStatementAst . ElseClause ) . FirstOrDefault ( )
207
- : GetTokens ( ifStatementAst . ElseClause ) . LastOrDefault ( ) ;
208
- if ( tokenElse != null )
209
- {
210
- yield return tokenElse ;
211
- }
212
- }
213
- }
214
-
215
153
public static IEnumerable < Token > GetTokens ( Ast outerAst , Ast innerAst , Token [ ] outerTokens )
216
154
{
217
155
ThrowIfNull ( outerAst , nameof ( outerAst ) ) ;
@@ -262,7 +200,7 @@ public IEnumerable<LinkedListNode<Token>> GetTokenNodes(TokenKind kind)
262
200
263
201
public IEnumerable < LinkedListNode < Token > > GetTokenNodes ( Func < Token , bool > predicate )
264
202
{
265
- var token = tokensLL . First ;
203
+ var token = tokensLL . Value . First ;
266
204
while ( token != null )
267
205
{
268
206
if ( predicate ( token . Value ) )
@@ -290,21 +228,6 @@ private IEnumerable<Tuple<Token, int>> GetTokenAndPrecedingWhitespace(TokenKind
290
228
}
291
229
}
292
230
293
- public IEnumerable < Tuple < Token , int > > GetOpenBracesWithWhiteSpacesBefore ( )
294
- {
295
- return GetTokenAndPrecedingWhitespace ( TokenKind . LCurly ) ;
296
- }
297
-
298
- public IEnumerable < Tuple < Token , int > > GetOpenParensWithWhiteSpacesBefore ( )
299
- {
300
- return GetTokenAndPrecedingWhitespace ( TokenKind . LParen ) ;
301
- }
302
-
303
- public static int GetExtentWidth ( IScriptExtent extent )
304
- {
305
- return extent . EndOffset - extent . StartOffset ;
306
- }
307
-
308
231
private bool OnSameLine ( Token token1 , Token token2 )
309
232
{
310
233
return token1 . Extent . StartLineNumber == token2 . Extent . EndLineNumber ;
0 commit comments