File tree Expand file tree Collapse file tree 1 file changed +39
-11
lines changed
Expand file tree Collapse file tree 1 file changed +39
-11
lines changed Original file line number Diff line number Diff line change @@ -27,18 +27,46 @@ def measure(s):
2727 # TODO: split words that are larger than max_width
2828 wwidth = measure (word )
2929 print ("{} - {}" .format (word , wwidth ))
30- if firstword :
31- partial .append (word )
32- firstword = False
33- width += wwidth
34- elif width + swidth + wwidth < max_width :
35- partial .append (" " )
36- partial .append (word )
37- width += wwidth + swidth
30+ part_width = 0
31+ word_parts = []
32+ cur_part = ""
33+ if wwidth > max_width :
34+ if partial :
35+ lines .append ("" .join (partial ))
36+ partial = []
37+ for char in word :
38+ #print(measure(cur_part) + measure(char) + measure("-"))
39+ if measure (cur_part ) + measure (char ) + measure ("-" ) > max_width :
40+ word_parts .append (cur_part + "-" )
41+ cur_part = char
42+ else :
43+ cur_part += char
44+ if cur_part :
45+ word_parts .append (cur_part )
46+ #print(word_parts)
47+ for line in word_parts [:- 1 ]:
48+ lines .append (line )
49+ partial .append (word_parts [- 1 ])
50+ width = measure (word_parts [- 1 ])
51+ if firstword :
52+ firstword = False
53+ print ("cur_width after splitword: {}" .format (width ))
54+
3855 else :
39- lines .append ("" .join (partial ))
40- partial = [indent1 , word ]
41- width = measure (indent1 ) + wwidth + swidth
56+
57+ if firstword :
58+ partial .append (word )
59+ firstword = False
60+ width += wwidth
61+ elif width + swidth + wwidth < max_width :
62+ partial .append (" " )
63+ partial .append (word )
64+ width += wwidth + swidth
65+ else :
66+ lines .append ("" .join (partial ))
67+ partial = [indent1 , word ]
68+ width = measure (indent1 ) + wwidth
69+ print ("cur_width: {}" .format (width ))
4270 if partial :
4371 lines .append ("" .join (partial ))
4472 return "\n " .join (lines )
You can’t perform that action at this time.
0 commit comments