visual traductor recursos para net mvc multilenguaje ingles idiomas hacer español crear como codigo asp archivos aplicaciones c# visual-studio parsing languageservice

c# - traductor - multilenguaje asp.net mvc



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

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 sintaxis 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 sintaxis?
    ¿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 #.


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 rama 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".


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


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.




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


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: