Поддержка .NET на базе IntelliJ — реальность?

в 9:42, , рубрики: .net, consulo, java, unity3d, метки: , , ,

Мы поговорим, про поддержку .NET на IntelliJ платформе. После прочтения Вы сами решите, реальность ли?

Сделаем обычный Hello World. Что для проверки нам нужно?
1. Скачать билд Consulo (мой форк IntelliJ IDEA, почему форк – иная тема)

2. Запускаем binconsulo.exe(win 32), binconsulo64.exe(win 64), Consulo.app(mac), bin/consulo.sh(linux). Я рекомендую проверять на Windows, хотя я и проверял билды на Линуксе и Маке, но они менее стабильные, да и есть пару проблем (например с Mac + Mono). Если все прошло гладко имеем:

image

3. Кликаем на Actions -> Configure -> Plugins. Видим там пустой список. Нажимаем Browse repositories…. Появится диалог, через секунд 10 появится список доступных плагинов (задержка — плохая реализация плагин репозитория). Ищем там Microsoft .NET или Mono .NET, и устанавливаем. В итоге мы должны иметь:

image

4. Actions -> Create Project -> OK . Мы имеем пустой проект. Идем в настройки проекта. Ищем наш модуль, и выбираем вкладку Extensions. Там выбираем Microsoft .NET -> C# (или Mono .NET -> C#). Structurable экстеншены дают возможность настроить проект, подобный Java (с Source + Test папками, с поддержкой пакетов как у Java):

image

5. После того как нажмем OK, будет задержка и пройдет индексация. Я не исключаю, что во время индексация вылетит Exception, если будет – отправьте через интерфейс мне.
Для проверки, нормально ли все, делаем Ctrl + N -> Console. Если Вы перейдете к классу System.Console, значит все хорошо, и можно продолжать, если нет, прошу отписаться в комментариях.

6. Создаем класс. В дереве проекта, делаем New -> C# Class -> `Program` -> OK , и пишем обычный Hello World

using System;

public class Program
{
    public static void Main(String[] arg)
    {
        Console.WriteLine("Hello World");
    }
}

7. Теперь, нам нужно этот код запустить. Заходим в Run/Debug Configurations -> Add -> .NET Application. Больше ничего не нужно изменять.

”image”

Сохраняем и нажимаем Run:

”image”

На этом наш тест закончен.

Хотелось бы уточнить что это лишь, начальная реализация, которую я делаю в соло режиме (почти 500 коммитов), поддерживает:
• Макросы;
• Декомпиляция .NET библиотек;
• Профили (возможность смены СДК, переменных, прочее);
• Базовый поиск методов, классов, переменных, прочее;
• Подсветка, частичное заполнения, фолдинг;
• Практически весь синтаксис C#.

Но при этом есть баги:
• Бинарные операции возвращают неверный тип;
• Макросы #if имеют привычку ломаться в больших файлах;
• Inner методы и энумы, не участвуют в поиске;
• Декомпиляция не идеальная.

Что у меня в планах?
• Исправлять баги;
• Debugging;
• NUnit, Unity, NAnt, Vistual Studio Importer, IronRuby, IronPython, и ….

Бросать я не собираюсь, время на разработку пока есть. Все ссылки можно найти в моем профиле на гитхабе

UPDATE: немного поправил названия поста

Автор: VISTALL

Источник


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js