# HG changeset patch # User Stefan Monnier # Date 1083707980 0 # Node ID f714f103b48aedd5afafbfa062f8dd3de1c67756 # Parent 936d4c6b2deffe2754019236c961515231146a7c (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. diff -r 936d4c6b2def -r f714f103b48a lisp/ChangeLog --- 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 + + * 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 * ses.el (ses-set-parameter): Fix typo. diff -r 936d4c6b2def -r f714f103b48a lisp/progmodes/sql.el --- 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 ;; Maintainer: Michael Mauger -;; 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 ;; nino ;; Berend de Boer -;; Michael Mauger ;; Adam Jenkins +;; Michael Mauger -- improved product support +;; Drew Adams -- Emacs 20 support +;; Harald Maier -- sql-send-string +;; Stefan Monnier -- 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) "]"))))