X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/4628bef1eea0f60e846fe6b6591725aa92952de9..acc443ad03bf46aa49c87bc93f2df836bedede94:/lisp/linum.el diff --git a/lisp/linum.el b/lisp/linum.el index 4ab4b10a7c..bbf7ebec39 100644 --- a/lisp/linum.el +++ b/lisp/linum.el @@ -1,9 +1,9 @@ -;;; linum.el --- display line numbers in the left margin +;;; linum.el --- display line numbers in the left margin -*- lexical-binding: t -*- -;; Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 2008-2014 Free Software Foundation, Inc. ;; Author: Markus Triska -;; Maintainer: FSF +;; Maintainer: emacs-devel@gnu.org ;; Keywords: convenience ;; Version: 0.9x @@ -44,7 +44,6 @@ "Show line numbers in the left margin." :group 'convenience) -;;;###autoload (defcustom linum-format 'dynamic "Format used to display line numbers. Either a format string like \"%7d\", `dynamic' to adapt the width @@ -52,7 +51,9 @@ as needed, or a function that is called with a line number as its argument and should evaluate to a string to be shown on that line. See also `linum-before-numbering-hook'." :group 'linum - :type 'sexp) + :type '(choice (string :tag "Format string") + (const :tag "Dynamic width" dynamic) + (function :tag "Function"))) (defface linum '((t :inherit (shadow default))) @@ -73,7 +74,12 @@ and you have to scroll or press \\[recenter-top-bottom] to update the numbers." ;;;###autoload (define-minor-mode linum-mode - "Toggle display of line numbers in the left margin." + "Toggle display of line numbers in the left margin (Linum mode). +With a prefix argument ARG, enable Linum mode if ARG is positive, +and disable it otherwise. If called from Lisp, enable the mode +if ARG is omitted or nil. + +Linum mode is a buffer-local minor mode." :lighter "" ; for desktop.el (if linum-mode (progn @@ -146,7 +152,7 @@ and you have to scroll or press \\[recenter-top-bottom] to update the numbers." (run-hooks 'linum-before-numbering-hook) ;; Create an overlay (or reuse an existing one) for each ;; line visible in this window, if necessary. - (while (and (not (eobp)) (<= (point) limit)) + (while (and (not (eobp)) (< (point) limit)) (let* ((str (if fmt (propertize (format fmt line) 'face 'linum) (funcall linum-format line))) @@ -174,14 +180,14 @@ and you have to scroll or press \\[recenter-top-bottom] to update the numbers." (setq line (1+ line))) (set-window-margins win width (cdr (window-margins win))))) -(defun linum-after-change (beg end len) +(defun linum-after-change (beg end _len) ;; update overlays on deletions, and after newlines are inserted (when (or (= beg end) (= end (point-max)) (string-match-p "\n" (buffer-substring-no-properties beg end))) (linum-update-current))) -(defun linum-after-scroll (win start) +(defun linum-after-scroll (win _start) (linum-update (window-buffer win))) ;; (defun linum-after-size (frame) @@ -202,5 +208,4 @@ and you have to scroll or press \\[recenter-top-bottom] to update the numbers." (provide 'linum) -;; arch-tag: dea45631-ed3c-4867-8b49-1c41c80aec6a ;;; linum.el ends here