Pull to refresh

Comments 52

Хм, а с Xamarin эту штуку можно подружить?
Возможно все — нужно желания, и время. Пока я хочу закончить с .Net + C#, потом уже выбор
Вот и вопрос — да или нет. Ктото считает что нет. Я показал, что для меня это не миф. Я попросту пока не успеваю сделать все, а хочется :)
Хм.
bool @real = random_bool;
bool unreal = !@real;
Console.WriteLine((@real || unreal) == true);

Output:
true
Напоминает бородатый анегдот про Петьку и приборы. Вопрос «реальность или миф?» не подразумевает ответов «да/нет».
Пока что — это среднее. Много проблем. Сейчас можно сказать — что это фундамент.
Кажется, это обычная манера топикстартера задавать вопросы и вести дискуссию =)
UFO just landed and posted this here
Пара вопросов:

1. А как это связано с Unity3d, собственно? (статья в хабе Unity3d).

2. В чем смысл проекта? На странице в гитхабе надпись «Targeting to create one IDE for all languages». Не слишком амбициозно сразу?

В целом могу сказать, что прект в теории нужный, т.к. Visual Studio закрытый и платный (бесплатный обрубок IDE не в счет), а MonoDevelop aka Xamarin по качеству — не бей лежачего.
1. Unity это одна из целей. Я уже расмотрел СДК и имею уже планы по реализации плагина. Главное это допилить поддержку Шарпа.

2. Для меня — нет. У меня все мои проекты уже в Consulo, IDEA я уже не использую. Пока приоритет это плагин.НЕТ + платформа.

