Word wrap

Greedy word wrap

class String {
    method wrap(width) {
        var txt = self.gsub(/\s+/, " ")
        var len = txt.len
        var para = []
        var i = 0
        while (i < len) {
            var j = (i + width)
            while ((j < len) && (txt.char_at(j) != ' ')) { --j }
            para.append(txt.substr(i, j-i))
            i = j+1
        }
        return para.join("\n")
    }
}
 
var text = 'aaa bb cc ddddd'
say text.wrap(6)

Output:

Smart word wrap

Output:

Last updated

Was this helpful?