From unknown Sat Aug 09 22:09:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77081: [PATCH] New minor mode: `electric-block-comment-mode' Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: emacs-devel@gnu.org, bug-gnu-emacs@gnu.org Resent-Date: Mon, 17 Mar 2025 19:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 77081 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 77081@debbugs.gnu.org Cc: emacs-devel@gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org X-Debbugs-Original-Xcc: emacs-devel@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.1742240440517 (code B ref -1); Mon, 17 Mar 2025 19:41:02 +0000 Received: (at submit) by debbugs.gnu.org; 17 Mar 2025 19:40:40 +0000 Received: from localhost ([127.0.0.1]:32797 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tuGKF-00008H-GY for submit@debbugs.gnu.org; Mon, 17 Mar 2025 15:40:40 -0400 Received: from lists.gnu.org ([2001:470:142::17]:56738) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tuGKC-00007h-NC for submit@debbugs.gnu.org; Mon, 17 Mar 2025 15:40:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tuGK7-0003kt-95 for bug-gnu-emacs@gnu.org; Mon, 17 Mar 2025 15:40:31 -0400 Received: from mail-oi1-x241.google.com ([2607:f8b0:4864:20::241]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tuGK5-0002rw-6F for bug-gnu-emacs@gnu.org; Mon, 17 Mar 2025 15:40:30 -0400 Received: by mail-oi1-x241.google.com with SMTP id 5614622812f47-3f94b7bd964so2745879b6e.1 for ; Mon, 17 Mar 2025 12:40:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742240427; x=1742845227; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=z3b3vyVH1V8xx17Ja9iP23/sCcCbjIUssdR6KiOhCx4=; b=PaI6CgrbFZRyXmukcn/BiU90LtEYc2XrdBjYrTgmU5HtRgS3J33h9Dx9XYVda4qRSj C6cF63sCbs647p6hAZC8+AektN7EYEsVCbiHLUsyjV7tgPKW4V1gP0GHejAccGicmCZd SWCzP68XJdrJtUVfeBOw1CfyW9yy/tYl6w8Wda20xg4pL4B7IxIKP1LpcgEDGCsw/tbB I4lO4wnp5e40Y2J/JJKUPaxYhKs7ZJPQ6L3a4DBzngvgphf/Zk/svbPwPm6JfFj4P3uw 9EdK5/TufukyUSnWoHwMeKSV5rNkmd9MuxMOQSZMYU/6Uacy6qGLR684bgOgQeYpB4Ke 8Z9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742240427; x=1742845227; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=z3b3vyVH1V8xx17Ja9iP23/sCcCbjIUssdR6KiOhCx4=; b=ZUkRX9xh50sTayndfixdVXjM8PMY84tFqxEUEthcFBwkP6QsOnm223GlknBqWvKABw Lmz2XkmvT/v23EyTDE9oIACBdGZa5v8ofLNI0P4FbJDM97EFu0EXudx8bc56wEeXwtrS 6xpQTJzkbklMp/f/t1XvhZumn40Qn6NJ60UTrln6M57o3uQXtHs5/eBA1fKpjvzNRCvo fq4HbrG38LWy90Z2B2GwuBCjuCz66/eEfWpaU2d4iuix0sLW1WQHkxf/BMn5ycgQG0XI JxSk1w9h7LkX/M+pZXFcjFk67IHrozRanuMHtOnQBSDkSYD0pFFssTGKugSja+HnyzKK TTbw== X-Gm-Message-State: AOJu0YyCYpIoFJBb0wUf9qUIITDsK74oSBQ+t8KU3tj8SxWFYh6k9kqL DewBtwso5hF2OpmyfzMelTmZ8NZS28qs2Urc6CNSTzqy3l/orhz8PkoYOD7d X-Gm-Gg: ASbGncvDNHmIhF1RKUl2Dj01KvxsDOV5eOdD32OTFjmCrXfl2B15IdrNtl7CukfE9FW E+/Mt+xWjPnhw9MTtgASvi4i579OxNy+RxMh885Cw/sMBCIOTvhaZMd3OgjH8A+fEovZtsLgZ1I lR1uqp7nOTkw7tA7kyUZVCEvrtnV9MyRw81+GkqgSYSpHt3tl1LSftZFQi4douWISypsvIe1N8L 9aVnQlPfPCBxkhRlJ2ePQW2ls29tevZhqr/0HuHB9xi6LYNoQBFcgEdsQVtBe0MbnD+xBBiGfCM dgdL0hrtoYzx X-Google-Smtp-Source: AGHT+IHOM0usIiARxA5wkcXDDH7H85+Dl1gNeXlRhkkbFekS1oh42GBjLqrRmSUnl0Fy1JBKA98FxA== X-Received: by 2002:a05:6808:220b:b0:3f9:f923:cc3c with SMTP id 5614622812f47-3fdee55a3afmr8274430b6e.4.1742240427272; Mon, 17 Mar 2025 12:40:27 -0700 (PDT) Received: from fedora ([2806:10ae:e:622a::3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3fe832ce015sm1177840b6e.7.2025.03.17.12.40.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Mar 2025 12:40:26 -0700 (PDT) From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Date: Mon, 17 Mar 2025 13:40:24 -0600 Message-ID: <87cyefmonr.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2607:f8b0:4864:20::241; envelope-from=eg642616@gmail.com; helo=mail-oi1-x241.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hello, This minor automatically lets you close block comment when typing a block comment start. Thus... #+begin_src typing /* in c-mode automatically inserts */. Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (eg642616[at]gmail.com) 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (eg642616[at]gmail.com) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org] 0.0 HTML_MESSAGE BODY: HTML included in message X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.2 (/) --=-=-= Content-Type: multipart/alternative; boundary="==-=-=" --==-=-= Content-Type: text/plain Hello, This minor automatically lets you close block comment when typing a block comment start. Thus... #+begin_src typing /* in c-mode automatically inserts */. electric-block-comment-mode: on /*| ^ cursor /* | */ ^ cursor Or in lua --[[ inserts ]]--. electric-block-comment-mode: on --[[| ^ cursor --[[ | ]]-- ^ cursor #+end_src and so on. *However, there is a problem,* This minor mode uses =block-comment-start= and =block-comment-end= variables, which most of the major modes do not use or define. The reason I decided to use these variables is because are more explicit with the type of comment that is used/supported. I would like to hear your feedback. --==-=-= Content-Type: text/html

Hello,

This minor automatically lets you close block comment when typing a block comment start.

Thus…

typing /* in c-mode
automatically inserts */.

electric-block-comment-mode: on

/*|
  ^ cursor

/* | */
   ^ cursor

Or in lua --[[ inserts ]]--.

electric-block-comment-mode: on

--[[|
    ^ cursor

--[[ | ]]--
     ^ cursor

and so on.

However, there is a problem, This minor mode uses block-comment-start and block-comment-end variables, which most of the major modes do not use or define.

The reason I decided to use these variables is because are more explicit with the type of comment that is used/supported.

I would like to hear your feedback.

--==-=-=-- --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-New-minor-mode-electric-block-comment-mode.patch >From 45414d4b0d47ddd9300fcc24723e0aa5e4efc8cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?El=C3=ADas=20Gabriel=20P=C3=A9rez?= Date: Mon, 17 Mar 2025 12:56:52 -0600 Subject: [PATCH] New minor mode: `electric-block-comment-mode' This minor automatically lets you close block comment when typing a block comment start. Thus, typing "/*" in c-mode automatically inserts "*/". * etc/NEWS: Add minor-mode item. * lisp/electric.el (electric-block-comment-post-self-insert-function): New function. (electric-block-comment-mode): New minor mode definition. --- etc/NEWS | 4 ++++ lisp/electric.el | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index b33f7cec73f..0924e86f691 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -111,6 +111,10 @@ If you have been using these variables in Lisp code (for example, in font-lock rules), simply quote the symbol, to use the face directly instead of its now-obsolete variable. +** New minor mode 'electric-block-comment-mode' +This mode automatically close block comment typed, thus typing +"/*" in c-mode automatically inserts "*/". + ** Network Security Manager (NSM) is now more strict. *** NSM warns about TLS 1.1 by default. diff --git a/lisp/electric.el b/lisp/electric.el index 39e13e1ca0c..c561d168883 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -731,6 +731,34 @@ electric-quote-local-mode (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 when a block comment start is typed." + (when (and block-comment-start block-comment-end + ;; Check if we are exactly behind the block comment start + (save-excursion + (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 " */")))) + + +(define-minor-mode electric-block-comment-mode + "Toggle automatic close comment blocks (Electric Comment mode). + +When enabled, typing `block-comment-start' closes it inserting their +corresponding `block-comment-end'." + :group 'electricity + (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 -- 2.48.1 --=-=-= Content-Type: text/plain -- - E.G via GNU Emacs and Org. --=-=-=-- From unknown Sat Aug 09 22:09:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77081: [PATCH] New minor mode: `electric-block-comment-mode' Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 17 Mar 2025 19:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77081 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 77081@debbugs.gnu.org Received: via spool by 77081-submit@debbugs.gnu.org id=B77081.174224111817695 (code B ref 77081); Mon, 17 Mar 2025 19:52:02 +0000 Received: (at 77081) by debbugs.gnu.org; 17 Mar 2025 19:51:58 +0000 Received: from localhost ([127.0.0.1]:32839 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tuGVC-0004bJ-Ai for submit@debbugs.gnu.org; Mon, 17 Mar 2025 15:51:58 -0400 Received: from mail-ot1-x344.google.com ([2607:f8b0:4864:20::344]:49436) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1tuGVA-0004aC-4D for 77081@debbugs.gnu.org; Mon, 17 Mar 2025 15:51:56 -0400 Received: by mail-ot1-x344.google.com with SMTP id 46e09a7af769-72bd78e695dso370369a34.3 for <77081@debbugs.gnu.org>; Mon, 17 Mar 2025 12:51:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742241110; x=1742845910; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:to:from:from:to:cc:subject:date:message-id:reply-to; bh=XTqIGqJB/o6hTmju1mrjTe3i3B8iairN4FOn2kIU8NM=; b=mVjsUe77XuRIAyx/5dDDXlTmZIg6wjS6oY/vyBPd7VuPzmNyac1FuOnHEEVqsV2SUc ZHUvd4HkptAVMQ3gj9og/e0CHxJkUijySuxy59eIlCCqE4DJMwk71GqEQxfuCC4L84Sn lDZnklaxTjbDXfowAnEVkyQSiVIGxNLqSG6syiGWOxyzN7Tn0KmU9Gaxn0CiHBTwDHH4 2qY8eh+agj7oRU9ps2ENeKf0gZGywjOgLr6pV3kDvmck9KLegcKxRkbiF5Z67R29O/4T e2QIlrCAf8JdTBw2p8p08QLa0N22ILekKb4CfDR90HKPJ7o9H1hakoAXOFCHNnpvzHFw Zayw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742241110; x=1742845910; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=XTqIGqJB/o6hTmju1mrjTe3i3B8iairN4FOn2kIU8NM=; b=cWA1QcaiP/13nYccprBimoNnIn1r4hoxQVUQ/NU4J29zJzAcW9Qu5N0rjDN7K8P3zg AG3lf+pyc0P6A6NLIOmQu1jN7/2eIirOH4zDtBHMMQuASOWskT1EhWiKc2vAes50fyVT TAIXS3D4Ns4debdXUIgJLFwi5WJpaUm+YL6y8jAxcVB8Aj4OvY0lERpMXdThhiacknSq k03Pjqf3D6bkkW0SYzNcJBe+I2eAN3XJzHh7eVvO/zwzVX30Tsy08W/VWH0hXg8y0sZa gqrsPfEBdUHymUSlKP8BoYU6X/gcpxERaBqZwdy6yoNGbVw5Xuq8MEsf/56R6m+ijANo xy6g== X-Gm-Message-State: AOJu0YyQsPErpYhZbukK10lJEOdCxwRaGUwiybSCx4cYBCF7n2tmopq9 lsNz1pAbhoSnQfhi8PRo8gykceObjQIVXovTJ86aVnPAUZY5q7y1VO1H7YH8 X-Gm-Gg: ASbGncuEkkbz6QFYPxlLlo429KUaxdhD9PcMmw66ro/5Qc7EUjLbzIgsyJ52XMFA41G jflgZOnMQONz5/WkS9hvFP/rd7ONmYQV740QMHGITfF8kOJDJVZNo6Mdd0GunV6Wi5bW4gIm5FQ IKcmkf3Xk5W4K4auxQM5uzNCs56j7lW9zwKDv6+n8IQdypKgo+DtcmzTO+jQJZAeOHThqNjdei7 Iq9X/7kpPS8/8Qo1Hy2GKLOcF1LSnC+geiNE93owqaTEsGgjEXb6yrU+qZ4yExsdQBsr5ji5wAy 5m6dlW02+0cH X-Google-Smtp-Source: AGHT+IG7gdQAw+oeslVnzguZK2TIMhpef0hxhAEPXWwqvI6+kuFYWUJ2ovsUznhiSKBJx4JKvhicog== X-Received: by 2002:a05:6830:3b07:b0:72b:9506:8db1 with SMTP id 46e09a7af769-72bee5e2adbmr506572a34.4.1742241109722; Mon, 17 Mar 2025 12:51:49 -0700 (PDT) Received: from fedora ([2806:10ae:e:622a::3]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb2550a7fsm1746334a34.0.2025.03.17.12.51.49 for <77081@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Mar 2025 12:51:49 -0700 (PDT) From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= In-Reply-To: <87cyefmonr.fsf@gmail.com> References: <87cyefmonr.fsf@gmail.com> Date: Mon, 17 Mar 2025 13:51:48 -0600 Message-ID: <874izrmo4r.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: multipart/alternative; boundary="==-=-=" --==-=-= Content-Type: text/plain I'm not sure how did this mail sent a CC to emacs-devel list. I'm sorry for the inconvenience. --==-=-= Content-Type: text/html

