Show More
@@ -418,6 +418,8 b' class HelpEnd(TokenTransformBase):' | |||
|
418 | 418 | lines_after = lines[self.q_line + 1:] |
|
419 | 419 | |
|
420 | 420 | m = _help_end_re.search(content) |
|
421 | if not m: | |
|
422 | raise SyntaxError(content) | |
|
421 | 423 | assert m is not None, content |
|
422 | 424 | target = m.group(1) |
|
423 | 425 | esc = m.group(3) |
@@ -460,6 +462,8 b' def make_tokens_by_line(lines):' | |||
|
460 | 462 | except tokenize.TokenError: |
|
461 | 463 | # Input ended in a multiline string or expression. That's OK for us. |
|
462 | 464 | pass |
|
465 | if not tokens_by_line[-1]: | |
|
466 | tokens_by_line.pop() | |
|
463 | 467 | |
|
464 | 468 | return tokens_by_line |
|
465 | 469 | |
@@ -524,6 +528,9 b' class TransformerManager:' | |||
|
524 | 528 | return False, lines |
|
525 | 529 | |
|
526 | 530 | transformer = min(candidates, key=TokenTransformBase.sortby) |
|
531 | transformed = transformer.transform(lines) | |
|
532 | if transformed is None: | |
|
533 | return False, lines | |
|
527 | 534 | return True, transformer.transform(lines) |
|
528 | 535 | |
|
529 | 536 | def do_token_transforms(self, lines): |
@@ -591,10 +598,13 b' class TransformerManager:' | |||
|
591 | 598 | return 'invalid', None |
|
592 | 599 | |
|
593 | 600 | tokens_by_line = make_tokens_by_line(lines) |
|
601 | if not tokens_by_line: | |
|
602 | return 'incomplete', find_last_indent(lines) | |
|
594 | 603 | if tokens_by_line[-1][-1].type != tokenize.ENDMARKER: |
|
595 | 604 | # We're in a multiline string or expression |
|
596 | 605 | return 'incomplete', find_last_indent(lines) |
|
597 | ||
|
606 | if len(tokens_by_line) == 1: | |
|
607 | return 'incomplete', find_last_indent(lines) | |
|
598 | 608 | # Find the last token on the previous line that's not NEWLINE or COMMENT |
|
599 | 609 | toks_last_line = tokens_by_line[-2] |
|
600 | 610 | ix = len(toks_last_line) - 1 |
General Comments 0
You need to be logged in to leave comments.
Login now