As presently under discussion in bug#77823, the intended new
functionality is not really about comments at all.
Remove it for now to allow us to redesign from a clean slate,
and to deal with the regression reported in bug#77823.
This reverts the following three changesets:
Author: Elías Gabriel Pérez <eg642616@gmail.com>
AuthorDate: Mon Mar 17 12:56:52 2025 -0600
New minor mode: `electric-block-comment-mode'
Author: Elías Gabriel Pérez <eg642616@gmail.com>
AuthorDate: Mon Mar 31 17:58:16 2025 -0600
Add block-comment-start and block-comment-end to supported modes
Author: Elías Gabriel Pérez <eg642616@gmail.com>
AuthorDate: Sun Apr 13 12:26:08 2025 -0600
Add block-comment variables to cc-mode
(cherry picked from commit
4808f785ccb0166a87983405c6317ab2a4d6dfde)
(setq-default electric-quote-mode nil) ; But keep it globally disabled.
)))
-;;; Electric comment block
-
-(defun electric-block-comment-post-self-insert-function ()
- "Function that `electric-block-comment' adds to `post-self-insert-hook'.
-This closes block comment with `block-comment-end' when `block-comment-start'
-is typed."
- (when (and block-comment-start block-comment-end
- ;; Check if we are exactly behind a `block-comment-start'
- (save-excursion
- (save-match-data
- (re-search-backward (regexp-quote block-comment-start)
- (- (point) (length block-comment-start))
- t)))
- ;; And if there is not anything front us
- (looking-at-p (concat "[^[:space:]]")))
- (insert " ")
- (save-excursion
- (insert (concat " " block-comment-end)))))
-
-(define-minor-mode electric-block-comment-mode
- "Toggle automatic closing of block comments (Electric Block Comment mode).
-
-When enabled, typing `block-comment-start' closes it inserting their
-corresponding `block-comment-end'."
- :group 'electricity
- :version "31.1"
- (if electric-block-comment-mode
- (add-hook 'post-self-insert-hook
- #'electric-block-comment-post-self-insert-function 10 t)
- (remove-hook 'post-self-insert-hook
- #'electric-block-comment-post-self-insert-function t)))
-
(provide 'electric)
;;; electric.el ends here
"\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
(setq-local comment-end-skip "[ \t]*\\(\\s>\\||#\\)")
(setq-local font-lock-comment-end-skip "|#")
- (setq-local block-comment-start "#|")
- (setq-local block-comment-end "|#")
(setq imenu-case-fold-search t))
(defun lisp-find-tag-default ()
;; - 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-<foo> 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
Applicable at least in modes for languages like fixed-format Fortran where
comments always start in column zero.")
-(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.")
+;; ?? never set
+(defvar block-comment-start nil)
+(defvar block-comment-end nil)
(defvar comment-quote-nested t
"Non-nil if nested comments should be quoted.
(setq-local comment-start-skip "<!--[ \t\r\n]*")
(setq-local comment-end "-->")
(setq-local comment-end-skip "[ \t\r\n]*-->")
- (setq-local block-comment-start "<!--")
- (setq-local block-comment-end "-->")
(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
- `comment-end'
- `comment-start-skip'
- `comment-end-skip'
- - `block-comment-start'
- - `block-comment-end'
- `adaptive-fill-mode'
- `adaptive-fill-first-line-regexp'
- `paragraph-start'
(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
(setq comment-start "/* " comment-end " */"))
(unless (string-match "[ \t]*//" comment-start)
(setq comment-start "// " comment-end "")))
- (setq block-comment-start "/*" block-comment-end "*/")
(setq col (save-excursion
(back-to-indentation)
(current-column)))
(make-local-variable 'comment-start)
(make-local-variable 'comment-end)
(make-local-variable 'comment-start-skip)
- (make-local-variable 'block-comment-start)
- (make-local-variable 'block-comment-end)
(make-local-variable 'paragraph-start)
(make-local-variable 'paragraph-separate)
(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
(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)
(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
(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)
(setq-local comment-start "// ")
(setq-local comment-start-skip "\\(?://\\|(\\*\\|{\\)[ \t]*")
- (setq-local comment-end-skip "[ \t]*\\(?:\n\\|\\*)\\|}\\)")
- (setq-local block-comment-start "(*")
- (setq-local block-comment-end "*)"))
+ (setq-local comment-end-skip "[ \t]*\\(?:\n\\|\\*)\\|}\\)"))
(provide 'opascal)
;;; opascal.el ends here
(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))
;; 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))))
(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.
"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\\|\\*+/\\)")
(setq-local indent-line-function #'sgml-indent-line)
(setq-local comment-start "<!-- ")
(setq-local comment-end " -->")
- (setq-local block-comment-start "<!--")
- (setq-local block-comment-end "-->")
(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)))