From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Markus Triska Newsgroups: gmane.emacs.bugs Subject: bug#21526: 24.5; prolog-mode: broken indentation for if-then-else construct Date: Tue, 06 Oct 2015 01:49:54 +0200 Message-ID: <87a8rw27vh.fsf@metalevel.at> References: <8737xwbeo0.fsf@metalevel.at> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1444089021 15045 80.91.229.3 (5 Oct 2015 23:50:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 5 Oct 2015 23:50:21 +0000 (UTC) Cc: 21526@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Oct 06 01:50:13 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZjFWG-0005nu-76 for geb-bug-gnu-emacs@m.gmane.org; Tue, 06 Oct 2015 01:50:12 +0200 Original-Received: from localhost ([::1]:48221 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZjFWF-0002r7-IA for geb-bug-gnu-emacs@m.gmane.org; Mon, 05 Oct 2015 19:50:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48373) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZjFWC-0002pd-5V for bug-gnu-emacs@gnu.org; Mon, 05 Oct 2015 19:50:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZjFW8-0005ws-Ts for bug-gnu-emacs@gnu.org; Mon, 05 Oct 2015 19:50:08 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:38429) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZjFW8-0005wI-RW for bug-gnu-emacs@gnu.org; Mon, 05 Oct 2015 19:50:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZjFW8-0006OO-21 for bug-gnu-emacs@gnu.org; Mon, 05 Oct 2015 19:50:04 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Markus Triska Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 05 Oct 2015 23:50:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21526 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 21526-submit@debbugs.gnu.org id=B21526.144408899924557 (code B ref 21526); Mon, 05 Oct 2015 23:50:03 +0000 Original-Received: (at 21526) by debbugs.gnu.org; 5 Oct 2015 23:49:59 +0000 Original-Received: from localhost ([127.0.0.1]:55633 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZjFW2-0006O0-EM for submit@debbugs.gnu.org; Mon, 05 Oct 2015 19:49:58 -0400 Original-Received: from static.59.150.47.78.clients.your-server.de ([78.47.150.59]:56006 helo=metalevel.at) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZjFVz-0006Nr-S9 for 21526@debbugs.gnu.org; Mon, 05 Oct 2015 19:49:57 -0400 Original-Received: by metalevel.at (Postfix, from userid 1000) id AF84BEC103; Tue, 6 Oct 2015 01:49:54 +0200 (CEST) In-Reply-To: (Stefan Monnier's message of "Wed, 30 Sep 2015 04:55:47 -0400") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 208.118.235.43 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.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:107340 Archived-At: Stefan Monnier writes: > It does, if you do the C-M-f from just before the dot. > The fact that you have to "jump over the dot" is the crucial hint you > (the user) give to Emacs that you want to jump over "the whole LHS/RHS > of that dot" rather than over a deeper part of the AST. Please consider the following additional test case for navigating Prolog code with C-M-f and C-M-b, which now unexpectedly move too far. The snippet I am using to demonstrate the regression is: test :- ( a, b ; ( c, d ; e, f ), g, h ). I begin with point at HERE: test :- ( a, bHERE ; ( c, d ; e, f ), g, h ). >From that position, I press C-M-f, and get: test :- ( a, b ; ( c, d ; e, f ), g, hHERE ). This, in my view, already skips too far ahead, over too many other constructs. (For comparison, with Stefan Bruda's mode, C-M-f in the same situation moves point to the comma before the goal "g/0"). The most unusual aspect though is, in my view, that not only does it take a disproportionate amount of the inverse command (C-M-b) to get approximately back to the original position, but it is in fact not possible to get satisfactorily close to it (say, within an offset of 1) with C-M-b alone. This is what happens on repeated C-M-b: test :- ( a, b ; ( c, d ; e, f ), g, HEREh ). followed by: test :- ( a, b ; ( c, d ; e, f ), HEREg, h ). followed by: test :- ( a, b ; HERE( c, d ; e, f ), g, h ). followed by: test :- ( HEREa, b ; ( c, d ; e, f ), g, h ). I tried navigating several such code snippets with Stefan Bruda's mode, starting from various positions. In all cases, the important invariant seems to be preserved that, give or take an offset of at most 1, we can invert a C-M-f with a subsequent C-M-b in most if not all situations that are of great practical importance when moving through Prolog code. All the best, Markus