Subject: bug#21526: 24.5; prolog-mode: broken indentation for if-then-else construct

From: Markus Triska <[email-masked]>
Date: Tue, 22 Sep 2015 23:04:14 +0200

Here are further test cases I found when trying this patch:

(1) After evaluating (show-paren-mode 1) and using the Prolog content:

   t1 :- a.
   t2 :- b.HERE

The dot in the immediately preceding line is highlighted as the
(mistakenly classified as such) "matching" element.

(2) Please enable syntax highlighting for DCGs with zero arguments.

For example, the following is colored as expected:

   test(X, Y) -->
           a,
           b.

In contrast, in the following DCG, "test" is unexpectedly not colored:

   test -->
           a,
           b.

(3) Please extend the patch to cover multiple conditions.

For example, when I press RET in the following partial construct:

   test :-
           (   a ->
               b
           ;   c ->HERE

I unexpectedly get:

   test :-
           (   a ->
               b
           ;   c ->
                       HERE

Whereas the expected result is:

   test :-
           (   a ->
               b
           ;   c ->
               HERE

Thank you and all the best,
Markus