I'm not sure how did this mail sent a CC to emacs-devel list. I'm sorry for the inconvenience.

--==-=-=-- --=-=-= Content-Type: text/plain -- - E.G via GNU Emacs and Org. --=-=-=-- From unknown Sat Aug 09 22:09:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77081: [PATCH] New minor mode: `electric-block-comment-mode' References: <87cyefmonr.fsf@gmail.com> In-Reply-To: <87cyefmonr.fsf@gmail.com> Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 17 Mar 2025 23:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77081 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 77081@debbugs.gnu.org Received: via spool by 77081-submit@debbugs.gnu.org id=B77081.1742252635973 (code B ref 77081); Mon, 17 Mar 2025 23:04:02 +0000 Received: (at 77081) by debbugs.gnu.org; 17 Mar 2025 23:03:55 +0000 Received: from localhost ([127.0.0.1]:33229 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tuJUw-0000FU-Kn for submit@debbugs.gnu.org; Mon, 17 Mar 2025 19:03:55 -0400 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:56815) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1tuJUs-0000DT-RR for 77081@debbugs.gnu.org; Mon, 17 Mar 2025 19:03:52 -0400 Received: by mail-ot1-x342.google.com with SMTP id 46e09a7af769-728a433ec30so425374a34.1 for <77081@debbugs.gnu.org>; Mon, 17 Mar 2025 16:03:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742252624; x=1742857424; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:subject:to:from:from:to:cc :subject:date:message-id:reply-to; bh=jo2O/mRAXW0FTh3E+ltQDQyhoCweAtDy3c7/Vdf6TuI=; b=Z6LHpsK2BxYEzbeyLDMCQiyJz6ULalXsospzHpEFvB1JBUfv45dttIMbG4RyROvC7o 39u5jdAYEuNu701Gc/JVNivHL0GHLP3TI1n/ism/n7UaYFQy4Qy4R2Q/kaicERjoFZj/ uX+QVNNWQha9z5Xsq/ZtdjHk7SlTpYL9XYX6PH7Taeqxpfo01g7SeqOv+Jjl+3FT/GBZ Gd7YQRQJTsDGQ64Jkxvv8bEvXv751aHo0QQuNnSQZ1DPLUjywP/Ptgr6G4/WrX2BhxGb klskb+YwvFCPvs3oSPDBAb2GkvIlEVOkhNzcR4ufB1cuo/xO98JQ4CczrKsuiGpBU7mP WE0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742252624; x=1742857424; h=mime-version:user-agent:message-id:date:subject:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jo2O/mRAXW0FTh3E+ltQDQyhoCweAtDy3c7/Vdf6TuI=; b=TC6AdMbsWBihCY34coUxqYBrfkh1T+eO6WLp+y0oL5FvkWj3ZSjcfYSb0OBndANbne BybTcj3RQKYRXheig3XwgZe0AItAQnUt5Qiwq37eC93HDxd5u9G05v8bXxYRyabD/lbY k6zmaBGI8Lg8o+sPMfO2vacTpCoKwYKUOO/LxDmSQuiaRxxOAKSJeojlNQhl3brX6ZRJ mtPTUkyg1HP+yvIPTsSmd82mU3MtPn4rZkkNLfuchRdaEK8OKVlTDF+Sd1U4EVy06DJY xHdRaAhIf3LQ11gzCSjzG6o2uVIjuxTEfltXF3SYbyJrAV1EOeK1e145QmDbXlfL/NJE mOiQ== X-Gm-Message-State: AOJu0Yw261Shr6NFRTj35ZIxD1MVA9GS0Ip5lJBgh38U4an+NEqcXlJT vVKd5rDvP4g+0dzt5CmCdUjtdkRa+7D3ZjaKBAB4T0e8oazOJezbpb/slLSu X-Gm-Gg: ASbGncs16miG4Q5N97/S9nhBMZzh5Oebm4bHw5ExB7p3sperbdmdfxdP83pNHNlTzjE zGOhJZfxzHS7hpZfDISJ7no/PdUuhAiCHC2l+OSFT4lFKueT3H740JukRdEDY6nzZljSV17CuP1 ejZrhL4axJmWz+5HwWxrRzMDbJES0O5o4k8x7oe78p5hMr1r2VUe9EC2QSeg98JmUnV/HevJ7OF 8RZwRZJB1Rk+xSg4OgR9IicXkX0DdK5GbtCqM2t1ySRYHegAUt7G6BrFodOZrljUulN9kAWoG13 //X17gJ4Ic+v75I1LDHqU1g= X-Google-Smtp-Source: AGHT+IGCvO1U55jt2WlG5yhvi7pqZa/sU5kF5nmf8ONoXO/eXW1x+DHhrqfj4ea3RT80d5O2A+iTnQ== X-Received: by 2002:a05:6830:b88:b0:72b:9387:84c5 with SMTP id 46e09a7af769-72bbc23e66cmr8130388a34.3.1742252624433; Mon, 17 Mar 2025 16:03:44 -0700 (PDT) Received: from fedora ([2806:10ae:e:622a::3]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-72bb27636easm1783542a34.62.2025.03.17.16.03.43 for <77081@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Mar 2025 16:03:43 -0700 (PDT) From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Date: Mon, 17 Mar 2025 17:03:42 -0600 Message-ID: <875xk7uunl.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: multipart/alternative; boundary="==-=-=" --==-=-= Content-Type: text/plain I've noticed a little error in the sent patch, sending fixed one. --==-=-= Content-Type: text/html

I've noticed a little error in the sent patch,
sending fixed one.

--==-=-=-- --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-New-minor-mode-electric-block-comment-mode.patch >From a35262984a5885977e8bf93559bdd7667b63feb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?El=C3=ADas=20Gabriel=20P=C3=A9rez?= Date: Mon, 17 Mar 2025 12:56:52 -0600 Subject: [PATCH] New minor mode: `electric-block-comment-mode' This minor automatically lets you close block comment when typing a block comment start. Thus, typing "/*" in c-mode automatically inserts "*/". * etc/NEWS: Add minor-mode item. * lisp/electric.el (electric-block-comment-post-self-insert-function): New function. (electric-block-comment-mode): New minor mode definition. --- etc/NEWS | 4 ++++ lisp/electric.el | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index b33f7cec73f..0924e86f691 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -111,6 +111,10 @@ If you have been using these variables in Lisp code (for example, in font-lock rules), simply quote the symbol, to use the face directly instead of its now-obsolete variable. +** New minor mode 'electric-block-comment-mode' +This mode automatically close block comment typed, thus typing +"/*" in c-mode automatically inserts "*/". + ** Network Security Manager (NSM) is now more strict. *** NSM warns about TLS 1.1 by default. diff --git a/lisp/electric.el b/lisp/electric.el index 39e13e1ca0c..9bfe5d624b7 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -731,6 +731,34 @@ electric-quote-local-mode (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 when a block comment start is typed." + (when (and block-comment-start block-comment-end + ;; Check if we are exactly behind the block comment start + (save-excursion + (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 close comment blocks (Electric Comment mode). + +When enabled, typing `block-comment-start' closes it inserting their +corresponding `block-comment-end'." + :group 'electricity + (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 -- 2.48.1 --=-=-= Content-Type: text/plain -- - E.G via GNU Emacs and Org. --=-=-=-- From unknown Sat Aug 09 22:09:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77081: [PATCH] New minor mode: `electric-block-comment-mode' Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 22 Mar 2025 12:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77081 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Cc: 77081@debbugs.gnu.org Received: via spool by 77081-submit@debbugs.gnu.org id=B77081.17426450965461 (code B ref 77081); Sat, 22 Mar 2025 12:05:01 +0000 Received: (at 77081) by debbugs.gnu.org; 22 Mar 2025 12:04:56 +0000 Received: from localhost ([127.0.0.1]:41331 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tvxay-0001Q0-0e for submit@debbugs.gnu.org; Sat, 22 Mar 2025 08:04:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45346) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tvxau-0001Pk-SD for 77081@debbugs.gnu.org; Sat, 22 Mar 2025 08:04:53 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tvxap-00075j-JH; Sat, 22 Mar 2025 08:04:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=Sv9JE5thAVZosbEiWK8GPTEHP25dXiEGLVYFCjEBkZo=; b=p7LesBPAGqAVRZWEmlnQ 8HpfNGgOp65B6EyF6Wo1K5tq3C0V80L5LfwkBGsVq/VxvpT2JR+V89HQhjJAgI3VixRe//f19NE5R EPUtCSwHFzvZ4vmDzH16KK9/Y9QyIzpjp/d3Hq1+VELMRe6enOSbxBrHr633rgEztxa8hrkFEdt7W DTsX6jdh5g5QZ9oWutOROalGyXezKs51m9eHPYBOt1DMstZu9rOKx6eiMyCFrKutPjzcFEpUTYegV /jJtUMDCXqGWVqGV8eRRQc9qsYZj9sVTcf6BGNEaaUaMk+HyDLhQ1RzMHHT/YxqeUgc3zXwgEEmXI lrcQQSYvS8GQ8Q==; Date: Sat, 22 Mar 2025 14:04:44 +0200 Message-Id: <861pupjmoz.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <875xk7uunl.fsf@gmail.com> (message from Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= on Mon, 17 Mar 2025 17:03:42 -0600) References: <87cyefmonr.fsf@gmail.com> <875xk7uunl.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Elijah Gabe Pérez > Date: Mon, 17 Mar 2025 17:03:42 -0600 > > I've noticed a little error in the sent patch, > sending fixed one. Thanks. > --- a/etc/NEWS > +++ b/etc/NEWS > @@ -111,6 +111,10 @@ If you have been using these variables in Lisp code (for example, in > font-lock rules), simply quote the symbol, to use the face directly > instead of its now-obsolete variable. > > +** New minor mode 'electric-block-comment-mode' > +This mode automatically close block comment typed, thus typing > +"/*" in c-mode automatically inserts "*/". > + This should mention block-comment-start and block-comment-end. Also, it would be good to name a few modes which support block comments, just so users of those modes will become interested. > +(defun electric-block-comment-post-self-insert-function () > + "Function that `electric-block-comment' adds to `post-self-insert-hook'. > +This closes block comment when a block comment start is typed." This doc string should likewise mention block-comment-start and block-comment-end. > +(define-minor-mode electric-block-comment-mode > + "Toggle automatic close comment blocks (Electric Comment mode). ^^^^^^^^^^^^^^^^^^^^ "closing of block comments" From unknown Sat Aug 09 22:09:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77081: [PATCH] New minor mode: `electric-block-comment-mode' Resent-From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 22 Mar 2025 19:52:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77081 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 77081@debbugs.gnu.org Received: via spool by 77081-submit@debbugs.gnu.org id=B77081.174267311317434 (code B ref 77081); Sat, 22 Mar 2025 19:52:03 +0000 Received: (at 77081) by debbugs.gnu.org; 22 Mar 2025 19:51:53 +0000 Received: from localhost ([127.0.0.1]:45565 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tw4sq-0004X1-Mu for submit@debbugs.gnu.org; Sat, 22 Mar 2025 15:51:53 -0400 Received: from mail-oo1-xc44.google.com ([2607:f8b0:4864:20::c44]:43240) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1tw4sn-0004WA-Ti for 77081@debbugs.gnu.org; Sat, 22 Mar 2025 15:51:50 -0400 Received: by mail-oo1-xc44.google.com with SMTP id 006d021491bc7-601ad30bc0cso2591380eaf.0 for <77081@debbugs.gnu.org>; Sat, 22 Mar 2025 12:51:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742673104; x=1743277904; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=jqF5FlJ/8uscM0CIr1TilmaUiMFGhGeCcMHQ3PpgSok=; b=CyMK+v5US581cMXBb4vyHXtwSNfd4hWIKzjGhnZNofsDU2fBQ/PGjNgcBUiYz3dSgj 1V4g0p1PTWCYOrdbnyQbgJcEHcqfmAqgvaON+XjnpFQu98Sg91g0EE17Udi2uZJqmvIz Wn8dTY+uvfJA3pamOyX8ouluPCw71pKcV+dPtBIIx8hrUtzINcVkfSxujdkDceSCtuh1 acq4AYkS7qoXGqXM673iLYlRfKTqqBhQk+WUsqoLfTVVNtkFfT9SEEOpA9gROVMD6RTh kVYlegYwNw6XXwz+0TltL43XmsqG8I3kTX5T61eGiE32BRgcEoOb0ACIxdetAai6ikq9 01dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742673104; x=1743277904; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jqF5FlJ/8uscM0CIr1TilmaUiMFGhGeCcMHQ3PpgSok=; b=pmjgBw5jrBgeK7ZbuvW113Q71X5ZYJZzkMUpvsRwpwNdEN8GV0/9l8nbTbOOnhR3KL 7pSWpnN3Q+aDpMvXS4ysIBrOQFx6G5vjRC+qJHvlor0w5lohbUC6osoMNfqbLDNOCb7r oquk9s5MJSW1wp2jaJUX2MtYx+3ZOpATqbD9fvQdNE5+y0NLLYI0quoLQD573+RG+LVy jymq5bs8I/Z13MO/VpvCU9IxfTDhYQPS6qeSZTiA+qzcrRVg58zbDEqsNatoF31AUXFE x5uHHhFAmButuU9tkKgSOpBAVYNF9qQ17Ap8rL+Y3Vu4MC7VCjAA/mCtKW2Yi2EitCMY M1Sg== X-Gm-Message-State: AOJu0YxzA8a65gSjXeLMwa1t6yF/YvUBxhgIHZWDkJEd5YCfvy2lGilP 8X2aD+JH4vozkFIVF7jW7zS7pUtFcvEE4Et64YPhPQMeukUORlVzMiKjgUq2 X-Gm-Gg: ASbGncs0CyCRU24wHFFDQhsM5z4bdGq+Kb8eGuKsffkYgHjeNAg367shKlJGiU9BBRV OPFquJAuzzNyHt14taCGQha/19YgARq1UuBkUX6pTYGT0lM9DpbbBtOcyigL/b4kFaWL1kWELjY gRGBZ2g4NI5yGSjd0LJ9ja/+GBTctGX19g6Eq7/sR+6tMAnkv+/ltpK0n3DZtslcLLBHKAPxEEO rF/YdrwjGhgjfawvYZeeGfNy1dL0PVhXbhMNjSBy8yDRkgexT7nvfyAomDNMNntweWTGCanHbPJ 7rKf0hBwEFb9U4rKegHoxVA= X-Google-Smtp-Source: AGHT+IHedJbs4qP043qAXr9QbYV2BJ/V960YJg/c/V4iD0aYG5qH6QWiUGzOCczgATRkDNYvd8cnYw== X-Received: by 2002:a05:6820:430a:b0:601:d8be:efcc with SMTP id 006d021491bc7-60228d05da3mr8796222eaf.4.1742673103751; Sat, 22 Mar 2025 12:51:43 -0700 (PDT) Received: from fedora ([2806:10ae:e:5fce::1]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-602347112cesm689920eaf.15.2025.03.22.12.51.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Mar 2025 12:51:43 -0700 (PDT) From: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= In-Reply-To: <861pupjmoz.fsf@gnu.org> References: <87cyefmonr.fsf@gmail.com> <875xk7uunl.fsf@gmail.com> <861pupjmoz.fsf@gnu.org> Date: Sat, 22 Mar 2025 13:51:42 -0600 Message-ID: <87cye8onch.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: multipart/alternative; boundary="==-=-=" --==-=-= Content-Type: text/plain Eli Zaretskii writes: >> --- a/etc/NEWS >> +++ b/etc/NEWS >> @@ -111,6 +111,10 @@ If you have been using these variables in Lisp code (for example, in >> font-lock rules), simply quote the symbol, to use the face directly >> instead of its now-obsolete variable. >> +** New minor mode 'electric-block-comment-mode' >> +This mode automatically close block comment typed, thus typing >> +"/*" in c-mode automatically inserts "*/". >> + > This should mention block-comment-start and block-comment-end. Also, > it would be good to name a few modes which support block comments, > just so users of those modes will become interested. I agree, done. Sending fixed patch. --==-=-= Content-Type: text/html

Eli Zaretskii <eliz@gnu.org> writes:

— a/etc/NEWS
+ b/etc/NEWS
@@ -111,6 +111,10 @@ If you have been using these variables in Lisp code (for example, in
font-lock rules), simply quote the symbol, to use the face directly
instead of its now-obsolete variable.

+** New minor mode 'electric-block-comment-mode'
+This mode automatically close block comment typed, thus typing
+"" in c-mode automatically inserts "".
+

This should mention block-comment-start and block-comment-end. Also,
it would be good to name a few modes which support block comments,
just so users of those modes will become interested.

I agree, done.

Sending fixed patch.

--==-=-=-- --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-New-minor-mode-electric-block-comment-mode.patch Content-Transfer-Encoding: quoted-printable >From 8c921b83485f3bc301eec6ec5dbb93a6e09ed86d Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?El=3DC3=3DADas=3D20Gabriel=3D20P=3DC3=3DA9rez?=3D Date: Mon, 17 Mar 2025 12:56:52 -0600 Subject: [PATCH] New minor mode: `electric-block-comment-mode' This minor lets you automatically closing block comments after typing `block-comment-start'. Thus, typing "/*" in c-mode and derived automatically inserts "*/". (Bug#77081) * etc/NEWS: Add minor-mode item. * lisp/electric.el (electric-block-comment-post-self-insert-function): New function. (electric-block-comment-mode): New minor mode definition. --- etc/NEWS | 11 +++++++++++ lisp/electric.el | 30 ++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index cc63d03eafe..3db1d55cb7e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -111,6 +111,17 @@ If you have been using these variables in Lisp code (f= or example, in font-lock rules), simply quote the symbol, to use the face directly instead of its now-obsolete variable. =20 +** New minor mode 'electric-block-comment-mode' +This mode automatically close block comment, typing `block-comment-start' +closes it inserting their corresponding `block-comment-end'. +Thus, allows closing block comments for major modes =E2=80=8B=E2=80=8Bthat= support it, +such as: +- c-mode, c++-mode, java-mode, js-mode, css-mode, and derived +- html-mode, mhtml-mode, xml-mode and nxml-mode +- pascal-mode +- lua-ts-mode +- lisp-mode and common-lisp-mode + ** Network Security Manager (NSM) is now more strict. =20 *** NSM warns about TLS 1.1 by default. diff --git a/lisp/electric.el b/lisp/electric.el index 39e13e1ca0c..86c01438e9a 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -731,6 +731,36 @@ electric-quote-local-mode (setq-default electric-quote-mode nil) ; But keep it globally disabled. ))) =20 +;;; 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-sta= rt' +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-star= t)) + 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) =20 ;;; electric.el ends here --=20 2.49.0 --=-=-= Content-Type: text/plain -- - E.G via GNU Emacs and Org. --=-=-=-- From unknown Sat Aug 09 22:09:55 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Elijah Gabe =?UTF-8?Q?P=C3=A9rez?= Subject: bug#77081: closed (Re: bug#77081: [PATCH] New minor mode: `electric-block-comment-mode') Message-ID: References: <86bjtk85eq.fsf@gnu.org> <87cyefmonr.fsf@gmail.com> X-Gnu-PR-Message: they-closed 77081 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 77081@debbugs.gnu.org Date: Sat, 29 Mar 2025 11:05:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1743246302-5080-1" This is a multi-part message in MIME format... ------------=_1743246302-5080-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #77081: [PATCH] New minor mode: `electric-block-comment-mode' which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 77081@debbugs.gnu.org. --=20 77081: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D77081 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1743246302-5080-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 77081-done) by debbugs.gnu.org; 29 Mar 2025 11:04:09 +0000 Received: from localhost ([127.0.0.1]:57149 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tyTyz-0001IR-3H for submit@debbugs.gnu.org; Sat, 29 Mar 2025 07:04:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35324) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tyTyx-0001I1-14 for 77081-done@debbugs.gnu.org; Sat, 29 Mar 2025 07:04:07 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tyTyp-00011p-3t; Sat, 29 Mar 2025 07:04:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=GmeZbiN0GcZBQKNjkcP5s59DPWRo0AwbT1ftLVzuyDc=; b=rXCAVwyOI6+rHDpWFtLS 1K3ZIsJen3KfVcH2yqaLbfnA9ToGGAA36ZdEWxvkJhTGKbaa98ggrpwa2/W6U4hRVlmIqPhHsjY1g uf/fpPRW6jSwhecnD3PTK8qulO0iYn+0U3EKgzXNJfBZW9yY6JPIEmtvMKRs7qLYCBZcPO/vf69Q6 kbDz6c7UMq37HwQJGyz8jHT6crrKPzmmITBKx3+Uyzdh7Khwe9n4P7vLqfBNg97VABt+4+w17aFzP J//YmjSvoVKWCaq8tYr11OlePHMP1fDecuEfDFUAofR749hIqzrTVqzVZM2f0R9PxS/LiNcN9EcZJ fBAiqMKGdwW5HA==; Date: Sat, 29 Mar 2025 14:03:57 +0300 Message-Id: <86bjtk85eq.fsf@gnu.org> From: Eli Zaretskii To: Elijah Gabe =?utf-8?Q?P=C3=A9rez?= In-Reply-To: <87cye8onch.fsf@gmail.com> (message from Elijah Gabe =?utf-8?Q?P=C3=A9rez?= on Sat, 22 Mar 2025 13:51:42 -0600) Subject: Re: bug#77081: [PATCH] New minor mode: `electric-block-comment-mode' References: <87cyefmonr.fsf@gmail.com> <875xk7uunl.fsf@gmail.com> <861pupjmoz.fsf@gnu.org> <87cye8onch.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77081-done Cc: 77081-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Elijah Gabe Pérez > Cc: 77081@debbugs.gnu.org > Date: Sat, 22 Mar 2025 13:51:42 -0600 > > Eli Zaretskii writes: > > — a/etc/NEWS > + b/etc/NEWS > @@ -111,6 +111,10 @@ If you have been using these variables in Lisp code (for example, in > font-lock rules), simply quote the symbol, to use the face directly > instead of its now-obsolete variable. > > +** New minor mode 'electric-block-comment-mode' > +This mode automatically close block comment typed, thus typing > +"" in c-mode automatically inserts "". > + > > This should mention block-comment-start and block-comment-end. Also, > it would be good to name a few modes which support block comments, > just so users of those modes will become interested. > > I agree, done. > > Sending fixed patch. Thanks, installed on the master branch, and closing the bug. ------------=_1743246302-5080-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 17 Mar 2025 19:40:40 +0000 Received: from localhost ([127.0.0.1]:32797 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tuGKF-00008H-GY for submit@debbugs.gnu.org; Mon, 17 Mar 2025 15:40:40 -0400 Received: from lists.gnu.org ([2001:470:142::17]:56738) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tuGKC-00007h-NC for submit@debbugs.gnu.org; Mon, 17 Mar 2025 15:40:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tuGK7-0003kt-95 for bug-gnu-emacs@gnu.org; Mon, 17 Mar 2025 15:40:31 -0400 Received: from mail-oi1-x241.google.com ([2607:f8b0:4864:20::241]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tuGK5-0002rw-6F for bug-gnu-emacs@gnu.org; Mon, 17 Mar 2025 15:40:30 -0400 Received: by mail-oi1-x241.google.com with SMTP id 5614622812f47-3f94b7bd964so2745879b6e.1 for ; Mon, 17 Mar 2025 12:40:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742240427; x=1742845227; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=z3b3vyVH1V8xx17Ja9iP23/sCcCbjIUssdR6KiOhCx4=; b=PaI6CgrbFZRyXmukcn/BiU90LtEYc2XrdBjYrTgmU5HtRgS3J33h9Dx9XYVda4qRSj C6cF63sCbs647p6hAZC8+AektN7EYEsVCbiHLUsyjV7tgPKW4V1gP0GHejAccGicmCZd SWCzP68XJdrJtUVfeBOw1CfyW9yy/tYl6w8Wda20xg4pL4B7IxIKP1LpcgEDGCsw/tbB I4lO4wnp5e40Y2J/JJKUPaxYhKs7ZJPQ6L3a4DBzngvgphf/Zk/svbPwPm6JfFj4P3uw 9EdK5/TufukyUSnWoHwMeKSV5rNkmd9MuxMOQSZMYU/6Uacy6qGLR684bgOgQeYpB4Ke 8Z9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742240427; x=1742845227; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=z3b3vyVH1V8xx17Ja9iP23/sCcCbjIUssdR6KiOhCx4=; b=ZUkRX9xh50sTayndfixdVXjM8PMY84tFqxEUEthcFBwkP6QsOnm223GlknBqWvKABw Lmz2XkmvT/v23EyTDE9oIACBdGZa5v8ofLNI0P4FbJDM97EFu0EXudx8bc56wEeXwtrS 6xpQTJzkbklMp/f/t1XvhZumn40Qn6NJ60UTrln6M57o3uQXtHs5/eBA1fKpjvzNRCvo fq4HbrG38LWy90Z2B2GwuBCjuCz66/eEfWpaU2d4iuix0sLW1WQHkxf/BMn5ycgQG0XI JxSk1w9h7LkX/M+pZXFcjFk67IHrozRanuMHtOnQBSDkSYD0pFFssTGKugSja+HnyzKK TTbw== X-Gm-Message-State: AOJu0YyCYpIoFJBb0wUf9qUIITDsK74oSBQ+t8KU3tj8SxWFYh6k9kqL DewBtwso5hF2OpmyfzMelTmZ8NZS28qs2Urc6CNSTzqy3l/orhz8PkoYOD7d X-Gm-Gg: ASbGncvDNHmIhF1RKUl2Dj01KvxsDOV5eOdD32OTFjmCrXfl2B15IdrNtl7CukfE9FW E+/Mt+xWjPnhw9MTtgASvi4i579OxNy+RxMh885Cw/sMBCIOTvhaZMd3OgjH8A+fEovZtsLgZ1I lR1uqp7nOTkw7tA7kyUZVCEvrtnV9MyRw81+GkqgSYSpHt3tl1LSftZFQi4douWISypsvIe1N8L 9aVnQlPfPCBxkhRlJ2ePQW2ls29tevZhqr/0HuHB9xi6LYNoQBFcgEdsQVtBe0MbnD+xBBiGfCM dgdL0hrtoYzx X-Google-Smtp-Source: AGHT+IHOM0usIiARxA5wkcXDDH7H85+Dl1gNeXlRhkkbFekS1oh42GBjLqrRmSUnl0Fy1JBKA98FxA== X-Received: by 2002:a05:6808:220b:b0:3f9:f923:cc3c with SMTP id 5614622812f47-3fdee55a3afmr8274430b6e.4.1742240427272; Mon, 17 Mar 2025 12:40:27 -0700 (PDT) Received: from fedora ([2806:10ae:e:622a::3]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3fe832ce015sm1177840b6e.7.2025.03.17.12.40.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Mar 2025 12:40:26 -0700 (PDT) From: =?utf-8?Q?Elijah_Gabe_P=C3=A9rez?= To: bug-gnu-emacs@gnu.org Subject: [PATCH] New minor mode: `electric-block-comment-mode' X-Debbugs-Cc: emacs-devel@gnu.org Date: Mon, 17 Mar 2025 13:40:24 -0600 Message-ID: <87cyefmonr.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2607:f8b0:4864:20::241; envelope-from=eg642616@gmail.com; helo=mail-oi1-x241.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hello, This minor automatically lets you close block comment when typing a block comment start. Thus... #+begin_src typing /* in c-mode automatically inserts */. Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (eg642616[at]gmail.com) 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (eg642616[at]gmail.com) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org] 0.0 HTML_MESSAGE BODY: HTML included in message X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.2 (/) --=-=-= Content-Type: multipart/alternative; boundary="==-=-=" --==-=-= Content-Type: text/plain Hello, This minor automatically lets you close block comment when typing a block comment start. Thus... #+begin_src typing /* in c-mode automatically inserts */. electric-block-comment-mode: on /*| ^ cursor /* | */ ^ cursor Or in lua --[[ inserts ]]--. electric-block-comment-mode: on --[[| ^ cursor --[[ | ]]-- ^ cursor #+end_src and so on. *However, there is a problem,* This minor mode uses =block-comment-start= and =block-comment-end= variables, which most of the major modes do not use or define. The reason I decided to use these variables is because are more explicit with the type of comment that is used/supported. I would like to hear your feedback. --==-=-= Content-Type: text/html

Hello,

This minor automatically lets you close block comment when typing a block comment start.

Thus…

typing /* in c-mode
automatically inserts */.

electric-block-comment-mode: on

/*|
  ^ cursor

/* | */
   ^ cursor

Or in lua --[[ inserts ]]--.

electric-block-comment-mode: on

--[[|
    ^ cursor

--[[ | ]]--
     ^ cursor

and so on.

However, there is a problem, This minor mode uses block-comment-start and block-comment-end variables, which most of the major modes do not use or define.

The reason I decided to use these variables is because are more explicit with the type of comment that is used/supported.

I would like to hear your feedback.

--==-=-=-- --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-New-minor-mode-electric-block-comment-mode.patch >From 45414d4b0d47ddd9300fcc24723e0aa5e4efc8cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?El=C3=ADas=20Gabriel=20P=C3=A9rez?= Date: Mon, 17 Mar 2025 12:56:52 -0600 Subject: [PATCH] New minor mode: `electric-block-comment-mode' This minor automatically lets you close block comment when typing a block comment start. Thus, typing "/*" in c-mode automatically inserts "*/". * etc/NEWS: Add minor-mode item. * lisp/electric.el (electric-block-comment-post-self-insert-function): New function. (electric-block-comment-mode): New minor mode definition. --- etc/NEWS | 4 ++++ lisp/electric.el | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index b33f7cec73f..0924e86f691 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -111,6 +111,10 @@ If you have been using these variables in Lisp code (for example, in font-lock rules), simply quote the symbol, to use the face directly instead of its now-obsolete variable. +** New minor mode 'electric-block-comment-mode' +This mode automatically close block comment typed, thus typing +"/*" in c-mode automatically inserts "*/". + ** Network Security Manager (NSM) is now more strict. *** NSM warns about TLS 1.1 by default. diff --git a/lisp/electric.el b/lisp/electric.el index 39e13e1ca0c..c561d168883 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -731,6 +731,34 @@ electric-quote-local-mode (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 when a block comment start is typed." + (when (and block-comment-start block-comment-end + ;; Check if we are exactly behind the block comment start + (save-excursion + (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 " */")))) + + +(define-minor-mode electric-block-comment-mode + "Toggle automatic close comment blocks (Electric Comment mode). + +When enabled, typing `block-comment-start' closes it inserting their +corresponding `block-comment-end'." + :group 'electricity + (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 -- 2.48.1 --=-=-= Content-Type: text/plain -- - E.G via GNU Emacs and Org. --=-=-=-- ------------=_1743246302-5080-1--