Skip to content

revisiting nvim integration, multiple errors #917

@ExpandingMan

Description

@ExpandingMan

After arriving at an auto-complete setup that I'm far more satisfied with, I decided to revisit nvim integration with LanguageServer.jl.

Unfortunately any time I load much more than fairly minimal code I always seem to hit an error at some point.

"MethodError: "
"no method matching "
"LanguageServer.ProgressParams("
"::"
"Nothing, ::LanguageServer.WorkDoneProgressBegin)"
"\nClosest candidates are:\n  LanguageServer.ProgressParams(!Matched::Union{Int64, String}, ::T) where T at /home/expandingman/.julia/packages/LanguageServer/y1ebo/src/protocol/basic.jl:8\nStacktrace:\n"
" [1] "
"create_symserver_progress_ui("
"server::"
"LanguageServerInstance"
")\n   @ "
"LanguageServer ~/.julia/packages/LanguageServer/y1ebo/src/"
"languageserverinstance.jl:"
"143\n [2] initialized_notification(params::LanguageServer.InitializedParams, server::LanguageServerInstance, conn::"
"JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint})\n   @ LanguageServer ~/.julia/packages/LanguageServer/y1ebo/src/requests/init.jl:176\n [3] "
'(::LanguageServer.var"#112#144"{LanguageServerInstance})(conn::'
"JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, params::LanguageServer.InitializedParams)\n   @ LanguageServer ~/.julia/packages/LanguageServer/y1ebo/src/languageserverinstance.jl:284\n [4] "
"dispatch_msg(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, dispatcher::JSONRPC.MsgDispatcher, msg::"
"Dict{String, Any})\n   @ JSONRPC "
"~/.julia/packages/JSONRPC/xbAlZ/src/typed.jl:66\n [5] run"
"(server::LanguageServerInstance)\n   @ LanguageServer ~/.julia/packages/LanguageServer/y1ebo/src/languageserverinstance.jl:"
"308\n [6] top-level scope\n   @ none:12\n"
"┌ Warning: JuliaInterpreter not stored on disc\n└ @ SymbolServer ~/.julia/packages/SymbolServer/2m6sg/src/SymbolServer.jl:190\n"
"┌ Warning: DocStringExtensions not stored on disc\n└ @ SymbolServer ~/.julia/packages/SymbolServer/2m6sg/src/SymbolServer.jl:190\n"
"┌ Warning: CodeTracking not stored on disc\n└ @ SymbolServer ~/.julia/packages/SymbolServer/2m6sg/src/SymbolServer.jl:190\n"
"ERROR: "
"MethodError: "
"no method matching "
"LanguageServer.ProgressParams("
"::"
"Nothing, ::LanguageServer.WorkDoneProgressBegin"
")"
"\nClosest candidates are:\n  LanguageServer.ProgressParams(!Matched::Union{Int64, String}, ::T) where T at /home/expandingman/.julia/packages/LanguageServer/y1ebo/src/protocol/basic.jl:8\nStacktrace:\n"
" [1] "
"create_symserver_progress_ui("
"server::"
"LanguageServerInstance)\n   @ "
"LanguageServer "
"~/.julia/packages/LanguageServer/y1ebo/src/"
"languageserverinstance.jl:143\n"
" [2] initialized_notification(params::LanguageServer.InitializedParams, server::LanguageServerInstance, conn::"
"JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint})\n   @ LanguageServer ~/.julia/packages/LanguageServer/y1ebo/src/requests/init.jl:"
"176\n [3] "
'(::LanguageServer.var"#112#144"{LanguageServerInstance})(conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}'
", params::LanguageServer.InitializedParams)\n   @ LanguageServer ~/.julia/packages/LanguageServer/y1ebo/src/languageserverinstance.jl:284\n [4] dispatch_msg("
"x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, dispatcher::JSONRPC.MsgDispatcher, msg::"
"Dict{String, Any})\n   @ JSONRPC ~/.julia/packages/JSONRPC/xbAlZ/src/typed.jl:66"
"\n [5] run(server::LanguageServerInstance)\n"
"   @ LanguageServer ~/.julia/packages/LanguageServer/y1ebo/src/languageserverinstance.jl:308\n [6]"
" top-level scope\n   @ none:12\n"

I apologize for the awful formatting, it is the fault of the logger. I tried to clean it up a bit.

It seems that some functions, in particular WorkDoneProgressBegin and ProgressParams are getting null values for their first argument where they expect something non-null (I'm guessing probably an empty string).

If I'm right, it suggests we need to either

  • Add these fields to whatever JSON dict as empty strings (requires a lot of knowledge of this package and LSP in general)
  • Add methods that convert null values to empty strings or whatever they are supposed to be. I'm guessing this is pretty easy, but more likely to cause side effects.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions