LanguageServer.jl
LanguageServer.jl copied to clipboard
LanguageClient-neovim "unable to read from" LS; LanguageServer.jl gives conversion error
Hi, I'm trying to use Julia from neovim using LanguageClient-neovim and having some trouble. I'm not the most experienced with any of this so I apologize if my troubleshooting's not the best.
I'm using recently updated Arch Linux, with Julia 1.4, nvim 0.4.3, LanguageClient 0.1.156, vim-plug
I couldn't get the configuration on your wiki to run with REPL, so i changed it a little so it would at least seem to start, then accordingly put in my init.vim:
` let g:LanguageClient_autoStart = 1 let g:LanguageClient_serverCommands = { \ 'julia': ['julia', '--startup-file=no', '--history-file=no', '-e', ' \ using LanguageServer; \ using Pkg; \ import StaticLint; \ import SymbolServer; \ env_path = dirname(Pkg.Types.Context().env.project_file); \ debug = false; \ server = LanguageServerInstance(stdin, stdout, debug, env_path); \ server.runlinter = true; \ run(server); \ '],
\ 'python': ['/bin/pyls'] \ }`
Which appears to do be doing something, but when I test it with repeatedly pressing shift-K it's initially unresponsive but after 15 seconds will say "sending on a disconnected channel" at each press. After a minute, without pressing anything now, it will say "timed out waiting on a receive operation". In the two log files it gives me:
LanguageServer.log
ERROR: MethodError: Cannot
convertan object of type Nothing to an object of type Bool Closest candidates are: convert(::Type{T}, !Matched::T) where T<:Number at number.jl:6 convert(::Type{T}, !Matched::Number) where T<:Number at number.jl:7 convert(::Type{T}, !Matched::Ptr) where T<:Integer at pointer.jl:23 ... Stacktrace: [1] convert(::Type{Union{Missing, Bool}}, ::Nothing) at ./missing.jl:69 [2] LanguageServer.Capabilities(::Nothing) at /home/akara/.julia/packages/LanguageServer/wMPrf/src/protocol/initialize.jl:4 [3] LanguageServer.TextDocumentClientCapabilities(::Dict{String,Any}) at /home/akara/.julia/packages/LanguageServer/wMPrf/src/protocol/protocol.jl:37 [4] LanguageServer.ClientCapabilities(::Dict{String,Any}) at /home/akara/.julia/packages/LanguageServer/wMPrf/src/protocol/protocol.jl:37 [5] LanguageServer.InitializeParams(::Dict{String,Any}) at /home/akara/.julia/packages/LanguageServer/wMPrf/src/protocol/initialize.jl:183 [6] parse_params(::Type{Val{:initialize}}, ::Dict{String,Any}) at /home/akara/.julia/packages/LanguageServer/wMPrf/src/requests/init.jl:98 [7] parse(::Type{LanguageServer.JSONRPC.Request}, ::Dict{String,Any}) at /home/akara/.julia/packages/LanguageServer/wMPrf/src/jsonrpc.jl:46 [8] run(::LanguageServerInstance) at /home/akara/.julia/packages/LanguageServer/wMPrf/src/languageserverinstance.jl:215 [9] top-level scope at none:1
LanguageClient.log ` ####### LanguageClient 0.1.156 ####### 17:36:49 INFO reader-None src/rpcclient.rs:169 <= None {"id": 5, "jsonrpc": "2.0", "result": [1, {"julia": ["julia", "--startup-file=no", "--history-file=no", "-e", " using LanguageServer; using Pkg; import StaticLint; import SymbolServer; env_path = dirname(Pkg.Types.Context().env.project_file); debug = false; server = LanguageServerInstance(stdin, stdout, debug, env_path); server.runlinter = true; run(server); "], "python": ["/bin/pyls"]}, null, null, "/home/akara/.vim/plugged/LanguageClient-neovim/.vim/settings.json", 1, null, null, null, 1, "Quickfix", {}, "Warning", "Auto", 0, 1]} 17:36:49 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"eval","params":["[get(g:, 'LanguageClient_diagnosticsSignsMax', v:null), get(g:, 'LanguageClient_diagnosticsMaxSeverity', 'Hint'), get(g:, each time I try shift-K'LanguageClient_documentHighlightDisplay', {}), !!s:GetVar('LanguageClient_selectionUI_autoOpen', 1), s:useVirtualText(), !!s:GetVar('LanguageClient_echoProjectRoot', 1)]"],"id":6} 17:36:49 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"eval","params":["[!!get(g:, 'LanguageClient_autoStart', 1), s:GetVar('LanguageClient_serverCommands', {}), get(g:, 'LanguageClient_selectionUI', v:null), get(g:, 'LanguageClient_trace', v:null), expand(get(g:, 'LanguageClient_settingsPath', '.vim/settings.json')), !!get(g:, 'LanguageClient_loadSettings', 1), get(g:, 'LanguageClient_rootMarkers', v:null), get(g:, 'LanguageClient_changeThrottle', v:null), get(g:, 'LanguageClient_waitOutputTimeout', v:null), !!get(g:, 'LanguageClient_diagnosticsEnable', 1), get(g:, 'LanguageClient_diagnosticsList', 'Quickfix'), get(g:, 'LanguageClient_diagnosticsDisplay', {}), get(g:, 'LanguageClient_windowLogMessageLevel', 'Warning'), get(g:, 'LanguageClient_hoverPreview', 'Auto'), get(g:, 'LanguageClient_completionPreferTextEdit', 0), has('nvim')]"],"id":7} 17:36:49 INFO reader-None src/rpcclient.rs:169 <= None {"id": 6, "jsonrpc": "2.0", "result": [null, "Hint", {}, 1, "All", 1]} 17:36:49 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"eval","params":["get(g:, 'loaded_fzf')"],"id":8} 17:36:49 INFO reader-None src/rpcclient.rs:169 <= None {"id": 7, "jsonrpc": "2.0", "result": [1, {"julia": ["julia", "--startup-file=no", "--history-file=no", "-e", " using LanguageServer; using Pkg; import StaticLint; import SymbolServer; env_path = dirname(Pkg.Types.Context().env.project_file); debug = false; server = LanguageServerInstance(stdin, stdout, debug, env_path); server.runlinter = true; run(server); "], "python": ["/bin/pyls"]}, null, null, "/home/akara/.vim/plugged/LanguageClient-neovim/.vim/settings.json", 1, null, null, null, 1, "Quickfix", {}, "Warning", "Auto", 0, 1]} 17:36:49 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"eval","params":["[get(g:, 'LanguageClient_diagnosticsSignsMax', v:null), get(g:, 'LanguageClient_diagnosticsMaxSeverity', 'Hint'), get(g:, 'LanguageClient_documentHighlightDisplay', {}), !!s:GetVar('LanguageClient_selectionUI_autoOpen', 1), s:useVirtualText(), !!s:GetVar('LanguageClient_echoProjectRoot', 1)]"],"id":9} 17:36:49 INFO reader-None src/rpcclient.rs:169 <= None {"id": 8, "jsonrpc": "2.0", "result": 0} 17:36:49 INFO reader-None src/rpcclient.rs:169 <= None {"id": 9, "jsonrpc": "2.0", "result": [null, "Hint", {}, 1, "All", 1]} 17:36:49 DEBUG unnamed src/language_client.rs:65 state.settingsPath: ".vim/settings.json" ==> "/home/akara/.vim/plugged/LanguageClient-neovim/.vim/settings.json" 17:36:49 DEBUG unnamed src/language_client.rs:65 state.loggingLevel: "WARN" ==> "DEBUG" 17:36:49 DEBUG unnamed src/language_client.rs:65 state.serverCommands.python: null ==> ["/bin/pyls"] 17:36:49 DEBUG unnamed src/language_client.rs:65 state.trace: null ==> "off" 17:36:49 DEBUG unnamed src/language_client.rs:65 state.serverCommands.julia: null ==> ["julia","--startup-file=no","--history-file=no","-e"," using LanguageServer; using Pkg; import StaticLint; import SymbolServer; env_path = dirname(Pkg.Types.Context().env.project_file); debug = false; server = LanguageServerInstance(stdin, stdout, debug, env_path); server.runlinter = true; run(server); "] 17:36:49 DEBUG unnamed src/language_client.rs:65 state.loggingFile: null ==> "/home/akara/.local/share/nvim/LanguageClient.log" 17:36:49 DEBUG unnamed src/language_client.rs:65 state.loadSettings: false ==> true 17:36:49 DEBUG unnamed src/language_client.rs:65 state.is_nvim: false ==> true 17:36:49 DEBUG unnamed src/language_client.rs:65 state.serverStderr: null ==> "/home/akara/.local/share/nvim/LanguageServer.log" 17:36:49 INFO unnamed src/language_server_protocol.rs:238 End sync settings 17:36:49 INFO unnamed src/language_server_protocol.rs:3082 settings synced 17:36:49 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"eval","params":["get(g:, 'loaded_fzf')"],"id":10} 17:36:49 WARN unnamed src/language_server_protocol.rs:2389 Failed to start language server automatically. No language server commands found for filetype: lisp 17:36:49 INFO unnamed src/language_server_protocol.rs:2394 End languageClient/handleFileType 17:36:49 INFO reader-None src/rpcclient.rs:169 <= None {"id": 10, "jsonrpc": "2.0", "result": 0} 17:36:49 INFO unnamed src/language_server_protocol.rs:238 End sync settings 17:36:49 INFO unnamed src/language_server_protocol.rs:3082 settings synced 17:36:49 WARN unnamed src/utils.rs:77 Unknown project type. Fallback to use dir as project root: Ok("/home/akara") 17:36:49 INFO unnamed src/language_server_protocol.rs:3108 Project root: /home/akara 17:36:49 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"s:EchomsgEllipsis","params":["Project root: /home/akara"]} 17:36:49 DEBUG unnamed src/language_client.rs:65 state.roots.julia: null ==> "/home/akara" 17:36:49 INFO unnamed src/language_server_protocol.rs:3185 End languageClient/startServer 17:36:49 INFO unnamed src/language_server_protocol.rs:257 Defining signs 17:36:49 INFO unnamed src/language_server_protocol.rs:963 Begin initialize 17:36:49 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"s:command","params":["sign define LanguageClientInformation text=ℹ texthl=ALEInfoSign","sign define LanguageClientHint text=➤ texthl=ALEInfoSign","sign define LanguageClientError text=✖ texthl=ALEErrorSign","sign define LanguageClientWarning text=⚠ texthl=ALEWarningSign"]} 17:36:49 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"eval","params":["s:hasSnippetSupport()"],"id":11} 17:36:49 INFO reader-None src/rpcclient.rs:169 <= None {"id": 11, "jsonrpc": "2.0", "result": 0} 17:36:49 INFO writer-Some("julia") src/rpcclient.rs:215 => Some("julia") {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"codeLens":{"dynamicRegistration":true},"colorProvider":null,"completion":{"completionItem":{"snippetSupport":false}},"declaration":{"linkSupport":true},"definition":{"linkSupport":true},"implementation":{"linkSupport":true},"publishDiagnostics":{"relatedInformation":true},"signatureHelp":{"signatureInformation":{"parameterInformation":{"labelOffsetSupport":true}}},"typeDefinition":{"linkSupport":true}},"workspace":{"applyEdit":true,"didChangeWatchedFiles":{"dynamicRegistration":true}}},"processId":90624,"rootPath":"/home/akara","rootUri":"file:///home/akara","trace":"off"},"id":1} 17:36:52 INFO reader-None src/rpcclient.rs:169 <= None {"id": 1, "jsonrpc": "2.0", "method": "textDocument/hover", "params": {"bufnr": 1, "character": 10, "handle": true, "languageId": "julia", "line": 0, "text": ["using LanguageServer", "using Pkg", "import StaticLint", ""], "filename": "/home/akara/test.jl"}} 17:36:52 INFO unnamed src/language_server_protocol.rs:1911 Begin textDocument/didChange 17:36:52 INFO unnamed src/language_server_protocol.rs:1915 Not opened yet. Switching to didOpen. 17:36:52 INFO unnamed src/language_server_protocol.rs:1870 Begin textDocument/didOpen 17:36:52 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"LSP#text","params":["/home/akara/test.jl"],"id":12} 17:36:52 INFO reader-None src/rpcclient.rs:169 <= None {"id": 12, "jsonrpc": "2.0", "result": ["using LanguageServer", "using Pkg", "import StaticLint", ""]} 17:36:52 DEBUG unnamed src/language_client.rs:65 state.text_documents./home/akara/test.jl: null ==> {"languageId":"julia","text":"using LanguageServer\nusing Pkg\nimport StaticLint\n","uri":"file:///home/akara/test.jl","version":0} 17:36:52 INFO unnamed src/language_server_protocol.rs:1832 Begin textDocument/codeLens 17:36:52 INFO writer-Some("julia") src/rpcclient.rs:215 => Some("julia") {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"julia","text":"using LanguageServer\nusing Pkg\nimport StaticLint\n","uri":"file:///home/akara/test.jl","version":0}}} 17:36:52 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"s:command","params":["setlocal omnifunc=LanguageClient#complete"]} 17:36:52 INFO writer-Some("julia") src/rpcclient.rs:215 => Some("julia") {"jsonrpc":"2.0","method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///home/akara/test.jl"}},"id":2} 17:36:52 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"setbufvar","params":["/home/akara/test.jl","LanguageClient_projectRoot","/home/akara"]} 17:36:52 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"s:ExecuteAutocmd","params":["LanguageClientTextDocumentDidOpenPost"]} 17:36:54 INFO reader-None src/rpcclient.rs:169 <= None {"id": 2, "jsonrpc": "2.0", "method": "textDocument/hover", "params": {"bufnr": 1, "character": 10, "handle": true, "languageId": "julia", "line": 0, "text": ["using LanguageServer", "using Pkg", "import StaticLint", ""], "filename": "/home/akara/test.jl"}} 17:36:54 INFO unnamed src/language_server_protocol.rs:1911 Begin textDocument/didChange 17:36:54 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"LSP#text","params":["/home/akara/test.jl"],"id":13} 17:36:54 INFO reader-None src/rpcclient.rs:169 <= None {"id": 13, "jsonrpc": "2.0", "result": ["using LanguageServer", "using Pkg", "import StaticLint", ""]} 17:36:54 INFO unnamed src/language_server_protocol.rs:1928 Texts equal. Skipping didChange. 17:36:54 INFO unnamed src/language_server_protocol.rs:1086 Begin textDocument/hover 17:36:54 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"eval","params":["LSP#position()"],"id":14} 17:36:54 INFO reader-None src/rpcclient.rs:169 <= None {"id": 14, "jsonrpc": "2.0", "result": {"character": 10, "line": 0}} 17:36:54 INFO writer-Some("julia") src/rpcclient.rs:215 => Some("julia") {"jsonrpc":"2.0","method":"textDocument/hover","params":{"position":{"character":10,"line":0},"textDocument":{"uri":"file:///home/akara/test.jl"}},"id":3} 17:36:55 INFO reader-None src/rpcclient.rs:169 <= None {"id": 3, "jsonrpc": "2.0", "method": "textDocument/hover", "params": {"bufnr": 1, "character": 10, "handle": true, "languageId": "julia", "line": 0, "text": ["using LanguageServer", "using Pkg", "import StaticLint", ""], "filename": "/home/akara/test.jl"}} 17:36:55 INFO unnamed src/language_server_protocol.rs:1911 Begin textDocument/didChange 17:36:55 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"LSP#text","params":["/home/akara/test.jl"],"id":15} 17:36:55 INFO reader-None src/rpcclient.rs:169 <= None {"id": 15, "jsonrpc": "2.0", "result": ["using LanguageServer", "using Pkg", "import StaticLint", ""]} 17:36:55 INFO unnamed src/language_server_protocol.rs:1928 Texts equal. Skipping didChange. 17:36:55 INFO unnamed src/language_server_protocol.rs:1086 Begin textDocument/hover 17:36:55 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"eval","params":["LSP#position()"],"id":16} 17:36:55 INFO reader-None src/rpcclient.rs:169 <= None {"id": 16, "jsonrpc": "2.0", "result": {"character": 10, "line": 0}} 17:36:55 INFO writer-Some("julia") src/rpcclient.rs:215 => Some("julia") {"jsonrpc":"2.0","method":"textDocument/hover","params":{"position":{"character":10,"line":0},"textDocument":{"uri":"file:///home/akara/test.jl"}},"id":4} 17:36:56 INFO reader-None src/rpcclient.rs:169 <= None {"method": "languageClient/handleCursorMoved", "jsonrpc": "2.0", "params": {"bufnr": 1, "viewport": {"end": 3, "start": 0}, "languageId": "julia", "buftype": "", "position": {"character": 8, "line": 1}, "filename": "/home/akara/test.jl"}} 17:36:56 INFO unnamed src/language_server_protocol.rs:2454 Begin languageClient/handleCursorMoved 17:36:57 INFO reader-None src/rpcclient.rs:169 <= None {"method": "languageClient/handleCursorMoved", "jsonrpc": "2.0", "params": {"bufnr": 1, "viewport": {"end": 3, "start": 0}, "languageId": "julia", "buftype": "", "position": {"character": 10, "line": 2}, "filename": "/home/akara/test.jl"}} 17:36:57 INFO unnamed src/language_server_protocol.rs:2454 Begin languageClient/handleCursorMoved 17:36:57 INFO reader-None src/rpcclient.rs:169 <= None {"method": "languageClient/handleCursorMoved", "jsonrpc": "2.0", "params": {"bufnr": 1, "viewport": {"end": 3, "start": 0}, "languageId": "julia", "buftype": "", "position": {"character": 8, "line": 1}, "filename": "/home/akara/test.jl"}} 17:36:57 INFO unnamed src/language_server_protocol.rs:2454 Begin languageClient/handleCursorMoved 17:36:58 INFO reader-None src/rpcclient.rs:169 <= None {"method": "languageClient/handleCursorMoved", "jsonrpc": "2.0", "params": {"bufnr": 1, "viewport": {"end": 3, "start": 0}, "languageId": "julia", "buftype": "", "position": {"character": 10, "line": 0}, "filename": "/home/akara/test.jl"}} 17:36:58 INFO unnamed src/language_server_protocol.rs:2454 Begin languageClient/handleCursorMoved 17:37:04 ERROR reader-Some("julia") src/rpcclient.rs:35 Thread reader-Some("julia") exited with error: ErrorMessage { msg: "Unable to read from language server" } 17:37:48 INFO reader-None src/rpcclient.rs:169 <= None {"id": 4, "jsonrpc": "2.0", "method": "textDocument/hover", "params": {"bufnr": 1, "character": 10, "handle": true, "languageId": "julia", "line": 0, "text": ["using LanguageServer", "using Pkg", "import StaticLint", ""], "filename": "/home/akara/test.jl"}} 17:37:48 INFO unnamed src/language_server_protocol.rs:1911 Begin textDocument/didChange 17:37:48 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"LSP#text","params":["/home/akara/test.jl"],"id":17} 17:37:48 INFO reader-None src/rpcclient.rs:169 <= None {"id": 17, "jsonrpc": "2.0", "result": ["using LanguageServer", "using Pkg", "import StaticLint", ""]} 17:37:48 INFO unnamed src/language_server_protocol.rs:1928 Texts equal. Skipping didChange. 17:37:48 INFO unnamed src/language_server_protocol.rs:1086 Begin textDocument/hover 17:37:48 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","method":"eval","params":["LSP#position()"],"id":18} 17:37:48 INFO reader-None src/rpcclient.rs:169 <= None {"id": 18, "jsonrpc": "2.0", "result": {"character": 10, "line": 0}} 17:37:48 ERROR unnamed src/rpchandler.rs:13 Error handling message: sending on a disconnected channel
Message: {"jsonrpc":"2.0","method":"textDocument/hover","params":{"bufnr":1,"character":10,"filename":"/home/akara/test.jl","handle":true,"languageId":"julia","line":0,"text":["using LanguageServer","using Pkg","import StaticLint",""]},"id":4}
Error: "SendError(..)" 17:37:48 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","error":{"code":-32603,"message":"sending on a disconnected channel"},"id":4} 17:37:49 WARN unnamed src/language_server_protocol.rs:2389 Failed to start language server automatically. timed out waiting on receive operation 17:37:49 INFO unnamed src/language_server_protocol.rs:2394 End languageClient/handleFileType 17:37:52 ERROR unnamed src/rpchandler.rs:13 Error handling message: timed out waiting on receive operation
Message: {"jsonrpc":"2.0","method":"textDocument/hover","params":{"bufnr":1,"character":10,"filename":"/home/akara/test.jl","handle":true,"languageId":"julia","line":0,"text":["using LanguageServer","using Pkg","import StaticLint",""]},"id":1}
Error: Timeout 17:37:52 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","error":{"code":-32603,"message":"timed out waiting on receive operation"},"id":1} 17:37:54 ERROR unnamed src/rpchandler.rs:13 Error handling message: timed out waiting on receive operation
Message: {"jsonrpc":"2.0","method":"textDocument/hover","params":{"bufnr":1,"character":10,"filename":"/home/akara/test.jl","handle":true,"languageId":"julia","line":0,"text":["using LanguageServer","using Pkg","import StaticLint",""]},"id":2}
Error: Timeout 17:37:54 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","error":{"code":-32603,"message":"timed out waiting on receive operation"},"id":2} 17:37:55 ERROR unnamed src/rpchandler.rs:13 Error handling message: timed out waiting on receive operation
Message: {"jsonrpc":"2.0","method":"textDocument/hover","params":{"bufnr":1,"character":10,"filename":"/home/akara/test.jl","handle":true,"languageId":"julia","line":0,"text":["using LanguageServer","using Pkg","import StaticLint",""]},"id":3}
Error: Timeout 17:37:55 INFO writer-None src/rpcclient.rs:215 => None {"jsonrpc":"2.0","error":{"code":-32603,"message":"timed out waiting on receive operation"},"id":3} `
I am having the same issue with Julia 1.4 and nvim 0.4.3.