2009-02-02 27 views
20

He estado usando John Lam's Vibrant Ink esquema de colores VS últimamente y quería modificarlo para que resalte los nombres de métodos para una clase con un color diferente. Resulta que no hay opción en VS para eso.Resaltado de sintaxis personalizado para VS 2008

Resharper tiene a feature que proporciona resaltado de sintaxis personalizado. Me preguntaba qué tan difícil es escribir un pequeño complemento que le brinde resaltado de sintaxis personalizado granular. ¿Hay anuncios de código abierto como ese por ahí?

EDITAR

Gracias a todos, he conseguido piratear la materia para arriba usando DXCore y mi VS está mirando oh tan similar a textmate.

VS is looking fantastic http://img14.imageshack.us/img14/637/awesomevsgq1.png

** NOTA **

tuve que modificar ligeramente el fragmento de Rory por lo que funciona con nombres de métodos y operadores de igualdad de puntos en C#.

ahora estoy utilizando:

  string name = ea.LanguageElement.Name.Split('.').Last(); 

      if (name == ("op_Equality")) { 
       name = "=="; 
      } else if (name == "op_Inequality") { 
       name = "!="; 
      } 

      ea.PaintArgs.OverlayText(name, 
       ea.LanguageElement.NameRange.Start, 
       Color.FromArgb(255,204,0)); 
+0

Creo que en VS es llamado por ad-ins – Avram

Respuesta

11

Bueno, como Brian ya dijo ... My PaintIt plugin le dará una idea de lo que se puede hacer con el DXCore.

También hay algunos otros plugins "decorativos" en nuestro "Community Plugin Site" y tenemos una comunidad decente más en los foros

DevExpress IDE Tools si tiene alguna pregunta específica.

DXCore es el marco en el que se construyen RefactorPro y CodeRush que se debe dar una idea de qué tipo

de capacidad gráfica que son capaces de hacer.

Dicho esto, no necesita ninguna de estas herramientas para usar el DXCore.

Todo en el Community Site is "Open Source" (Así es PaintIt)

Para dar una idea de cómo son las cosas simples ... el siguiente código es todo lo que necesita para agregar a una plantilla básica plugin de obtener las bases hasta y en funcionamiento utilizando DXCore ...

Private Sub PlugIn_EditorPaintLanguageElement(ByVal ea As DevExpress.CodeRush.Core.EditorPaintLanguageElementEventArgs) Handles Me.EditorPaintLanguageElement 
    If ea.LanguageElement.ElementType = LanguageElementType.Method Then 
     ea.PaintArgs.OverlayText(ea.LanguageElement.Name, _ 
           ea.LanguageElement.NameRange.Start, _ 
           Color.HotPink) 
    End If 
End Sub 

he creado un plugin (llamado CR_ColorizeMemberNames) basado en el código y lo ha añadido a la Community Plugin Site.

El binario está disponible en mi sitio here.

sólo tiene que descargar e instalar DXCore y colocar el binary of the plugin en la carpeta de plugins (por defecto C: \ Archivos de programa \ Developer Express Inc \ DXCore para Visual Studio .NET \ 2.0 \ bin \ plugins) .. A continuación, iniciar VS y sus nombres de métodos deberían estar todos en HotPink (Encantador)

+0

Rory, tuve problemas para que Paintit funcionara, pero al usar el fragmento de código me las arreglé para conectar todo esto (ver mi captura de pantalla) muchas gracias –

0

realmente no puedo responder a lo difícil que es, o si hay algún código abierto, pero para hacerlo, usted quiere tomar una looki en marcadores de texto personalizado. Ver estos dos artículos para más detalles:

+0

Los marcadores de texto no son una buena idea para la coloración, ya que vienen con una gran cantidad de sobrecarga. No desea tener que definir un marcador para cada token individual. –

4

Para ir más allá del simple coloración de palabras clave, los detalles sobre el Visual Studio para colorear sintaxis es defined here; y detalles a implement here.

Estos documentos describen cómo la tubería subyacente es, así, sondeado - y lo más importante, entra en detalles sobre la forma de cablear en su propio -

+1

Esos son documentos para definir un servicio de idiomas desde cero. Si lo hiciera, tendría que volver a implementar todo, incluida la intelliscencia. Eso sería realmente costoso. –

3

Si desea rodar su propia, lo recomiendo obteniendo DXCore from DevExpress. Sé que puede agregar sus propios elementos visuales al VS2008 usando este complemento, y creo que también es gratis. hay una comunidad de buen tamaño para ayudarlo a escribir sus propios complementos, e incluso puede que ya haya uno hecho para usted.

¡Soy un gran admirador de DevExpress, y ejecuto Refactor! y CodeRush.

2

Obtenga DXCore, y luego comience con este complemento: http://www.rorybecker.me.uk/PaintIt.html que debería comenzar con algún código para colorear los nombres de los métodos. Rory pone su código a disposición, y creo que es miembro aquí en SO ...

+0

Sí, estoy cerca :) Puede enviarme un correo electrónico a [email protected] o síganme en twitter twitter.com/rorybecker. Ese código ya es bastante viejo, pero estoy trabajando para actualizarlo en este momento. –

Cuestiones relacionadas