1 votos

¿Cómo forzar un formato diff para TextMate?

Tengo este alias:

alias hgd='hg diff|mate'

El problema es que por alguna razón el archivo temporal así creado será un .txt mientras que yo lo necesitaría para tener el diff sintaxis destacada.

Si cambio manualmente el resalte a diff entonces cada .txt Voy a abrir en el futuro utilizará el diff también destacar.

¿Qué puedo hacer para solucionarlo?

2voto

Adam Hughes Puntos 2402

TextMate puede utilizar la extensión de archivo o la primera línea de un archivo para adivinar de qué tipo de archivo se trata.

Para mi paquete de dif (creo que es el original), esto es:

firstLineMatch = '(?x)^
        (===\ modified\ file
        |==== \s* // .+ \s - \s .+ \s+ ====
        |Index:\ 
        |---\ [^%]
        |\*\*\*.*\d{4}\s*$
        |\d+(,\d+)* (a|d|c) \d+(,\d+)* $
        |diff\ --git\ 
        )
    ';

No tengo mercurial, pero parece que la primera línea de su diff puede ser algo como diff -r 2278160e78d4 hello.c . Como tal, puede añadir otra línea a ese gran interruptor OR:

        ...
        |diff\ --git\ 
        |diff\ -r\ 
        )
    ';

Tenga en cuenta que el último carácter de la línea es un espacio.

Como otra alternativa, parece que puede definir su alias como alias hgd='hg diff --git|mate' para utilizar el mismo formato que git, que ya es reconocido por TextMate.

1voto

James Socol Puntos 146

Yo no tengo ningún proyecto mercurial, pero si lo haces en svn (por ejemplo, con svn diff -r 100:099 ) también genera un .txt, pero utiliza el resaltado de diff - ¿tal vez hay una actualización del paquete de diff disponible en su instalación?

Si no es así, puedes reescribir tu alias a algo como hg diff > /tmp/hg.diff && mate /tmp/hg.diff

1voto

shsteimer Puntos 8749

Hacer esto con un alias no funcionará, pero puedes escribir una función bash que se encargue de esto. Algo como:

function hgd {
    T=`mktemp /tmp/hgdiff.XXXXXX.diff`
    hg diff > $T
    mate -w $T
    rm $T
}

en su .bash_profile funcionará. Esto actúa más cerca de lo que estás tratando de lograr en que no deja ningún rastro del archivo temporal en el disco cuando terminas de mirarlo con TextMate.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X