mode-line – Aumento de la frecuencia de visualización de la línea de modo

Pregunta:

P: ¿Hay alguna forma de aumentar (temporalmente) la velocidad a la que se vuelve a mostrar la línea de modo?

Estaba tratando de escribir un paquete que agregue una ruleta a la línea de modo (para indicar operaciones en curso), pero choqué un poco con una pared. Si el usuario no está interactuando (no escribe, ni se mueve, ni nada), entonces la línea de modo puede dejar de actualizarse hasta por un minuto. Si ese es el caso, la ruleta no girará.

Comencé a escribir una solución con temporizadores (que periódicamente llamarían redisplay ), pero parece mucho trabajo para algo tan simple.

Respuesta:

Aquí hay una versión simplificada de la solución que se me ocurrió (después de todo, tuve que usar temporizadores). Para obtener la solución completa, consulte spinner.el .

(let ((timer (run-at-time t 0.2 #'ignore)))
  (timer-set-function
   timer (lambda ()
           (if still-ongoing
               (force-mode-line-update)
             (ignore-errors (cancel-timer timer))))))

Esto crea un temporizador que actualiza la línea de modo 5 veces por segundo. Cuando la variable still-ongoing se establece en nil , el tiempo se cancela.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım