aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes/sql.el
diff options
context:
space:
mode:
authorStefan Monnier2010-12-10 15:00:25 -0500
committerStefan Monnier2010-12-10 15:00:25 -0500
commit175069efeb080517afefdd44a06f7a779ea8c25c (patch)
tree830e1af997994dd8d9b3fb3d6000810d138f9a9d /lisp/progmodes/sql.el
parentfe646d2c4e800f7174915b26b9fdb6252bbd0453 (diff)
downloademacs-175069efeb080517afefdd44a06f7a779ea8c25c.tar.gz
emacs-175069efeb080517afefdd44a06f7a779ea8c25c.zip
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes. * lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init) (vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable -> make-local-hook. * lisp/progmodes/sh-script.el (sh-require-final-newline): Remove. (sh-set-shell): Don't set require-final-newline since it's already done by prog-mode. * lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column since we never set it. * lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation): Use read-string and standard prompt. * lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration. * lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl. (meta-common-mode-syntax-table): Rename from meta-mode-syntax-table. (meta-common-mode-map): Rename from meta-mode-map. Remove C-m binding, which is a user preference, not mode specific. (meta-common-mode): New major mode; replace meta-common-initialization. * lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing around with font-lock. * lisp/progmodes/etags.el (select-tags-table-mode): Derive from special-mode. * lisp/progmodes/octave-mod.el (octave-mode): * lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode) (gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode) (gdb-frames-mode, gdb-locals-mode, gdb-registers-mode): Let define-derived-mode do its job. * lisp/progmodes/cpp.el (cpp-edit-mode-map): Move initialization into declaration. (cpp-edit-mode): Use define-derived-mode. (cpp-edit-load): Use derived-mode-p. * lisp/progmodes/mixal-mode.el (mixal-mode): * lisp/progmodes/f90.el (f90-mode): * lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting require-final-newline since prog-mode does it already. * lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string. * lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup. * lisp/progmodes/antlr-mode.el: Require cc-mode upfront. (antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in the declaration. (antlr-directory-dependencies, antlr-show-makefile-rules): Use derived-mode-p. (antlr-language-option): Don't assume point-min==1. (antlr-mode): Use define-derived-mode. * lisp/progmodes/ada-mode.el: Use derived-mode-p. (ada-mode): Use define-derived-mode. Use hack-local-variables-hook. * lisp/progmodes/vhdl-mode.el (vhdl-mode): * lisp/progmodes/verilog-mode.el (verilog-mode): * lisp/progmodes/vera-mode.el (vera-mode): * lisp/progmodes/sql.el (sql-mode): * lisp/progmodes/scheme.el (scheme-mode): * lisp/progmodes/perl-mode.el (perl-mode): * lisp/progmodes/octave-inf.el (inferior-octave-mode): * lisp/progmodes/autoconf.el (autoconf-mode): * lisp/progmodes/m4-mode.el (m4-mode): * lisp/progmodes/inf-lisp.el (inferior-lisp-mode): * lisp/progmodes/idlwave.el (idlwave-mode): * lisp/progmodes/icon.el (icon-mode): * lisp/progmodes/idlw-help.el (idlwave-help-mode): * lisp/progmodes/dcl-mode.el (dcl-mode): * lisp/progmodes/idlw-shell.el (idlwave-shell-mode): * lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode) (ebrowse-member-mode, ebrowse-electric-position-mode): Use define-derived-mode. * lisp/progmodes/xscheme.el (xscheme-start) (local-set-scheme-interaction-buffer, scheme-interaction-mode): * lisp/progmodes/which-func.el (which-function): * lisp/progmodes/vhdl-mode.el (vhdl-set-style): * lisp/progmodes/verilog-mode.el (verilog-set-compile-command) (verilog-modify-compile-command, verilog-error-regexp-add-xemacs) (verilog-set-define, verilog-auto-reeval-locals): * lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode): * lisp/progmodes/simula.el (simula-mode): * lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode): * lisp/progmodes/python.el (python-check, python-mode): * lisp/progmodes/prolog.el (prolog-mode-variables): * lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions): * lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame): * lisp/progmodes/delphi.el (delphi-mode): * lisp/progmodes/cc-styles.el (c-setup-paragraph-variables): * lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init) (c-font-lock-init): Move make-local-variable to their setq. * lisp/progmodes/xscheme.el (exit-scheme-interaction-mode) (xscheme-enter-interaction-mode, xscheme-enter-debugger-mode) (xscheme-debugger-mode-p, xscheme-send-string-1): * lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word) (tcl-load-file, tcl-restart-with-file): * lisp/progmodes/ps-mode.el (ps-run-running): * lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint): * lisp/progmodes/js.el (js--get-all-known-symbols): * lisp/progmodes/inf-lisp.el (inferior-lisp-proc): * lisp/progmodes/idlwave.el (idlwave-beginning-of-statement) (idlwave-template, idlwave-update-buffer-routine-info) (idlwave-update-current-buffer-info) (idlwave-get-routine-info-from-buffers, idlwave-choose) (idlwave-scan-class-info, idlwave-fix-keywords) (idlwave-list-buffer-load-path-shadows): * lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add) (idlwave-toolbar-remove): * lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action) (idlwave-shell-file-name, idlwave-shell-electric-debug-all-off) (idlwave-shell-menu-def): * lisp/progmodes/idlw-complete-structtag.el (idlwave-prepare-structure-tag-completion): * lisp/progmodes/gud.el (gud-set-buffer): * lisp/progmodes/f90.el (f90-backslash-not-special): * lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
Diffstat (limited to 'lisp/progmodes/sql.el')
-rw-r--r--lisp/progmodes/sql.el64
1 files changed, 25 insertions, 39 deletions
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index acb34eacc2b..053816d0287 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -2303,20 +2303,21 @@ also be configured."
2303 '((?_ . "w") (?. . "w"))))) 2303 '((?_ . "w") (?. . "w")))))
2304 2304
2305 ;; Get the product-specific keywords. 2305 ;; Get the product-specific keywords.
2306 (setq sql-mode-font-lock-keywords 2306 (set (make-local-variable 'sql-mode-font-lock-keywords)
2307 (append 2307 (append
2308 (unless (eq sql-product 'ansi) 2308 (unless (eq sql-product 'ansi)
2309 (sql-get-product-feature sql-product :font-lock)) 2309 (sql-get-product-feature sql-product :font-lock))
2310 ;; Always highlight ANSI keywords 2310 ;; Always highlight ANSI keywords
2311 (sql-get-product-feature 'ansi :font-lock) 2311 (sql-get-product-feature 'ansi :font-lock)
2312 ;; Fontify object names in CREATE, DROP and ALTER DDL 2312 ;; Fontify object names in CREATE, DROP and ALTER DDL
2313 ;; statements 2313 ;; statements
2314 (list sql-mode-font-lock-object-name))) 2314 (list sql-mode-font-lock-object-name)))
2315 2315
2316 ;; Setup font-lock. Force re-parsing of `font-lock-defaults'. 2316 ;; Setup font-lock. Force re-parsing of `font-lock-defaults'.
2317 (kill-local-variable 'font-lock-set-defaults) 2317 (kill-local-variable 'font-lock-set-defaults)
2318 (setq font-lock-defaults (list 'sql-mode-font-lock-keywords 2318 (set (make-local-variable 'font-lock-defaults)
2319 keywords-only t syntax-alist)) 2319 (list 'sql-mode-font-lock-keywords
2320 keywords-only t syntax-alist))
2320 2321
2321 ;; Force font lock to reinitialize if it is already on 2322 ;; Force font lock to reinitialize if it is already on
2322 ;; Otherwise, we can wait until it can be started. 2323 ;; Otherwise, we can wait until it can be started.
@@ -3232,7 +3233,7 @@ buffer is popped into a view window. "
3232;;; SQL mode -- uses SQL interactive mode 3233;;; SQL mode -- uses SQL interactive mode
3233 3234
3234;;;###autoload 3235;;;###autoload
3235(defun sql-mode () 3236(define-derived-mode sql-mode prog-mode "SQL"
3236 "Major mode to edit SQL. 3237 "Major mode to edit SQL.
3237 3238
3238You can send SQL statements to the SQLi buffer using 3239You can send SQL statements to the SQLi buffer using
@@ -3259,18 +3260,11 @@ you must tell Emacs. Here's how to do that in your `~/.emacs' file:
3259\(add-hook 'sql-mode-hook 3260\(add-hook 'sql-mode-hook
3260 (lambda () 3261 (lambda ()
3261 (modify-syntax-entry ?\\\\ \".\" sql-mode-syntax-table)))" 3262 (modify-syntax-entry ?\\\\ \".\" sql-mode-syntax-table)))"
3262 (interactive) 3263 :abbrev-table sql-mode-abbrev-table
3263 (kill-all-local-variables)
3264 (setq major-mode 'sql-mode)
3265 (setq mode-name "SQL")
3266 (use-local-map sql-mode-map)
3267 (if sql-mode-menu 3264 (if sql-mode-menu
3268 (easy-menu-add sql-mode-menu)); XEmacs 3265 (easy-menu-add sql-mode-menu)); XEmacs
3269 (set-syntax-table sql-mode-syntax-table) 3266
3270 (make-local-variable 'font-lock-defaults) 3267 (set (make-local-variable 'comment-start) "--")
3271 (make-local-variable 'sql-mode-font-lock-keywords)
3272 (make-local-variable 'comment-start)
3273 (setq comment-start "--")
3274 ;; Make each buffer in sql-mode remember the "current" SQLi buffer. 3268 ;; Make each buffer in sql-mode remember the "current" SQLi buffer.
3275 (make-local-variable 'sql-buffer) 3269 (make-local-variable 'sql-buffer)
3276 ;; Add imenu support for sql-mode. Note that imenu-generic-expression 3270 ;; Add imenu support for sql-mode. Note that imenu-generic-expression
@@ -3280,17 +3274,11 @@ you must tell Emacs. Here's how to do that in your `~/.emacs' file:
3280 imenu-case-fold-search t) 3274 imenu-case-fold-search t)
3281 ;; Make `sql-send-paragraph' work on paragraphs that contain indented 3275 ;; Make `sql-send-paragraph' work on paragraphs that contain indented
3282 ;; lines. 3276 ;; lines.
3283 (make-local-variable 'paragraph-separate) 3277 (set (make-local-variable 'paragraph-separate) "[\f]*$")
3284 (make-local-variable 'paragraph-start) 3278 (set (make-local-variable 'paragraph-start) "[\n\f]")
3285 (setq paragraph-separate "[\f]*$"
3286 paragraph-start "[\n\f]")
3287 ;; Abbrevs 3279 ;; Abbrevs
3288 (setq local-abbrev-table sql-mode-abbrev-table)
3289 (setq abbrev-all-caps 1) 3280 (setq abbrev-all-caps 1)
3290 ;; Run hook
3291 (run-mode-hooks 'sql-mode-hook)
3292 ;; Catch changes to sql-product and highlight accordingly 3281 ;; Catch changes to sql-product and highlight accordingly
3293 (sql-highlight-product)
3294 (add-hook 'hack-local-variables-hook 'sql-highlight-product t t)) 3282 (add-hook 'hack-local-variables-hook 'sql-highlight-product t t))
3295 3283
3296 3284
@@ -3375,15 +3363,14 @@ you entered, right above the output it created.
3375 sql-product)) 3363 sql-product))
3376 3364
3377 ;; Setup the mode. 3365 ;; Setup the mode.
3378 (setq major-mode 'sql-interactive-mode) 3366 (setq major-mode 'sql-interactive-mode) ;FIXME: Use define-derived-mode.
3379 (setq mode-name (concat "SQLi[" (or (sql-get-product-feature sql-product :name) 3367 (setq mode-name
3380 (symbol-name sql-product)) "]")) 3368 (concat "SQLi[" (or (sql-get-product-feature sql-product :name)
3369 (symbol-name sql-product)) "]"))
3381 (use-local-map sql-interactive-mode-map) 3370 (use-local-map sql-interactive-mode-map)
3382 (if sql-interactive-mode-menu 3371 (if sql-interactive-mode-menu
3383 (easy-menu-add sql-interactive-mode-menu)) ; XEmacs 3372 (easy-menu-add sql-interactive-mode-menu)) ; XEmacs
3384 (set-syntax-table sql-mode-syntax-table) 3373 (set-syntax-table sql-mode-syntax-table)
3385 (make-local-variable 'sql-mode-font-lock-keywords)
3386 (make-local-variable 'font-lock-defaults)
3387 3374
3388 ;; Note that making KEYWORDS-ONLY nil will cause havoc if you try 3375 ;; Note that making KEYWORDS-ONLY nil will cause havoc if you try
3389 ;; SELECT 'x' FROM DUAL with SQL*Plus, because the title of the column 3376 ;; SELECT 'x' FROM DUAL with SQL*Plus, because the title of the column
@@ -3392,8 +3379,7 @@ you entered, right above the output it created.
3392 (sql-product-font-lock t nil) 3379 (sql-product-font-lock t nil)
3393 3380
3394 ;; Enable commenting and uncommenting of the region. 3381 ;; Enable commenting and uncommenting of the region.
3395 (make-local-variable 'comment-start) 3382 (set (make-local-variable 'comment-start) "--")
3396 (setq comment-start "--")
3397 ;; Abbreviation table init and case-insensitive. It is not activated 3383 ;; Abbreviation table init and case-insensitive. It is not activated
3398 ;; by default. 3384 ;; by default.
3399 (setq local-abbrev-table sql-mode-abbrev-table) 3385 (setq local-abbrev-table sql-mode-abbrev-table)
@@ -3403,8 +3389,8 @@ you entered, right above the output it created.
3403 ;; Save the connection name 3389 ;; Save the connection name
3404 (make-local-variable 'sql-connection) 3390 (make-local-variable 'sql-connection)
3405 ;; Create a usefull name for renaming this buffer later. 3391 ;; Create a usefull name for renaming this buffer later.
3406 (make-local-variable 'sql-alternate-buffer-name) 3392 (set (make-local-variable 'sql-alternate-buffer-name)
3407 (setq sql-alternate-buffer-name (sql-make-alternate-buffer-name)) 3393 (sql-make-alternate-buffer-name))
3408 ;; User stuff. Initialize before the hook. 3394 ;; User stuff. Initialize before the hook.
3409 (set (make-local-variable 'sql-prompt-regexp) 3395 (set (make-local-variable 'sql-prompt-regexp)
3410 (sql-get-product-feature sql-product :prompt-regexp)) 3396 (sql-get-product-feature sql-product :prompt-regexp))