##// END OF EJS Templates
Fix indentation for nested block
Nguyen Duy Hai -
Show More
@@ -655,7 +655,15 b' class TransformerManager:'
655 655 if len(tokens_by_line) == 1 and not tokens_by_line[-1]:
656 656 return 'incomplete', 0
657 657
658 if tokens_by_line[-1][-1].string == ':':
658 new_block = False
659 for token in reversed(tokens_by_line[-1]):
660 if token.type == tokenize.DEDENT:
661 continue
662 elif token.string == ':':
663 new_block = True
664 break
665
666 if new_block:
659 667 # The last line starts a block (e.g. 'if foo:')
660 668 ix = 0
661 669 while tokens_by_line[-1][ix].type in {tokenize.INDENT, tokenize.DEDENT}:
@@ -207,6 +207,7 b' def test_check_complete():'
207 207 cc = ipt2.TransformerManager().check_complete
208 208 nt.assert_equal(cc("a = 1"), ('complete', None))
209 209 nt.assert_equal(cc("for a in range(5):"), ('incomplete', 4))
210 nt.assert_equal(cc("for a in range(5):\n if a > 0:"), ('incomplete', 8))
210 211 nt.assert_equal(cc("raise = 2"), ('invalid', None))
211 212 nt.assert_equal(cc("a = [1,\n2,"), ('incomplete', 0))
212 213 nt.assert_equal(cc(")"), ('incomplete', 0))
General Comments 0
You need to be logged in to leave comments. Login now