From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#61017: 29.0.60; ruby-ts-mode indents class between two lines incorrectly Date: Mon, 23 Jan 2023 23:28:41 +0200 Message-ID: <1a2436ef-ff4d-827c-f22f-33b0737d9b1f@yandex.ru> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------ockAlhwd0h7ADAv5gzocXm7M" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19146"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 To: Aaron Jensen , 61017@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jan 23 22:29:19 2023 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 1pK4NT-0004sN-A2 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 23 Jan 2023 22:29:19 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pK4NE-0008Ed-B2; Mon, 23 Jan 2023 16:29:04 -0500 Original-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 1pK4NC-0008EU-Ew for bug-gnu-emacs@gnu.org; Mon, 23 Jan 2023 16:29:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pK4NC-0001ox-7A for bug-gnu-emacs@gnu.org; Mon, 23 Jan 2023 16:29:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pK4NB-0007lm-Kl for bug-gnu-emacs@gnu.org; Mon, 23 Jan 2023 16:29:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 23 Jan 2023 21:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61017 X-GNU-PR-Package: emacs Original-Received: via spool by 61017-submit@debbugs.gnu.org id=B61017.167450933329846 (code B ref 61017); Mon, 23 Jan 2023 21:29:01 +0000 Original-Received: (at 61017) by debbugs.gnu.org; 23 Jan 2023 21:28:53 +0000 Original-Received: from localhost ([127.0.0.1]:55448 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pK4N2-0007lK-QG for submit@debbugs.gnu.org; Mon, 23 Jan 2023 16:28:53 -0500 Original-Received: from mail-wm1-f48.google.com ([209.85.128.48]:36476) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pK4N0-0007l4-B0 for 61017@debbugs.gnu.org; Mon, 23 Jan 2023 16:28:50 -0500 Original-Received: by mail-wm1-f48.google.com with SMTP id c4-20020a1c3504000000b003d9e2f72093so11551395wma.1 for <61017@debbugs.gnu.org>; Mon, 23 Jan 2023 13:28:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=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=4zosH545BYrwa/MISCHtY+F0iEZKVEiJO+FbGWoV2HI=; b=LZ/YxhBLqPq1egjrN0HY/d9fplXP8BlIFEVJQt0rVae2QjyCE8zIg0wlVLGiBn2ovE hJOntV9HFmvh1S/MAqoV0ekgB78cv0XM/Yljvq9sNKLNy9YXrmLkll3TrxXi8sdqz35B qPctW50dpraJn7yojD/7wYGJKlyIU+TOWtqa/+lX0TaNZgRUkEczm5xf7XSQLCtvuA6R d+dppQ66ISrtrIrJg5V3YI/w4LxnHs6nRDzjAG0LZ1SZIBnItni46RDYrIRe4ROIE+w4 kgnJolVC81JTuHWpVqyOHT8JKXKrCv0oFJrBARoftutSeYc4yYpfx2YjgrEim38UcH5b GiXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=4zosH545BYrwa/MISCHtY+F0iEZKVEiJO+FbGWoV2HI=; b=FbDGJB0PoUp0a0p0Au3qFX/VigrnLowFD1tckbAlPN6nnYyywQDhZqmIlWIq4a5vSI /9pFQnI3ixzao3ioP9DUVd8jmGK/4fUJ86XS/yjXdXvoxcbjieP49tdlyHhONxI+pOGn oD98zT7/FCo3pOSK9h6KUqValLyZsBaGWH29Kj+uu+LYUAMfJX10ZmFRwcFk2IeOMSrq Wt+dLa3fBEjYL4Gspa3lf9D6XxDEFY0Xer+t5VHihA24S45pmDfXCiu4Qtlgts8+GaTR kLhUKMjGMxS/dGg8om0FXz79OhPVhevLKSaPXizDbabye86uMSE+b2k2T+E6SJOgECab jGqQ== X-Gm-Message-State: AFqh2kq6OMGO0UpJkYcB2am4jrB+4niLgs6jbzAGb9PcmSfpdwWUoU+s tonr79RaUtzyeOZuw4OEfcU= X-Google-Smtp-Source: AMrXdXuxeiNE2uoQMAA1RaeRQmUvB4UHY5KTt5TspUQY5C0BgBovi2FURoO/oSpq/WV5A5AOaHVa/w== X-Received: by 2002:a05:600c:2d84:b0:3d9:e8b3:57f9 with SMTP id i4-20020a05600c2d8400b003d9e8b357f9mr25666772wmg.8.1674509324378; Mon, 23 Jan 2023 13:28:44 -0800 (PST) Original-Received: from [192.168.0.2] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id g12-20020a05600c310c00b003db012d49b7sm182913wmo.2.2023.01.23.13.28.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Jan 2023 13:28:43 -0800 (PST) Content-Language: en-US In-Reply-To: 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:254030 Archived-At: This is a multi-part message in MIME format. --------------ockAlhwd0h7ADAv5gzocXm7M Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi! On 23/01/2023 06:33, Aaron Jensen wrote: > > Start with a buffer in ruby-ts-mode like: > > a > > b > > Between the two lines, type "class Foo", then press enter > > You should get this: > > a > > class Foo > > b > > But this is expected: > > a > > class Foo > > b > > Note that reindenting after adding the "end" will indent correctly, so > it's only an issue with electric indent Thanks for the report, the problem here is that such examples parse into a malformed syntax tree: (program (identifier) (ERROR class (constant) (identifier))) Another example would be: class C def foo which parses as (ERROR class (constant) def (identifier)) We can try to anticipate such cases and infer the implied structure somehow, or just disable indentation for specific cases. See the attached patch for the latter. Is it enough of an improvement? --------------ockAlhwd0h7ADAv5gzocXm7M Content-Type: text/x-patch; charset=UTF-8; name="ruby-ts-error-indent.diff" Content-Disposition: attachment; filename="ruby-ts-error-indent.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3J1YnktdHMtbW9kZS5lbCBiL2xpc3AvcHJv Z21vZGVzL3J1YnktdHMtbW9kZS5lbAppbmRleCBmMDMzNzc3NWQ1MS4uYzNjNzdkNjhlOWEg MTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3J1YnktdHMtbW9kZS5lbAorKysgYi9saXNw L3Byb2dtb2Rlcy9ydWJ5LXRzLW1vZGUuZWwKQEAgLTU0Niw2ICs1NDYsMTIgQEAgcnVieS10 cy0taW5kZW50LXJ1bGVzCiAgICAgICAgICAgICgobi1wLWdwIG5pbCBuaWwgInJlZ2V4Iikg bm8taW5kZW50IDApCiAgICAgICAgICAgICgocGFyZW50LWlzICJyZWdleCIpIG5vLWluZGVu dCAwKQogCisgICAgICAgICAgIDs7IEluY29tcGxldGUgYnVmZmVyIHN0YXRlLCBiZXR0ZXIg bm90IHJlaW5kZW50LgorICAgICAgICAgICAoKGFuZCAocGFyZW50LWlzICJFUlJPUiIpCisg ICAgICAgICAgICAgICAgIChvciAobm9kZS1pcyAscnVieS10cy0tY2xhc3Mtb3ItbW9kdWxl LXJlZ2V4KQorICAgICAgICAgICAgICAgICAgICAgKG5vZGUtaXMgIlxcYGRlZlxcJyIpKSkK KyAgICAgICAgICAgIG5vLWluZGVudCAwKQorCiAgICAgICAgICAgIDs7IGlmIHRoZW4gZWxz ZSBlbHNlaWYgbm90ZXM6CiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIDs7ICAgMS4gVGhl ICJ0aGVuIiBzdGFydHMgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSB0aGF0IGVuZHMK --------------ockAlhwd0h7ADAv5gzocXm7M--