emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/inf-ruby 57642c27fd 053/265: inf-ruby-completions: support


From: ELPA Syncer
Subject: [nongnu] elpa/inf-ruby 57642c27fd 053/265: inf-ruby-completions: support non-"current" inf-ruby-mode buffers and Pry
Date: Sat, 9 Jul 2022 21:59:13 -0400 (EDT)

branch: elpa/inf-ruby
commit 57642c27fdb435db667ce4cd9bcb24662fd4cc85
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: Dmitry Gutov <dgutov@yandex.ru>

    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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]