diff options
| author | Tom Tromey <tromey@redhat.com> | 2013-07-06 23:18:58 -0600 |
|---|---|---|
| committer | Tom Tromey <tromey@redhat.com> | 2013-07-06 23:18:58 -0600 |
| commit | 6dacdad5fcb278e5a16b38bb81786aac9ca27be4 (patch) | |
| tree | f5f331ea361ba0f99e0f9b638d183ad492a7da31 /lisp/textmodes | |
| parent | 0a6f2ff0c8ceb29703e76cddd46ea3f176dd873a (diff) | |
| parent | 219afb88d9d484393418820d1c08dc93299110ec (diff) | |
| download | emacs-6dacdad5fcb278e5a16b38bb81786aac9ca27be4.tar.gz | |
merge from trunk
this merges frmo trunk and fixes various build issues.
this needed a few ugly tweaks.
this hangs in "make check" now
Diffstat (limited to 'lisp/textmodes')
| -rw-r--r-- | lisp/textmodes/bibtex.el | 14 | ||||
| -rw-r--r-- | lisp/textmodes/reftex.el | 2 | ||||
| -rw-r--r-- | lisp/textmodes/remember.el | 133 | ||||
| -rw-r--r-- | lisp/textmodes/rst.el | 4 |
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'." (function :tag "Personalized function"))) (defcustom bibtex-generate-url-list - '((("url" . ".*:.*"))) + '((("url" . ".*:.*")) + (("doi" . "10\\.[0-9]+/.+") + "http://dx.doi.org/%s" + ("doi" ".*" 0))) "List of schemes for generating the URL of a BibTeX entry. These schemes are used by `bibtex-url'. @@ -1261,6 +1264,7 @@ The following is a complex example, see URL `http://link.aps.org/'. (\"volume\" \".*\" 0) (\"pages\" \"\\`[A-Z]?[0-9]+\" 0)))" :group 'bibtex + :version "24.4" :type '(repeat (cons :tag "Scheme" (cons :tag "Matcher" :extra-offset 4 @@ -3400,9 +3404,6 @@ if that value is non-nil. (set (make-local-variable 'syntax-propertize-function) (syntax-propertize-via-font-lock bibtex-font-lock-syntactic-keywords)) - (setq imenu-generic-expression - (list (list nil bibtex-entry-head bibtex-key-in-head)) - imenu-case-fold-search t) ;; Allow `bibtex-dialect' as a file-local variable. (add-hook 'hack-local-variables-hook 'bibtex-set-dialect nil t)) @@ -3479,7 +3480,10 @@ LOCAL is t for interactive calls." (concat "^[ \t]*@[ \t]*\\(?:" (regexp-opt (append '("String" "Preamble") - (mapcar 'car bibtex-entry-alist))) "\\)")))) + (mapcar 'car bibtex-entry-alist))) "\\)")) + (setq imenu-generic-expression + (list (list nil bibtex-entry-head bibtex-key-in-head)) + imenu-case-fold-search t))) ;; Entry commands and menus for BibTeX dialects ;; 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." (define-key reftex-mode-map [(shift mouse-2)] 'reftex-mouse-view-crossref))) +(defvar bibtex-mode-map) + ;; Bind `reftex-view-crossref-from-bibtex' in BibTeX mode map (eval-after-load "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" ;; Remembering to plain files (defcustom remember-data-file (locate-user-emacs-file "notes" ".notes") - "The file in which to store unprocessed data." + "The file in which to store unprocessed data. +When set via customize, visited file of the notes buffer (if it +exists) might be changed." :type 'file + :set (lambda (symbol value) + (let ((buf (find-buffer-visiting (default-value symbol)))) + (set-default symbol value) + (when (buffer-live-p buf) + (with-current-buffer buf + (set-visited-file-name + (expand-file-name remember-data-file)))))) + :initialize 'custom-initialize-default :group 'remember) (defcustom remember-leader-text "** " @@ -393,21 +403,20 @@ Subject: %s\n\n" (defun remember-append-to-file () "Remember, with description DESC, the given TEXT." - (let ((text (buffer-string)) - (desc (remember-buffer-desc))) - (with-temp-buffer - (insert "\n" remember-leader-text (current-time-string) - " (" desc ")\n\n" text) - (if (not (bolp)) - (insert "\n")) - (if (find-buffer-visiting remember-data-file) - (let ((remember-text (buffer-string))) - (set-buffer (get-file-buffer remember-data-file)) - (save-excursion - (goto-char (point-max)) - (insert remember-text) - (when remember-save-after-remembering (save-buffer)))) - (append-to-file (point-min) (point-max) remember-data-file))))) + (let* ((text (buffer-string)) + (desc (remember-buffer-desc)) + (remember-text (concat "\n" remember-leader-text (current-time-string) + " (" desc ")\n\n" text + (save-excursion (goto-char (point-max)) + (if (bolp) nil "\n")))) + (buf (find-buffer-visiting remember-data-file))) + (if buf + (with-current-buffer buf + (save-excursion + (goto-char (point-max)) + (insert remember-text)) + (if remember-save-after-remembering (save-buffer))) + (append-to-file remember-text nil remember-data-file)))) (defun remember-region (&optional beg end) "Remember the data from BEG to END. @@ -551,4 +560,96 @@ the data away for latter retrieval, and possible indexing. \\{remember-mode-map}" (set-keymap-parent remember-mode-map nil)) +;; Notes buffer showing the notes: + +(defcustom remember-notes-buffer-name "*notes*" + "Name of the notes buffer. +Setting it to *scratch* will hijack the *scratch* buffer for the +purpose of storing notes." + :type 'string + :version "24.4") + +(defcustom remember-notes-initial-major-mode nil + "Major mode to set to notes buffer when it's created. +If set to nil will use the same mode as `initial-major-mode'." + :type '(choice (const :tag "Same as `initial-major-mode'" nil) + (function :tag "Major mode" text-mode)) + :version "24.4") + +(defcustom remember-notes-bury-on-kill t + "Whether to bury notes buffer instead of killing." + :type 'boolean + :version "24.4") + +(defun remember-notes-save-and-bury-buffer () + "Saves and buries current buffer. +Buffer is saved only if `buffer-modified-p' returns non-nil." + (interactive) + (when (buffer-modified-p) + (save-buffer)) + (bury-buffer)) + + + +(defvar remember-notes-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "\C-c\C-c" 'remember-notes-save-and-bury-buffer) + map) + "Keymap used in remember-notes mode.") + +(define-minor-mode remember-notes-mode + "Minor mode for the `remember-notes' buffer." + nil nil nil + (cond + (remember-notes-mode + (add-hook 'kill-buffer-query-functions + #'remember-notes--kill-buffer-query nil t) + (setq buffer-save-without-query t)))) + +;;;###autoload +(defun remember-notes (&optional switch-to) + "Creates notes buffer and switches to it if called interactively. + +If a notes buffer created by a previous invocation of this +function already exist, it will be returned. Otherwise a new +buffer will be created whose content will be read from file +pointed by `remember-data-file'. If a buffer visiting this file +already exist, that buffer will be used instead of creating a new +one (see `find-file-noselect' function for more details). + +Name of the created buffer is taken from `remember-notes-buffer-name' +variable and if a buffer with that name already exist (but was not +created by this function), it will be first killed. +\\<remember-notes-mode-map> +`remember-notes-mode' is active in the notes buffer which by default +contains only one \\[save-and-bury-buffer] binding which saves and +buries the buffer. + +Function returns notes buffer. When called interactively, +switches to it as well. + +Notes buffer is meant for keeping random notes which you'd like to +preserve across Emacs restarts. The notes will be stored in the +`remember-data-file'." + (interactive "p") + (let ((buf (or (find-buffer-visiting remember-data-file) + (with-current-buffer (find-file-noselect remember-data-file) + (and remember-notes-buffer-name + (not (get-buffer remember-notes-buffer-name)) + (rename-buffer remember-notes-buffer-name)) + (funcall (or remember-notes-initial-major-mode + initial-major-mode)) + (remember-notes-mode 1) + (current-buffer))))) + (when switch-to + (switch-to-buffer buf)) + buf)) + +(defun remember-notes--kill-buffer-query () + (when (buffer-modified-p) + (save-buffer)) + (if remember-notes-bury-on-kill + (bury-buffer) + t)) + ;;; 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." ;; for the numbers. (if (cdr node) (setq fmt (format "%%-%dd" - (1+ (floor (log10 (length - (cdr node)))))))))) + (1+ (floor (log (length (cdr node)) + 10)))))))) (dolist (child (cdr node)) (rst-toc-insert-node child |
