constructor(injectionOffsets, 
    /**
     * `injectionOptions.length` must equal `injectionOffsets.length`
     */
    injectionOptions, 
    /**
     * Refers to offsets after applying injections to the source.
     * The last break offset indicates the length of the source after applying injections.
     */
    breakOffsets, 
    /**
     * Refers to offsets after applying injections
     */
    breakOffsetsVisibleColumn, wrappedTextIndentLength) {
        this.injectionOffsets = injectionOffsets;
        this.injectionOptions = injectionOptions;
        this.breakOffsets = breakOffsets;
        this.breakOffsetsVisibleColumn = breakOffsetsVisibleColumn;
        this.wrappedTextIndentLength = wrappedTextIndentLength;
    }
*input*:
```
xxxxxxxxxxxxxxxxxxxxxxxxxxx
```

-> Applying injections `[i...i]`, *inputWithInjections*:
```
xxxxxx[iiiiiiiiii]xxxxxxxxxxxxxxxxx[ii]xxxx
```

-> breaking at offsets `|` in `xxxxxx[iiiiiii|iii]xxxxxxxxxxx|xxxxxx[ii]xxxx|`:
```
xxxxxx[iiiiiii
iii]xxxxxxxxxxx
xxxxxx[ii]xxxx
```

-> applying wrappedTextIndentLength, *output*:
```
xxxxxx[iiiiiii
   iii]xxxxxxxxxxx
   xxxxxx[ii]xxxx
```