Реализуйте пользовательский редактор в Visual Studio 2008 или 2010 - PullRequest
4 голосов
/ 03 июня 2010

Я пытаюсь найти документацию о том, как можно было бы создать собственный плагин редактора для VS2008 или VS2010.

Синтаксис файла, который я хочу редактировать, взят из инструмента под названием TemplateMaschine , автор Stefan Sarstedt.

Пример синтаксиса шаблона:

<%@ Assembly Name="System.Xml" %>
<%@ Import NameSpace="System.Xml" %>
<%@ Import NameSpace="System.Collections" %>
<%@ Argument Name="className" Type="string" %>
<%@ Argument Name="attributes" Type="ArrayList" %>

public class <%=className%>
{
<% foreach(string attr in attributes) { %>
public string <%=attr%>;
<% } %>
}

Самыми важными функциями редактора для меня будут проверка синтаксиса в режиме реального времени и завершение кода. Если бы мы могли получить эти функции, это бы спасло нас от ТЫСЯЧ человеческих часов.

Если не включить собственный редактор в Studio, может быть, есть какой-нибудь проект с открытым исходным текстом, который может быть легко расширен для моих целей? Я немного посмотрел на Eclipse, но я думаю, что завершение кода не будет возможным (также мои вонючие Java). Другой возможностью может быть расширение компонента текстового редактора SharpDevelop.

Идеи и предложения приветствуются!

Ответы [ 2 ]

5 голосов
/ 03 июня 2010

В VS2008 и VS2010 есть несколько опций.

Существует Managed Babel, который позволяет автоматически получать эти функции с учетом грамматики (я считаю, что по умолчанию используется flex / bison). Вы можете прочитать об этом на MSDN .

Существует структура управляемого пакета (MPF), которая имеет управляемую языковую службу (MLS) . Если у вас еще нет грамматики, возможно, это самый простой маршрут.

Оба используют обобщенное решение для предоставления языковой услуги, которое описано здесь .

Если вас не интересует таргетинг на VS2008, вы можете сразу перейти к новым API расширяемости редактора в VS2010. Вы можете проверить Ook! пример языка и прочитайте мой ответ на вопрос о расширяемости общего редактора в VS2010 .

2 голосов
/ 03 июня 2010

Если вы хотите создать свой собственный DSL, взгляните на Visual Studio SDK для визуализации и моделирования .

Если использование TemplateMaschine не является полной необходимостью, взгляните на шаблоны t4. Они встроены в Visual Studio, и инструменты (такие как Clarius Visual T4) уже доступны.

...