Todo depende de la cantidad de tiempo que desee dedicarle. Tengo aproximadamente 2,000 horas de trabajo en mis proyectos de Visual Studio IntelliSense, lo que da como resultado exactamente un servicio de lenguaje en su mayoría completo. Dicho esto, no es su extensión IntelliSense "promedio" para Visual Studio: consulte el feature set for more info.
Aquí hay algunos buenos recursos para ver. Tengo una tendencia a escribir con la suposición de que los usuarios ya están familiarizados con los conceptos básicos de Extensibilidad de Visual Studio y el análisis con ANTLR. Si no lo está, probablemente debería comenzar en www.antlr.org y con mi "puerto ANTLR" de uno de los simple Visual Studio language service tutorials.
Aquí hay algunas publicaciones que muestran lo serio que soy sobre el tema. : D
- How does code completion work?
- inteligente código de finalización original y revisited. Claramente tomo este último más en serio que otras personas (votaron a favor y votaron a favor de cerrarlo), pero creo que hacerlo solo les da a mis usuarios un mejor producto. :)
- Lexing incremental de alta velocidad para el resaltado de sintaxis original (under IScanner-friendly lexers), cleaned up (significantly - vastly preferable to the original), e hizo yet again 6x faster in 1/4 the memory.
- Pequeñas cosas como sane commenting/uncommenting y brace matching hacen la diferencia. En una nota lateral, una vez que utilizas una que se comporta bien, las otras (incluidas las de algunos lenguajes de Microsoft en Visual Studio) son bastante molestas.
- Si puede, lea todas las publicaciones relacionadas con IntelliSense en mi blog.
- Smart indent es un PITA (quiero decir realmente inteligente, por ejemplo, el servicio de lenguaje C# en VS2008). Tengo una relación amor/odio con eso. Ahora estoy molesto porque escribir esta viñeta me hizo pensar en ello. Argh. Mi idea aquí me hace un poco indulgente con que se rompan en VS2010 Beta 1, pero no me impide perder su genialidad.
PD: Ahora puedo crear un resaltador de sintaxis para un nuevo idioma que comenta/descomenta en 1 día. En el mismo día, soy capaz de obtener también las barras de miembro tipo &.
+1 referencias/enlaces :-) – torial
si alguna vez se sienten como unirse a un proyecto OSS integración de un nuevo idioma a VS luego tomar un vistazo a Marvin fulloo.info/Examples/Marvin o GitHub.com/runefs/Marvin –
@ 280Z28, también he estado pirateando la capacidad de Visual Studio. No obstante, la pregunta que no he podido responder es: ¿cuál es la forma "CORRECTA" de implementar un servicio de idioma completo, como VS2012/VS2010? En este momento he estado usando MEF para implementar todo (IWpfTextViewCreationListener, IClassifier, IQuickInfoSource, ISignatureHelpSource, ICompletionSource) etc. Parece que funciona, pero me pregunto si implementar ILanguageService es un mejor enfoque. –