1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00

edit should default to the previous expression.

This commit is contained in:
Conrad Irwin 2011-09-09 23:43:06 -07:00
parent 06991b221a
commit 9c8eb6139b
2 changed files with 12 additions and 4 deletions

View file

@ -111,14 +111,14 @@ class Pry
command "edit", "Invoke the default editor on a file. Type `edit --help` for more info" do |*args| command "edit", "Invoke the default editor on a file. Type `edit --help` for more info" do |*args|
opts = Slop.parse!(args) do |opt| opts = Slop.parse!(args) do |opt|
opt.banner "Usage: edit [OPTIONS] [FILE]\n" \ opt.banner "Usage: edit [OPTIONS] [FILE]\n" \
"Edit the method FILE in an editor.\nWhen no file given, opens editor with contents of input buffer and evals after closing." \ "Edit the method FILE in an editor.\nWhen no file given, opens editor with contents of input buffer or previous input and evals after closing." \
"\nEnsure #{text.bold("Pry.config.editor")} is set to your editor of choice.\n" \ "\nEnsure #{text.bold("Pry.config.editor")} is set to your editor of choice.\n" \
"e.g: edit sample.rb" "e.g: edit sample.rb"
opt.on :r, "reload", "Eval file content after editing (evals at top level)" opt.on :r, "reload", "Eval file content after editing (evals at top level)"
opt.on :n, "no-reload", "Do not automatically reload the file after editing (only applies to --ex and -t)." opt.on :n, "no-reload", "Do not automatically reload the file after editing (only applies to --ex and -t)."
opt.on :ex, "Open an editor at the line and file that generated the most recent Exception, reloads file after editing." opt.on :ex, "Open an editor at the line and file that generated the most recent Exception, reloads file after editing."
opt.on :t, "temp", "Open a temporary file in an editor with contents of input buffer and eval it in current context after closing (same as `edit` with no args)" opt.on :t, "temp", "Open a temporary file in an editor with contents of input buffer and eval it in current context after closing (does not default to previous input)"
opt.on :p, "play", "Use the pry `play` command to eval the file content after editing." opt.on :p, "play", "Use the pry `play` command to eval the file content after editing."
opt.on :l, "line", "Specify line number to jump to in file", true, :as => Integer opt.on :l, "line", "Specify line number to jump to in file", true, :as => Integer
opt.on :h, :help, "This message." do opt.on :h, :help, "This message." do
@ -145,9 +145,13 @@ class Pry
should_reload_at_top_level = opts[:n] ? false : true should_reload_at_top_level = opts[:n] ? false : true
elsif opts.t? || args.first.nil? elsif opts.t? || args.empty?
file_name = temp_file do |f| file_name = temp_file do |f|
f.puts eval_string if !eval_string.empty? if !eval_string.empty?
f.puts eval_string
elsif !opts.t? && !_pry_.input_array.empty?
f.puts _pry_.input_array[-1]
end
end end
line = eval_string.lines.count + 1 line = eval_string.lines.count + 1
should_reload_locally = opts[:n] ? false : true should_reload_locally = opts[:n] ? false : true

View file

@ -73,6 +73,10 @@ class Pry
@count @count
end end
def empty?
size == 0
end
def each def each
((@count - size)...@count).each do |n| ((@count - size)...@count).each do |n|
yield @hash[n] yield @hash[n]