File tree Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -57,7 +57,7 @@ class PryBackend
5757
5858 def initialize
5959 require 'pry'
60- Pry . memory_size = 3
60+ Pry . memory_size = 3
6161 Pry . pager = false # Don't use the pager
6262 Pry . print = proc { |output , value |} # No result printing
6363 Pry . exception_handler = proc { |output , exception , _ | }
@@ -72,11 +72,21 @@ def eval(code, store_history)
7272 reset
7373 raise SystemExit
7474 end
75- unless @pry . eval_string . empty?
75+
76+ # Pry::Code.complete_expression? return false
77+ if !@pry . eval_string . empty?
7678 syntax_error = @pry . eval_string
7779 @pry . reset_eval_string
78- @pry . evaluate_ruby syntax_error
80+ @pry . evaluate_ruby ( syntax_error )
81+
82+ # Pry::Code.complete_expression? raise SyntaxError
83+ # evaluate again for current line number
84+ elsif @pry . last_result_is_exception? &&
85+ @pry . last_exception . is_a? ( SyntaxError ) &&
86+ @pry . last_exception . is_a? ( Pry ::UserError )
87+ @pry . evaluate_ruby ( code )
7988 end
89+
8090 raise @pry . last_exception if @pry . last_result_is_exception?
8191 @pry . push_initial_binding unless @pry . current_binding # ensure that we have a binding
8292 @pry . last_result
Original file line number Diff line number Diff line change @@ -112,7 +112,7 @@ def execute_request(msg)
112112
113113 def error_content ( e )
114114 rindex = e . backtrace . rindex { |line | line . start_with? ( @backend . eval_path ) } || -1
115- backtrace = e . backtrace [ 0 ..rindex ]
115+ backtrace = SyntaxError === e && rindex == - 1 ? [ ] : e . backtrace [ 0 ..rindex ]
116116 { ename : e . class . to_s ,
117117 evalue : e . message ,
118118 traceback : [ "#{ RED } #{ e . class } #{ RESET } : #{ e . message } " , *backtrace ] }
You can’t perform that action at this time.
0 commit comments