aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes
diff options
context:
space:
mode:
authorThien-Thi Nguyen <[email protected]>2002-06-01 00:55:41 +0000
committerThien-Thi Nguyen <[email protected]>2002-06-01 00:55:41 +0000
commitf614a1aec27881c29816e0dead5ce52649bfa970 (patch)
treed00c3d914a747498e29b86ef687e5f0890058f51 /lisp/progmodes
parentba36181bdff1ce1bbf3029024a9a6c795c51e40b (diff)
(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'.
Diffstat (limited to 'lisp/progmodes')
-rw-r--r--lisp/progmodes/prolog.el22
1 files changed, 18 insertions, 4 deletions
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index 593d3a8de3..6cb571b73e 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -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)