Cómo crear un nuevo idioma para usar en Visual Studio

Quiero escribir un nuevo lenguaje de plantillas, y quiero que Visual Studio lo “soporte”. Lo que necesito saber es:

  1. ¿Cómo puedo analizar mi nuevo idioma?
    Dado algún código en mi nuevo lenguaje de plantillas, ¿cómo lo traduzco a HTML? En este momento estoy usando expresiones regulares para analizar token por token, pero no creo que esto vaya a escalar muy bien, ya que el lenguaje se vuelve más complicado y no hay errores en la comprobación. He oído hablar de ANTLR pero nunca lo he usado. ¿Sería esa la herramienta adecuada para este trabajo, o quizás hay algo más simple? Idealmente, me gustaría enviar cualquier error de syntax a la ventana de error con tanta información como sea posible (línea #, tipo de error) como lo hacen otros lenguajes.
  2. ¿Cómo creo un nuevo tipo de archivo para Visual Studio?
  3. ¿Cómo obtengo el resaltado de syntax?
    ¿Puedo usar el mismo analizador que creé en el paso 1 o es algo completamente diferente?
  4. ¿Cómo obtengo Intellisense?

Prefiero escribir mi analizador en C #.

Me gustaría echar un vistazo a otro idioma que ya ha hecho el trabajo de integración con Visual Studio. Un gran ejemplo es Boo. El lenguaje y la integración de Visual Studio son de código abierto. Para que pueda ver exactamente lo que tenían que hacer.

Boo Syntax Highlighting para VS2010 incluye algunos enlaces recomendados en su página de inicio, que copiaré para facilitar su consulta:

En cuanto a los aspectos de Visual Studio, lo que necesita es un “servicio de idioma”, que es la entidad que maneja coloreado, intellisense, etc. para una extensión / tipo de archivo dado.

Para una introducción, vea este artículo
Y para una muestra de código, vea aquí

Con respecto al análisis sintáctico, hay muchas tecnologías y no ofreceré una opinión / consejo.

Tenga cuidado, hay una gran cantidad de trabajo involucrado, aunque en mi opinión es mucho más sencillo en VS2010 que en versiones anteriores de Visual Studio proporcionar este tipo de extensión.

Ver también

Visual Studio 2010 Extensibilidad, MPF y servicios de lenguaje

Escribí un VS Language Service usando este artículo como base: http://www.codeproject.com/KB/recipes/VSLanguageService.aspx

No era tan malo si tienes un manejo básico de Grammars.

Hay un ejemplo en VS SDK que muestra la mayoría de las características que está buscando.

Estaba usando VS con lenguaje propio y necesitaba desesperadamente un resaltado de syntax . Construí el mío basado en este tutorial: https://mattduffield.wordpress.com/2012/07/31/writing-a-brightscript-syntax-highlight-extension-for-visual-studio-2010/

Sé que el tutorial está en VS2010. Hice la mía en VS2012 sin hipo o muy pequeño. (también funcionó en VS2013) Recientemente cambié a VS2015 y la solución se puede editar, comstackr sin problemas.

Encontré esta colección muy útil de muestras recientes para Visual Studio 2013 SDK: http://blogs.msdn.com/b/vsx/archive/2014/05/30/vs-2013-sdk-samples-released.aspx

También contiene la versión reciente de OokLanguage que suena prometedor.

Usamos ANTLR 4 para analizar nuestro lenguaje que funciona como un amuleto y permite la interacción directa con el código C #. Lo puedo recomendar totalmente.

Como se menciona en otras respuestas, el ejemplo de código más interesante es la extensión de idioma Ook para la última versión de Visual Studio (2017 en el momento de la redacción).

Para VS 2015, vea la muestra en la twig VS2015 .

Para instalar el SDK para 2015 o posterior, debe volver a ejecutar la configuración de VS. En 2015 se llama “Actualización de herramientas de extensibilidad de Visual Studio 3”.