[macruby-changes] [4629] DietRB/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Fri Oct 8 03:51:02 PDT 2010
Revision: 4629
http://trac.macosforge.org/projects/ruby/changeset/4629
Author: eloy.de.enige at gmail.com
Date: 2010-10-08 03:51:00 -0700 (Fri, 08 Oct 2010)
Log Message:
-----------
Make IRB::Completion quack like a Proc, so it can actually be used with Readline.
From: Eloy Duran <eloy.de.enige at gmail.com>
Modified Paths:
--------------
DietRB/trunk/lib/irb/ext/completion.rb
DietRB/trunk/spec/completion_spec.rb
Modified: DietRB/trunk/lib/irb/ext/completion.rb
===================================================================
--- DietRB/trunk/lib/irb/ext/completion.rb 2010-10-08 10:50:50 UTC (rev 4628)
+++ DietRB/trunk/lib/irb/ext/completion.rb 2010-10-08 10:51:00 UTC (rev 4629)
@@ -2,6 +2,10 @@
module IRB
class Completion
+ def self.call(source)
+ new(source).results
+ end
+
attr_reader :source
def initialize(source)
@@ -17,7 +21,7 @@
# p src, call
results = Ripper::SexpBuilder.new(src).parse
- # p results
+ # p @source, results
# [:program, [:stmts_add, [:stmts_new], [x, …]]]
# ^
@@ -45,3 +49,11 @@
end
end
end
+
+if defined?(Readline)
+ if Readline.respond_to?("basic_word_break_characters=")
+ # IRB adds " and ' to the chars, but that would break string literals for us
+ Readline.basic_word_break_characters= " \t\n`><=;|&{("
+ end
+ Readline.completion_proc = IRB::Completion
+end
\ No newline at end of file
Modified: DietRB/trunk/spec/completion_spec.rb
===================================================================
--- DietRB/trunk/spec/completion_spec.rb 2010-10-08 10:50:50 UTC (rev 4628)
+++ DietRB/trunk/spec/completion_spec.rb 2010-10-08 10:51:00 UTC (rev 4629)
@@ -11,6 +11,14 @@
end
end
+describe "IRB::Completion" do
+ extend CompletionHelper
+
+ it "quacks like a Proc" do
+ IRB::Completion.call('//.').should == imethods(Regexp)
+ end
+end
+
describe "IRB::Completion, returns all instance methods if the source ends with a period and" do
extend CompletionHelper
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101008/34b4a09a/attachment.html>
More information about the macruby-changes
mailing list