From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#21526: 24.5; prolog-mode: broken indentation for if-then-else construct Date: Wed, 30 Sep 2015 05:23:38 -0400 Message-ID: References: <87y4fo9zt6.fsf@metalevel.at> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1443677562 13077 80.91.229.3 (1 Oct 2015 05:32:42 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 1 Oct 2015 05:32:42 +0000 (UTC) Cc: 21526@debbugs.gnu.org To: Markus Triska Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Oct 01 07:32:29 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 1ZhWTk-0006wp-LU for geb-bug-gnu-emacs@m.gmane.org; Thu, 01 Oct 2015 07:32:28 +0200 Original-Received: from localhost ([::1]:38341 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhWTj-0004IK-RK for geb-bug-gnu-emacs@m.gmane.org; Thu, 01 Oct 2015 01:32:27 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39502) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhDdJ-00058p-DQ for bug-gnu-emacs@gnu.org; Wed, 30 Sep 2015 05:25:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZhDdG-0005io-8i for bug-gnu-emacs@gnu.org; Wed, 30 Sep 2015 05:25:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:59698) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhDdG-0005ia-5v for bug-gnu-emacs@gnu.org; Wed, 30 Sep 2015 05:25:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZhDdF-0003QJ-T8 for bug-gnu-emacs@gnu.org; Wed, 30 Sep 2015 05:25:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 30 Sep 2015 09:25:01 +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.144360504413082 (code B ref 21526); Wed, 30 Sep 2015 09:25:01 +0000 Original-Received: (at 21526) by debbugs.gnu.org; 30 Sep 2015 09:24:04 +0000 Original-Received: from localhost ([127.0.0.1]:48669 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZhDcJ-0003Ov-EV for submit@debbugs.gnu.org; Wed, 30 Sep 2015 05:24:03 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181]:37178) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZhDcH-0003Ob-IF for 21526@debbugs.gnu.org; Wed, 30 Sep 2015 05:24:02 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AsEwA731xV/wihxEVcgxCEAoVVuzcJh0sEAgKBPDkUAQEBAQEBAYEKQQWDXQEBAwEnLyMFCws0EhQYDSSINwjPIwEBAQEGAQEBAR6LOoUFB4QtBZ8XhmmNP4FFI4QUIoJ4AQEB X-IPAS-Result: A0AsEwA731xV/wihxEVcgxCEAoVVuzcJh0sEAgKBPDkUAQEBAQEBAYEKQQWDXQEBAwEnLyMFCws0EhQYDSSINwjPIwEBAQEGAQEBAR6LOoUFB4QtBZ8XhmmNP4FFI4QUIoJ4AQEB X-IronPort-AV: E=Sophos;i="5.13,465,1427774400"; d="scan'208";a="166501187" Original-Received: from 69-196-161-8.dsl.teksavvy.com (HELO ceviche.home) ([69.196.161.8]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 30 Sep 2015 05:23:38 -0400 Original-Received: by ceviche.home (Postfix, from userid 20848) id 2D4856624A; Wed, 30 Sep 2015 05:23:38 -0400 (EDT) In-Reply-To: <87y4fo9zt6.fsf@metalevel.at> (Markus Triska's message of "Wed, 30 Sep 2015 08:38:45 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) 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:107088 Archived-At: > Yes. All issues I reported so far are deviations from Stefan Bruda's > original version. His version also highlights DCG heads with zero > arguments correctly. Hmm... I wonder how we lost this. Has it always highlighted those, or is it something newish (e.g. newer than say Emacs-23.3)? >>> (c) Arguments of directives should be more indented. For example, a >>> directive whose arguments span several lines should look like this: >>> >>> :- multifile >>> pred1, >>> pred2, >>> pred3. >> >> I have no idea what "directives" are nor what the above "multifile" >> means nor what is its syntax. Does Bruda's code handle that? > Yes. All issues I reported so far are deviations from Stefan Bruda's > original version. His version also highlights DCG heads with zero > arguments correctly. > A directive starts with :- or ?- in a source file. > (:-)/1 can be read just like a Prolog rule, only without head. So, after > :-, I expect the same indentation like in a rule. A directive can > include any regular Prolog goal. I don't understand. You say you want :- multifile pred1, pred2, pred3. and you say that it is indented like in a normal rule, but in normal rule, I expect neither foo(X):- multifile pred1, pred2, pred3. nor foo(X) :- multifile pred1, pred2, pred3. AFAIK the problem is not with the ":- without a left-hand side", but with how to parse the multifile pred1, pred2, pred3 Currently it's parsed as: (multifile pred1), pred2, pred3 whereas clearly you'd like multifile (pred1, pred2, pred3) hence my questions: What means "subsequent lines"? Anything until a "."? What about a ";" or a ":-" or a "-->"? IOW what should happen with something like :- multifile pred1; pred2 --> pred3. Furthermore, it seems that this is linked to the (:-)/1 operator, so what should happen if "multifile" appears elsewhere? what other keyword can appear where you have "multifile" and do they all use this same syntax? > Regarding comments, one more thing I noticed is that in a multiline > comment like /* ... */, we actually expect a small indentation like: > as in the default C mode, but currently get: > > /* > Not indented. > */ Indeed, we have some problem here (it seems TAB doesn't even do anything). Patch welcome. Stefan