QByteArray ScintillaDocument::get_char_range(int position, int length) {
    Document *doc = (Document *)pdoc;

    if (position < 0 || length <= 0 || position + length > doc->Length())
        return QByteArray();

    QByteArray ba(length, '\0');
    doc->GetCharRange(ba.data(), position, length);
    return ba;
}