Consulo: Code Coverage, Unity3D и прочие изменения

5753c356b1e84baa86d5b8aaed813127.pngДля тех кто пропустил мои посты: Consulo — это форк IntelliJ IDEA Community Edition, который имеет поддержку .NET (C# на текущий момент, и на этот сектор пока идет большой акцент), Java.В этой мини-статье я поделюсь с вами с тем, что удалось сделать за последние 2 месяца.

.NETCode Coverage (with OpenCover) Начиная с января, появилась поддержка покрытие кода (при помощи OpenCover для Microsoft .NET Фреймворка). Позволяет посмотреть покрытие кода как при обычном запуске приложения, так и для NUnit тестов. Покрытие кода использует OpenCover, который увы не работает на Mono. Насчет Mono Coverage пока неясно. Покрытие кода работает на простейшем уровне, нужны поправки в платформу, которые пока только в планах.0a749be7ff014f1d9a63a3536c65c3d2.gifNUnit with Mono Debugger Очень давно был добавлены Mono Debugger и поддежка тестов NUnit. Но, из-за бага, запуск NUnit под Mono был невозможен. После исправления этого бага, была также добавлена поддержка Mono Debugger во время запуска тестов.Для Microsoft .NET дебаггера пока нет. Соответственно и отладка тестов пока не работает.8bc3d318b0a8455d93517889ac2a3605.gifUnity3D Message methods В Unity существуют методы типа Messages, которые, по сути, ничего не перегружают, но при выполнении они вызываются самим движком Unity, через reflection. В то же время, можно случайно переименовать метод, и код спокойно скомпилится, но при этом метод перестанет работать. Чтобы избежать этого, напротив метода была добавлена маркер-«подсветка». При наведении на который, можно увидеть краткое описание.457fc3d606c14b599f8b5e5bf58fa24a.gifAdding methods via completion Также была реализована поддержка добавления этих методов через completion. Есть возможность добавить два вида методов: parameterless и\или полной сигнатурой.8c7880a8e93c4934bcd513e805a5aa7d.gifNew Import Mode Ранее не было поддержки импорта Unity-проектов. По сути мы создавали проект поверх проекта юнити и добавляли все вручную. Также были проблемы с тем, что в проекте были не все необходимые библиотеки. Сейчас же, реализована новая система импорта проектов — гораздо лучше понимает структуру Unity проекта, и проблема с импортом библиотек Unity SDK (или плагинов) решилась. Пока что старый и новый способ «импорта» сосущестуют вместе, но, в ближайшем будущем, старый способ будет удален.[embedded content]K Runtime (ASP .NET vNext) Недавно у меня появился интерес к ASP .NET 5 фреймворку, что вылилось в базовую поддержку «K» проектов. Была добавлена поддержка определения SDK рантайма, зависимостей, анализа C# файлов, запуск. Увы, в данный момент, поддержка Nuget очень скромная и приходится хардкодить зависимости чтобы анализ кода прошёл верно. Но, по большей степени, это пока эксперимент. До полноценной поддержи ASP.NET платформы еще далеко и я не думаю им в данный момент всерьез заниматься.Предвкушая вопросы: Нет, реализация поддержи Razor шаблонов пока не планируются.68b8fb6ba4bf4784b8c02927053d300b.gifC# Static Vs Instance Ранее completion не понимал, где можно использовать Static & Instance методы, и можно было написать аля String.GetHashCode () — и код не подсвечивался ошибкой, но при этом он не компилился.Сейчас completion верно определяет контекст элемента. Также были добавлены проверки CS0120 & CS0176 которые отвечают за валидацию этих вызовов. Но эти исправления создали интересный баг 208, который пока не исправлен.f1e4944f6be34e8aa5dccb23451a5b09.gifCode Style В январе был переработана поддержка CodeStyle. Появились много привычных опций в Wrapping & Spacing.2838b5d485d04783885d93c717e7ad1e.gifExpected type system Теперь completion знает о том какой тип он ожидает, и сортирует нужные элементы повыше. Также эта поправка каcается атрибутов, при вводе текста внутри '[]' все атрибуты идут на начале списка.292e02da4c4c4705b4ff7a31c48e8a56.gifПлан на будущее Как бы смешно это не звучало, но я буду продолжить делать то, что делал. Основная проблема сейчас в том, что, на текущий момент, у меня нету по-просту тестеров или людей которые хотят мне помочь либо с кодом, либо с хотя-бы с сайтом. С меня никакой дизайнер и поэтому у меня не получается придумать достойный стиль для сайта или сплеш. Все приходится делать самому и, при этом, успевать ещё как-то работать.

© Habrahabr.ru