Skip to content

Backslash completion broken in debugger in 1.12 #394

@projekter

Description

@projekter

When entering into REPL mode while debugging, the backslash tab completions don't work under Julia 1.12. The following example works in 1.10, but is broken in 1.12:

julia> using Debugger
julia> fn() = nothing
julia> @enter fn()
In fn() at REPL[2]:1
>1  fn() = nothing

About to run: return
1|julia> \Omega┌ Error: Error in the keymap
│   exception =
│    MethodError: no method matching _completion_text(::REPL.REPLCompletions.BslashCompletion)
│    The function `_completion_text` exists, but no method is defined for this combination of argument types.
│    
│    Closest candidates are:_completion_text(::REPL.REPLCompletions.KeywordCompletion)
│       @ REPL ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/REPLCompletions.jl:115_completion_text(::REPL.REPLCompletions.PathCompletion)
│       @ REPL ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/REPLCompletions.jl:117_completion_text(::REPL.REPLCompletions.KeywordArgumentCompletion)
│       @ REPL ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/REPLCompletions.jl:125...
│    
│    Stacktrace:
│      [1] completion_text(c::REPL.REPLCompletions.BslashCompletion)
│        @ REPL.REPLCompletions ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/REPLCompletions.jl:127
│      [2] iterate
│        @ ./generator.jl:48 [inlined]
│      [3] _collect(c::Vector{REPL.REPLCompletions.Completion}, itr::Base.Generator{Vector{REPL.REPLCompletions.Completion}, typeof(REPL.REPLCompletions.completion_text)}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
│        @ Base ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/base/array.jl:810
│      [4] completions(c::Debugger.DebugCompletionProvider, full::String, partial::String)
│        @ Debugger ~/.julia/packages/Debugger/XviAX/src/repl.jl:250
│      [5] complete_line(c::Debugger.DebugCompletionProvider, s::REPL.LineEdit.PromptState; hint::Bool)
│        @ Debugger ~/.julia/packages/Debugger/XviAX/src/repl.jl:246
│      [6] complete_line(c::REPL.LineEdit.CompletionProvider, s::Any, ::Module; hint::Bool)
│        @ REPL.LineEdit ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:202
│      [7] complete_line_named(c::Any, s::Any, args::Any; kwargs...)
│        @ REPL.LineEdit ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:401
│      [8] complete_line_named
│        @ ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:400 [inlined]
│      [9] complete_line(s::REPL.LineEdit.PromptState, repeats::Int64, mod::Module; hint::Bool)
│        @ REPL.LineEdit ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:497
│     [10] complete_line(s::REPL.LineEdit.PromptState, repeats::Int64, mod::Module)
│        @ REPL.LineEdit ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:496
│     [11] complete_line(s::REPL.LineEdit.MIState)
│        @ REPL.LineEdit ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:386
│     [12] edit_tab(s::REPL.LineEdit.MIState, jump_spaces::Bool, delete_trailing::Bool)
│        @ REPL.LineEdit ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:2518
│     [13] edit_tab
│        @ ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:2518 [inlined]
│     [14] (::REPL.LineEdit.var"#141#142")(::REPL.LineEdit.MIState, ::Any, ::Vararg{Any})
│        @ REPL.LineEdit ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:2564
│     [15] (::REPL.LineEdit.var"#match_input##0#match_input##1"{REPL.LineEdit.var"#141#142", String})(s::Any, p::Any)
│        @ REPL.LineEdit ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:1810
│     [16] macro expansion
│        @ ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:2960 [inlined]
│     [17] macro expansion
│        @ ./lock.jl:376 [inlined]
│     [18] (::REPL.LineEdit.var"#prompt!##2#prompt!##3"{Base.Terminals.TTYTerminal, REPL.LineEdit.ModalInterface, REPL.LineEdit.MIState, REPL.LineEdit.Prompt})()
│        @ REPL.LineEdit ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:2949
└ @ REPL.LineEdit ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/REPL/src/LineEdit.jl:2962

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions