From 72d4522b05c81ba9400603963db55e47c6d836ce Mon Sep 17 00:00:00 2001 From: Gabriel do Nascimento Ribeiro Date: Wed, 20 Jan 2021 17:45:08 +0100 Subject: Add option remember-diary-regexp * lisp/textmodes/remember.el (remember-diary-extract-entries): Use it (bug#45808). (remember-diary-regexp): New variable. --- lisp/textmodes/remember.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'lisp/textmodes') diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el index 98d3a3856ea..92706e38073 100644 --- a/lisp/textmodes/remember.el +++ b/lisp/textmodes/remember.el @@ -159,7 +159,8 @@ ;; ;; This should be before other entries that may return t ;; (add-to-list 'remember-handler-functions 'remember-diary-extract-entries) ;; -;; This module recognizes entries of the form +;; This module recognizes entries of the form (defined by +;; `remember-diary-regexp') ;; ;; DIARY: .... ;; @@ -532,13 +533,18 @@ If this is nil, then `diary-file' will be used instead." (autoload 'diary-make-entry "diary-lib") +(defcustom remember-diary-regexp "^DIARY:\\s-*\\(.+\\)" + "Regexp to extract diary entries." + :type 'regexp + :version "28.1") + ;;;###autoload (defun remember-diary-extract-entries () - "Extract diary entries from the region." + "Extract diary entries from the region based on `remember-diary-regexp'." (save-excursion (goto-char (point-min)) (let (list) - (while (re-search-forward "^DIARY:\\s-*\\(.+\\)" nil t) + (while (re-search-forward remember-diary-regexp nil t) (push (remember-diary-convert-entry (match-string 1)) list)) (when list (diary-make-entry (mapconcat 'identity list "\n") -- cgit v1.2.3 From edf6350e7ffd51f93fd84df3e0f9734e337cd51c Mon Sep 17 00:00:00 2001 From: Gabriel do Nascimento Ribeiro Date: Wed, 20 Jan 2021 17:53:04 +0100 Subject: Add option remember-text-format-function * lisp/textmodes/remember.el (remember-text-format-function): New variable (bug#45809). (remember-append-to-file): Use it. --- etc/NEWS | 3 +++ lisp/textmodes/remember.el | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'lisp/textmodes') diff --git a/etc/NEWS b/etc/NEWS index a0e1e3b2a18..c8cbce1882a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1560,6 +1560,9 @@ that makes it a valid button. --- *** New user option 'remember-diary-regexp'. +--- +*** New user option 'remember-text-format-function'. + *** New function 'buffer-line-statistics'. This function returns some statistics about the line lengths in a buffer. diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el index 92706e38073..6c94f8d03c8 100644 --- a/lisp/textmodes/remember.el +++ b/lisp/textmodes/remember.el @@ -411,13 +411,24 @@ The default emulates `current-time-string' for backward compatibility." :group 'remember :version "27.1") +(defcustom remember-text-format-function nil + "The function to format the remembered text. +The function receives the remembered text as argument and should +return the text to be remembered." + :type 'function + :group 'remember + :version "28.1") + (defun remember-append-to-file () "Remember, with description DESC, the given TEXT." (let* ((text (buffer-string)) (desc (remember-buffer-desc)) - (remember-text (concat "\n" remember-leader-text - (format-time-string remember-time-format) - " (" desc ")\n\n" text + (remember-text (concat "\n" + (if remember-text-format-function + (funcall remember-text-format-function text) + (concat remember-leader-text + (format-time-string remember-time-format) + " (" desc ")\n\n" text)) (save-excursion (goto-char (point-max)) (if (bolp) nil "\n")))) (buf (find-buffer-visiting remember-data-file))) -- cgit v1.2.3 From 38173af10df67cb36521cdcc2f1f42103d67de98 Mon Sep 17 00:00:00 2001 From: Gabriel do Nascimento Ribeiro Date: Wed, 20 Jan 2021 17:54:43 +0100 Subject: Respect remember-save-after-remembering on remember-diary-extract-entries * lisp/textmodes/remember.el (remember-diary-extract-entries): Save automatically if `remember-save-after-remembering' is non-nil (bug#45811). --- lisp/textmodes/remember.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lisp/textmodes') diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el index 6c94f8d03c8..7f107977d53 100644 --- a/lisp/textmodes/remember.el +++ b/lisp/textmodes/remember.el @@ -559,7 +559,10 @@ If this is nil, then `diary-file' will be used instead." (push (remember-diary-convert-entry (match-string 1)) list)) (when list (diary-make-entry (mapconcat 'identity list "\n") - nil remember-diary-file)) + nil remember-diary-file) + (when remember-save-after-remembering + (with-current-buffer (find-buffer-visiting diary-file) + (save-buffer)))) nil))) ;; Continue processing ;;; Internal Functions: -- cgit v1.2.3 From 0df23b73e4718937bcaddf9008ad8ef9ca3a2413 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Wed, 20 Jan 2021 23:30:53 +0100 Subject: Fix recent remember-diary-extract-entries change * lisp/textmodes/remember.el (remember-diary-extract-entries): Use `remember-diary-file' over `diary-file'. --- lisp/textmodes/remember.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lisp/textmodes') diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el index 7f107977d53..811a265118c 100644 --- a/lisp/textmodes/remember.el +++ b/lisp/textmodes/remember.el @@ -549,6 +549,8 @@ If this is nil, then `diary-file' will be used instead." :type 'regexp :version "28.1") +(defvar diary-file) + ;;;###autoload (defun remember-diary-extract-entries () "Extract diary entries from the region based on `remember-diary-regexp'." @@ -561,7 +563,8 @@ If this is nil, then `diary-file' will be used instead." (diary-make-entry (mapconcat 'identity list "\n") nil remember-diary-file) (when remember-save-after-remembering - (with-current-buffer (find-buffer-visiting diary-file) + (with-current-buffer (find-buffer-visiting (or remember-diary-file + diary-file)) (save-buffer)))) nil))) ;; Continue processing -- cgit v1.2.3 From 6bfc672bc7f467edf39cfba262c5c4f11897d4e0 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 22 Jan 2021 08:52:12 +0000 Subject: * lisp/textmodes/remember.el (remember-text-format-function): Fix type. --- lisp/textmodes/remember.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lisp/textmodes') diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el index 811a265118c..820ee38d101 100644 --- a/lisp/textmodes/remember.el +++ b/lisp/textmodes/remember.el @@ -415,7 +415,7 @@ The default emulates `current-time-string' for backward compatibility." "The function to format the remembered text. The function receives the remembered text as argument and should return the text to be remembered." - :type 'function + :type '(choice (const nil) function) :group 'remember :version "28.1") -- cgit v1.2.3 From 0870ebb3cbfcb097d85eea5eacaf992dd88ed204 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Thu, 28 Jan 2021 07:09:18 +0100 Subject: Allow commenting out white space lines in latex-mode * lisp/newcomment.el (comment-region-default-1): Allow commenting out whitespace-only regions (bug#41793). * lisp/textmodes/tex-mode.el (latex--comment-region): Use it. (latex-mode): Set a comment style shim. --- lisp/newcomment.el | 30 +++++++++++++++++++++--------- lisp/textmodes/tex-mode.el | 7 ++++++- 2 files changed, 27 insertions(+), 10 deletions(-) (limited to 'lisp/textmodes') diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 5d0d1053f4b..4216fc1a397 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el @@ -1221,21 +1221,33 @@ changed with `comment-style'." ;; FIXME: maybe we should call uncomment depending on ARG. (funcall comment-region-function beg end arg))) -(defun comment-region-default-1 (beg end &optional arg) +(defun comment-region-default-1 (beg end &optional arg noadjust) + "Comment region between BEG and END. +See `comment-region' for ARG. If NOADJUST, do not skip past +leading/trailing space when determining the region to comment +out." (let* ((numarg (prefix-numeric-value arg)) (style (cdr (assoc comment-style comment-styles))) (lines (nth 2 style)) (block (nth 1 style)) (multi (nth 0 style))) - ;; We use `chars' instead of `syntax' because `\n' might be - ;; of end-comment syntax rather than of whitespace syntax. - ;; sanitize BEG and END - (goto-char beg) (skip-chars-forward " \t\n\r") (beginning-of-line) - (setq beg (max beg (point))) - (goto-char end) (skip-chars-backward " \t\n\r") (end-of-line) - (setq end (min end (point))) - (if (>= beg end) (error "Nothing to comment")) + (if noadjust + (when (bolp) + (setq end (1- end))) + ;; We use `chars' instead of `syntax' because `\n' might be + ;; of end-comment syntax rather than of whitespace syntax. + ;; sanitize BEG and END + (goto-char beg) + (skip-chars-forward " \t\n\r") + (beginning-of-line) + (setq beg (max beg (point))) + (goto-char end) + (skip-chars-backward " \t\n\r") + (end-of-line) + (setq end (min end (point))) + (when (>= beg end) + (error "Nothing to comment"))) ;; sanitize LINES (setq lines diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index c4e4864da17..ce665e61656 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -1169,7 +1169,12 @@ subshell is initiated, `tex-shell-hook' is run." (setq-local outline-regexp latex-outline-regexp) (setq-local outline-level #'latex-outline-level) (setq-local forward-sexp-function #'latex-forward-sexp) - (setq-local skeleton-end-hook nil)) + (setq-local skeleton-end-hook nil) + (setq-local comment-region-function #'latex--comment-region) + (setq-local comment-style 'plain)) + +(defun latex--comment-region (beg end &optional arg) + (comment-region-default-1 beg end arg t)) ;;;###autoload (define-derived-mode slitex-mode latex-mode "SliTeX" -- cgit v1.2.3 From cb97581870cb1e3c211e4cead5f14f6cb67e4c8f Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Thu, 28 Jan 2021 22:06:35 +0100 Subject: Use lexical-binding in nroff-mode.el * lisp/textmodes/nroff-mode.el: Use lexical-binding. Remove redundant :group args. --- lisp/textmodes/nroff-mode.el | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'lisp/textmodes') diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el index 896578513cf..fe70e925b05 100644 --- a/lisp/textmodes/nroff-mode.el +++ b/lisp/textmodes/nroff-mode.el @@ -1,4 +1,4 @@ -;;; nroff-mode.el --- GNU Emacs major mode for editing nroff source +;;; nroff-mode.el --- GNU Emacs major mode for editing nroff source -*- lexical-binding: t -*- ;; Copyright (C) 1985-1986, 1994-1995, 1997, 2001-2021 Free Software ;; Foundation, Inc. @@ -43,7 +43,6 @@ (defcustom nroff-electric-mode nil "Non-nil means automatically closing requests when you insert an open." - :group 'nroff :type 'boolean) (defvar nroff-mode-map @@ -111,7 +110,7 @@ ;; arguments in common cases, like \f. (concat "\\\\" ; backslash "\\(" ; followed by various possibilities - (mapconcat 'identity + (mapconcat #'identity '("[f*n]*\\[.+?]" ; some groff extensions "(.." ; two chars after ( "[^(\"#]" ; single char escape @@ -119,13 +118,11 @@ "\\)") ) "Font-lock highlighting control in `nroff-mode'." - :group 'nroff :type '(repeat regexp)) (defcustom nroff-mode-hook nil "Hook run by function `nroff-mode'." - :type 'hook - :group 'nroff) + :type 'hook) ;;;###autoload (define-derived-mode nroff-mode text-mode "Nroff" -- cgit v1.2.3 From 5644ac41c42fde4a4434131e45110aa1e909e0b2 Mon Sep 17 00:00:00 2001 From: Mauro Aranda Date: Sat, 30 Jan 2021 07:47:34 +0100 Subject: Add source to sgml-empty-tags * lisp/textmodes/sgml-mode.el (html-mode): Add "source" as an empty tag to fix indentation when this element is present (bug#46181). --- lisp/textmodes/sgml-mode.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lisp/textmodes') diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index 8465e82b02a..c50c544cb54 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el @@ -2402,9 +2402,9 @@ To work around that, do: (setq-local sgml-empty-tags ;; From HTML-4.01's loose.dtd, parsed with - ;; `sgml-parse-dtd', plus manual addition of "wbr". + ;; `sgml-parse-dtd', plus manual additions of "source" and "wbr". '("area" "base" "basefont" "br" "col" "frame" "hr" "img" "input" - "isindex" "link" "meta" "param" "wbr")) + "isindex" "link" "meta" "source" "param" "wbr")) (setq-local sgml-unclosed-tags ;; From HTML-4.01's loose.dtd, parsed with `sgml-parse-dtd'. '("body" "colgroup" "dd" "dt" "head" "html" "li" "option" -- cgit v1.2.3