docs: public void remove(DocumentFilter.FilterBypass fb, int offset, int length)
          throws BadLocationException {
          // FRICKIN' HACK!!!!! For some reason, deleting a string at offset 0
          // does not get done properly, so first replace and remove after parsing
          if (offset == 0 && length != fb.getDocument().getLength()) {
              fb.replace(0, length, "\n", lexer.defaultStyle);
              
              // start on either side of the removed text
              parseDocument(offset, 2);
              fb.remove(offset, 1);
          }
          else {
              fb.remove(offset, length);
              
              // start on either side of the removed text
              if (offset + 1 < fb.getDocument().getLength()) {
                  parseDocument(offset, 1);
              }
              else if (offset - 1 > 0) {
                  parseDocument(offset - 1, 1);
              }
              else {
                  // empty text
                  mlTextRunSet.clear();
              }
          }
  
      }