* 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:
parent
212c5aef95
commit
9a594ee6ea
4 changed files with 30 additions and 18 deletions
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Add table
Reference in a new issue