changeset 55370:f714f103b48a

(sql-xemacs-p, sql-emacs19-p, sql-emacs20-p): Remove. (sql-mode-syntax-table): Use shared GNU EMacs/XEmacs syntax. (sql-builtin-face, sql-doc-face): Remove. (sql-mode-ansi-font-lock-keywords) (sql-mode-oracle-font-lock-keywords) (sql-mode-postgres-font-lock-keywords) (sql-mode-linter-font-lock-keywords) (sql-mode-ms-font-lock-keywords) (sql-mode-mysql-font-lock-keywords): Use standard fonts. (sql-product-font-lock): Fix font-lock reset when font rules change. (sql-highlight-product): Remove incorrect font-lock reset logic.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 04 May 2004 21:59:40 +0000
parents 936d4c6b2def
children a96e9558b1ea
files lisp/ChangeLog lisp/progmodes/sql.el
diffstat 2 files changed, 55 insertions(+), 56 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue May 04 21:24:09 2004 +0000
+++ b/lisp/ChangeLog	Tue May 04 21:59:40 2004 +0000
@@ -1,3 +1,18 @@
+2004-05-03  Michael Mauger  <mmaug@yahoo.com>
+
+	* emacs/lisp/progmodes/sql.el (sql-xemacs-p, sql-emacs19-p)
+	(sql-emacs20-p): Remove.
+	(sql-mode-syntax-table): Use shared GNU EMacs/XEmacs syntax.
+	(sql-builtin-face, sql-doc-face): Remove.
+	(sql-mode-ansi-font-lock-keywords)
+	(sql-mode-oracle-font-lock-keywords)
+	(sql-mode-postgres-font-lock-keywords)
+	(sql-mode-linter-font-lock-keywords)
+	(sql-mode-ms-font-lock-keywords)
+	(sql-mode-mysql-font-lock-keywords): Use standard fonts.
+	(sql-product-font-lock): Fix font-lock reset when font rules change.
+	(sql-highlight-product): Remove incorrect font-lock reset logic.
+
 2004-05-04  Jonathan Yavner  <jyavner@member.fsf.org>
 
 	* ses.el (ses-set-parameter): Fix typo.
--- a/lisp/progmodes/sql.el	Tue May 04 21:24:09 2004 +0000
+++ b/lisp/progmodes/sql.el	Tue May 04 21:59:40 2004 +0000
@@ -4,7 +4,7 @@
 
 ;; Author: Alex Schroeder <alex@gnu.org>
 ;; Maintainer: Michael Mauger <mmaug@yahoo.com>
-;; Version: 2.0.0
+;; Version: 2.0.1
 ;; Keywords: comm languages processes
 ;; URL: http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/progmodes/sql.el
 ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?SqlMode
@@ -200,8 +200,11 @@
 ;; Gregor Zych <zych@pool.informatik.rwth-aachen.de>
 ;; nino <nino@inform.dk>
 ;; Berend de Boer <berend@pobox.com>
-;; Michael Mauger <mmaug@yahoo.com>
 ;; Adam Jenkins <adam@thejenkins.org>
+;; Michael Mauger <mmaug@yahoo.com> -- improved product support
+;; Drew Adams <drew.adams@oracle.com> -- Emacs 20 support
+;; Harald Maier <maierh@myself.com> -- sql-send-string
+;; Stefan Monnier <monnier@iro.umontreal.ca> -- font-lock corrections
 
 
 
@@ -693,18 +696,6 @@
 
 ;;; Variables which do not need customization
 
-(defvar sql-xemacs-p
-  (string-match "XEmacs\\|Lucid" emacs-version)
-  "Is this a non-GNU Emacs?")
-
-(defvar sql-emacs19-p
-  (string-match "GNU Emacs 19" emacs-version)
-  "Is this a GNU Emacs 19?")
-
-(defvar sql-emacs20-p
-  (string-match "20" emacs-version)
-  "Is this a GNU Emacs 20?")
-
 (defvar sql-user-history nil
   "History of usernames used.")
 
@@ -876,9 +867,7 @@
     (modify-syntax-entry ?/ ". 14" table)
     (modify-syntax-entry ?* ". 23" table)
     ;; double-dash starts comment
-    (if sql-xemacs-p
-	(modify-syntax-entry ?- ". 56" table)
-      (modify-syntax-entry ?- ". 12b" table))
+    (modify-syntax-entry ?- ". 12b" table)
     ;; newline and formfeed end coments
     (modify-syntax-entry ?\n "> b" table)
     (modify-syntax-entry ?\f "> b" table)
