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

From: Markus Triska <[email-masked]>
Date: Fri, 02 Oct 2015 18:23:25 +0200

> Other than that, looks good, please install.

I cannot push to the Emacs repository, but an updated and extended patch
follows. Importantly, this makes the mode also support *-> (soft cut).

All the best,
Markus

2015-10-02  Markus Triska  <[email-masked]>

	* prolog.el: Update and extend operator table.
	(prolog-smie-grammar): Add multifile, public etc.

diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index ff2769e..81aeb8d 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -877,12 +877,21 @@ prolog-smie-grammar
   ;; manual uses precedence levels in the opposite sense (higher
   ;; numbers bind less tightly) than SMIE, so we use negative numbers.
   '(("." -10000 -10000)
+    ("?-" nil -1200)
     (":-" -1200 -1200)
     ("-->" -1200 -1200)
+    ("discontiguous" nil -1150)
+    ("dynamic" nil -1150)
+    ("meta_predicate" nil -1150)
+    ("module_transparent" nil -1150)
+    ("multifile" nil -1150)
+    ("public" nil -1150)
+    ("|" -1105 -1105)
     (";" -1100 -1100)
+    ("*->" -1050 -1050)
     ("->" -1050 -1050)
     ("," -1000 -1000)
-    ("\\+" -900 -900)
+    ("\\+" nil -900)
     ("=" -700 -700)
     ("\\=" -700 -700)
     ("=.." -700 -700)