Sha256: df2fce49666df87c53132fbf2b8b74a1e0ec05fee7169789f094cc3636f4ee16
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
module PryEditline def self.editor if defined?(Pry) Pry.editor else ENV.values_at('VISUAL', 'EDITOR').compact.first || 'vi' end end def self.hijack_inputrc inputrc = [ ENV['INPUTRC'], (File.expand_path('~/.inputrc') rescue nil), '/etc/inputrc' ].compact.detect { |x| File.exist?(x) } require 'tempfile' file = Tempfile.new('inputrc') file.puts '"\C-x\C-l": redraw-current-line' file.puts '"\C-x\C-e": " \C-a\t\C-k\C-x\C-l"' file.puts '"\C-o": " \C-a\t\C-k\C-x\C-l"' file.puts "$include #{inputrc}" if inputrc file.close ENV['INPUTRC'] = file.path end def self.completion_proc lambda do |s| if Readline.point == 0 && Readline.line_buffer =~ / $/ require 'tempfile' Tempfile.open(['readline-','.rb']) do |f| f.puts(Readline.line_buffer[0..-3]) f.close system("#{editor} #{f.path}") File.read(f.path).chomp end else yield s end end end end if defined?(Pry::InputCompleter) PryEditline.hijack_inputrc class <<Pry::InputCompleter unless method_defined?(:build_completion_proc_without_edit) alias build_completion_proc_without_edit build_completion_proc def build_completion_proc(*args) PryEditline.completion_proc(&build_completion_proc_without_edit(*args)) end end end elsif defined?(IRB) && defined?(Readline) PryEditline.hijack_inputrc Readline.completion_proc = PryEditline.completion_proc(&Readline.completion_proc) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pry-editline-1.0.0 | lib/pry-editline.rb |