Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;;; -*- mode:lisp; package:auto-exit -*-
- (provide "auto-exit")
- (defpackage :auto-exit
- (:use :lisp :editor)
- (:export #:start #:stop))
- (in-package :auto-exit)
- (defvar *point* 10000)
- (defvar *interval* 1)
- (defvar *dec* 50)
- (defun counter ()
- (when (< (decf *point* *dec*) 0)
- (save-all-buffers-kill-xyzzy))
- (let ((gauge (floor *point* 125)))
- (message "~V@{#~}~V@{=~}" gauge (- 80 gauge) t)))
- (defun heal ()
- (setq *point* (min 10000 (+ (length (format nil "~A" *this-command*)) *point*))))
- (defun start ()
- (interactive)
- (add-hook '*post-command-hook* 'heal)
- (start-timer *interval* 'counter))
- (defun stop ()
- (interactive)
- (delete-hook '*post-command-hook* 'heal)
- (stop-timer 'counter))
Add Comment
Please, Sign In to add comment