Релиз среды разработки приложений KDevelop 5.3
После почти года разработки представлен релиз интегрированной среды программирования KDevelop 5.3, полностью поддерживающей процесс разработки для KDE 5, в том числе с использованием Clang в качестве компилятора. Код проекта распространяется под лицензией GPL и использует библиотеки KDE Frameworks 5 и Qt 5.
Основные новшества:
- В появившееся в выпуске 5.1 меню Analyzer, объединяющее плагины для анализа кода, добавлена поддержка проверки кода при помощи утилиты Clazy, использующего возможности статического анализа Clang, расширенные поддержкой семантики фреймворка Qt. Clazy предоставляет более 50 специфичных предупреждений, охватывающих различные ситуации, от ненужных операций выделения памяти до некорректного использования API. Новый плагин может применяться по умолчанию и подсвечивать проблемы в коде. В следующем релизе кроме уже поддерживаемых Cppcheck, Heaptrack и Clazy, ожидается поддержка инструментария Clang-Tidy;
- Проведена работа по улучшению кодовой базы KDevelop. Проведена оптимизация различных частей кода и внесены исправления, выявленные при проверке кода в различных анализаторах. Продолжен перевод кода на использование новых стандартов C++ и Qt5;
- Выполнена стабилизация и модернизация парсера для языка C++ и плагина семантического анализа, основанных на использовании Clang. Добавлена возможность переопределения пути к используемым компилятором clang заголовочным файлам. Устранены проблемы при автодополнении сигнатур шаблонов классов и функций. Обеспечен поиск определений для аргументов конструкторов и улучшено автодополнение аргументов;
- Улучшена поддержка языка PHP: Парсер для языка PHP преобразован в отдельную библиотеку, которая может использоваться в других проектах. Добавлена поддержка генераторов и делегируемых генераторами операций. Улучшена поддержка пространств имен, системных констант (например, "__DIR__" и "__TRAIT__"), синтаксиса выражений, опциональных параметров функций и определения имен экземпляров классов. Обновлена и расширена документация по внутренностям PHP. Добавлена поддержка появившейся в PHP 7 контекстно зависимой лексики (например, может быть определена функция forEach и она не будет пересекаться с оператором foreach). Улучшено определение типов для свойств объектов и добавлена поддержка подсказок о типах объектов (typehint);
- Улучшена поддержка языка Python. Добавлена возможность подстановки профилируемых переменных в окружение отладочного процесса. Улучшена поддержка выражений 'with';
- Завершено портирование для ОС Haiku, для которой KDevelop теперь может быть собрана без дополнительных патчей.