Source Edit

This module contains an algorithm to wordwrap a Unicode string.

Imports

strutils, unicode

Procs

  1. proc wrapWords(s: string; maxLineWidth = 80; splitLongWords = true;
  2. seps: set[char] = Whitespace; newLine = "\n"): string {.
  3. noSideEffect, ...raises: [], tags: [], forbids: [].}

Word wraps s.

Example:

  1. doAssert "12345678901234567890".wrapWords() == "12345678901234567890"
  2. doAssert "123456789012345678901234567890".wrapWords(20) == "12345678901234567890\n1234567890"
  3. doAssert "Hello Bob. Hello John.".wrapWords(13, false) == "Hello Bob.\nHello John."
  4. doAssert "Hello Bob. Hello John.".wrapWords(13, true, {';'}) == "Hello Bob. He\nllo John."

Source Edit