caleb-allen / VimBindings.jl

Vim bindings for the Julia REPL
https://caleb-allen.github.io/VimBindings.jl/
MIT License
113 stars 3 forks source link

division symbol ÷ causes error and REPL to crash #75

Closed ArbitRandomUser closed 1 year ago

ArbitRandomUser commented 1 year ago
julia> 3÷2
Unhandled Task ERROR: StringIndexError: invalid index [3], valid nearby indices [2]=>'÷', [4]=>'2'
Stacktrace:
  [1] string_index_err(s::String, i::Int64)
    @ Base ./strings/string.jl:12
  [2] getindex
    @ ./strings/string.jl:278 [inlined]
  [3] show(io::IOBuffer, rec::VimBindings.Changes.BufferRecord)
    @ VimBindings.Changes ~/.julia/packages/VimBindings/SP6m7/src/changes.jl:16
  [4] show(io::IOBuffer, entry::VimBindings.Changes.Entry)
    @ VimBindings.Changes ~/.julia/packages/VimBindings/SP6m7/src/changes.jl:194
  [5] show_full_history(selected::VimBindings.Changes.Entry)
    @ VimBindings.Changes ~/.julia/packages/VimBindings/SP6m7/src/changes.jl:139
  [6] record(buf::IOBuffer; cursor_index::Int64)
    @ VimBindings.Changes ~/.julia/packages/VimBindings/SP6m7/src/changes.jl:90
  [7] record
    @ ~/.julia/packages/VimBindings/SP6m7/src/changes.jl:78 [inlined]
  [8] prompt!(term::REPL.Terminals.TTYTerminal, prompt::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
    @ VimBindings ~/.julia/packages/VimBindings/SP6m7/src/lineeditalt.jl:48
  [9] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
    @ REPL.LineEdit ~/.julia/juliaup/julia-1.9.2+0.x64.linux.gnu/share/julia/stdlib/v1.9/REPL/src/LineEdit.jl:2642
 [10] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
    @ REPL ~/.julia/juliaup/julia-1.9.2+0.x64.linux.gnu/share/julia/stdlib/v1.9/REPL/src/REPL.jl:1300
 [11] (::REPL.var"#62#68"{REPL.LineEditREPL, REPL.REPLBackendRef})()
    @ REPL ./task.jl:514
ERROR: TaskFailedException
Stacktrace:
  [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
    @ Base ./task.jl:920
  [2] wait()
    @ Base ./task.jl:984
  [3] wait(c::Base.GenericCondition{ReentrantLock}; first::Bool)
    @ Base ./condition.jl:130
  [4] wait
    @ ./condition.jl:125 [inlined]
  [5] take_buffered(c::Channel{Any})
    @ Base ./channels.jl:457
  [6] take!
    @ ./channels.jl:451 [inlined]
  [7] repl_backend_loop(backend::REPL.REPLBackend, get_module::Function)
    @ REPL ~/.julia/juliaup/julia-1.9.2+0.x64.linux.gnu/share/julia/stdlib/v1.9/REPL/src/REPL.jl:244
  [8] start_repl_backend(backend::REPL.REPLBackend, consumer::Any; get_module::Function)
    @ REPL ~/.julia/juliaup/julia-1.9.2+0.x64.linux.gnu/share/julia/stdlib/v1.9/REPL/src/REPL.jl:234
  [9] run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool, backend::Any)
    @ REPL ~/.julia/juliaup/julia-1.9.2+0.x64.linux.gnu/share/julia/stdlib/v1.9/REPL/src/REPL.jl:379
 [10] run_repl(repl::REPL.AbstractREPL, consumer::Any)
    @ REPL ~/.julia/juliaup/julia-1.9.2+0.x64.linux.gnu/share/julia/stdlib/v1.9/REPL/src/REPL.jl:365
 [11] (::Base.var"#1017#1019"{Bool, Bool, Bool})(REPL::Module)
    @ Base ./client.jl:421
 [12] #invokelatest#2
    @ ./essentials.jl:816 [inlined]
 [13] invokelatest
    @ ./essentials.jl:813 [inlined]
 [14] run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool)
    @ Base ./client.jl:405
 [15] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:322
 [16] _start()
    @ Base ./client.jl:522

    nested task error: StringIndexError: invalid index [3], valid nearby indices [2]=>'÷', [4]=>'2'
    Stacktrace:
      [1] string_index_err(s::String, i::Int64)
        @ Base ./strings/string.jl:12
      [2] getindex
        @ ./strings/string.jl:278 [inlined]
      [3] show(io::IOBuffer, rec::VimBindings.Changes.BufferRecord)
        @ VimBindings.Changes ~/.julia/packages/VimBindings/SP6m7/src/changes.jl:16
      [4] show(io::IOBuffer, entry::VimBindings.Changes.Entry)
        @ VimBindings.Changes ~/.julia/packages/VimBindings/SP6m7/src/changes.jl:194
      [5] show_full_history(selected::VimBindings.Changes.Entry)
        @ VimBindings.Changes ~/.julia/packages/VimBindings/SP6m7/src/changes.jl:139
      [6] record(buf::IOBuffer; cursor_index::Int64)
        @ VimBindings.Changes ~/.julia/packages/VimBindings/SP6m7/src/changes.jl:90
      [7] record
        @ ~/.julia/packages/VimBindings/SP6m7/src/changes.jl:78 [inlined]
      [8] prompt!(term::REPL.Terminals.TTYTerminal, prompt::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
        @ VimBindings ~/.julia/packages/VimBindings/SP6m7/src/lineeditalt.jl:48
      [9] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
        @ REPL.LineEdit ~/.julia/juliaup/julia-1.9.2+0.x64.linux.gnu/share/julia/stdlib/v1.9/REPL/src/LineEdit.jl:2642
     [10] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
        @ REPL ~/.julia/juliaup/julia-1.9.2+0.x64.linux.gnu/share/julia/stdlib/v1.9/REPL/src/REPL.jl:1300
     [11] (::REPL.var"#62#68"{REPL.LineEditREPL, REPL.REPLBackendRef})()
        @ REPL ./task.jl:514
ArbitRandomUser commented 1 year ago

fixed in https://github.com/caleb-allen/VimBindings.jl/pull/64