Consulo: Code Coverage, Unity3D и прочие изменения
Для тех кто пропустил мои посты: Consulo — это форк IntelliJ IDEA Community Edition, который имеет поддержку .NET (C# на текущий момент, и на этот сектор пока идет большой акцент), Java.В этой мини-статье я поделюсь с вами с тем, что удалось сделать за последние 2 месяца.
.NETCode Coverage (with OpenCover) Начиная с января, появилась поддержка покрытие кода (при помощи OpenCover для Microsoft .NET Фреймворка). Позволяет посмотреть покрытие кода как при обычном запуске приложения, так и для NUnit тестов. Покрытие кода использует OpenCover, который увы не работает на Mono. Насчет Mono Coverage пока неясно. Покрытие кода работает на простейшем уровне, нужны поправки в платформу, которые пока только в планах.NUnit with Mono Debugger Очень давно был добавлены Mono Debugger и поддежка тестов NUnit. Но, из-за бага, запуск NUnit под Mono был невозможен. После исправления этого бага, была также добавлена поддержка Mono Debugger во время запуска тестов.Для Microsoft .NET дебаггера пока нет. Соответственно и отладка тестов пока не работает.Unity3D Message methods В Unity существуют методы типа Messages, которые, по сути, ничего не перегружают, но при выполнении они вызываются самим движком Unity, через reflection. В то же время, можно случайно переименовать метод, и код спокойно скомпилится, но при этом метод перестанет работать. Чтобы избежать этого, напротив метода была добавлена маркер-«подсветка». При наведении на который, можно увидеть краткое описание.Adding methods via completion Также была реализована поддержка добавления этих методов через completion. Есть возможность добавить два вида методов: parameterless и\или полной сигнатурой.New Import Mode Ранее не было поддержки импорта Unity-проектов. По сути мы создавали проект поверх проекта юнити и добавляли все вручную. Также были проблемы с тем, что в проекте были не все необходимые библиотеки. Сейчас же, реализована новая система импорта проектов — гораздо лучше понимает структуру Unity проекта, и проблема с импортом библиотек Unity SDK (или плагинов) решилась. Пока что старый и новый способ «импорта» сосущестуют вместе, но, в ближайшем будущем, старый способ будет удален.[embedded content]K Runtime (ASP .NET vNext) Недавно у меня появился интерес к ASP .NET 5 фреймворку, что вылилось в базовую поддержку «K» проектов. Была добавлена поддержка определения SDK рантайма, зависимостей, анализа C# файлов, запуск. Увы, в данный момент, поддержка Nuget очень скромная и приходится хардкодить зависимости чтобы анализ кода прошёл верно. Но, по большей степени, это пока эксперимент. До полноценной поддержи ASP.NET платформы еще далеко и я не думаю им в данный момент всерьез заниматься.Предвкушая вопросы: Нет, реализация поддержи Razor шаблонов пока не планируются.C# Static Vs Instance Ранее completion не понимал, где можно использовать Static & Instance методы, и можно было написать аля String.GetHashCode () — и код не подсвечивался ошибкой, но при этом он не компилился.Сейчас completion верно определяет контекст элемента. Также были добавлены проверки CS0120 & CS0176 которые отвечают за валидацию этих вызовов. Но эти исправления создали интересный баг 208, который пока не исправлен.Code Style В январе был переработана поддержка CodeStyle. Появились много привычных опций в Wrapping & Spacing.Expected type system Теперь completion знает о том какой тип он ожидает, и сортирует нужные элементы повыше. Также эта поправка каcается атрибутов, при вводе текста внутри '[]' все атрибуты идут на начале списка.План на будущее Как бы смешно это не звучало, но я буду продолжить делать то, что делал. Основная проблема сейчас в том, что, на текущий момент, у меня нету по-просту тестеров или людей которые хотят мне помочь либо с кодом, либо с хотя-бы с сайтом. С меня никакой дизайнер и поэтому у меня не получается придумать достойный стиль для сайта или сплеш. Все приходится делать самому и, при этом, успевать ещё как-то работать.