Gres

Делаем работу проще

Полезные утилиты Qt Creator

Описание

В процессе разработки всегда приходится решать множество вспомогательных задач, не связанных напрямую с написание кода. При этом большинство из них являются рутинными и требуют от разработчика больше внимательности и терпеливости, нежели знаний и сообразительности. Для их решения ленивые программисты (вроде меня) обкладываются со всех сторон различными вспомогательными утилитами под каждую проблему.

Для некоторых из таких задач я написал отдельные плагины для Qt Creator’а . Но, как говорилось выше, я программист ленивый и делать по полноценному плагину на каждый инструмент мне не хочется. Поэтому некоторые наработки я решил скинуть в один плагин с многозначительным названием «утилиты». Отдельно следует выделить слово «наработки»: хотя некоторые задачи плагин и решает вполне успешно, это в основном наброски или прототипы. Доводить их до приличного состояния мне либо некогда, либо уже не интересно. Поэтому часть функций может работать не совсем так, как ожидается. Замечания и рекомендации лучше всего высказывать через pull-request’ы вместе с исправлениями :).

Скачать исходники и собранные версии можно на Github.

Дальше опишу из каких частей состоит плагин.

Инструменты Clang

В рамках инфраструктуры LLVM поставляется ряд полезных инструментов для статического анализа кода. Они проверяют код как на наличие ошибок, так и на стиль и «качество» кода. К ним относятся Tidy, Check, Modularize и т.д. (http://clang.llvm.org/extra/index.html).

Плагин позволяет автоматически запускать, разбирать их вывод и отображать результаты в панели проблем (аналогично плагину для cppcheck).

Для работы этих инструментов требуется файл compilation-database.json, который содержит команды компилятору, необходимые для сборки файла. Его можно получить либо включив специальный флаг CMAKE_EXPORT_COMPILE_COMMANDS для cmake проектов, либо воспользовавшись специальной утилитой Bear.

Анализатор OCLint

Аналогично инструментам clang (и использованием той же платформы) создан еще один статический анализатор — OClint. Собственно, работа плагина с ним такая же, как и с инструментами clang.

Многооконная панель вывода приложений

В некоторых случая бывает полезно одновременно видеть вывод нескольких программ, запущенных в Qt Creator’е. Например, при отладке клиент-серверных приложений или для контроля работы долгоживущей программы. Для этого я сделал дубль стандартной панели вывода, но с поддержкой нескольких окон. Реализация довольно грубая, поэтому для постоянной работы лучше использовать стандартную панель.

Организация include’ов

Тут была попытка автоматической оптимизации include‘ов для текущего файла. Работает не всегда, но в качестве первого приближения использовать можно.

Просмотр кода

Разработчики тратят большую часть времени на чтение кода, чем на его написание. При этом чем более наглядно представлена информация, тем быстрее и проще она воспринимается.

Для упрощения анализа существующего кода в плагине предусмотрена возможность генерации диаграмм UML для заданного класса. Генерация выполняется по внутренней модели кода Qt Creator’а, а для построения диаграмм используется отличная Java программа PlantUML.

Непрерывная интеграция

Данная часть плагина позволяется отображать состояние процесса непрерывной интеграции. На текущий момент поддерживается только Drone.io. Состояние отображается в отдельной панели.

2 комментария

  1. А есть возможность установить только PlantUML плагин?

Добавить комментарий

Ваш e-mail не будет опубликован.