Pull to refresh

Comments 28

Если что-то надо подсветить, использую QSyntaxHighlighter

А это уже больше компонент, с разными плюшками
Ну вы знаете, QSyntaxHighlighter это мягко говоря, мало. Он годится только для чего-то самого простого. Вы что сами пишите подсветку HTML или PHP и т.д?
пока что да, все что требуется это реализовать метод highlightBlock
но и QScintilla, достаточно интересен, о нем не знал до вашей статьи
Если эта статья увенчается успехом, я начну цикл про QScintilla. Так что, если повезет, узнаете еще).
Сегодня я хочу рассказать вам про отличный проект — QScintilla
По моему личному опыту и моему личному мнению, могу сказать, что он вовсе не отличен. Намучился с ним немало — многие вещи кроме как костылями или правками в коде не решить. В общем, кроме негатива это название теперь ничего не вызывает.

Если писать что-то серьёзное — лучше использовать «чистое» API Scintill'ы.
Не спорю. Но лично мне писать на чистом SCI пока сложно. Я наверное не настолько сильный программист, чтобы это реализовать на «низком» уровне.

А насчет костылей — это правда). Есть моменты.
Да. QSciAPIs я распишу в следущих выпусках.
JuffEd действительно написан с QScintilla. Причем довольно хорошо написан. Хороший проект — только вот нету изюминки, на мой взгляд.
Вызывали? :)

Проект QScintilla действительно хороший. Не без багов, со своими проблемами, порой даже со сломанным ABI между версиями, но практически безальтернативный по фичам и количеству поддерживаемых языков. Документация неплохая, но часто неполная. Некоторые фичи (по сравнению с оригинальной Scintilla) отсутствуют, мне порой приходилось курить API оригинальнй Scintilla и делать «raw» вызовы (удовольствие, прямо скажем, сравнимое с использованием чистого WinAPI ), но авторы порта довольно оперативно реагируют в мейл-листе и добавляют востребованные фичи. Патчи тоже принимают.
Можете подсказать тогда. Как проставить QPixmap для кастомного элемента в UserList?
К сожалению, не могу — я пока что не использовал изображения в UserList-ах.
Или, например, как решить эту проблему. :)
Поправят скоро, я переписывался с парнем оттуда. А вообще, вы часто нажимаете мышкой в списке автодополнения? Я например все выбираю стрелочками.

P.S. А вообще нечего на windows сидеть)).
Ну, я нечасто, а вот пользовательская аудитория негодует. :)

Кстати, где-то полгода назад натыкался на утечку памяти. Я не особо ориентируюсь в опенсорсе и всяких комьюнити, поэтому просто оставлю здесь. Может быть давно не актуально.

qsciscintilla.cpp, QsciScintilla::getIndentState(int):

    char *text = new char[(epos - spos + 1) * 2];
    // ...
    if (bstart_off >= 0 && !bend_words)
        for (int i = bstart_off * 2; text[i] != '\0'; i += 2)
            if (!QChar(text[i]).isSpace())
                return isNone;
    // ...
    delete[] text;
Да. Этот код присутствует в коде последнего стабл-релиза.
Читал его статьи, довольно занимательно. :)
>Или, например, как решить эту проблему. :)

А тут как раз всё ясно: или ждать, когда пофиксят, или пофиксить самому и отправить патч :)
Ну, рано или поздно мне придётся этим заняться. Но, поскольку на данный момент есть вещи более приоритетные, то пока есть время ждать и надеяться. :)
А как насчет сворачивания блоков? Без проблем или с костылями?
Без проблем. Folding работает отлично. Я сейчас пишу IDE — да, там нужны модификации в самой qscintilla (мне не нравиться полоска черная:) ).
Встречал всякие редакторы, где то комментарии не хотят сворачиваться, то некоторые блоки типа for (при этом сворачиваются методы, условия и т.п.).
Это все настраивается (какие блоки можно сворачивать)?
Нет. Это не настраиваится. Она может сворачивать все (в зависимости от лексера).
А к виндовой версии Qt реально подключить этот модуль?
Конечно. Эго только надо собрать.
Sign up to leave a comment.

Articles