From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#46889: cperl-mode: Fix indentation issues [PATCH] Date: Thu, 04 Mar 2021 18:31:37 +0100 Message-ID: <87tupqvn9i.fsf@gnus.org> References: <87im68uwld.fsf@hajtower> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35734"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: 46889@debbugs.gnu.org, Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= To: haj@posteo.de (Harald =?UTF-8?Q?J=C3=B6rg?=) Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Mar 04 18:32:14 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lHrpd-0009Bs-Qj for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 04 Mar 2021 18:32:13 +0100 Original-Received: from localhost ([::1]:48002 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lHrpc-0005NS-QX for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 04 Mar 2021 12:32:12 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50652) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lHrpS-0005Lh-NJ for bug-gnu-emacs@gnu.org; Thu, 04 Mar 2021 12:32:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:48537) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lHrpS-0008PC-Fw for bug-gnu-emacs@gnu.org; Thu, 04 Mar 2021 12:32:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lHrpS-0002dv-Ch for bug-gnu-emacs@gnu.org; Thu, 04 Mar 2021 12:32:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 04 Mar 2021 17:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 46889 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 46889-submit@debbugs.gnu.org id=B46889.161487911510144 (code B ref 46889); Thu, 04 Mar 2021 17:32:02 +0000 Original-Received: (at 46889) by debbugs.gnu.org; 4 Mar 2021 17:31:55 +0000 Original-Received: from localhost ([127.0.0.1]:60083 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lHrpK-0002dY-LD for submit@debbugs.gnu.org; Thu, 04 Mar 2021 12:31:54 -0500 Original-Received: from quimby.gnus.org ([95.216.78.240]:52622) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lHrpH-0002dJ-Go for 46889@debbugs.gnu.org; Thu, 04 Mar 2021 12:31:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=kI86Mg/gqgmvamy3Y/k5Y9TVHUbYK9M7QaG0B6wIdqE=; b=WCuQIM+3x3icVWq9ekVv1hiato LdQgJOTaGYPb8xM3JcERQLoYsOfoAYmoJTXpJQbtXiNQZn8jCSLQU2BywMZ3SIV3eRZ2LeEQ50hb8 WKrSR1k5CyUount6xLTyIGiyxp10r+helILC78R7wS4qj4Qd2S5fdrdUwmUIBPeh/xIo=; Original-Received: from cm-84.212.220.105.getinternet.no ([84.212.220.105] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lHrp5-0005Fm-3h; Thu, 04 Mar 2021 18:31:44 +0100 X-Now-Playing: Virginia Wing's _Fire Comp 2020_: "I'm Holding Out For Something" In-Reply-To: <87im68uwld.fsf@hajtower> ("Harald =?UTF-8?Q?J=C3=B6rg?="'s message of "Wed, 03 Mar 2021 15:43:10 +0100") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:201420 Archived-At: haj@posteo.de (Harald J=C3=B6rg) writes: > As a by-catch, the new code fixes the ancient Bug#8077. > > This patch also fixes the first part of Bug#11733. The "other > indentation bug" reported in Bug#11733 (using a colon as a Perl regexp > terminator) is a different story and not covered by this patch. > > Also fixed now (without known bug number): labels with a space before, > or a comment after the colon are now correctly indented and fontified. Sounds good. > With this patch in effect, CPerl mode should finally have caught up with > Perl 5.30! :-) > Many thanks to Mattias Engdeg=C3=A5rd for his patient explanations how rx > expressions can be used without breaking compatibility to Emacs 26.1. > Until now, this allowed two ugly regexp literals to be eliminated. Funnily enough, that's the one thing I was going to ask you about with this patch. I'm not an experienced rx user -- at all -- but is this the best way to do this? > +(eval-and-compile > + (defconst cperl--ws-rx > + '(sequence (or space "\n")) It was the eval-and-compile that made me look at this bit... [...] > +(defconst cperl-maybe-white-and-comment-rex > + (rx-to-string `(group (eval cperl--ws*-rx))) I'm thinking of the rx `eval' things everywhere. Wouldn't defining these rx expressions with `rx-define' be more straighforward, and then you'd have: > +(defconst cperl-maybe-white-and-comment-rex > + (rx-to-string `(group cperl--ws*-rx)) (Similarly for basically all the rx `eval' bits. Now, rx expands the `eval' at compile time, I think, so it doesn't really make that much difference in practice, but it seems slightly clearer, perhaps? (Added Mattias to the CCs.) --=20 (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no