branch: elpa/inf-ruby
commit 57642c27fdb435db667ce4cd9bcb24662fd4cc85
Author: Dmitry Gutov <[email protected]>
Commit: Dmitry Gutov <[email protected]>
inf-ruby-completions: support non-"current" inf-ruby-mode buffers and Pry
---
inf-ruby.el | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/inf-ruby.el b/inf-ruby.el
index c0997d0a9a..4b1468b832 100755
--- a/inf-ruby.el
+++ b/inf-ruby.el
@@ -359,12 +359,19 @@ The reason for this is unknown. Remove this line from
`completions'."
(defun inf-ruby-completions (seed)
"Return a list of completions for the line of ruby code starting with SEED."
- (let* ((proc (get-buffer-process inf-ruby-buffer))
+ (let* ((proc (inf-ruby-proc))
(comint-filt (process-filter proc))
(kept "") completions)
(set-process-filter proc (lambda (proc string) (setq kept (concat kept
string))))
- (process-send-string proc (format "puts
IRB::InputCompletor::CompletionProc.call('%s').compact\n"
- (ruby-escape-single-quoted seed)))
+ (process-send-string
+ proc
+ (format (concat "if defined?(Pry.config);"
+ "completor =
Pry.config.completer.build_completion_proc(binding)"
+ "elsif defined?(IRB::InputCompletor::CompletionProc);"
+ "completor = IRB::InputCompletor::CompletionProc;"
+ "end;"
+ "puts completor.call('%s').compact if completor\n")
+ (ruby-escape-single-quoted seed)))
(while (and (not (string-match inf-ruby-prompt-pattern kept))
(accept-process-output proc 2)))
(setq completions (butlast (split-string kept "\r?\n") 2))