* bindings.el (complete-symbol): Call semantic-ia-complete-symbol if

possible.

* cedet/semantic/ia.el (semantic-ia-complete-symbol): Make argument
optional.
This commit is contained in:
Chong Yidong 2009-12-05 22:01:00 +00:00
parent 212c5aef95
commit 9a594ee6ea
4 changed files with 30 additions and 18 deletions

View file

@ -1,5 +1,11 @@
2009-12-05 Chong Yidong <cyd@stupidchicken.com>
* bindings.el (complete-symbol): Call semantic-ia-complete-symbol
if possible.
* cedet/semantic/ia.el (semantic-ia-complete-symbol): Make
argument optional.
* shell.el (shell): Require ansi-color (Bug#5113).
* ansi-color.el (ansi-color-for-comint-mode): Default to t.

View file

@ -671,23 +671,28 @@ is okay. See `mode-line-format'.")
(define-key esc-map "\t" 'complete-symbol)
(defun complete-symbol (arg) "\
Perform tags completion on the text around point.
Completes to the set of names listed in the current tags table.
The string to complete is chosen in the same way as the default
for \\[find-tag] (which see).
(defun complete-symbol (arg)
"Perform tags completion on the text around point.
If a tags table is loaded, call `complete-tag'.
Otherwise, if Semantic is active, call `semantic-ia-complete-symbol'.
With a prefix argument, this command does completion within
the collection of symbols listed in the index of the manual for the
language you are using."
(interactive "P")
(if arg
(info-complete-symbol)
(if (fboundp 'complete-tag)
(complete-tag)
;; Don't autoload etags if we have no tags table.
(error "%s" (substitute-command-keys
"No tags table loaded; use \\[visit-tags-table] to load one")))))
(cond (arg
(info-complete-symbol))
((or tags-table-list tags-file-name)
(complete-tag))
((and (fboundp 'semantic-ia-complete-symbol)
(fboundp 'semantic-active-p)
(semantic-active-p))
(semantic-ia-complete-symbol))
(t
(error "%s"
(substitute-command-keys
"No completions available; use \\[visit-tags-table] \
or \\[semantic-mode]")))))
;; Reduce total amount of space we must allocate during this function
;; that we will not need to keep permanently.

View file

@ -105,19 +105,21 @@ Supports caching."
symbols))
;;;###autoload
(defun semantic-ia-complete-symbol (point)
"Complete the current symbol at POINT.
(defun semantic-ia-complete-symbol (&optional pos)
"Complete the current symbol at POS.
If POS is nil, default to point.
Completion options are calculated with `semantic-analyze-possible-completions'."
(interactive "d")
(or pos (setq pos (point)))
;; Calculating completions is a two step process.
;;
;; The first analyzer the current context, which finds tags
;; for all the stuff that may be references by the code around
;; POINT.
;; POS.
;;
;; The second step derives completions from that context.
(let* ((a (semantic-analyze-current-context point))
(syms (semantic-ia-get-completions a point))
(let* ((a (semantic-analyze-current-context pos))
(syms (semantic-ia-get-completions a pos))
(pre (car (reverse (oref a prefix))))
)
;; If PRE was actually an already completed symbol, it doesn't

View file

@ -2027,7 +2027,6 @@ see the doc of that variable if you want to add names to the list."
(interactive)
(quit-window t (selected-window)))
;; Note, there is another definition of this function in bindings.el.
;;;###autoload
(defun complete-tag ()
"Perform tags completion on the text around point.