From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Yuan Fu Newsgroups: gmane.emacs.bugs Subject: bug#67417: 29.1.50; c-ts-mode syntax issues with no brackets Date: Mon, 27 Nov 2023 22:55:31 -0800 Message-ID: <720463fd-c6d8-4c31-8240-7017984084a4@gmail.com> References: <83h6lbfwcu.fsf@gnu.org> <2ba91823-bf3c-4d5d-e556-1622135ab2fd@gutov.dev> <8f8aa9c5-95cb-44e5-b41e-4cf58f024624@gmail.com> <33b587b2-1ea1-f756-704f-e75a3193c147@gutov.dev> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3548"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 67417@debbugs.gnu.org To: Dmitry Gutov , Eli Zaretskii , Arteen Abrishami Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Nov 28 07:56:11 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 1r7s0w-0000nT-LE for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 28 Nov 2023 07:56:10 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r7s0j-0002sH-Nx; Tue, 28 Nov 2023 01:55:58 -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 1r7s0h-0002rp-Sy for bug-gnu-emacs@gnu.org; Tue, 28 Nov 2023 01:55:56 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r7s0h-0001BP-Bh for bug-gnu-emacs@gnu.org; Tue, 28 Nov 2023 01:55:55 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1r7s0n-0004Gp-OJ for bug-gnu-emacs@gnu.org; Tue, 28 Nov 2023 01:56:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Yuan Fu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 28 Nov 2023 06:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67417 X-GNU-PR-Package: emacs Original-Received: via spool by 67417-submit@debbugs.gnu.org id=B67417.170115454916395 (code B ref 67417); Tue, 28 Nov 2023 06:56:01 +0000 Original-Received: (at 67417) by debbugs.gnu.org; 28 Nov 2023 06:55:49 +0000 Original-Received: from localhost ([127.0.0.1]:45365 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7s0a-0004GN-LZ for submit@debbugs.gnu.org; Tue, 28 Nov 2023 01:55:48 -0500 Original-Received: from mail-pf1-x434.google.com ([2607:f8b0:4864:20::434]:44474) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7s0Y-0004G9-BK for 67417@debbugs.gnu.org; Tue, 28 Nov 2023 01:55:46 -0500 Original-Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-6cbe5b6ec62so4066257b3a.1 for <67417@debbugs.gnu.org>; Mon, 27 Nov 2023 22:55:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701154533; x=1701759333; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=28UsWwDVyphrWnAaMwvmr4cfVXmfYLiWEK16E0zUKgE=; b=CgjixL9NOlB6PPO3uaNj5oiPc/cSsqLkn1XXKMhIO6ZSemC8pBp/JM1FlflBj8e81h nU+nnlCXdLSOWy/92GiOWJdjnDpnEkezTd78iodtLGXEsE2RxGWQ5Vh2A/DJALmTzpmx X4HD1Mj6KNAsi/yXC3sBxO49XKvp7YtpnI3GguLolb/QqBAgt/CTiQioC58kzNZUY3Vp ORDvdm0ywPQakfNvL4uJ4eTGNz6sC7CMTxkmIT1SoHdRNZfWZqnuQeUaixEVS6f7j57k VFrs/DlbRqOvDm56U9GonhmCxKg2CWY1drAqkh1/i848dwr58xRIqLay2EUojwZ8j9Uu CH4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701154533; x=1701759333; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=28UsWwDVyphrWnAaMwvmr4cfVXmfYLiWEK16E0zUKgE=; b=jVRI2YTo6JEKg9OdlpGMHRzJMShO78doK76ZxkzAXmQSSVDBG7YPJOA05TTSSeGvJS l5M1O4vajkTH81hkZ6c8jrbQdZ+pFxQcsGrjwDqHpphoTCYpDfxwnw/kTBH17ql76pgH 6Ea58VBestKmSJdyfSe9E+Gcpq9jTL+uuHOEtb+mjUwnMIGzj5PbLJczd6Qu0CGu8IHl q7R137G4s+nnGZGK4m0SMmhXCXA/yEirXthgFwnHAApmlUU/Mz/fB7wsfrZVlVjKCd0L +c4PaJdR19IKpyLPIUuK9wosjSlfsLBMl/fsuwCJsY5OdWpSydn4zdx86vOr570NvR0m kSMg== X-Gm-Message-State: AOJu0YznIks81e0mjiyzLHscBMu+iwnwcsLqtq7WAEgeEE808ibos1BU WwfVZh59e067bpBf76yHtXE= X-Google-Smtp-Source: AGHT+IGkZ1tyUTMvv2vRJl45fgbxg21tJ6yJiDD7M5wqek34VgQhTcq8wUe4Ye6bJVbCEYJ4kyZIoQ== X-Received: by 2002:a05:6a20:8f19:b0:188:39e:9054 with SMTP id b25-20020a056a208f1900b00188039e9054mr17094651pzk.6.1701154533227; Mon, 27 Nov 2023 22:55:33 -0800 (PST) Original-Received: from [192.168.1.7] (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id rs11-20020a17090b2b8b00b002802d9d4e96sm8811538pjb.54.2023.11.27.22.55.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 27 Nov 2023 22:55:32 -0800 (PST) Content-Language: en-US In-Reply-To: <33b587b2-1ea1-f756-704f-e75a3193c147@gutov.dev> 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:275158 Archived-At: On 11/26/23 6:22 PM, Dmitry Gutov wrote: > On 27/11/2023 03:47, Yuan Fu wrote: >> I pushed two commits which should fix the indentation for "break" >> after "else", and indentation for empty lines after if/else/for/while >> in general. The fix for the general case doesn't use the parse tree, >> since the parse tree is often incomplete when you type if (...) and >> hit return. Instead it uses a plain regexp match to see if the >> previous line starts with if/else/for/while. This seems like a >> reasonable heuristic to use before user types more things, at which >> point more accurate indentation rules would be used, since the parse >> tree should be more complete then. > > Sorry, two counter-examples right away: > > Type 'elsewhere();' and RET -> the next line is indented 1 level > extra, at least until you type some more and then have the line > reindented either with pressing TAB or adding semicolon. > > Type 'for (;;) {}' and RET -> same. > > The first case is easy to guard against (just check that the next char > is either space of opening paren), but the second one less so. OTOH, > the second case is likely to have a parse tree without errors, so if > we also check for that... the heuristic might work. Well, darn it. And you're right, the second case is a bit hard to check... Well I guess for the moment we can remove this heuristic. (I tried a bit, and checking for no errors is not so easy.) Yuan