diff options
author | Anthon van der Neut <anthon@mnt.org> | 2019-05-16 00:31:23 +0200 |
---|---|---|
committer | Anthon van der Neut <anthon@mnt.org> | 2019-05-16 00:31:23 +0200 |
commit | fd003083b6954ec1d5827984abb8ed61de400915 (patch) | |
tree | 3cef27f13dd41f9a3c019e06912805245a78f715 /scanner.py | |
parent | 399330be1abc4ab510cc4dabe8ff1bb2378dc08f (diff) | |
download | ruamel.yaml-fd003083b6954ec1d5827984abb8ed61de400915.tar.gz |
fix comments on anchored nodes in block sequence0.15.95
fixes issue #288
Diffstat (limited to 'scanner.py')
-rw-r--r-- | scanner.py | 22 |
1 files changed, 21 insertions, 1 deletions
@@ -1794,7 +1794,7 @@ class RoundTripScanner(Scanner): if isinstance(self.tokens[0], CommentToken): self.tokens_taken += 1 comment = self.tokens.pop(0) - # print 'dropping2', comment + # nprint('dropping2', comment) comments.append(comment) if len(comments) >= 1: self.tokens[0].add_pre_comments(comments) @@ -1825,6 +1825,26 @@ class RoundTripScanner(Scanner): ): self.tokens_taken += 1 self.tokens[0].add_post_comment(self.tokens.pop(1)) + elif ( + len(self.tokens) > 1 + and isinstance(self.tokens[0], ScalarToken) + and isinstance(self.tokens[1], CommentToken) + and self.tokens[0].end_mark.line != self.tokens[1].start_mark.line + ): + self.tokens_taken += 1 + c = self.tokens.pop(1) + c.value = ( + '\n' * (c.start_mark.line - self.tokens[0].end_mark.line) + + (' ' * c.start_mark.column) + + c.value + ) + self.tokens[0].add_post_comment(c) + self.fetch_more_tokens() + while len(self.tokens) > 1 and isinstance(self.tokens[1], CommentToken): + self.tokens_taken += 1 + c1 = self.tokens.pop(1) + c.value = c.value + (' ' * c.start_mark.column) + c1.value + self.fetch_more_tokens() self.tokens_taken += 1 return self.tokens.pop(0) return None |