¿Puedo establecer un resaltado de sintaxis predeterminado en Gedit?

24

Hasta que guarde un documento en gedit, el resaltado de sintaxis está desactivado. Obviamente, hay buenas razones para esto: las personas pueden confundirse si ciertas palabras aparecen aleatoriamente en diferentes colores. Pero para mis propósitos, uso gedit casi exclusivamente para la edición de HTML.

Muchas veces pego fragmentos de código en un nuevo documento gedit para una edición rápida, y tengo que configurar manualmente el color de la sintaxis en HTML. Otras veces, abro documentos de ColdFusion (.cfm), que gedit aparentemente no reconoce, y nuevamente tengo que configurar manualmente el color en HTML. Ambos inconvenientes se solucionarían si pudiera encontrar una manera de decirle a gedit que use automáticamente el resaltado de sintaxis HTML para nuevos documentos y documentos sin una extensión de archivo reconocida. es posible?

Michael Martin-Smucker
fuente
También me preguntaba si podría cambiar entre diferentes idiomas sin tener que guardar el archivo, al igual que en SciTE. Me ahorraría tiempo
nickguletskii

Respuestas:

21

Al menos puede añadir extensiones de archivo en la sintaxis html combinación de colores mediante la edición html.langde /usr/share/gtksourceview-2.0/language-specs/sistema como superusuario. Digamos que desea agregar resaltado de sintaxis HTML a archivos cfm, cambiaría esto

<property name="globs">*.html;*.htm</property>

(predeterminado html.lang) en este

<property name="globs">*.html;*.htm;*.cfm</property>

jdup
fuente
¡Gracias! Esto funcionó para hacer que gedit agregue colores de sintaxis a mis archivos ColdFusion.
Michael Martin-Smucker
2
Desearía poder agregar algunos votos adicionales a esta respuesta. Acabo de usar esta respuesta nuevamente para dar resaltado CSS a archivos MENOS y SASS.
Michael Martin-Smucker
1
Me gusta la idea de duplicar y editar .langen el directorio de usuario yo mismo
jozxyqk
1
@michaelms Agregué un voto positivo a la publicación y a su comentario porque también agregué resaltar la sintaxis CSS a mis MENOS archivos en gedit editando sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang y agregando *. less y * .sass a la propiedad globs: <property name="globs">*.css;*.CSSL;*.less;*.sass</property>
Link Swanson
Puede que tenga que modificar la ruta para diferentes versiones de gtksourceview. También puede copiar el archivo a su carpeta de perfil para evitar que se sobrescriba. Vea la respuesta de 5chdn a continuación ( askubuntu.com/a/310553/37574 )
mwfearnley
14

Puede crear sus propios archivos de definición de idioma en su $HOMEdirectorio. No se recomienda editar las especificaciones del lenguaje gtk, ya que se anulará con cada actualización de gtksourceview.

Copie el archivo de especificaciones de idioma en su directorio de inicio:

$ cp /usr/share/gtksourceview-3.0/language-specs/html.lang ~/.local/share/gtksourceview-3.0/language-specs/

Luego, agregue sus formatos de archivo personalizados como .cfma la lista de extensiones:

<property name="globs">*.html;*.htm;*.cfm</property>

De esa manera, geditse utilizará el resaltado automático de sintaxis en sus formatos de archivo personalizados y las actualizaciones de GTK no anularán sus cambios personalizados.

Afr
fuente
1
Esta es una mejor opción que la respuesta seleccionada. Cuando sea posible, aplique los cambios localmente.
nightcod3r el
Pero, ¿cómo reconocerá gedut el archivo copiado en $ HOME? ¿Cómo le digo a gedit que el archivo .lang en $ HOME necesita ser examinado? Gracias por adelantado.
Srikrishnan
8

Esto no es posible sin modificar el código fuente de Gedit o escribir un complemento para anular el valor predeterminado. El esquema de resaltado de sintaxis predeterminado está codificado .

ændrük
fuente
Gracias por señalarme en la dirección correcta. Cloné el último gedit y comencé a hurgar antes de darme cuenta de que gedit ahora depende de gtk + 3. Esto tiene el potencial de convertirse en un desastre mucho más grande de lo que esperaba. ;-)
Michael Martin-Smucker
Una cosa más: ¿alguna idea de qué valores languageson válidos? Miré a través de la fuente de gedity gtksourceviewy no pude encontrar nada que parecían nombres de los idiomas (pero mis conocimientos de C son bastante inexistente.)
Michael Martin-Smucker
1
@MichaelMS No estoy seguro, pero si planeas invertir algún esfuerzo en una solución, honestamente creo que puede ser más fácil implantar una set_languagellamada en el complemento de Python de muestra . Probablemente pueda usar get_languagepara averiguar el valor correcto para resaltar la fuente HTML.
ændrük