mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-24 07:20:37 +00:00
Add diary comments feature.
* lisp/calendar/diary-lib.el (diary-comment-start, diary-comment-end): New options. (diary-add-to-list): Strip comments from the displayed string. (diary-mode): Set comment-start and comment-end. * doc/emacs/cal-xtra.texi (Fancy Diary Display): Mention diary comments. * etc/NEWS: Mention this.
This commit is contained in:
parent
60f884b214
commit
548d0a63d6
@ -1,3 +1,7 @@
|
||||
2011-05-06 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cal-xtra.texi (Fancy Diary Display): Mention diary comments.
|
||||
|
||||
2011-05-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* misc.texi (Emacs Server): Document `server-eval-at'.
|
||||
|
@ -616,6 +616,20 @@ first within each day. Note how the sort command is placed at the end
|
||||
of the hook list, in case earlier members of the list change the order
|
||||
of the diary entries, or add items.
|
||||
|
||||
@vindex diary-comment-start
|
||||
You can write @samp{comments} in diary entries, by setting the
|
||||
variables @code{diary-comment-start} and @code{diary-comment-end} to
|
||||
strings that delimit comments. The fancy display does not print
|
||||
comments. You might want to put meta-data for the use of other packages
|
||||
(e.g. the appointment package,
|
||||
@iftex
|
||||
@pxref{Appointments,,,emacs, the Emacs Manual})
|
||||
@end iftex
|
||||
@ifnottex
|
||||
@pxref{Appointments})
|
||||
@end ifnottex
|
||||
inside comments.
|
||||
|
||||
@vindex diary-include-string
|
||||
Your main diary file can include other files. This permits a group of
|
||||
people to share a diary file for events that apply to all of them.
|
||||
|
4
etc/NEWS
4
etc/NEWS
@ -447,6 +447,10 @@ You can get a comparable behavior with:
|
||||
|
||||
** Calendar, Diary, and Appt
|
||||
|
||||
+++
|
||||
*** Diary entries can contain non-printing `comments'.
|
||||
See the variable `diary-comment-start'.
|
||||
|
||||
*** New function `diary-hebrew-birthday'.
|
||||
|
||||
---
|
||||
|
@ -1,5 +1,10 @@
|
||||
2011-05-06 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* calendar/diary-lib.el (diary-comment-start, diary-comment-end):
|
||||
New options.
|
||||
(diary-add-to-list): Strip comments from the displayed string.
|
||||
(diary-mode): Set comment-start and comment-end.
|
||||
|
||||
* vc/diff-mode.el (smerge-refine-subst): Declare.
|
||||
(diff-refine-hunk): Don't require smerge-mode when compiling.
|
||||
|
||||
|
@ -142,6 +142,25 @@ See the documentation for the function `diary-list-sexp-entries'."
|
||||
:type 'string
|
||||
:group 'diary)
|
||||
|
||||
(defcustom diary-comment-start nil
|
||||
"String marking the start of a comment in the diary, or nil.
|
||||
Nil means there are no comments. The diary does not display
|
||||
parts of entries that are inside comments. You can use comments
|
||||
for whatever you like, e.g. for meta-data that packages such as
|
||||
`appt.el' can use.
|
||||
See also `diary-comment-end'."
|
||||
:version "24.1"
|
||||
:type '(choice (const :tag "No comment" nil) string)
|
||||
:group 'diary)
|
||||
|
||||
(defcustom diary-comment-end ""
|
||||
"String marking the end of a comment in the diary.
|
||||
The empty string means comments finish at the end of a line.
|
||||
See also `diary-comment-start'."
|
||||
:version "24.1"
|
||||
:type 'string
|
||||
:group 'diary)
|
||||
|
||||
(defcustom diary-hook nil
|
||||
"List of functions called after the display of the diary.
|
||||
Used for example by the appointment package - see `appt-activate'."
|
||||
@ -610,10 +629,15 @@ If LITERAL is nil, it is taken to be the same as STRING.
|
||||
|
||||
The entry is added to the list as (DATE STRING SPECIFIER LOCATOR
|
||||
GLOBCOLOR), where LOCATOR has the form (MARKER FILENAME LITERAL),
|
||||
FILENAME being the file containing the diary entry."
|
||||
FILENAME being the file containing the diary entry.
|
||||
|
||||
Modifies STRING using `diary-modify-entry-list-string-function', if non-nil.
|
||||
Also removes the region between `diary-comment-start' and
|
||||
`diary-comment-end', if the former is non-nil."
|
||||
(when (and date string)
|
||||
;; b-f-n is nil if we are visiting an include file in a temp-buffer.
|
||||
(let ((dfile (or (buffer-file-name) diary-file)))
|
||||
(let ((dfile (or (buffer-file-name) diary-file))
|
||||
cstart)
|
||||
(if diary-file-name-prefix
|
||||
(let ((prefix (funcall diary-file-name-prefix-function dfile)))
|
||||
(or (string-equal prefix "")
|
||||
@ -621,6 +645,16 @@ FILENAME being the file containing the diary entry."
|
||||
(and diary-modify-entry-list-string-function
|
||||
(setq string (funcall diary-modify-entry-list-string-function
|
||||
string)))
|
||||
(when (and diary-comment-start
|
||||
(string-match (setq cstart (regexp-quote diary-comment-start))
|
||||
string))
|
||||
;; Preserve the value with the comments.
|
||||
(or literal (setq literal string))
|
||||
(setq string (replace-regexp-in-string
|
||||
(format "%s.*%s" cstart
|
||||
(if (zerop (length diary-comment-end)) "$"
|
||||
(regexp-quote diary-comment-end)))
|
||||
"" string)))
|
||||
(setq diary-entries-list
|
||||
(append diary-entries-list
|
||||
(list (list date string specifier
|
||||
@ -2353,6 +2387,8 @@ return a font-lock pattern matching array of MONTHS and marking SYMBOL."
|
||||
"Major mode for editing the diary file."
|
||||
(set (make-local-variable 'font-lock-defaults)
|
||||
'(diary-font-lock-keywords t))
|
||||
(set (make-local-variable 'comment-start) diary-comment-start)
|
||||
(set (make-local-variable 'comment-end) diary-comment-end)
|
||||
(add-to-invisibility-spec '(diary . nil))
|
||||
(add-hook 'after-save-hook 'diary-redraw-calendar nil t)
|
||||
;; In case the file was modified externally, refresh the calendar
|
||||
|
Loading…
Reference in New Issue
Block a user