aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/textmodes
diff options
context:
space:
mode:
authorJoakim Verona2013-07-02 22:46:17 +0200
committerJoakim Verona2013-07-02 22:46:17 +0200
commit3718127221fbbc31f8ebd027ab7c95403dbe9118 (patch)
treeef422898f3344c8f94f6ecf63eb583122bbf2bd8 /lisp/textmodes
parent1ce45b902c67b8a0dda8d71bd2812de29a9988a6 (diff)
parenta3b49114c186d84404226af75ae7905bd1cd018f (diff)
downloademacs-3718127221fbbc31f8ebd027ab7c95403dbe9118.tar.gz
emacs-3718127221fbbc31f8ebd027ab7c95403dbe9118.zip
Merge branch 'trunk' into xwidget
Conflicts: src/window.c
Diffstat (limited to 'lisp/textmodes')
-rw-r--r--lisp/textmodes/bibtex.el14
-rw-r--r--lisp/textmodes/reftex.el2
-rw-r--r--lisp/textmodes/remember.el133
-rw-r--r--lisp/textmodes/rst.el4
4 files changed, 130 insertions, 23 deletions
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index 01a126eb381..171f373317a 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -1224,7 +1224,10 @@ Used by `bibtex-complete-crossref-cleanup' and `bibtex-copy-summary-as-kill'."
1224 (function :tag "Personalized function"))) 1224 (function :tag "Personalized function")))
1225 1225
1226(defcustom bibtex-generate-url-list 1226(defcustom bibtex-generate-url-list
1227 '((("url" . ".*:.*"))) 1227 '((("url" . ".*:.*"))
1228 (("doi" . "10\\.[0-9]+/.+")
1229 "http://dx.doi.org/%s"
1230 ("doi" ".*" 0)))
1228 "List of schemes for generating the URL of a BibTeX entry. 1231 "List of schemes for generating the URL of a BibTeX entry.
1229These schemes are used by `bibtex-url'. 1232These schemes are used by `bibtex-url'.
1230 1233
@@ -1261,6 +1264,7 @@ The following is a complex example, see URL `http://link.aps.org/'.
1261 (\"volume\" \".*\" 0) 1264 (\"volume\" \".*\" 0)
1262 (\"pages\" \"\\`[A-Z]?[0-9]+\" 0)))" 1265 (\"pages\" \"\\`[A-Z]?[0-9]+\" 0)))"
1263 :group 'bibtex 1266 :group 'bibtex
1267 :version "24.4"
1264 :type '(repeat 1268 :type '(repeat
1265 (cons :tag "Scheme" 1269 (cons :tag "Scheme"
1266 (cons :tag "Matcher" :extra-offset 4 1270 (cons :tag "Matcher" :extra-offset 4
@@ -3400,9 +3404,6 @@ if that value is non-nil.
3400 (set (make-local-variable 'syntax-propertize-function) 3404 (set (make-local-variable 'syntax-propertize-function)
3401 (syntax-propertize-via-font-lock 3405 (syntax-propertize-via-font-lock
3402 bibtex-font-lock-syntactic-keywords)) 3406 bibtex-font-lock-syntactic-keywords))
3403 (setq imenu-generic-expression
3404 (list (list nil bibtex-entry-head bibtex-key-in-head))
3405 imenu-case-fold-search t)
3406 ;; Allow `bibtex-dialect' as a file-local variable. 3407 ;; Allow `bibtex-dialect' as a file-local variable.
3407 (add-hook 'hack-local-variables-hook 'bibtex-set-dialect nil t)) 3408 (add-hook 'hack-local-variables-hook 'bibtex-set-dialect nil t))
3408 3409
@@ -3479,7 +3480,10 @@ LOCAL is t for interactive calls."
3479 (concat "^[ \t]*@[ \t]*\\(?:" 3480 (concat "^[ \t]*@[ \t]*\\(?:"
3480 (regexp-opt 3481 (regexp-opt
3481 (append '("String" "Preamble") 3482 (append '("String" "Preamble")
3482 (mapcar 'car bibtex-entry-alist))) "\\)")))) 3483 (mapcar 'car bibtex-entry-alist))) "\\)"))
3484 (setq imenu-generic-expression
3485 (list (list nil bibtex-entry-head bibtex-key-in-head))
3486 imenu-case-fold-search t)))
3483 3487
3484;; Entry commands and menus for BibTeX dialects 3488;; Entry commands and menus for BibTeX dialects
3485;; We do not use `easy-menu-define' here because this gets confused 3489;; We do not use `easy-menu-define' here because this gets confused
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
index 7fed4d0d021..ae8f94fd063 100644
--- a/lisp/textmodes/reftex.el
+++ b/lisp/textmodes/reftex.el
@@ -2256,6 +2256,8 @@ IGNORE-WORDS List of words which should be removed from the string."
2256 (define-key reftex-mode-map [(shift mouse-2)] 2256 (define-key reftex-mode-map [(shift mouse-2)]
2257 'reftex-mouse-view-crossref))) 2257 'reftex-mouse-view-crossref)))
2258 2258
2259(defvar bibtex-mode-map)
2260
2259;; Bind `reftex-view-crossref-from-bibtex' in BibTeX mode map 2261;; Bind `reftex-view-crossref-from-bibtex' in BibTeX mode map
2260(eval-after-load 2262(eval-after-load
2261 "bibtex" 2263 "bibtex"
diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el
index 5782f25e48d..39f3acd2c4c 100644
--- a/lisp/textmodes/remember.el
+++ b/lisp/textmodes/remember.el
@@ -382,8 +382,18 @@ Subject: %s\n\n"
382;; Remembering to plain files 382;; Remembering to plain files
383 383
384(defcustom remember-data-file (locate-user-emacs-file "notes" ".notes") 384(defcustom remember-data-file (locate-user-emacs-file "notes" ".notes")
385 "The file in which to store unprocessed data." 385 "The file in which to store unprocessed data.
386When set via customize, visited file of the notes buffer (if it
387exists) might be changed."
386 :type 'file 388 :type 'file
389 :set (lambda (symbol value)
390 (let ((buf (find-buffer-visiting (default-value symbol))))
391 (set-default symbol value)
392 (when (buffer-live-p buf)
393 (with-current-buffer buf
394 (set-visited-file-name
395 (expand-file-name remember-data-file))))))
396 :initialize 'custom-initialize-default
387 :group 'remember) 397 :group 'remember)
388 398
389(defcustom remember-leader-text "** " 399(defcustom remember-leader-text "** "
@@ -393,21 +403,20 @@ Subject: %s\n\n"
393 403
394(defun remember-append-to-file () 404(defun remember-append-to-file ()
395 "Remember, with description DESC, the given TEXT." 405 "Remember, with description DESC, the given TEXT."
396 (let ((text (buffer-string)) 406 (let* ((text (buffer-string))
397 (desc (remember-buffer-desc))) 407 (desc (remember-buffer-desc))
398 (with-temp-buffer 408 (remember-text (concat "\n" remember-leader-text (current-time-string)
399 (insert "\n" remember-leader-text (current-time-string) 409 " (" desc ")\n\n" text
400 " (" desc ")\n\n" text) 410 (save-excursion (goto-char (point-max))
401 (if (not (bolp)) 411 (if (bolp) nil "\n"))))
402 (insert "\n")) 412 (buf (find-buffer-visiting remember-data-file)))
403 (if (find-buffer-visiting remember-data-file) 413 (if buf
404 (let ((remember-text (buffer-string))) 414 (with-current-buffer buf
405 (set-buffer (get-file-buffer remember-data-file)) 415 (save-excursion
406 (save-excursion 416 (goto-char (point-max))
407 (goto-char (point-max)) 417 (insert remember-text))
408 (insert remember-text) 418 (if remember-save-after-remembering (save-buffer)))
409 (when remember-save-after-remembering (save-buffer)))) 419 (append-to-file remember-text nil remember-data-file))))
410 (append-to-file (point-min) (point-max) remember-data-file)))))
411 420
412(defun remember-region (&optional beg end) 421(defun remember-region (&optional beg end)
413 "Remember the data from BEG to END. 422 "Remember the data from BEG to END.
@@ -551,4 +560,96 @@ the data away for latter retrieval, and possible indexing.
551\\{remember-mode-map}" 560\\{remember-mode-map}"
552 (set-keymap-parent remember-mode-map nil)) 561 (set-keymap-parent remember-mode-map nil))
553 562
563;; Notes buffer showing the notes:
564
565(defcustom remember-notes-buffer-name "*notes*"
566 "Name of the notes buffer.
567Setting it to *scratch* will hijack the *scratch* buffer for the
568purpose of storing notes."
569 :type 'string
570 :version "24.4")
571
572(defcustom remember-notes-initial-major-mode nil
573 "Major mode to set to notes buffer when it's created.
574If set to nil will use the same mode as `initial-major-mode'."
575 :type '(choice (const :tag "Same as `initial-major-mode'" nil)
576 (function :tag "Major mode" text-mode))
577 :version "24.4")
578
579(defcustom remember-notes-bury-on-kill t
580 "Whether to bury notes buffer instead of killing."
581 :type 'boolean
582 :version "24.4")
583
584(defun remember-notes-save-and-bury-buffer ()
585 "Saves and buries current buffer.
586Buffer is saved only if `buffer-modified-p' returns non-nil."
587 (interactive)
588 (when (buffer-modified-p)
589 (save-buffer))
590 (bury-buffer))
591
592
593
594(defvar remember-notes-mode-map
595 (let ((map (make-sparse-keymap)))
596 (define-key map "\C-c\C-c" 'remember-notes-save-and-bury-buffer)
597 map)
598 "Keymap used in remember-notes mode.")
599
600(define-minor-mode remember-notes-mode
601 "Minor mode for the `remember-notes' buffer."
602 nil nil nil
603 (cond
604 (remember-notes-mode
605 (add-hook 'kill-buffer-query-functions
606 #'remember-notes--kill-buffer-query nil t)
607 (setq buffer-save-without-query t))))
608
609;;;###autoload
610(defun remember-notes (&optional switch-to)
611 "Creates notes buffer and switches to it if called interactively.
612
613If a notes buffer created by a previous invocation of this
614function already exist, it will be returned. Otherwise a new
615buffer will be created whose content will be read from file
616pointed by `remember-data-file'. If a buffer visiting this file
617already exist, that buffer will be used instead of creating a new
618one (see `find-file-noselect' function for more details).
619
620Name of the created buffer is taken from `remember-notes-buffer-name'
621variable and if a buffer with that name already exist (but was not
622created by this function), it will be first killed.
623\\<remember-notes-mode-map>
624`remember-notes-mode' is active in the notes buffer which by default
625contains only one \\[save-and-bury-buffer] binding which saves and
626buries the buffer.
627
628Function returns notes buffer. When called interactively,
629switches to it as well.
630
631Notes buffer is meant for keeping random notes which you'd like to
632preserve across Emacs restarts. The notes will be stored in the
633`remember-data-file'."
634 (interactive "p")
635 (let ((buf (or (find-buffer-visiting remember-data-file)
636 (with-current-buffer (find-file-noselect remember-data-file)
637 (and remember-notes-buffer-name
638 (not (get-buffer remember-notes-buffer-name))
639 (rename-buffer remember-notes-buffer-name))
640 (funcall (or remember-notes-initial-major-mode
641 initial-major-mode))
642 (remember-notes-mode 1)
643 (current-buffer)))))
644 (when switch-to
645 (switch-to-buffer buf))
646 buf))
647
648(defun remember-notes--kill-buffer-query ()
649 (when (buffer-modified-p)
650 (save-buffer))
651 (if remember-notes-bury-on-kill
652 (bury-buffer)
653 t))
654
554;;; remember.el ends here 655;;; remember.el ends here
diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el
index 01981175e1d..a841ec39314 100644
--- a/lisp/textmodes/rst.el
+++ b/lisp/textmodes/rst.el
@@ -2419,8 +2419,8 @@ level to align."
2419 ;; for the numbers. 2419 ;; for the numbers.
2420 (if (cdr node) 2420 (if (cdr node)
2421 (setq fmt (format "%%-%dd" 2421 (setq fmt (format "%%-%dd"
2422 (1+ (floor (log10 (length 2422 (1+ (floor (log (length (cdr node))
2423 (cdr node)))))))))) 2423 10))))))))
2424 2424
2425 (dolist (child (cdr node)) 2425 (dolist (child (cdr node))
2426 (rst-toc-insert-node child 2426 (rst-toc-insert-node child