@@ -905,25 +894,6 @@
 statement.  The format of variable should be a valid
 `font-lock-keywords' entry.")
 
-(defvar sql-builtin-face
-  (if sql-xemacs-p
-      ;; XEmacs doesn't have the builtin face
-      'font-lock-preprocessor-face
-    ;; GNU Emacs 19 doesn't either
-    (if sql-emacs19-p
-	'font-lock-keyword-face
-      ;; Emacs 2x
-      'font-lock-builtin-face))
-  "Builtin face for font-lock in SQL mode.")
-
-(defvar sql-doc-face
-  (if (or sql-xemacs-p
-	  sql-emacs19-p
-	  sql-emacs20-p)
-      'font-lock-string-face
-    'font-lock-doc-face)
-  "Documentation face for font-lock in SQL mode.")
-
 (defmacro sql-keywords-re (&rest keywords)
   "Compile-time generation of regexp matching any one of KEYWORDS."
   `(eval-when-compile
@@ -1020,7 +990,7 @@
 
     `((,ansi-non-reserved . font-lock-keyword-face)
       (,ansi-reserved     . font-lock-keyword-face)
-      (,ansi-funcs        . ,sql-builtin-face)
+      (,ansi-funcs        . font-lock-builtin-face)
       (,ansi-types        . font-lock-type-face)))
 
   "ANSI SQL keywords used by font-lock.
@@ -1230,11 +1200,11 @@
    "\\b.*$"
    ))))
 
-    `((,sqlplus-commands . ,sql-doc-face)
-      (,oracle-functions . ,sql-builtin-face)
+    `((,sqlplus-commands . font-lock-doc-face)
+      (,oracle-functions . font-lock-builtin-face)
       (,oracle-keywords  . font-lock-keyword-face)
       (,oracle-types     . font-lock-type-face)
-      (,plsql-functions  . ,sql-builtin-face)
+      (,plsql-functions  . font-lock-builtin-face)
       (,plsql-keywords   . font-lock-keyword-face)
       (,plsql-type       . font-lock-type-face)
       (,plsql-warning    . font-lock-warning-face)))
@@ -1323,7 +1293,7 @@
 "timestamp" "varchar" "varying" "void" "zone"
 )))
 
-  `((,pg-funcs    . ,sql-builtin-face)
+  `((,pg-funcs    . font-lock-builtin-face)
     (,pg-reserved . font-lock-keyword-face)
     (,pg-types    . font-lock-type-face)))
 
@@ -1404,7 +1374,7 @@
 
     `((,linter-keywords  . font-lock-keyword-face)
       (,linter-reserved  . font-lock-keyword-face)
-      (,linter-functions . ,sql-builtin-face)
+      (,linter-functions . font-lock-builtin-face)
       (,linter-types     . font-lock-type-face)))
 
   "Linter SQL keywords used by font-lock.
@@ -1507,9 +1477,9 @@
 ) t)
 		   "\\)\\)\\|go\\s-*\\|use\\s-+\\|setuser\\s-+\\|dbcc\\s-+\\).*$"))))
 
-    `((,ms-commands  . ,sql-doc-face)
+    `((,ms-commands  . font-lock-doc-face)
       (,ms-reserved  . font-lock-keyword-face)
-      (,ms-functions . ,sql-builtin-face)
+      (,ms-functions . font-lock-builtin-face)
       (,ms-vars      . font-lock-variable-name-face)
       (,ms-types     . font-lock-type-face)))
 
@@ -1626,7 +1596,7 @@
 "zerofill"
 )))
 
-    `((,mysql-funcs    . ,sql-builtin-face)
+    `((,mysql-funcs    . font-lock-builtin-face)
       (,mysql-keywords . font-lock-keyword-face)
       (,mysql-types    . font-lock-type-face)))
 
@@ -1687,17 +1657,36 @@
     ;; Get the product-specific keywords.
     (setq sql-mode-font-lock-keywords
 	  (append
-	   (eval (sql-product-feature :font-lock))
+	   (unless (eq sql-product 'ansi)
+	     (eval (sql-product-feature :font-lock)))
+	   ;; Always highlight ANSI keywords
 	   (eval (sql-product-feature :font-lock 'ansi))
+	   ;; Fontify object names in CREATE, DROP and ALTER DDL
+	   ;; statements
 	   (list sql-mode-font-lock-object-name)))
 
-    ;; Setup font-lock.  (What is the minimum we should have to do
-    ;; here?)
-    (setq font-lock-set-defaults nil
-	  font-lock-keywords sql-mode-font-lock-keywords
-	  font-lock-defaults (list 'sql-mode-font-lock-keywords
+    ;; Setup font-lock.  Force re-parsing of `font-lock-defaults'.
+    (set (make-local-variable 'font-lock-set-defaults) nil)
+    (setq font-lock-defaults (list 'sql-mode-font-lock-keywords
 				   keywords-only t syntax-alist))
 
+    ;; Force font lock to reinitialize if it is already on
+    ;; Otherwise, we can wait until it can be started.
+    (when (and (fboundp 'font-lock-mode)
+	       font-lock-mode)
+      (font-lock-mode-internal nil)
+      (font-lock-mode-internal t))
+
+    (add-hook 'font-lock-mode-hook
+	      (lambda ()
+		;; Provide defaults for new font-lock faces.
+		(defvar font-lock-builtin-face
+		  (if (boundp 'font-lock-preprocessor-face)
+		      font-lock-preprocessor-face
+		    font-lock-keyword-face))
+		(defvar font-lock-doc-face font-lock-string-face))
+	      nil t)
+
     ;; Setup imenu; it needs the same syntax-alist.
     (when imenu
 	(setq imenu-syntax-alist syntax-alist))))
@@ -1744,11 +1733,6 @@
     ;; Setup font-lock
     (sql-product-font-lock nil t)
 
-    ;; Force fontification, if its enabled.
-    (if (and (boundp 'font-lock-mode)
-	     font-lock-mode)
-	(font-lock-fontify-buffer))
-
     ;; Set the mode name to include the product.
     (setq mode-name (concat "SQL[" (prin1-to-string sql-product) "]"))))