diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2014-01-03 00:10:52 -0500 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2014-01-03 00:10:52 -0500 |
commit | 6ef9aed822746c3daf05313bbc0df7dfa9f08171 (patch) | |
tree | b42191162a4053a09b5a7f7e8ac150c8009efa32 /lisp/ielm.el | |
parent | 6f5475834a0862e93f9d6175bb1c4a56c287b93c (diff) | |
download | emacs-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.el | 39 |
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) |