help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

COMPLETING-READ Problem


From: Volkan YAZICI
Subject: COMPLETING-READ Problem
Date: Sun, 9 Mar 2008 05:51:44 -0700 (PDT)
User-agent: G2/1.0

Hi,

While trying to implement a family of SQL identifier search functions,
I want to offer tab completion to previously searched SQL identifiers
-- besides builtin history functionality binded to M-p. For this
purpose, I try to use COMPLETING-READ. Here's the related code
snippet:

(defvar searched-sql-items nil
  "Association list of previously searched SQL items.")

(defun make-local-searched-sql-items ()
  "Creates per-buffer SEARCHED-SQL-ITEMS association list."
  (make-local-variable 'searched-sql-items))

(add-hook 'sql-mode-hook 'make-local-searched-sql-items)

(defun search-sql-table (table-name)
  "Search for specified TABLE-NAME in the current buffer."
  (interactive
   (let ((previously-searched-tables (assoc 'table searched-sql-
items)))
     (list
      (completing-read
       (if previously-searched-tables
           (format "Table name (default: %s): "
                   (first previously-searched-tables))
         "Table name: ")
       previously-searched-tables)))
   ;; Insert specified TABLE-NAME to SEARCHED-SQL-ITEMS.
   (let ((previously-searched-tables (assoc 'table searched-sql-
items)))
     (setf (assoc 'table searched-sql-items)
           ;; Move TABLE-NAME to top.
           (cons table-name (remove table-name previously-searched-
tables))))
   ;; Search table.
   (search-forward (format "CREATE TABLE %s" table-name))))

But for some reason, function doesn't work. (Does nothing during
execution.) I tried to place a (warn "TABLE-NAME: %s" table-name) just
after (interactive ...) block, but there doesn't appear anything in
the *Messages* buffer. Any ideas?


Regards.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]