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


102

Quiero escribir un nuevo lenguaje de plantillas y quiero que Visual Studio lo "admita". Lo que necesito saber es:

  1. ¿Cómo analizo mi nuevo idioma?
    Dado algo de código en mi nuevo lenguaje de plantilla, ¿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 a medida que el lenguaje se vuelve más complicado y no hay verificación de errores. He oído hablar de ANTLR pero nunca lo usé. ¿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 sintaxis a la ventana de error con tanta información como sea posible (número de línea, tipo de error) como lo hacen otros idiomas.
  2. ¿Cómo creo un nuevo tipo de archivo para Visual Studio?
  3. ¿Cómo obtengo el resaltado de sintaxis?
    ¿Puedo usar el mismo analizador que creé en el paso 1 o es algo completamente diferente?
  4. ¿Cómo obtengo Intellisense?

Preferiría escribir mi analizador en C #.

Respuestas:


62

Echaría un vistazo a otro lenguaje que ya ha hecho el trabajo preliminar de integrarse 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.

El Resaltado de sintaxis de Boo para VS2010 incluye algunos enlaces recomendados en su página de inicio, que copiaré para una fácil referencia:


29

En cuanto a los aspectos de Visual Studio, lo que necesita es un "servicio de lenguaje", que es la entidad que maneja la coloración, intellisense, etc. para una determinada extensión / tipo de archivo.

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

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

Cuidado, hay una buena 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

Servicios de lenguaje, MPF y extensibilidad de Visual Studio 2010



2

Hay una muestra en VS SDK que muestra la mayoría de las funciones que está buscando.




0

Como se menciona en otras respuestas, la muestra de código más interesante es la extensión de lenguaje Ook para la última versión de Visual Studio (2017 en el momento de escribir este artículo).

Para VS 2015, vea el ejemplo en la rama VS2015 .

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.