;; Mode mineur affichant un compteur de ligne ;; par Alexandre Brillant (http://www.djefer.com) ;; Variable indiquant si le mode mineur est actif ou non (defvar count-mode nil "Variable de notre mode mineur count affichant préfixant chaque ligne insérée par un compteur.") ;; Fonction appelée par l'utilisateur mettant à jour la variable count-mode (defun count-mode(&optional arg) "Fonction activant le mode mineur" (interactive "P") ;; Mettre à jour la variable count-mode à chaque appel de cette fonction (setq count-mode (if (null arg) (not count-mode) (> (prefix-numeric-value arg) 0))) ;; Commande à effectuée lorsque le mode mineur est activé (if count-mode (progn ;; Appeler la commande count-manage-return pour chaque retour charriot (local-set-key [return] 'count-manage-return) (setq count-value 1)) ;; Enlever la relation entre la touche retour charriot et la commande count-manage-return (local-unset-key [return]))) ;; Déclare le mode mineur count-mode dans la liste des modes mineurs accessibles ;; C'est ce code qui affiche dans la barre de status l'activation ou la désactivation ;; du mode mineur (if (not (assq 'count-mode minor-mode-alist)) (setq minor-mode-alist (cons '(count-mode " Count" ) minor-mode-alist))) ;; Compteur de ligne (defvar count-value 1 "Variable pour le mode mineur count contenant un numéro de ligne") ;; Affiche le compteur aprés chaque retourn charriot (defun count-manage-return() "Cette fonction affiche le compteur aprés chaque retour charriot" (interactive) ;; Se placer au début de la ligne courante (beginning-of-line) ;; Insert le compteur (insert (concat "(" (number-to-string count-value) ") ")) ;; Se positionner à la fin de la ligne courante (end-of-line) ;; Insérer le retour charriot (insert "\n") ;; Incrémenter le compteur (setq count-value (1+ count-value))) (provide 'count)