(угу я знаю всю картину)
а MonoDevelop aka Xamarin по качеству — не бей лежачего.
Ну как. За счёт использования NRefactory оно умеет строить полноценное AST, что даёт адекватный автокомплит, семантическую подсветку и базовый набор инструментов рефакторинга кода (до R# как до луны на тракторе, но тем не менее), адекватно поддерживает MSBuild, обеспечивает какую-никакую, а интеграцию с NuGet, имеет свой собственный отладчик (интегрирован в рантайм Mono). Всё это самостоятельно сделать можно, но только вот займёт десятки человеко-месяцев времени.
Mono дебагер — это аналог с явы. Для microsoft — есть исходники дебагера на шарпе, нужно будет просто переписать с CommandLine -> transport передачу даных

Никто не говорит что все будет сразу. Вы правы, что зависит от рук. Чем больше рук тем быстрей будет.
К сожалению, не смотрел под капот, сужу чисто по user experience, в чем он, имхо сильно проигрывает всем известным IDE от Visual Studio до Eclipse.
При выполнении обычных действий в IDE часто выскакивали Null pointer exception (в Xamarin), пресловутый NuGet add-in имеет банальные UI-баги (точно не назову, нету под рукой, но если вы вдруг связаны с проектом, могу потом в личку, а то я в Gtk# ни в зуб ногой), и т.д.

Кстати, насчет IntelliJ очевидный минус в том, что для разработки на .NET/Mono JRE по-хорошему не должен быть нужен.
Консула занимает 50 мб, без плагинов. JRE можно поставлять как bundled, и проблем не будет.
А не пробовали заводить через IKVM? Тогда можно будет через автоматически сгенерированные прокси использовать дотнетные библиотеки.
Consulo — это не .NET IDE. Я например пишу Java в ней тоже:

image

И не только Java
И как это мешает запуску средствами IKVM? IKVM — полноценная реализация JRE же.
А в чем выгода? Ради одной библиотекы — сменить VM? Декомпиляция работает и так. Consulo работает на mac-win-linux. Сейчас разбирать проблемы с их переносимость я не буду, я ж работаю сам.

Сейчас поддержка .NET работает на 3х ОСях, и поддерживает Mono .NET + Microsoft .NEТ. Я доволен этим.

Смена VM — планируется, но в далеком будущем.
Это позволит использовать дотнетные библиотеки (тот же NRefactory для построения AST) напрямую, а не изобретать инструментарий для работы с C# самостоятельно. Можно это сделать даже в out-of-process режиме.
Ну а кто говорит что это нужно? External процесс, это головная боль. Всеодно часть нужно будет писать, для заполнения, фординга, резолвинга, прочее
NRefactory многое из всего этого из коробки умеет же, в том и соль.
Давайте закроем этот разговор.
Многое, но не все. Это лишняя зависимость и звено, которое может иметь свои баги и ограничения. Захотел бы автор запустить, например, среду не только на OSx\nix\Windows а на какой-нибудь www.haiku-os.org/ (по секрету скажу, что Consulo на ней запускается) и этот звено бы этому помешало. Вообщем на вкус и цвет — фломастеры разные, как делается так и делается — не вижу никаких минусов в подходе «сделать все с нуля».
Захотел бы автор запустить, например, среду не только на OSx\nix\Windows а на какой-нибудь www.haiku-os.org/

А смысл запускать .NET-плугин к IDE на платформе, где нельзя не то что запустить, а даже скомпилировать .NET-сборки?
не вижу никаких минусов в подходе «сделать все с нуля».
w:NIH
Собрать mono под nix-подобную систему, поминая какую-либо мать, никто не отменял.
Мало собрать — оно активно /proc эксплуатирует, так что нужно на портирование кода время потратить.
Полная реализация? Я давно смотрел на IKVM, ради ответа — скачал и попробывал запустить(хотя мне это не нужно было)

Но

Internal error. Please report to http://napile.myjetbrains.com/youtrack/ com.intellij.ide.plugins.PluginManager$StartupAbortedException: java.lang.reflect.InvocationTargetException at com.intellij.ide.plugins.PluginManager$2.run(PluginManager.java:91) at java.lang.Thread.run(Thread.java:935) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.ide.plugins.PluginManager$2.run(PluginManager.java:88) ... 1 more Caused by: ikvm.internal.NotYetImplementedError: This method has not yet been implemented in IKVM.NET. at sun.font.SunFontManager.registerFont(SunFontManager.java:401) at java.awt.GraphicsEnvironment.registerFont(GraphicsEnvironment.java:370) at com.intellij.ui.AppUIUtil.registerFont(AppUIUtil.java:145) at com.intellij.ui.AppUIUtil.registerBundledFonts(AppUIUtil.java:130) at com.intellij.idea.StartupUtil.prepareAndStart(StartupUtil.java:102) at com.intellij.idea.MainImpl.start(MainImpl.java:30) ... 3 more

Дальше думаю обьяснять не стоит?
Out-of-process плагину, которому не нужно работать со шрифтами, это как-то мешает? Хотя, хотите городить велосипеды — городите, время ваше, вам и решать, на что его тратить.
Угу, Вы правы — время мое. Я видел плагин с out-of-process анализатором. Поверь проблем было много. Для шарпа даже не стоит такого делать. Вон Ruby — Python — PHP, чтоль отдельным анализатором — нет.
А SharpDevelop почему списали со счетов?
Вполне годная IDE. На порядки лучше чем MonoDevelop.
мой форк IntelliJ IDEA, почему форк – иная тема

Так почему форк? Почему не просто плагин? По моему плагин был бы более интересным…
Много претензий к реализации.
Linq вообще нормально не видит и поэтому не компилируется =(
Как раз это сейчас не в приоритете. Не доходят руки. Кстати интересно, почему не хочет компилится. Нужно будет хотя бы посмотреть. Мб седня гляну
Пример
image


Все работает. Только вот using System.Linq нужно добавить
Перепешите ваш пример в лямбда нотации, в ней он не работает
Все работает. Только вот using System.Linq нужно добавить


Если я точно помню, Select и другие методы, это Extension methods, которые сейчас не поддерживаются
Дело годное, нужное! Очень люблю Idea и давно мечтаю о плагине .Net с возможностью работы в Unity.
Дело, конечно полезное, но, если честно, я бы предпочел чтоб к моно прикрутили полноценный WPF и его-же позволили использовать на Android/iOS через Xamarin или как-нибудь ещё.

(Понимаю, что речь идет о совсем других материях)
Благое дело, конечно, тем более, что сам jetbrains этим по каким-то соображениям заниматься не хочет. Но по силам ли это одному человеку? Тем более, что еще и с переписыванием кода idea. С форком конечно темная история, можно подробнее, что за претензии, что потребовался форк? Просто интересно. Ну и конечно обязательно поставлю и попробую использовать как только будет поддержка extension methods. Даже как-то странно, что их реализация имеет такой низкий приоритет, хотя это важная часть языка и стандартной библиотеки. Когда это можно ожидать? В любом случае спасибо за работу и опенсорс.
Низкий приоритет в том что, я не могу понять как они хранятся в байткоде.

Точнее аргументы аттрибутов. Да и декомпиляторы на Шарпе чтото не помогают. Видимо пойму со временем.

Форк — сделан по многих причинах. Если хотите — я напишу вам в диалоги(пм мне и я напишу), сильно много вещей я хочу изменить.
Не в курсе тонкостей, но могу порекомендовать изучение исходников уже существующих опенсорсных библиотек вроде этой. В наше время всегда очень велика вероятность, что кто-то до тебя уже занимался тем же самым, только чуть под другим углом.
Спасибо — посмотрю. Я разбираю код ILSpy, но там куча всего, трудно найти, притом юзаю студию
Спасибо ещё раз — доволи понятный код. Уже тестю нормальную декомпиляцию аттрибутов
не за что, надеюсь, у вас получится реализовать вашу безумную задумку. А где можно подписаться на новости по поводу вашего проекта?
Я частично пишу в блоге на лж, но там часть написана. Сейчас консула + все плагины, доступна практически в режиме Live, я ниче не прячу. После того как я залил — минут через 10, можно будет увидить это в плагин репозите
Sign up to leave a comment.

Articles