summaryrefslogtreecommitdiff
path: root/lisp/ielm.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2014-01-03 00:10:52 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2014-01-03 00:10:52 -0500
commit6ef9aed822746c3daf05313bbc0df7dfa9f08171 (patch)
treeb42191162a4053a09b5a7f7e8ac150c8009efa32 /lisp/ielm.el
parent6f5475834a0862e93f9d6175bb1c4a56c287b93c (diff)
downloademacs-6ef9aed822746c3daf05313bbc0df7dfa9f08171.tar.gz
* lisp/ielm.el (ielm-tab): Retarget.
(ielm-map): Use ielm-tab for tab. (ielm-complete-filename): Use comint-filename-completion. (ielm-complete-symbol): Remove. (inferior-emacs-lisp-mode): Use lisp-completion-at-point instead and remove ielm-tab from completion-at-point-functions. Fixes: debbugs:16224
Diffstat (limited to 'lisp/ielm.el')
-rw-r--r--lisp/ielm.el39
1 files changed, 11 insertions, 28 deletions
diff --git a/lisp/ielm.el b/lisp/ielm.el
index 83142257a58..c53f9e76d4e 100644
--- a/lisp/ielm.el
+++ b/lisp/ielm.el
@@ -168,7 +168,7 @@ This variable is buffer-local.")
(defvar ielm-map
(let ((map (make-sparse-keymap)))
- (define-key map "\t" 'completion-at-point)
+ (define-key map "\t" 'ielm-tab)
(define-key map "\C-m" 'ielm-return)
(define-key map "\e\C-m" 'ielm-return-for-effect)
(define-key map "\C-j" 'ielm-send-input)
@@ -201,36 +201,19 @@ This variable is buffer-local.")
;;; Completion stuff
-(defun ielm-tab nil
- "Possibly indent the current line as Lisp code."
+(defun ielm-tab ()
+ "Indent or complete."
(interactive)
- (when (or (eq (preceding-char) ?\n)
- (eq (char-syntax (preceding-char)) ?\s))
- (ielm-indent-line)
- t))
-
-(defun ielm-complete-symbol nil
- "Complete the Lisp symbol before point."
- ;; A wrapper for completion-at-point that returns non-nil if
- ;; completion has occurred
- (let* ((btick (buffer-modified-tick))
- (cbuffer (get-buffer "*Completions*"))
- (ctick (and cbuffer (buffer-modified-tick cbuffer)))
- (completion-at-point-functions '(lisp-completion-at-point)))
- (completion-at-point)
- ;; completion has occurred if:
- (or
- ;; the buffer has been modified
- (not (= btick (buffer-modified-tick)))
- ;; a completions buffer has been modified or created
- (if cbuffer
- (not (= ctick (buffer-modified-tick cbuffer)))
- (get-buffer "*Completions*")))))
+ (if (or (eq (preceding-char) ?\n)
+ (eq (char-syntax (preceding-char)) ?\s))
+ (ielm-indent-line)
+ (completion-at-point)))
+
(defun ielm-complete-filename nil
"Dynamically complete filename before point, if in a string."
(when (nth 3 (parse-partial-sexp comint-last-input-start (point)))
- (comint-dynamic-complete-filename)))
+ (comint-filename-completion)))
(defun ielm-indent-line nil
"Indent the current line as Lisp code if it is not a prompt line."
@@ -557,8 +540,8 @@ Customized bindings may be defined in `ielm-map', which currently contains:
(setq comint-input-sender 'ielm-input-sender)
(setq comint-process-echoes nil)
(set (make-local-variable 'completion-at-point-functions)
- '(ielm-tab comint-replace-by-expanded-history
- ielm-complete-filename ielm-complete-symbol))
+ '(comint-replace-by-expanded-history
+ ielm-complete-filename lisp-completion-at-point))
(set (make-local-variable 'ielm-prompt-internal) ielm-prompt)
(set (make-local-variable 'comint-prompt-read-only) ielm-prompt-read-only)
(setq comint-get-old-input 'ielm-get-old-input)