Обзор новых возможностей DevelNext 2016, Beta 3
В данном обзоре я хочу рассказать вам о новых возможностях третьей бета версии DevelNext 2016. Самая главная фича, на которую было потрачено очень много часов разработки и проектирования это новая система авто-дополнения и подсказок для редактора кода php.
Перед началом, я немного расскажу о том, как оно работало раньше. Авто-дополнение в DevelNext долгое время было примитивным и довольно топорным, оно работало для редких случаев и вся мета-база классов и функций была практически заполнена вручную. Это объясняет то, почему среда не умела автодополнять сторонние классы из проекта. Старая мета-база содержала около 20{c2772e7edaf3afb29fd545cc58741f0353776d303fccfe25704135a597231828} от всего объема кодовой базы фреймворка, к тому же не имела комментариев и дополнительных подсказок.
А теперь перейдем к тому, что было реализовано в нашей бете:
Авто-импорт use выражений
Наверно все знают, что для подключения класса в DevelNext и вообще в PHP необходимо прописывать use-импорты. Это довольно утомительный процесс, надо запоминать полное название класса, возвращать постоянно в начало кода. Теперь эта проблема решена, среда научилась сама проставлять use импорты для выбранных классов во время написания кода! Как это выглядит? Посмотрите на это ниже и все поймете:
Определение типов переменных
Наша среда научилась определять типы переменных и авто-дополнять их. Если вы присвоите переменной какое-то выражение, для которого среда может просчитать тип, то она будет вам помогать и автодополнять эту переменную. Посмотрите ниже, как это выглядит:
Умный поиск
При написании любого кода, среда теперь более умно подходит к поиску подходящих вариантов для дополнения! DevelNext теперь осуществляет умную сортировку подходящих вариантов и к тому же ищет теперь по вхождению искомой строки в строке, а не так как раньше! Например, при наборе выражения “th”, среда предполагает, что это может быть переменная $this, как это выглядит, смотрите ниже.
Дополнительные подсказки
Появились подробные подсказки (на желтом фоне) для каждого варианта дополнения кода, в которых отображается дополнительный комментарий и общую информацию. Для многих вариантов есть комментарий на русском языке, для некоторых на английском.
Поддержка phpDoc
Многие программисты php знакомы с технологией phpDoc. Она предполагает то, что программист будет в комментариях к функциям, методам, классам и свойствам декларировать типы и дополнительное описание, благодаря которому среда поймет, как нужно дополнять это все в коде. Поддерживаются @var для свойств и просто в коде с указанием типа переменной и переменной, а также @param, @return для методов, любые комментарии к методам и функциям будут отображаться в подсказках, даже если они были объявлены самим программистом в проекте.
Динамичная мета-база
Вы также заметите, что в авто-дополнении появилось очень много новых методов, классов и функций, которых раньше не было. Это стало возможным благодаря тому, что DevelNext начал сканировать все исходники проекта, jar библиотеки на предмет содержания в них классов и функций, он парсит все это и выстраивает в памяти мета-базу всего, что нашел в исходниках. Затем вся собранная информация используется для авто-дополнения. Теперь достаточно писать php код, а среда сама поймет что в нем написано, дополнит и подскажет!
Это сработает даже для классов и функций, которые находятся в файлах в папке проекта (src).