Archivo por días: 10 septiembre, 2020

Indicar a Visual Studio que al copiar texto lo haga con colores más enriquecidos (el RTF)

Pues eso… Si usas el texto copiado de Visual Studio para después mostrarlo coloreado en una publicación en la WEB (un blog, etc.) este truco que te explico aquí te será de gran ayuda, ya que le indica que a demás de colorear el código «normal» (instrucciones, comentarios y cadenas entrecomilladas) también copie el color de los tipos.

Esto lo utilizo con mi utilidad de colorear el código (gsColorearCodigo), concretamente usando la opción Colorear desde RTF del menú contextual de la caja de textos donde se pega el código a colorear.

Y ( lo que decía ese párrafo anterior 🙂 ) antes, al copiar texto del editor de Visual Studio, éste me contenía los colores de los tipos de datos (verde azulado), pero últimamente no lo hacía, así que… esta mañana me puse a ver las opciones del editor de textos (realmente buscando otra cosa, todo hay que decirlo) y me topé con una opción que no era muy aclaratorio de que podía ser eso lo que lo solucionara: Usar clasificación precisa. Pero al estar justo debajo de Copiar texto enriquecido al copiar o cortar, pues… ¡tuve que probarlo! 😉

Y eso es… aquí te dejo la nota «adicional» que puse en el post anterior en el que explico sobre la nueva versión de la utilidad de colorear código.

 

Nota adicional sobre el coloreado de Visual Studio

Comenté en el párrafo anterior que Visual Studio no pasa los colores de las clases (verde azulado) y antes lo hacía. ¿Lo habrán quitado?

No, no lo han quitado.

Y es que el que lo haga o no depende de una opción en la configuración del editor de textos de Visual Studio.

Esa opción en español es: Usar clasificación precisa.
En inglés es: Use accurate classification.

Y con esos nombres… ¿Quién lo iba a saber?

Para poder cambiar (activar) esa opción lo tienes que hacer en: (ver la captura)
Herramientas>Opciones>Editor de textos>Avanzadas
En inglés sería:
Tools>Options>Text editor>Advanced

Opción para que al copiar el código en Visual Studio coloree también las definiciones de los tipos

Fíjate que también tiene que estar seleccionada la opción Copiar texto enriquecido al copiar o cortar (Copy rich text on copy/cut).

Al pegar el texto coloreado, quedaría así:

''' <summary>
''' Devuelve la versión de la DLL.
''' Si completa es True, se devuelve también el nombre de la DLL:
''' gsColorear v 1.0.7.0 (para .NET Framework 4.7.2 revisión del dd/MMM/yyyy)
''' </summary>
Public Shared Function Version(Optional completa As Boolean = False) As String
    Dim res = ""
    Dim ensamblado = System.Reflection.Assembly.GetExecutingAssembly
    'Dim m_fvi = System.Diagnostics.FileVersionInfo.GetVersionInfo(ensamblado.Location)
    'res = $"v {m_fvi.FileVersion}"

    Dim versionAttr = ensamblado.GetCustomAttributes(GetType(System.Reflection.AssemblyVersionAttribute), False)
    'DirectCast(DirectCast(versionAttr, System.Reflection.AssemblyVersionAttribute())(0), System.Reflection.AssemblyVersionAt
    Dim vers = If(versionAttr.Length > 0, (TryCast(versionAttr(0), System.Reflection.AssemblyVersionAttribute)).Version,
                                      "1.0.7.0")
    Dim fileVerAttr = ensamblado.GetCustomAttributes(GetType(System.Reflection.AssemblyFileVersionAttribute), False)
    Dim versF = If(fileVerAttr.Length > 0, (TryCast(fileVerAttr(0), System.Reflection.AssemblyFileVersionAttribute)).Version,
                                      "1.0.7.1")

    res = $"v {vers} ({versF})"

    If completa Then
        Dim prodAttr = ensamblado.GetCustomAttributes(GetType(System.Reflection.AssemblyProductAttribute), False)
        Dim producto = If(prodAttr.Length > 0, (TryCast(prodAttr(0), System.Reflection.AssemblyProductAttribute)).Product,
                                        "gsColorear")

        res = $"{producto} {res} (para .NET Framework 4.7.2 revisión del 09/Sep/2020)"
    End If
    Return res
End Function

 

Nos vemos.
Guillermo