]> git.eshelyaron.com Git - emacs.git/commitdiff
(prolog-mode-syntax-table): Add flags to ?/ and ?* entries
authorThien-Thi Nguyen <ttn@gnuvola.org>
Sat, 1 Jun 2002 00:55:41 +0000 (00:55 +0000)
committerThien-Thi Nguyen <ttn@gnuvola.org>
Sat, 1 Jun 2002 00:55:41 +0000 (00:55 +0000)
to support /* */ style comments.
(prolog-font-lock-keywords): New var.
(prolog-mode): Enable font-locking; set `font-lock-defaults'.

lisp/ChangeLog
lisp/progmodes/prolog.el

index 5eedf9c6e120d33e7b025aefa2dd4f8b71330096..104999227032302d08cb1cdae9502dd45747c12e 100644 (file)
@@ -1,3 +1,10 @@
+2002-06-01  Thien-Thi Nguyen  <ttn@gnu.org>
+
+       * progmodes/prolog.el (prolog-mode-syntax-table): Add flags to
+       ?/ and ?* entries to support /* */ style comments.
+       (prolog-font-lock-keywords): New var.
+       (prolog-mode): Enable font-locking; set `font-lock-defaults'.
+
 2002-06-01  Kim F. Storm  <storm@cua.dk>
 
        * simple.el (choose-completion-string-functions): New special hook.
@@ -33,7 +40,7 @@
 
        * menu-bar.el (menu-bar-showhide-fringe-menu): Use defvar.
 
-       * subr.el (open-network-stream, open-network-stream-nowait) 
+       * subr.el (open-network-stream, open-network-stream-nowait)
        (open-network-stream-server, process-kill-without-query):
        Moved from simple.el.
 
 
 2002-05-25  Miles Bader  <miles@gnu.org>
 
-       * menu-bar.el (menu-bar-showhide-fringe-menu-customize-left) 
-       (menu-bar-showhide-fringe-menu-customize-right) 
+       * menu-bar.el (menu-bar-showhide-fringe-menu-customize-left)
+       (menu-bar-showhide-fringe-menu-customize-right)
        (menu-bar-showhide-fringe-menu-customize-disable):
        Use proper calling convention for `customize-set-value'.
        Require `fringe' before setting variable.
        prefix from scroll commands.  Ignore end-of-buffer errors from
        other windows.
        (scroll-all-check-to-scroll): Remove `fkey-' prefix from scroll
-       commands. 
+       commands.
        (scroll-all-beginning-of-buffer-all, scroll-all-end-of-buffer-all):
        New functions.
 
index 593d3a8de31c23f8e85190c9d84d81bf65334ec1..6cb571b73e95d2db6ffe428654401d9f60caf90a 100644 (file)
@@ -26,7 +26,7 @@
 
 ;; This package provides a major mode for editing Prolog.  It knows
 ;; about Prolog syntax and comments, and can send regions to an inferior
-;; Prolog interpreter process.
+;; Prolog interpreter process.  Font locking is tuned towards GNU Prolog.
 
 ;;; Code:
 
@@ -38,7 +38,7 @@
   "Major mode for editing and running Prolog under Emacs"
   :group 'languages)
 
-  
+
 (defcustom prolog-program-name "prolog"
   "*Program name for invoking an inferior Prolog with `run-prolog'."
   :type 'string
@@ -65,13 +65,23 @@ nil means send actual operating system end of file."
   :type 'integer
   :group 'prolog)
 
+(defvar prolog-font-lock-keywords
+  '(("\\(#[<=]=>\\|:-\\)\\|\\(#=\\)\\|\\(#[#<>\\/][=\\/]*\\|!\\)"
+     0 font-lock-keyword-face)
+    ("\\<\\(is\\|write\\|nl\\|read_\\sw+\\)\\>"
+     1 font-lock-keyword-face)
+    ("^\\(\\sw+\\)\\s-*\\((\\(.+\\))\\)*"
+     (1 font-lock-function-name-face)
+     (3 font-lock-variable-name-face)))
+  "Font-lock keywords for Prolog mode.")
+
 (if prolog-mode-syntax-table
     ()
   (let ((table (make-syntax-table)))
     (modify-syntax-entry ?_ "w" table)
     (modify-syntax-entry ?\\ "\\" table)
-    (modify-syntax-entry ?/ "." table)
-    (modify-syntax-entry ?* "." table)
+    (modify-syntax-entry ?/ ". 14" table)
+    (modify-syntax-entry ?* ". 23" table)
     (modify-syntax-entry ?+ "." table)
     (modify-syntax-entry ?- "." table)
     (modify-syntax-entry ?= "." table)
@@ -129,6 +139,10 @@ if that value is non-nil."
   (setq major-mode 'prolog-mode)
   (setq mode-name "Prolog")
   (prolog-mode-variables)
+  ;; font lock
+  (setq font-lock-defaults '(prolog-font-lock-keywords
+                             nil nil nil
+                             beginning-of-line))
   (run-hooks 'prolog-mode-hook))
 
 (defun prolog-indent-line (&optional whole-exp)