diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 006b713ae6e..ce79393fb90 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -701,6 +701,8 @@ font-lock keywords will not be case sensitive." (setq-local add-log-current-defun-function #'lisp-current-defun-name) (setq-local comment-start ";") (setq-local comment-start-skip ";+ *") + (setq-local block-comment-start "#|") + (setq-local block-comment-end "|#") (setq-local comment-add 1) ;default to `;;' in comment-region (setq-local comment-column 40) (setq-local comment-use-syntax t) diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 945187e863f..eb36f91104d 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el @@ -56,7 +56,6 @@ ;; - spill auto-fill of comments onto the end of the next line. ;; - uncomment-region with a consp (for blocks) or somehow make the ;; deletion of continuation markers less dangerous. -;; - drop block-comment- unless it's really used. ;; - uncomment-region on a subpart of a comment. ;; - support gnu-style "multi-line with space in continue". ;; - somehow allow comment-dwim to use the region even if transient-mark-mode @@ -183,9 +182,11 @@ guaranteed to be correctly ordered. It is called within `save-excursion'. Applicable at least in modes for languages like fixed-format Fortran where comments always start in column zero.") -;; ?? never set -(defvar block-comment-start nil) -(defvar block-comment-end nil) +(defvar block-comment-start nil + "String to insert to start a new block comment, or nil if no supported.") + +(defvar block-comment-end nil + "String to insert to end a new block comment, or nil if no supported.") (defvar comment-quote-nested t "Non-nil if nested comments should be quoted. diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el index 7acc19b9058..994b2779d1a 100644 --- a/lisp/nxml/nxml-mode.el +++ b/lisp/nxml/nxml-mode.el @@ -529,6 +529,8 @@ Many aspects this mode can be customized using (setq-local comment-start-skip "") (setq-local comment-end-skip "[ \t\r\n]*-->") + (setq-local block-comment-start "") (setq-local comment-line-break-function #'nxml-newline-and-indent) (setq-local comment-quote-nested-function #'nxml-comment-quote-nested) (setq-local comment-continue "") ; avoid double-hyphens as a padding diff --git a/lisp/progmodes/c-ts-common.el b/lisp/progmodes/c-ts-common.el index 71c177788a8..26d24180e8c 100644 --- a/lisp/progmodes/c-ts-common.el +++ b/lisp/progmodes/c-ts-common.el @@ -275,6 +275,8 @@ Set up: - `comment-end' - `comment-start-skip' - `comment-end-skip' + - `block-comment-start' + - `block-comment-end' - `adaptive-fill-mode' - `adaptive-fill-first-line-regexp' - `paragraph-start' @@ -291,6 +293,8 @@ Set up: (rx (* (syntax whitespace)) (group (or (syntax comment-end) (seq (+ "*") "/"))))) + (setq-local block-comment-start "/*") + (setq-local block-comment-end "*/") (setq-local adaptive-fill-mode t) (setq-local adaptive-fill-function #'c-ts-common--adaptive-fill-prefix) ;; Always accept * or | as prefix, even if there's only one line in diff --git a/lisp/progmodes/go-ts-mode.el b/lisp/progmodes/go-ts-mode.el index c2ed501fb27..16150e7531b 100644 --- a/lisp/progmodes/go-ts-mode.el +++ b/lisp/progmodes/go-ts-mode.el @@ -679,6 +679,8 @@ what the parent of the node would be if it were a node." (setq-local comment-start "// ") (setq-local comment-end "") (setq-local comment-start-skip (rx "//" (* (syntax whitespace)))) + (setq-local block-comment-start "/*") + (setq-local block-comment-end "*/") ;; Indent. (setq-local indent-tabs-mode t diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 69d05feb594..beda6737d41 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -3772,6 +3772,8 @@ Currently there are `js-mode' and `js-ts-mode'." (setq-local comment-start "// ") (setq-local comment-start-skip "\\(?://+\\|/\\*+\\)\\s *") (setq-local comment-end "") + (setq-local block-comment-start "/*") + (setq-local block-comment-end "*/") (setq-local fill-paragraph-function #'js-fill-paragraph) (setq-local normal-auto-fill-function #'js-do-auto-fill) diff --git a/lisp/progmodes/json-ts-mode.el b/lisp/progmodes/json-ts-mode.el index 1b8f033e97a..c13e2e7f956 100644 --- a/lisp/progmodes/json-ts-mode.el +++ b/lisp/progmodes/json-ts-mode.el @@ -137,6 +137,8 @@ Return nil if there is no name or if NODE is not a defun node." (setq-local comment-start "// ") (setq-local comment-start-skip "\\(?://+\\|/\\*+\\)\\s *") (setq-local comment-end "") + (setq-local block-comment-start "/*") + (setq-local block-comment-end "*/") ;; Electric (setq-local electric-indent-chars diff --git a/lisp/progmodes/lua-ts-mode.el b/lisp/progmodes/lua-ts-mode.el index cec7eae879f..0919369d15a 100644 --- a/lisp/progmodes/lua-ts-mode.el +++ b/lisp/progmodes/lua-ts-mode.el @@ -668,6 +668,8 @@ Calls REPORT-FN directly." (setq-local comment-start "--") (setq-local comment-start-skip "--\\s-*") (setq-local comment-end "") + (setq-local block-comment-start "--[[" ) + (setq-local block-comment-end "]]")) ;; Font-lock. (setq-local treesit-font-lock-settings lua-ts--font-lock-settings) diff --git a/lisp/progmodes/opascal.el b/lisp/progmodes/opascal.el index bd6bc3b28ac..9dcaff9645e 100644 --- a/lisp/progmodes/opascal.el +++ b/lisp/progmodes/opascal.el @@ -1767,7 +1767,9 @@ Coloring: (setq-local comment-start "// ") (setq-local comment-start-skip "\\(?://\\|(\\*\\|{\\)[ \t]*") - (setq-local comment-end-skip "[ \t]*\\(?:\n\\|\\*)\\|}\\)")) + (setq-local comment-end-skip "[ \t]*\\(?:\n\\|\\*)\\|}\\)") + (setq-local block-comment-start "(*") + (setq-local block-comment-end "*)")) (provide 'opascal) ;;; opascal.el ends here diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el index b6316d4dfe1..113cf68c8d6 100644 --- a/lisp/progmodes/pascal.el +++ b/lisp/progmodes/pascal.el @@ -348,6 +348,8 @@ See also the user variables `pascal-type-keywords', `pascal-start-keywords' and (setq-local comment-start "{") (setq-local comment-start-skip "(\\*+ *\\|{ *") (setq-local comment-end "}") + (setq-local block-comment-start "(*") + (setq-local block-comment-end "*)") (add-hook 'completion-at-point-functions 'pascal-completions-at-point nil t) ;; Font lock support (setq-local font-lock-defaults '(pascal-font-lock-keywords nil t)) diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el index bc4b635735f..69191a694ed 100644 --- a/lisp/progmodes/typescript-ts-mode.el +++ b/lisp/progmodes/typescript-ts-mode.el @@ -652,6 +652,8 @@ at least 3 (which is the default value)." ;; Comments. (setq-local comment-start "// ") (setq-local comment-end "") + (setq-local block-comment-start "/*") + (setq-local block-comment-end "*/") (setq-local comment-start-skip (rx (or (seq "/" (+ "/")) (seq "/" (+ "*"))) (* (syntax whitespace)))) diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 765589593cd..cfb8ff51760 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -1853,6 +1853,8 @@ implementations: `css-mode' and `css-ts-mode'." (setq-local comment-start-skip "/\\*+[ \t]*") (setq-local comment-end "*/") (setq-local comment-end-skip "[ \t]*\\*+/") + (setq-local block-comment-start "/*") + (setq-local block-comment-end "*/") (setq-local electric-indent-chars (append css-electric-keys electric-indent-chars)) ;; The default "." creates ambiguity with class selectors. @@ -2076,6 +2078,8 @@ be used to fill comments. "Major mode to edit \"Sassy CSS\" files." (setq-local comment-start "// ") (setq-local comment-end "") + (setq-local block-comment-start "/*") + (setq-local block-comment-end "*/") (setq-local comment-continue " *") (setq-local comment-start-skip "/[*/]+[ \t]*") (setq-local comment-end-skip "[ \t]*\\(?:\n\\|\\*+/\\)") diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index 2accd31bc36..4dbc6839c68 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el @@ -622,6 +622,8 @@ Do \\[describe-key] on the following bindings to discover what they do. (setq-local indent-line-function #'sgml-indent-line) (setq-local comment-start "") + (setq-local block-comment-start "") (setq-local comment-indent-function #'sgml-comment-indent) (setq-local comment-line-break-function #'sgml-comment-indent-new-line) (setq-local skeleton-further-elements '((completion-ignore-case t)))