[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp ChangeLog progmodes/sql.el
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] emacs/lisp ChangeLog progmodes/sql.el |
Date: |
Sun, 16 Aug 2009 15:48:23 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Stefan Monnier <monnier> 09/08/16 15:48:19
Modified files:
lisp : ChangeLog
lisp/progmodes : sql.el
Log message:
(sql-product-alist): Add :name tag to entries.
(sql-product): Use it.
(sql-mode-menu): Auto-generate the menu based on sql-product-alist.
(sql-set-product): Add completion.
(sql-highlight-oracle-keywords, sql-highlight-postgres-keywords)
(sql-highlight-linter-keywords, sql-highlight-ms-keywords)
(sql-highlight-ansi-keywords, sql-highlight-sybase-keywords)
(sql-highlight-informix-keywords, sql-highlight-interbase-keywords)
(sql-highlight-ingres-keywords, sql-highlight-solid-keywords)
(sql-highlight-mysql-keywords, sql-highlight-sqlite-keywords)
(sql-highlight-db2-keywords): Remove.
(sql-find-sqli-buffer, sql-set-sqli-buffer-generally)
(sql-highlight-product): Use derived-mode-p.
(sql-set-sqli-buffer): Use with-current-buffer.
(sql-connect-informix, sql-connect-ingres, sql-connect-oracle):
Simplify.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.15949&r2=1.15950
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/progmodes/sql.el?cvsroot=emacs&r1=1.62&r2=1.63
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.15949
retrieving revision 1.15950
diff -u -b -r1.15949 -r1.15950
--- ChangeLog 16 Aug 2009 15:40:50 -0000 1.15949
+++ ChangeLog 16 Aug 2009 15:48:15 -0000 1.15950
@@ -1,5 +1,22 @@
2009-08-16 Stefan Monnier <address@hidden>
+ * progmodes/sql.el (sql-product-alist): Add :name tag to entries.
+ (sql-product): Use it.
+ (sql-mode-menu): Auto-generate the menu based on sql-product-alist.
+ (sql-set-product): Add completion.
+ (sql-highlight-oracle-keywords, sql-highlight-postgres-keywords)
+ (sql-highlight-linter-keywords, sql-highlight-ms-keywords)
+ (sql-highlight-ansi-keywords, sql-highlight-sybase-keywords)
+ (sql-highlight-informix-keywords, sql-highlight-interbase-keywords)
+ (sql-highlight-ingres-keywords, sql-highlight-solid-keywords)
+ (sql-highlight-mysql-keywords, sql-highlight-sqlite-keywords)
+ (sql-highlight-db2-keywords): Remove.
+ (sql-find-sqli-buffer, sql-set-sqli-buffer-generally)
+ (sql-highlight-product): Use derived-mode-p.
+ (sql-set-sqli-buffer): Use with-current-buffer.
+ (sql-connect-informix, sql-connect-ingres, sql-connect-oracle):
+ Simplify.
+
* emacs-lisp/lisp-mode.el (lisp-indent-region): Remove unused function.
* term.el: Fix commenting convention, turn comments into docstrings.
Index: progmodes/sql.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/progmodes/sql.el,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -b -r1.62 -r1.63
--- progmodes/sql.el 14 Feb 2009 03:38:00 -0000 1.62
+++ progmodes/sql.el 16 Aug 2009 15:48:19 -0000 1.63
@@ -268,31 +268,16 @@
:group 'SQL)
;; SQL Product support
-(defcustom sql-product 'ansi
- "*Select the SQL database product used so that buffers can be
-highlighted properly when you open them."
- :type '(choice (const :tag "ANSI" ansi)
- (const :tag "DB2" db2)
- (const :tag "Informix" informix)
- (const :tag "Ingres" ingres)
- (const :tag "Interbase" interbase)
- (const :tag "Linter" linter)
- (const :tag "Microsoft" ms)
- (const :tag "MySQL" mysql)
- (const :tag "Oracle" oracle)
- (const :tag "PostGres" postgres)
- (const :tag "Solid" solid)
- (const :tag "SQLite" sqlite)
- (const :tag "Sybase" sybase))
- :group 'SQL)
(defvar sql-interactive-product nil
"Product under `sql-interactive-mode'.")
(defvar sql-product-alist
'((ansi
+ :name "ANSI"
:font-lock sql-mode-ansi-font-lock-keywords)
(db2
+ :name "DB2"
:font-lock sql-mode-db2-font-lock-keywords
:sqli-login nil
:sqli-connect sql-connect-db2
@@ -323,6 +308,7 @@
:sqli-prompt-regexp "^SQL>"
:sqli-prompt-length 4)
(ms
+ :name "MS SQLServer"
:font-lock sql-mode-ms-font-lock-keywords
:sqli-login (user password server database)
:sqli-connect sql-connect-ms
@@ -330,6 +316,7 @@
:sqli-prompt-length 5
:syntax-alist ((?@ . "w")))
(mysql
+ :name "MySQL"
:font-lock sql-mode-mysql-font-lock-keywords
:sqli-login (user password database server)
:sqli-connect sql-connect-mysql
@@ -355,6 +342,7 @@
:sqli-prompt-regexp "^"
:sqli-prompt-length 0)
(sqlite
+ :name "SQLite"
:font-lock sql-mode-sqlite-font-lock-keywords
:sqli-login (database)
:sqli-connect sql-connect-sqlite
@@ -408,6 +396,18 @@
special character treatment by font-lock and
imenu. ")
+(defcustom sql-product 'ansi
+ "*Select the SQL database product used so that buffers can be
+highlighted properly when you open them."
+ :type `(choice
+ ,@(mapcar (lambda (prod-info)
+ `(const :tag
+ ,(or (plist-get (cdr prod-info) :name)
+ (capitalize (symbol-name (car prod-info))))
+ ,(car prod-info)))
+ sql-product-alist))
+ :group 'SQL)
+
;; misc customization of sql.el behavior
(defcustom sql-electric-stuff nil
@@ -783,7 +783,7 @@
(easy-menu-define
sql-mode-menu sql-mode-map
"Menu for `sql-mode'."
- '("SQL"
+ `("SQL"
["Send Paragraph" sql-send-paragraph (and (buffer-live-p sql-buffer)
(get-buffer-process sql-buffer))]
["Send Region" sql-send-region (and (or (and (boundp 'mark-active); Emacs
@@ -804,46 +804,18 @@
:selected sql-pop-to-buffer-after-send-region]
["--" nil nil]
("Product"
- ["ANSI" sql-highlight-ansi-keywords
- :style radio
- :selected (eq sql-product 'ansi)]
- ["DB2" sql-highlight-db2-keywords
- :style radio
- :selected (eq sql-product 'db2)]
- ["Informix" sql-highlight-informix-keywords
- :style radio
- :selected (eq sql-product 'informix)]
- ["Ingres" sql-highlight-ingres-keywords
- :style radio
- :selected (eq sql-product 'ingres)]
- ["Interbase" sql-highlight-interbase-keywords
- :style radio
- :selected (eq sql-product 'interbase)]
- ["Linter" sql-highlight-linter-keywords
- :style radio
- :selected (eq sql-product 'linter)]
- ["MS SQLServer" sql-highlight-ms-keywords
- :style radio
- :selected (eq sql-product 'ms)]
- ["MySQL" sql-highlight-mysql-keywords
- :style radio
- :selected (eq sql-product 'mysql)]
- ["Oracle" sql-highlight-oracle-keywords
- :style radio
- :selected (eq sql-product 'oracle)]
- ["Postgres" sql-highlight-postgres-keywords
- :style radio
- :selected (eq sql-product 'postgres)]
- ["Solid" sql-highlight-solid-keywords
- :style radio
- :selected (eq sql-product 'solid)]
- ["SQLite" sql-highlight-sqlite-keywords
- :style radio
- :selected (eq sql-product 'sqlite)]
- ["Sybase" sql-highlight-sybase-keywords
- :style radio
- :selected (eq sql-product 'sybase)]
- )))
+ ,@(mapcar (lambda (prod-info)
+ (let* ((prod (pop prod-info))
+ (name (or (plist-get prod-info :name)
+ (capitalize (symbol-name prod))))
+ (cmd (intern (format "sql-highlight-%s-keywords"
prod))))
+ (fset cmd `(lambda () ,(format "Highlight %s SQL keywords."
name)
+ (interactive)
+ (sql-set-product ',prod)))
+ (vector name cmd
+ :style 'radio
+ :selected `(eq sql-product ',prod))))
+ sql-product-alist))))
;; easy menu for sql-interactive-mode.
@@ -1750,8 +1722,7 @@
(defun sql-highlight-product ()
"Turns on the appropriate font highlighting for the SQL product
selected."
-
- (when (eq major-mode 'sql-mode)
+ (when (derived-mode-p 'sql-mode)
;; Setup font-lock
(sql-product-font-lock nil t)
@@ -1761,7 +1732,12 @@
(defun sql-set-product (product)
"Set `sql-product' to product and enable appropriate
highlighting."
- (interactive "SEnter SQL product: ")
+ (interactive
+ (list (completing-read "Enter SQL product: "
+ (mapcar (lambda (info) (symbol-name (car info)))
+ sql-product-alist)
+ nil 'require-match)))
+ (if (stringp product) (setq product (intern product)))
(when (not (assoc product sql-product-alist))
(error "SQL product %s is not supported; treated as ANSI" product)
(setq product 'ansi))
@@ -1770,72 +1746,6 @@
(setq sql-product product)
(sql-highlight-product))
-(defun sql-highlight-oracle-keywords ()
- "Highlight Oracle keywords."
- (interactive)
- (sql-set-product 'oracle))
-
-(defun sql-highlight-postgres-keywords ()
- "Highlight Postgres keywords."
- (interactive)
- (sql-set-product 'postgres))
-
-(defun sql-highlight-linter-keywords ()
- "Highlight LINTER keywords."
- (interactive)
- (sql-set-product 'linter))
-
-(defun sql-highlight-ms-keywords ()
- "Highlight Microsoft SQLServer keywords."
- (interactive)
- (sql-set-product 'ms))
-
-(defun sql-highlight-ansi-keywords ()
- "Highlight ANSI SQL keywords."
- (interactive)
- (sql-set-product 'ansi))
-
-(defun sql-highlight-sybase-keywords ()
- "Highlight Sybase SQL keywords."
- (interactive)
- (sql-set-product 'sybase))
-
-(defun sql-highlight-informix-keywords ()
- "Highlight Informix SQL keywords."
- (interactive)
- (sql-set-product 'informix))
-
-(defun sql-highlight-interbase-keywords ()
- "Highlight Interbase SQL keywords."
- (interactive)
- (sql-set-product 'interbase))
-
-(defun sql-highlight-ingres-keywords ()
- "Highlight Ingres SQL keywords."
- (interactive)
- (sql-set-product 'ingres))
-
-(defun sql-highlight-solid-keywords ()
- "Highlight Solid SQL keywords."
- (interactive)
- (sql-set-product 'solid))
-
-(defun sql-highlight-mysql-keywords ()
- "Highlight MySQL SQL keywords."
- (interactive)
- (sql-set-product 'mysql))
-
-(defun sql-highlight-sqlite-keywords ()
- "Highlight SQLite SQL keywords."
- (interactive)
- (sql-set-product 'sqlite))
-
-(defun sql-highlight-db2-keywords ()
- "Highlight DB2 SQL keywords."
- (interactive)
- (sql-set-product 'db2))
-
-
;;; Compatibility functions
@@ -1971,14 +1881,14 @@
(if (and (buffer-live-p default-buffer)
(get-buffer-process default-buffer))
default-buffer
- (save-excursion
+ (save-current-buffer
(let ((buflist (buffer-list))
(found))
(while (not (or (null buflist)
found))
(let ((candidate (car buflist)))
(set-buffer candidate)
- (if (and (equal major-mode 'sql-interactive-mode)
+ (if (and (derived-mode-p 'sql-interactive-mode)
(get-buffer-process candidate))
(setq found candidate))
(setq buflist (cdr buflist))))
@@ -1999,7 +1909,7 @@
(while (not (null buflist))
(let ((candidate (car buflist)))
(set-buffer candidate)
- (if (and (equal major-mode 'sql-mode)
+ (if (and (derived-mode-p 'sql-mode)
(not (buffer-live-p sql-buffer)))
(progn
(setq sql-buffer default-sqli-buffer)
@@ -2027,8 +1937,7 @@
(read-buffer "New SQLi buffer: " default-buffer t))))
(if (null (get-buffer-process new-buffer))
(error "Buffer %s has no process" (buffer-name new-buffer)))
- (if (null (save-excursion
- (set-buffer new-buffer)
+ (if (null (with-current-buffer new-buffer
(equal major-mode 'sql-interactive-mode)))
(error "Buffer %s is no SQLi buffer" (buffer-name new-buffer)))
(if new-buffer
@@ -2417,8 +2326,7 @@
"Run product interpreter as an inferior process.
If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
+If buffer exists and a process is running, just switch to buffer `*SQL*'.
\(Type \\[describe-mode] in the SQL buffer for a list of commands.)"
(interactive)
@@ -2473,20 +2381,17 @@
;; is meaningless; database without user/password is meaningless,
;; because "@param" will ask sqlplus to interpret the script
;; "param".
- (let ((parameter nil))
+ (let ((parameter
(if (not (string= "" sql-user))
(if (not (string= "" sql-password))
- (setq parameter (concat sql-user "/" sql-password))
- (setq parameter sql-user)))
+ (concat sql-user "/" sql-password)
+ sql-user))))
(if (and parameter (not (string= "" sql-database)))
(setq parameter (concat parameter "@" sql-database)))
- (if parameter
- (setq parameter (nconc (list parameter) sql-oracle-options))
- (setq parameter sql-oracle-options))
- (if parameter
- (set-buffer (apply 'make-comint "SQL" sql-oracle-program nil
- parameter))
- (set-buffer (make-comint "SQL" sql-oracle-program nil)))
+ (setq parameter (if parameter
+ (nconc (list parameter) sql-oracle-options)
+ sql-oracle-options))
+ (set-buffer (apply 'make-comint "SQL" sql-oracle-program nil parameter))
;; SQL*Plus is buffered on WindowsNT; this handles &placeholders.
(if (eq window-system 'w32)
(setq comint-input-sender 'sql-query-placeholders-and-send))))
@@ -2568,9 +2473,9 @@
"Create comint buffer and connect to Informix using the login
parameters and command options."
;; username and password are ignored.
- (if (string= "" sql-database)
- (set-buffer (make-comint "SQL" sql-informix-program nil))
- (set-buffer (make-comint "SQL" sql-informix-program nil sql-database
"-"))))
+ (set-buffer (if (string= "" sql-database)
+ (make-comint "SQL" sql-informix-program nil)
+ (make-comint "SQL" sql-informix-program nil sql-database
"-"))))
@@ -2740,9 +2645,9 @@
"Create comint buffer and connect to Ingres using the login
parameters and command options."
;; username and password are ignored.
- (if (string= "" sql-database)
- (set-buffer (make-comint "SQL" sql-ingres-program nil))
- (set-buffer (make-comint "SQL" sql-ingres-program nil sql-database))))
+ (set-buffer (if (string= "" sql-database)
+ (make-comint "SQL" sql-ingres-program nil)
+ (make-comint "SQL" sql-ingres-program nil sql-database))))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs/lisp ChangeLog progmodes/sql.el,
Stefan Monnier <=