lens
lens copied to clipboard
Поддержка Visual Studio
Пожалуй, было бы интересно реализовать поддержку в VS проектов на lens. Из фич будут полезны подсветка кода, автодополнение, отладка, ну и, разумеется, сборка проекта прямо из VS. Это может потребовать выделения парсера и лексера в качестве переиспользуемых компонентов, добавления отладочной информации на этапе компиляции, ну и прочих интеграционных изменений.
Да, это было бы реально круто!
С подсветкой не вижу никаких проблем, раз у нас есть список ключевых слов и лексем.
По поводу отладки - полагаю, достаточно генерировать .pdb - файл. Если я не ошибаюсь, существует класс PDBWriter
, но я не пробовал его использовать.
А вот самое сложное - это, конечно, автодополнение. С ним навскидку даже не представляю, как быть. Возможно, нам понадобятся соратники.
Кстати, интересный вопрос по поводу того, как запускать код на LENS? Или при работе в Visual Studio он будет собираться в виде Console App, а не Class Library?
Как минимум можно посмотреть как все это было проделано для языка SpecSharp - его пилили в стенах Microsoft и все исходники включая интеграцию в VS доступны тут.
Думаю стоит сделать как и с C# - позволить создавать как Class Library так и Console App с соответствующими ограничениями.
На данный момент так и сделано. В LensCompilerOptions
есть флаги AllowSave
, который запрещает импорт сущностей из программы-хоста, и SaveAsExe
, который добавляет в сборку точку входа и помечает ее как Console Application.