From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 28 11:17:41 2023 Received: (at submit) by debbugs.gnu.org; 28 Feb 2023 16:17:41 +0000 Received: from localhost ([127.0.0.1]:51853 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX2fc-0004gS-UX for submit@debbugs.gnu.org; Tue, 28 Feb 2023 11:17:41 -0500 Received: from lists.gnu.org ([209.51.188.17]:40166) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX2fb-0004gD-2c for submit@debbugs.gnu.org; Tue, 28 Feb 2023 11:17:39 -0500 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 1pX2fW-0000yw-2g for bug-gnu-emacs@gnu.org; Tue, 28 Feb 2023 11:17:35 -0500 Received: from mail-ua1-x92a.google.com ([2607:f8b0:4864:20::92a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pX2fU-0002Ik-Hi for bug-gnu-emacs@gnu.org; Tue, 28 Feb 2023 11:17:33 -0500 Received: by mail-ua1-x92a.google.com with SMTP id d12so1577431uak.10 for ; Tue, 28 Feb 2023 08:17:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=TvN1Vv5+FPzrKkXKnGbuNTa5Th8I0Ks7JuWtzW/ckko=; b=eGC5gv3Su/roL+C41ENliG0SUV2ldHbB1vTus8yhboPQXwyqsK+huTkKG2PPsvwvL8 tH5ZTfxgJhgInzzTP+xFmclB8F0nCX3ldcIV+qkuHHdy3rFrxB4tVjHHzCW+QtxwqDm6 5/1+2xZbWyKEPfskVwfx4f0nSvPRBuD1OM/KzWCWmiUWS+iPOzjlvHg7btJkFeLNUNF+ 1uYESHhNMztq7YGet7NaWCBC/TkQOQPGnDsgfeJ3o75nQLra/A447ZVukkitWgrWkLqB 6vZqcHJrbcEo9WYQlJoRT8YoRsr/RbuxueVkr0tQomjPdQUKeNGktFSvFntK8eTRTiSs kcTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=TvN1Vv5+FPzrKkXKnGbuNTa5Th8I0Ks7JuWtzW/ckko=; b=6PDzbgjgUU2YMeuAOmDI/vYSbQyEQAYliZlUloh5UYqCWl0KJlutS4lnGeHAKKMPxC SaU1yp1hfRMiboC0hgThvm+IvHtu1FDBsX5gKv2x+Uy5O9WSMbS4w59rBp8p/tlySMF5 DnQLTMl8+Swi5ixEsvCDmkpoz5LSbi2CpEYncPrELSZaAxxMl0P6oGXwn6uAb7fBbKPg Dp5hejTG7ixEJCnwqxsDvLHhM2vqLiRK2V8fz6fkv3eoKj8YKkEI5EHL0vkD7k14NKnI 6s8y3gIjZc6Cu+nOGHGZz78PtI3FKf1uujMOiXXiu1XyQuZsZByFCb0s1NaSNPRacLAN 54qQ== X-Gm-Message-State: AO0yUKWrTGlgCZAsmaLC2Gi0cfiPTU1KOmjUgHPW5oOAGx4bTonSgKbG ivBazFtukJetK6J1TecGv4L8Eb5gL0I= X-Google-Smtp-Source: AK7set8HNlrUQulYl3EUIlVjV51LrPVdfa1l9KY3C7Sg3pR0Btm9UwiehrEQXTevCu5+Y9bDg54QQQ== X-Received: by 2002:a1f:ad86:0:b0:401:41ff:4052 with SMTP id w128-20020a1fad86000000b0040141ff4052mr1171052vke.16.1677601049957; Tue, 28 Feb 2023 08:17:29 -0800 (PST) Received: from Aarons-Laptop.local (c-73-23-241-101.hsd1.fl.comcast.net. [73.23.241.101]) by smtp.gmail.com with ESMTPSA id b127-20020a1fb285000000b00400ea42f476sm1363473vkf.36.2023.02.28.08.17.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Feb 2023 08:17:29 -0800 (PST) From: Aaron Jensen To: bug-gnu-emacs@gnu.org Subject: 29.0.60; ruby-mode indentation with destructuring assignment Date: Tue, 28 Feb 2023 11:17:27 -0500 Message-ID: MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::92a; envelope-from=aaronjensen@gmail.com; helo=mail-ua1-x92a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=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.3 (-) 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: -2.3 (--) I found another edge case: foo, bar = baz.( some_arg ) Should indent to: foo, bar = baz.( some_arg ) From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 28 13:37:30 2023 Received: (at 61871) by debbugs.gnu.org; 28 Feb 2023 18:37:30 +0000 Received: from localhost ([127.0.0.1]:51991 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX4qv-0008Qh-RQ for submit@debbugs.gnu.org; Tue, 28 Feb 2023 13:37:30 -0500 Received: from mail-wr1-f53.google.com ([209.85.221.53]:41592) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX4qt-0008QP-3g for 61871@debbugs.gnu.org; Tue, 28 Feb 2023 13:37:27 -0500 Received: by mail-wr1-f53.google.com with SMTP id bt28so10787033wrb.8 for <61871@debbugs.gnu.org>; Tue, 28 Feb 2023 10:37:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=cwms4EOM1heWuRzcf21z4tVLtvaiOosaefvfQTC6+Ks=; b=CysRj+M35qGemzderPJGdi/ymqpg9/6+/4sTecd808R3/Fu5EVQBd/dMlLNnqh6Nvr NDEJwP8WHDUdI+opB+UJKY5Mz/M8f+sAi7mnW7OKR59zJhRniFYv5vwfZGRjkHKcKQ+Y 2d8Y+oq97bgZHHq4riUy8dqctJHJGGW4cV2wyHRLc4sqWA8UljkEiSSXuEkrKW1vwUNj 9GwJe5gXVZDWP7BvdNvwmt68tIyzlfgJ8l8IHV59jYdoQPFJmgB2VFJrhmGAbdIZiKMb 1kf2UMuSsQ1mV32HYI3wbVk7ILP6UeOw0Q//cX2Ki5Keh4D9rgkOSYNgr6hqQZedakLS 2yIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cwms4EOM1heWuRzcf21z4tVLtvaiOosaefvfQTC6+Ks=; b=Pb3MdkRPm2l/x9cnXJZccuq71SK9jArShq1ihEg0VtV+mjHu4l/iYOZarpEUylII2Z kP4KDAO8UcnB9gsm1BH9fL7AYlXkZceXSurZdcNH6qfMrvgh3fMmfwV+mSZ7rsJeJUci ggEkn+E8W8T+eIqt08QnFer1k2IwwjT2D+d3r0qXxMDBg/Wh6SXFJ8Pr+5MZ6RBbYyz9 8Y49N96mI8p7SFwzThs6fCMmLUp2Pwdt1XxKth4O0rvNpK1goyaXobmyUSxbWXf75dpb 3c9MrRbKFcMkXR2633FUpT0Rq/iqejPQIzzci3+YTkfIYGt3/vNJMouwRis6hBNR2dVE 19Aw== X-Gm-Message-State: AO0yUKUM28dWld9Y2rGGwW/HJgK1KK8eTVelVNG3PpI6N8pR/q3Ifps2 IOZD+dHfVPM2j12HJsZ41h0= X-Google-Smtp-Source: AK7set++k3FsxIazBynt2t2Gwy6lpeTY/wUwF3tVwGMi9dbKLnV8oxevQC5nyK87YgWoJfrhyy6AgQ== X-Received: by 2002:a5d:64cf:0:b0:2c5:4d35:5260 with SMTP id f15-20020a5d64cf000000b002c54d355260mr3432096wri.16.1677609440889; Tue, 28 Feb 2023 10:37:20 -0800 (PST) Received: from [192.168.0.2] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id p2-20020adfe602000000b002c561805a4csm10717295wrm.45.2023.02.28.10.37.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Feb 2023 10:37:20 -0800 (PST) Message-ID: <2eb42d48-87d5-2bc6-88c0-20dc1910dfe8@yandex.ru> Date: Tue, 28 Feb 2023 20:37:19 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: bug#61871: 29.0.60; ruby-mode indentation with destructuring assignment Content-Language: en-US To: Aaron Jensen , 61871@debbugs.gnu.org References: From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 61871 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: -1.9 (-) Hi! On 28/02/2023 18:17, Aaron Jensen wrote: > I found another edge case: > > foo, bar = baz.( > some_arg > ) > > Should indent to: > > foo, bar = baz.( > some_arg > ) Thanks for that. This one is caused by implicit syntax which it non-trivial for SMIE to handle. ruby-ts-mode, predictably, indents it fine. Please try this patch out: diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 559b62fef54..beccb8182a7 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -916,11 +916,14 @@ ruby-smie-rules (smie-indent--hanging-p)) ruby-indent-level))) (`(:before . "=") - (save-excursion - (and (smie-rule-parent-p " @ ") - (goto-char (nth 1 (smie-indent--parent))) - (smie-rule-prev-p "def=") - (cons 'column (+ (current-column) ruby-indent-level -3))))) + (or + (save-excursion + (and (smie-rule-parent-p " @ ") + (goto-char (nth 1 (smie-indent--parent))) + (smie-rule-prev-p "def=") + (cons 'column (+ (current-column) ruby-indent-level -3)))) + (and (smie-rule-parent-p ",") + (smie-rule-parent)))) (`(:after . ,(or "?" ":")) (if ruby-after-operator-indent ruby-indent-level From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 28 15:00:52 2023 Received: (at 61871) by debbugs.gnu.org; 28 Feb 2023 20:00:52 +0000 Received: from localhost ([127.0.0.1]:52061 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX69c-0002QG-8y for submit@debbugs.gnu.org; Tue, 28 Feb 2023 15:00:52 -0500 Received: from mail-pj1-f45.google.com ([209.85.216.45]:56088) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX69a-0002Q4-L9 for 61871@debbugs.gnu.org; Tue, 28 Feb 2023 15:00:51 -0500 Received: by mail-pj1-f45.google.com with SMTP id oj5so7050261pjb.5 for <61871@debbugs.gnu.org>; Tue, 28 Feb 2023 12:00:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=9FjRrmA7Lk1j7aKIvRREjAbBOfpk7UalNO7XtfqBfg0=; b=GsSoTGYCTPYEU37LHu+xtRAfaRn/aTkyThmqFKzXXo2nkfM24SHfwddaOZ2YK5AaIu TqvkDnV9upzkVkkPzzdeGhWBKVaQ+dQA7KHjIwxribn7cf+u0AjQVwFyqCeW8hx/agy+ Tmo/heYTspmJQMAWBZY778mBwszflkq9g6+skOwBnPdBvVpB841PZeVAsELrIlu9zjqO rCktMxT5l4BFC3otL3ULOjav/7hpQ/jMRIM2C/RqBr9BMiJIp4VHO4zMTIaJfVRzYGu0 9L4S55e8tZD46gj74ZnosVdnhwXxRmbEUJAbyqf/QyGuiKL6ZC2XXxOAWrxbvkiYft3O yT0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9FjRrmA7Lk1j7aKIvRREjAbBOfpk7UalNO7XtfqBfg0=; b=DgkjT/4ccb9w4LNn2MzW7lhHo4HAX1qh3dBfqjeDwKj8OFdGgFEKmUJktPlw7Mwl6G raETGGvkifR8aUciQ8I9xTYbdGmkZRwYBzXYAMqOq307lnWLH8+RpO4Yk4HEcuqhtPaJ qnr3qc2G/4HH4cehjfAqcRa7J2OTPNBrCCo0tjjqvqmst9oq4a+6d+IVt2OkiFcCAOGj lEClnN90sy9Yme18ms2Mhr4pD0ZGr9OQCFFbGPyHovsyqRHIZvWfoeP+hhxMGmSVom1F dtTrBbKlJEZVotAK8wY4Jh/QIq7bXrbomnFkxO9886kfsW5J6UPhqAuvGl+5A1W68jPe 9uDw== X-Gm-Message-State: AO0yUKWrHGAzYsXIZ0HgcYSE/tA6mxpb/Qyqz7NMBVeJsrcAokrB1wze Qr7Oc3elBvvfwnHkZf1558DzPeMlD5Qeyb1tRCo= X-Google-Smtp-Source: AK7set8hWkt+Gfyo16AGk5J5c372ml5JZkQimy4QXqpI9l4SDysZ7y2wYhNKrU1dgOyVO9I0oGR26JltZEVxwNie7VU= X-Received: by 2002:a17:90a:d193:b0:234:b23:eade with SMTP id fu19-20020a17090ad19300b002340b23eademr1596702pjb.9.1677614444771; Tue, 28 Feb 2023 12:00:44 -0800 (PST) MIME-Version: 1.0 References: <2eb42d48-87d5-2bc6-88c0-20dc1910dfe8@yandex.ru> In-Reply-To: <2eb42d48-87d5-2bc6-88c0-20dc1910dfe8@yandex.ru> From: Aaron Jensen Date: Tue, 28 Feb 2023 15:00:33 -0500 Message-ID: Subject: Re: bug#61871: 29.0.60; ruby-mode indentation with destructuring assignment To: Dmitry Gutov Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 61871 Cc: 61871@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: -1.0 (-) On Tue, Feb 28, 2023 at 1:37=E2=80=AFPM Dmitry Gutov wro= te: > > Hi! > > On 28/02/2023 18:17, Aaron Jensen wrote: > > I found another edge case: > > > > foo, bar =3D baz.( > > some_arg > > ) > > > > Should indent to: > > > > foo, bar =3D baz.( > > some_arg > > ) > > Thanks for that. This one is caused by implicit syntax which it > non-trivial for SMIE to handle. ruby-ts-mode, predictably, indents it fin= e. > > Please try this patch out: > > diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el > index 559b62fef54..beccb8182a7 100644 > --- a/lisp/progmodes/ruby-mode.el > +++ b/lisp/progmodes/ruby-mode.el > @@ -916,11 +916,14 @@ ruby-smie-rules > (smie-indent--hanging-p)) > ruby-indent-level))) > (`(:before . "=3D") > - (save-excursion > - (and (smie-rule-parent-p " @ ") > - (goto-char (nth 1 (smie-indent--parent))) > - (smie-rule-prev-p "def=3D") > - (cons 'column (+ (current-column) ruby-indent-level -3))))) > + (or > + (save-excursion > + (and (smie-rule-parent-p " @ ") > + (goto-char (nth 1 (smie-indent--parent))) > + (smie-rule-prev-p "def=3D") > + (cons 'column (+ (current-column) ruby-indent-level -3)))) > + (and (smie-rule-parent-p ",") > + (smie-rule-parent)))) > (`(:after . ,(or "?" ":")) > (if ruby-after-operator-indent > ruby-indent-level This works for me for this case, thank you. Aaron From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 28 16:02:07 2023 Received: (at 61871-done) by debbugs.gnu.org; 28 Feb 2023 21:02:07 +0000 Received: from localhost ([127.0.0.1]:52088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX76t-0003z4-46 for submit@debbugs.gnu.org; Tue, 28 Feb 2023 16:02:07 -0500 Received: from mail-wr1-f52.google.com ([209.85.221.52]:37402) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pX76r-0003yZ-MA for 61871-done@debbugs.gnu.org; Tue, 28 Feb 2023 16:02:06 -0500 Received: by mail-wr1-f52.google.com with SMTP id h14so11174651wru.4 for <61871-done@debbugs.gnu.org>; Tue, 28 Feb 2023 13:02:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677618120; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=cuK0NPRptu+w8lZgreL3p99WBqQyrJgIAUegDHE7fJg=; b=FKpagvCrtK4mUpXzKyZJFUoxyahsQkdiM3aaJD9yOCZX9kcXvdxrX4Po1RMNdZ/9Qj 8LlYR8d9oUw2APSlMylkhk6MlGKhPJQE+8ZH96rPJshNwfNjxFbU3ejn5nMz3SEwHae0 FCiclr8Lw+uK+hHTJ8N9cL6n09VWWmp/0xehD3heM12mdVOM5hFDXM+S0Dd59ydzhjbA AMGOcEmMlNsbZEyJjSO3/8WfNksTioOL+jFkzZuSUTeXtN9aBI/KOQZV9xzH3pkKa7Ij 0uAFZHjtQWmUrdP7V4JPIKDvbtQpxd4rQXSW81nizmSDjRd25oCB0AtBbvt3wZRHAciK nCTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677618120; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cuK0NPRptu+w8lZgreL3p99WBqQyrJgIAUegDHE7fJg=; b=uWW4j0XLhs9BiIlHkh4UqQObXdzfNgW/mKrwsQWhFxikYiX7EWzVK8f0T/d+QdrvJm cYl4068uMF4Dumlxn6WN1EJKvl5aBGtrpA1Okgv4G1Kj3NXoJylfuFpuMN/rlOBAXz0U 7DGFhgVoZSvQs8dDWOBOpmA7TMXHNoNOjHZ4/3sHxlY3+LRdOCj8EkVOCQISG0G1N0Jl hIn2PVDeo0k1vDyvhVU6nmHT9gcAX8IDwHByr3x+PN8E0Eb+3yD82cuAAq66b5CTCE8T EPAUeJ5VaozIIsEzSu+eQLom7nn5v97qlAYkpxqYhMhPjc1swYefN8kpTo9mQPkTfZ/8 6A6Q== X-Gm-Message-State: AO0yUKUj3QisWvsU1H9gbafRrBWz0lmBfLta659IH56j7DWHLFWH23mm hhfZvwmBXbsyRLiRr9dlH4M= X-Google-Smtp-Source: AK7set+BKnQ+zxboQebJl0SwuwiqGsOsXS0gSjRsxQykQgYQyPUYQgBEt5VcLjNO+hO/l5jcwF8RoA== X-Received: by 2002:adf:f845:0:b0:2c5:530d:4045 with SMTP id d5-20020adff845000000b002c5530d4045mr3477698wrq.20.1677618119622; Tue, 28 Feb 2023 13:01:59 -0800 (PST) Received: from [192.168.0.2] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id az11-20020a05600c600b00b003e1202744f2sm16937382wmb.31.2023.02.28.13.01.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Feb 2023 13:01:59 -0800 (PST) Message-ID: Date: Tue, 28 Feb 2023 23:01:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: bug#61871: 29.0.60; ruby-mode indentation with destructuring assignment Content-Language: en-US To: Aaron Jensen References: <2eb42d48-87d5-2bc6-88c0-20dc1910dfe8@yandex.ru> From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 61871-done Cc: 61871-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: -1.9 (-) Version: 29.1 On 28/02/2023 22:00, Aaron Jensen wrote: > On Tue, Feb 28, 2023 at 1:37 PM Dmitry Gutov wrote: >> Hi! >> >> On 28/02/2023 18:17, Aaron Jensen wrote: >>> I found another edge case: >>> >>> foo, bar = baz.( >>> some_arg >>> ) >>> >>> Should indent to: >>> >>> foo, bar = baz.( >>> some_arg >>> ) >> Thanks for that. This one is caused by implicit syntax which it >> non-trivial for SMIE to handle. ruby-ts-mode, predictably, indents it fine. >> >> Please try this patch out: >> >> diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el >> index 559b62fef54..beccb8182a7 100644 >> --- a/lisp/progmodes/ruby-mode.el >> +++ b/lisp/progmodes/ruby-mode.el >> @@ -916,11 +916,14 @@ ruby-smie-rules >> (smie-indent--hanging-p)) >> ruby-indent-level))) >> (`(:before . "=") >> - (save-excursion >> - (and (smie-rule-parent-p " @ ") >> - (goto-char (nth 1 (smie-indent--parent))) >> - (smie-rule-prev-p "def=") >> - (cons 'column (+ (current-column) ruby-indent-level -3))))) >> + (or >> + (save-excursion >> + (and (smie-rule-parent-p " @ ") >> + (goto-char (nth 1 (smie-indent--parent))) >> + (smie-rule-prev-p "def=") >> + (cons 'column (+ (current-column) ruby-indent-level -3)))) >> + (and (smie-rule-parent-p ",") >> + (smie-rule-parent)))) >> (`(:after . ,(or "?" ":")) >> (if ruby-after-operator-indent >> ruby-indent-level > This works for me for this case, thank you. Thanks for checking! Closing. From unknown Mon Jun 23 02:24:33 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 29 Mar 2023 11:24:08 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator