Здравствуйте, Аноним, Вы писали:
А>Ребята из JetBrains начали писать документацию по разработке плагинов к решарперу (напр. http://confluence.jetbrains.net/display/ReSharper/New+Language+Support) и заодно выложили ResharperSDK. В связи с этим вопрос: нет ли у кого желания прикрутить поддержку Nemerle к решарперу?
API JetBrains нам ничем не поможет. Он просто не рассчитан на язык типа немерла.
Потом, даже если воспроизвести дерево с помощью их АПИ, все равно большинство рефакторингов придется реализовывать вручную. С тем же успехом можно делать их и сейчас, на базе немерлового АПИ. Было бы кому этим заняться.
ЗЫ
Для нормальной поддержки интеллисенса нужно делать N2. В нем мы будем все проектировать с учетом поддержки интеллисенса и рефакторинга.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, ionoy, Вы писали:
I>Это из-за того, что надо раскрывать макросы?
От части — да. Но главное тут то, что нам придется повторить весь, очень не простой, компилятор. Например, его вывод типов. Мы конечно можем скопировать информацию из нашего представления в Psi-ное. Но что нам это даст? Ведь все рефакторинги придется писать заново. Это мы можем делать и на своем дереве.
Так что реально реализация ReSharper-модуля полезна только появится возможность использовать метаинформацию из проектов входящих в другой солюшен, но написанных на других, поддерживаемых ReSharper-ом языках. Это очень полезная фича, но объем работы который надо проделать слишком большой.
I>Было бы неплохо иметь поддержку хотя бы для стандартных C# фич, которые пересекаются с Немерле.
На самом деле реальные проблемы из-за которых трудно реализовать некоторые виды рефакторинга заключаеются не в том, что нет модуля к ReSharper. Большей проблемой является то, что компилятор изначально не был рассчитан работу в IDE. Его, конечно, можно отрефакторить и устранить все проблемы, но объем работ опять же большой и требует ручного контроля.
Вместо этого мы проектируем N2 в котором все будет реализовано правильно. Парсинг и типизация будет описываться сверхвысокоуроневымы DSL-ями (то что я называю макросы второго поколения). Это позволит гарантировать, что все необходимая информация будет и будет легко доступна. Поддержка IDE и рефакторингов закладывается в дизайн N2. И скорее будет проще реализовать ReSharper для C#-а на N2, нежели рефакторинг для N2 на ReSharper. В прочем, N2 будущее. А в будущем все может круто поменяться.
В общем, если кто-то хочет попробовать свои силы в создании ReSharper-плагина для Nemerle, то никто против не будет. Но он должен понимать, что это очень сложная работа, возможно обреченная на провал.
У нас же на нее просто нет времени. Иначе мы никогда не зарелизим Nemerle 1.1, интеграцию для VS 2010-2011 и не приступим к Н2.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, ionoy, Вы писали:
I>>Это из-за того, что надо раскрывать макросы?
VD>От части — да. Но главное тут то, что нам придется повторить весь, очень не простой, компилятор. Например, его вывод типов. Мы конечно можем скопировать информацию из нашего представления в Psi-ное. Но что нам это даст? Ведь все рефакторинги придется писать заново. Это мы можем делать и на своем дереве.
Рефакторинги, навигацию и др функции заново писать не придется при правильной реализации psi дерева,
но psi дерево стоит немалых усилий ...
Здравствуйте, achmed, Вы писали:
A>Рефакторинги, навигацию и др функции заново писать не придется
Придется. К сожалению, придется. Большая часть рефакторингов пецифична для языка. У них у самих есть разные интеграции для Васика и Шарпа.
Навигация и так есть.
A> при правильной реализации psi дерева, A>но psi дерево стоит немалых усилий ...
Да не дает оно ничего. У нас точно такое же, только специализированное для немерла, дерево есть. При том не одно.
Мы на нем, к примеру, Linq реализовали в виде макроса.
Так что проблемы у нас другие.
1. Нет тех кто мог бы выделено заняться рефакторингами.
2. Качество информации в наших деревьях не всегда хорошего качество.
Повторюсь, еще раз, в Н2 мы планируем решить эти проблемы радикальным образом.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Навигация и так есть.
Файнд юзеджа толкового нету. И Ctrl+T (поиск класса) и Alt+Shift+T(поиск имени) решарперовские не пашут на немерловых исходниках. Я уже молчу по переходу к определению в проект написаный на С# (то же с файнд юзедж)
Здравствуйте, Аноним, Вы писали:
А>Файнд юзеджа толкового нету. И Ctrl+T (поиск класса) и Alt+Shift+T(поиск имени) решарперовские не пашут на немерловых исходниках. Я уже молчу по переходу к определению в проект написаный на С# (то же с файнд юзедж)
А>and vice versa
Да нет, конечно решарпер нужен. Влад просто не работает с ним, видимо, и фишку не видит. Но это большой объем работы и надо чтобы кто-то это нашел время и начал его делать, а еще лучше чтобы закончил. Однозначно на Влада такую ношу возлагать не стоит.
Здравствуйте, Аноним, Вы писали:
А>Файнд юзеджа толкового нету.
Вообще-то есть. Насколько он толковый, это отдельный разговор. И толковость зависит не от поддержки какого-то там АПИ, а от качества сбора информации в компиляторе.
А>И Ctrl+T (поиск класса) и Alt+Shift+T(поиск имени) решарперовские не пашут на немерловых исходниках.
Работают обычные студийные соглашения типа переход к определению и т.п. Решарперных никто и не воспроизводил.
В прочем, информации для подобных поисков хватает. Так что это вопрос реализации интерфейса.
Если кто-то нуждается в подобных фичах, то может сделать сам. Что нужно делать я могу подсказать. С реализацией там все довольно просто.
А>Я уже молчу по переходу к определению в проект написаный на С# (то же с файнд юзедж)
С этим проблема. Вот она, возможно, и решилась бы при реализации на Psi. Только ради одного этого вряд ли стоит убивать кучу времени. Единственное, что можно попытаться использовать Psi (при его наличии) для навигации в референс-проекты. Но решение не универсальное получается. А с появлением Рослина (если он появится, конечно) с мысла в этом вообще будет не много, так как Рослин предоставляет те же сервисиы и будет доступен в студии (и даже без нее) по умолчанию. В прочем, до рослиня, по моим прикидкам еще год два.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.