2010-02-11 15 views
19

Quiero tener una especie de indiacator en el lado izquierdo de la línea donde quiera que tengo en el código fuenteEmacs: Indicador de TODO en el lado izquierdo

#TODO: algunos comentarios

// TODO: algunos comentarios

El indicador podría ser una marca justa y ya habilité los números de línea mostrados en emacs.

Respuesta

20

Este comando hará lo que usted desee.

(defun annotate-todo() 
    "put fringe marker on TODO: lines in the curent buffer" 
    (interactive) 
    (save-excursion 
    (goto-char (point-min)) 
    (while (re-search-forward "TODO:" nil t) 
     (let ((overlay (make-overlay (- (point) 5) (point)))) 
     (overlay-put overlay 'before-string (propertize "A" 
                 'display '(left-fringe right-triangle))))))) 

Usted puede customize the bitmap lo deseas.

Para conseguir que esto se aplica a todos los archivos, puede agregarlo a la 'find-file-hooks

(add-hook 'find-file-hooks 'annotate-todo) 

O, si lo desea sólo para ciertos modos, se podría añadir a esos ganchos de modo.

Ver Fringes, The 'display' Property, Overlays, y lo más importante, la propiedad before-string.

Nota: El código se actualizó el 27/02/2010 para utilizar superposiciones en lugar de agregar directamente propiedades de texto al texto actual.

+0

Este trabajo grande. desafortunadamente, he habilitado el número de línea para mostrar. Entonces los números de línea están anulando la marca TODO: Cualquier forma de hacer que ambos aparezcan –

+0

@Trey Jackson. Funciona muy bien ahora. Agregué al lado del indicador del número de línea. Muchas gracias –

+0

Cool! pero ..... :) ... Lo que sería más útil es mostrar barras rojas en el borde, a escala del documento. En otras palabras, si el TODO aparece en el punto del 75% del documento, entonces el indicador también aparecerá al 75% en la barra marginal, independientemente del estado de desplazamiento y si el TODO estaba visible en la ventana en ese momento. Algunas herramientas de diff hacen esto. Con ese tipo de indicador, puede ver la presencia de elementos TODO indicados en la franja, independientemente de si son visibles actualmente en la pantalla. – Cheeso

6

Me gusta el enfoque descrito en this post en emacs-fu, que agrega TODO/FIXME/... a la configuración de bloqueo de fuentes de los modos donde lo necesita. A diferencia del enfoque de Trey, esto debería resaltar las palabras a medida que escribe, mientras que su enfoque solo debería resaltarlas al abrir un archivo (o lo hago incorrectamente).

De todos modos, depende de usted. Una buena búsqueda en Google le da probablemente incluso más ideas: http://www.google.com/search?q=emacs+highlight+todo

Actualización: su pregunta ya ha sido contestada: Emacs, highlight all occurences of a word

Cuestiones relacionadas