nimpretty: fixes #10295

This commit is contained in:
Araq 2019-06-07 10:37:00 +02:00
commit 447cc1ff09
4 changed files with 30 additions and 5 deletions

View file

@ -106,11 +106,15 @@ proc softLinebreak(em: var Emitter, lit: string) =
# +2 because we blindly assume a comma or ' &' might follow
if not em.inquote and em.col+lit.len+2 >= MaxLineLen:
if em.lastTok in splitters:
while em.content.len > 0 and em.content[em.content.high] == ' ':
setLen(em.content, em.content.len-1)
wr("\L")
em.col = 0
for i in 1..em.indentLevel+moreIndent(em): wr(" ")
# bug #10295, check first if even more indentation would help:
let spaces = em.indentLevel+moreIndent(em)
if spaces < em.col:
let oldPos = em.content.len # we can undo our changes if not benefitial
while em.content.len > 0 and em.content[em.content.high] == ' ':
setLen(em.content, em.content.len-1)
wr("\L")
em.col = 0
for i in 1..spaces: wr(" ")
else:
# search backwards for a good split position:
for a in mitems(em.altSplitPos):