(n *ast.Node, expectedScanAction scanAction)
| 270 | } |
| 271 | |
| 272 | func (s *formattingScanner) getNextToken(n *ast.Node, expectedScanAction scanAction) ast.Kind { |
| 273 | token := s.s.Token() |
| 274 | s.lastScanAction = actionScan |
| 275 | switch expectedScanAction { |
| 276 | case actionRescanGreaterThanToken: |
| 277 | if token == ast.KindGreaterThanToken { |
| 278 | s.lastScanAction = actionRescanGreaterThanToken |
| 279 | newToken := s.s.ReScanGreaterThanToken() |
| 280 | debug.Assert(n.Kind == newToken) |
| 281 | return newToken |
| 282 | } |
| 283 | case actionRescanSlashToken: |
| 284 | if startsWithSlashToken(token) { |
| 285 | s.lastScanAction = actionRescanSlashToken |
| 286 | newToken := s.s.ReScanSlashToken() |
| 287 | debug.Assert(n.Kind == newToken) |
| 288 | return newToken |
| 289 | } |
| 290 | case actionRescanTemplateToken: |
| 291 | if token == ast.KindCloseBraceToken { |
| 292 | s.lastScanAction = actionRescanTemplateToken |
| 293 | return s.s.ReScanTemplateToken( /*isTaggedTemplate*/ false) |
| 294 | } |
| 295 | case actionRescanJsxIdentifier: |
| 296 | s.lastScanAction = actionRescanJsxIdentifier |
| 297 | return s.s.ScanJsxIdentifier() |
| 298 | case actionRescanJsxText: |
| 299 | s.lastScanAction = actionRescanJsxText |
| 300 | return s.s.ReScanJsxToken( /*allowMultilineJsxText*/ false) |
| 301 | case actionRescanJsxAttributeValue: |
| 302 | s.lastScanAction = actionRescanJsxAttributeValue |
| 303 | return s.s.ReScanJsxAttributeValue() |
| 304 | case actionScan: |
| 305 | break |
| 306 | default: |
| 307 | debug.AssertNever(expectedScanAction, "unhandled scan action kind") |
| 308 | } |
| 309 | return token |
| 310 | } |
| 311 | |
| 312 | func (s *formattingScanner) readEOFTokenRange() TextRangeWithKind { |
| 313 | debug.Assert(s.isOnEOF()) |
no test coverage detected