- PVSM.RU - https://www.pvsm.ru -

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

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

Сделаем обычный Hello World. Что для проверки нам нужно?
1. Скачать билд [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, и ….

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

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

Автор: VISTALL

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/56718

Ссылки в тексте:

[1] билд: https://github.com/consulo/consulo/wiki/Download-links

[2] гитхабе: https://github.com/VISTALL

[3] Источник: http://habrahabr.ru/post/215203/