Pull to refresh

Consulo + .NET плагин, спустя два месяца

Reading time2 min
Views6.2K
После моей первой публикации прошло два месяца. После него я немного сменил приоритет на одну задачу. А именно — реализацию дебаггера, хотя бы для Mono .NET.

Debugger


Как написал выше, я решил реализовать поддержку дебагера для Mono .NET. Как я уже говорил в комментах, Mono имеет Soft Debugger, который использует протокол подобный Java (JWDP). В итоге появилась библиотека на Java для Mono дебагинга.

Пару скринов:

image

image

Также можно увидить в тестовом видео здесь.

Во время паузы можно изменять значения для примитивных типов и строк.

Из известных мне недоработок — не работает Watchers, так как они базируются на Evaluate Expressions, а это доволи обьемная задача, которую пока я отложил на полку.

Microsoft .NET дебагер также имеет низкий приоритет, нету пока у меня времени писать оболочку (не хочется юзать command line debugger, ибо это нужно будет писать отдельную реализация для дебагера, я планирую реализовать mono дебагер к Microsoft .NET). Если есть желающие — пишите на почту.

.NET


Добавлена поддержка Mono Docs, которые хранятся в доволи специфичном формате.

image

C#


За это время много чего было реализовано.

* Lambda expressions, теперь обрабатываются, и их параметры имеют корректный тип.
image

* Method extensions. Была поправлена декомпиляция методов, для правильного определения this модификатора. Также был сделан поиск этих же методов

image

* Корректная поддержка версии шарпа. Сейчас уже подсвечивается выражения которые не поддерживаются версией языка, который вы поставили в настройках

image

image

* Multi-dimenstion arrays

image

* Поддержка Partial типов

* Бинарые операции терь возращают корректный тип

Песочница


Этот раздел касается разных задач, которые косвенно касаются .NET/C# плагинов.

* Сделана поддержка NUnit, но пока она далеко до идеала, нужно больше времени уделить ей

image

* Сделана начальная поддержка импорта проектов Visual Studio

* Есть начальная реализация для IKVM

image

image

Поддерживается статичная и динамичная компиляция для Microsoft .NET. Для Mono .NET поддерживается только динамический запуск. Статичная компиляция сломана у оффициальных билдов Mono.

P.S.


Текущий статус — альфа. Пока что не годится для работы в production. Ещё много багов — которые правятся и создаются каждый день. Продолжать работать я буду, неизвестно пока с какой силой, так как могу сменить место жительства — а это будет мешать. Желающие помочь — было бы хорошо.

Я хочу ответить на пару вопросов, которые мне задали раньше.

Переноса на .NET платформу (через IKVM) — не будет. Главная причина — это смена шила на мыло. А вторая — это то, что даже автор IKVM не поддерживает Mono.

Переноса на IntelliJ платформу также не будет. Причины есть, которые я не хочу тут писать, во избежания флейма. Одна из них — я не люблю тучу IDE на компе. Кто захочет — может перенести. Но я знаю, это практически не возможно (много времени уйдет на перенос).

Спасибо за внимание.

Links


* Основной репозиторий
* Репозиторий плагина .NET / C#
* Night Builds(плагин устанавливается через интерфейс — Microsoft .NET или Mono .NET):
Windows
Mac
Linux
Tags:
Hubs:
Total votes 10: ↑9 and ↓1+8
Comments4

Articles