haskell / haskell-language-server

Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.
Apache License 2.0
2.72k stars 368 forks source link

HLS fails when $XDG_CACHE_HOME/hie-bios is missing #1403

Closed jflanglois closed 3 years ago

jflanglois commented 3 years ago

Your environment

Output of haskell-language-server --probe-tools or haskell-language-server-wrapper --probe-tools:

haskell-language-server version: 0.9.0.0 (GHC: 8.8.4) (PATH: /nix/store/xm31b7c3y15czjv2d9fiwv2lwf5hygmi-haskell-language-server-exe-haskell-language-server-0.9.0.0/bin/haskell-language-server)
Tool versions found on the $PATH
cabal:      3.2.0.0
stack:      Not found
ghc:        8.8.4

Which lsp-client do you use: LanguageClient_neovim

Describe your project (alternative: link to the project): Any simple cabal project

Contents of hie.yaml:

cradle:
  cabal:

Steps to reproduce

Run haskell-language-server or use a plugin and observe the output

Expected behaviour

Actual behaviour

HLS should proceed as normal after creating $XDG_CACHE_HOME/hie-bios

Include debug information

Execute in the root of your project the command haskell-language-server --debug . and paste the logs here:

Debug output: ``` haskell-language-server version: 0.9.0.0 (GHC: 8.8.4) (PATH: /nix/store/xm31b7c3y15czjv2d9fiwv2lwf5hygmi-haskell-language-server-exe-haskell-language-server-0.9.0.0/bin/haskell-language-server) (haskell-language-server)Ghcide setup tester in /home/julien/development/hls-qq-example. Report bugs at https://github.com/haskell/haskell-language-server/issues Tool versions found on the $PATH cabal: 3.2.0.0 stack: Not found ghc: 8.8.4 Step 1/4: Finding files to test in /home/julien/development/hls-qq-example Found 1 files Step 2/4: Looking for hie.yaml files that control setup Found 1 cradle Step 3/4: Initializing the IDE Step 4/4: Type checking the files [INFO] Consulting the cradle for "Main.hs" Output from setting up the cradle Cradle {cradleRootDir = "/home/julien/development/hls-qq-example", cradleOptsProg = CradleAction: Cabal} File: /home/julien/development/hls-qq-example/Main.hs Hidden: no Range: 1:1-2:1 Source: compiler Severity: DsError Message: /home/julien/.cache/hie-bios/wrapper-13a09b18ea883dd377d59db5e821a86b: openFile: does not exist (No such file or directory) Files that failed: * /home/julien/development/hls-qq-example/Main.hs Completed (0 files worked, 1 file failed) [INFO] finish: User TypeCheck (took 0.00s) ```

Paste the logs from the lsp-client, e.g. for VS Code

LSP logs: ``` ####### LanguageClient 0.1.160 ####### 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["[!!get(g:, 'LanguageClient_autoStart', 1), s:GetVar('LanguageClient_serverCommands', {}), s:getSelectionUI(), get(g:, 'LanguageClient_trace', v:null), map(s:ToList(get(g:, 'LanguageClient_settingsPath', '.vim/settings.json')), 'expand(v:val)'), !!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":2} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 2, "jsonrpc": "2.0", "result": [1, {"haskell": ["haskell-language-server", "--lsp"], "rust": ["rls"], "cpp": ["clangd"]}, null, null, [".vim/settings.json"], 1, null, null, null, 1, "Quickfix", {}, "Warning", "Auto", 0, 1]} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["[get(g:, 'LanguageClient_diagnosticsSignsMax', v:null), get(g:, 'LanguageClient_diagnosticsMaxSeverity', 'Hint'), get(g:, 'LanguageClient_diagnosticsIgnoreSources', []), get(g:, 'LanguageClient_documentHighlightDisplay', {}), !!s:GetVar('LanguageClient_selectionUI_autoOpen', 1), s:useVirtualText(), !!s:GetVar('LanguageClient_echoProjectRoot', 1), s:GetVar('LanguageClient_semanticHighlightMaps', {}), s:GetVar('LanguageClient_semanticScopeSeparator', ':'), get(g:, 'LanguageClient_applyCompletionAdditionalTextEdits', 1), get(g:, 'LanguageClient_preferredMarkupKind', v:null), s:GetVar('LanguageClient_hideVirtualTextsOnInsert', 0), get(g:, 'LanguageClient_enableExtensions', v:null), get(g:, 'LanguageClient_codeLensHighlightGroup', 'Comment')]"],"id":3} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 3, "jsonrpc": "2.0", "result": [null, "Hint", [], {}, 1, "All", 1, {}, ":", 1, null, 0, null, "Comment"]} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["get(g:, 'loaded_fzf')"],"id":4} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 4, "jsonrpc": "2.0", "result": 1} 14:38:14 INFO unnamed src/language_server_protocol.rs:338 End sync settings 14:38:14 INFO unnamed src/language_server_protocol.rs:3886 settings synced 14:38:14 INFO unnamed src/language_server_protocol.rs:3912 Project root: /home/julien/development/hls-qq-example 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"s:EchomsgEllipsis","params":["Project root: /home/julien/development/hls-qq-example"]} 14:38:14 INFO unnamed src/language_server_protocol.rs:3989 End languageClient/startServer 14:38:14 INFO unnamed src/language_server_protocol.rs:382 Defining signs 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"s:command","params":["sign define LanguageClientWarning text=⚠ texthl=ALEWarningSign","sign define LanguageClientInformation text=ℹ texthl=ALEInfoSign","sign define LanguageClientHint text=➤ texthl=ALEInfoSign","sign define LanguageClientError text=✖ texthl=ALEErrorSign"]} 14:38:14 INFO unnamed src/language_server_protocol.rs:1142 Begin initialize 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["s:hasSnippetSupport()"],"id":5} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 5, "jsonrpc": "2.0", "result": 0} 14:38:14 WARN unnamed src/language_server_protocol.rs:1154 Failed to get initializationOptions: Failed to read file (/home/julien/development/hls-qq-example/.vim/settings.json) 14:38:14 INFO writer-Some("haskell") src/rpcclient.rs:238 => Some("haskell") {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"codeLens":{"dynamicRegistration":true},"colorProvider":{"dynamicRegistration":false},"completion":{"completionItem":{"insertReplaceSupport":false,"snippetSupport":false}},"declaration":{"linkSupport":true},"definition":{"linkSupport":true},"hover":{},"implementation":{"linkSupport":true},"publishDiagnostics":{"relatedInformation":true},"semanticHighlightingCapabilities":{"semanticHighlighting":true},"signatureHelp":{"signatureInformation":{"parameterInformation":{"labelOffsetSupport":true}}},"typeDefinition":{"linkSupport":true}},"workspace":{"applyEdit":true,"didChangeWatchedFiles":{"dynamicRegistration":true}}},"clientInfo":{"name":"LanguageClient-neovim","version":"0.1.160"},"processId":9068,"rootPath":"/home/julien/development/hls-qq-example","rootUri":"file:///home/julien/development/hls-qq-example","trace":"off"},"id":0} 14:38:14 INFO reader-Some("haskell") src/rpcclient.rs:191 <= Some("haskell") {"result":{"capabilities":{"typeDefinitionProvider":true,"foldingRangeProvider":false,"textDocumentSync":{"openClose":true,"change":2,"save":{}},"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"implementationProvider":true,"documentRangeFormattingProvider":true,"documentHighlightProvider":true,"executeCommandProvider":{"commands":["9164:class:addMinimalMethodPlaceholders","9164:eval:evalCommand","9164:ghcide-type-lenses:typesignature.add","9164:hlint:applyOne","9164:hlint:applyAll","9164:moduleName:edit","9164:retrie:retrieCommand","9164:splice:expandTHSpliceInplace","9164:tactic:tacticsAutoCommand","9164:tactic:tacticsIntrosCommand","9164:tactic:tacticsDestructCommand","9164:tactic:tacticsHomomorphismCommand","9164:tactic:tacticsDestructLambdaCaseCommand","9164:tactic:tacticsHomomorphismLambdaCaseCommand"]},"renameProvider":false,"colorProvider":false,"definitionProvider":true,"hoverProvider":true,"codeActionProvider":true,"completionProvider":{"triggerCharacters":["."],"resolveProvider":false},"codeLensProvider":{},"documentSymbolProvider":true,"documentFormattingProvider":true}},"jsonrpc":"2.0","id":0} 14:38:14 INFO unnamed src/language_server_protocol.rs:1284 End initialize 14:38:14 INFO unnamed src/language_server_protocol.rs:852 Begin register NCM source 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["exists('g:cm_matcher')"],"id":6} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 6, "jsonrpc": "2.0", "result": 0} 14:38:14 INFO unnamed src/language_server_protocol.rs:893 Begin register NCM2 source 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["exists('g:ncm2_loaded')"],"id":7} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 7, "jsonrpc": "2.0", "result": 0} 14:38:14 INFO unnamed src/language_server_protocol.rs:934 Begin parse Semantic Scopes 14:38:14 INFO unnamed src/language_server_protocol.rs:946 End parse Semantic Scopes 14:38:14 INFO unnamed src/language_server_protocol.rs:1306 Begin initialized 14:38:14 INFO unnamed src/language_server_protocol.rs:954 Begin updateSemanticHighlightTables 14:38:14 INFO unnamed src/language_server_protocol.rs:1004 End updateSemanticHighlightTables 14:38:14 INFO unnamed src/language_server_protocol.rs:1314 End initialized 14:38:14 INFO writer-Some("haskell") src/rpcclient.rs:238 => Some("haskell") {"jsonrpc":"2.0","method":"initialized","params":{}} 14:38:14 WARN unnamed src/language_server_protocol.rs:4005 Failed to get workspace settings: Failed to read file (/home/julien/development/hls-qq-example/.vim/settings.json) 14:38:14 INFO unnamed src/language_server_protocol.rs:2207 Begin textDocument/didOpen 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"setbufvar","params":["/home/julien/development/hls-qq-example/Main.hs","LanguageClient_isServerRunning",1]} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"LSP#text","params":["/home/julien/development/hls-qq-example/Main.hs"],"id":8} 14:38:14 INFO reader-Some("haskell") src/rpcclient.rs:191 <= Some("haskell") {"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"**/*.hs"},{"kind":5,"globPattern":"**/*.hs-boot"},{"kind":5,"globPattern":"**/*.lhs"},{"kind":5,"globPattern":"**/*.lhs-boot"}]},"method":"workspace/didChangeWatchedFiles","id":"globalFileWatches"}]},"method":"client/registerCapability","id":0} 14:38:14 INFO unnamed src/language_server_protocol.rs:2785 Begin client/registerCapability 14:38:14 INFO unnamed src/language_server_protocol.rs:2806 Watching glob pattern: **/*.hs 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 8, "jsonrpc": "2.0", "result": ["{-# LANGUAGE QuasiQuotes #-}", "", "import Data.String.Interpolate (i)", "", "main :: IO ()", "main = do", " putStrLn [i|Hello #{42 :: Int}|]", ""]} 14:38:14 INFO unnamed src/language_server_protocol.rs:2818 Start watching path "Main.hs" 14:38:14 INFO unnamed src/language_server_protocol.rs:2806 Watching glob pattern: **/*.hs-boot 14:38:14 INFO unnamed src/language_server_protocol.rs:2806 Watching glob pattern: **/*.lhs 14:38:14 INFO unnamed src/language_server_protocol.rs:2806 Watching glob pattern: **/*.lhs-boot 14:38:14 INFO unnamed src/language_server_protocol.rs:2840 End client/registerCapability 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["s:GetVar('LanguageClient_setOmnifunc', v:true)"],"id":9} 14:38:14 INFO writer-Some("haskell") src/rpcclient.rs:238 => Some("haskell") {"jsonrpc":"2.0","result":null,"id":0} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 9, "jsonrpc": "2.0", "result": true} 14:38:14 INFO writer-Some("haskell") src/rpcclient.rs:238 => Some("haskell") {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"haskell","text":"{-# LANGUAGE QuasiQuotes #-}\n\nimport Data.String.Interpolate (i)\n\nmain :: IO ()\nmain = do\n putStrLn [i|Hello #{42 :: Int}|]\n","uri":"file:///home/julien/development/hls-qq-example/Main.hs","version":0}}} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"s:command","params":["setlocal omnifunc=LanguageClient#complete"]} 14:38:14 INFO unnamed src/language_server_protocol.rs:2157 Begin textDocument/codeLens 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"setbufvar","params":["/home/julien/development/hls-qq-example/Main.hs","LanguageClient_projectRoot","/home/julien/development/hls-qq-example"]} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"s:ExecuteAutocmd","params":["LanguageClientTextDocumentDidOpenPost"]} 14:38:14 INFO writer-Some("haskell") src/rpcclient.rs:238 => Some("haskell") {"jsonrpc":"2.0","method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///home/julien/development/hls-qq-example/Main.hs"}},"id":1} 14:38:14 INFO reader-Some("haskell") src/rpcclient.rs:191 <= Some("haskell") {"jsonrpc":"2.0","params":{"uri":"file:///home/julien/development/hls-qq-example/Main.hs","diagnostics":[{"severity":1,"range":{"start":{"line":0,"character":0},"end":{"line":1,"character":0}},"source":"compiler","message":"/home/julien/.cache/hie-bios/wrapper-13a09b18ea883dd377d59db5e821a86b: openFile: does not exist (No such file or directory)"}]},"method":"textDocument/publishDiagnostics"} 14:38:14 INFO unnamed src/language_server_protocol.rs:2381 Begin textDocument/publishDiagnostics 14:38:14 INFO unnamed src/vim.rs:210 Begin setqflist 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"setqflist","params":[[{"col":1,"filename":"/home/julien/development/hls-qq-example/Main.hs","lnum":1,"nr":null,"text":"/home/julien/.cache/hie-bios/wrapper-13a09b18ea883dd377d59db5e821a86b: openFile: does not exist (No such file or directory)","type":"E"}],"r"]} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"setqflist","params":[[],"a",{"title":"[LC]: diagnostics"}]} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["bufnr('/home/julien/development/hls-qq-example/Main.hs')"],"id":10} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 10, "jsonrpc": "2.0", "result": 1} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"setbufvar","params":["/home/julien/development/hls-qq-example/Main.hs","LanguageClient_statusLineDiagnosticsCounts",{"E":1,"H":0,"I":0,"W":0}]} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["LSP#filename()"],"id":11} 14:38:14 INFO reader-Some("haskell") src/rpcclient.rs:191 <= Some("haskell") {"error":{"code":-32603,"message":"BadDependency \"GhcSession\""},"jsonrpc":"2.0","id":1} 14:38:14 WARN unnamed src/language_server_protocol.rs:3081 Failed to start language server automatically. Error: Failure { jsonrpc: Some(V2), error: Error { code: InternalError, message: "BadDependency \"GhcSession\"", data: None }, id: Num(1) } 14:38:14 INFO unnamed src/language_server_protocol.rs:3086 End languageClient/handleFileType 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 11, "jsonrpc": "2.0", "result": "/home/julien/development/hls-qq-example/Main.hs"} 14:38:14 INFO unnamed src/language_server_protocol.rs:3146 Begin languageClient/handleCursorMoved 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["LSP#filename()"],"id":12} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 12, "jsonrpc": "2.0", "result": "/home/julien/development/hls-qq-example/Main.hs"} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"getbufvar","params":["/home/julien/development/hls-qq-example/Main.hs","&filetype"],"id":13} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 13, "jsonrpc": "2.0", "result": "haskell"} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["LSP#position()"],"id":14} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 14, "jsonrpc": "2.0", "result": {"character": 0, "line": 0}} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["LSP#viewport()"],"id":15} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 15, "jsonrpc": "2.0", "result": {"end": 7, "start": 0}} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"s:set_signs","params":["/home/julien/development/hls-qq-example/Main.hs",[{"id":75001,"line":0,"name":"LanguageClientError"}],[]],"id":16} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 16, "jsonrpc": "2.0", "result": 0} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"nvim_buf_add_highlight","params":[0,0,"Error",1,1,1],"id":17} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 17, "jsonrpc": "2.0", "result": 1} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"nvim_buf_clear_highlight","params":[0,1,0,7]} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"s:AddHighlights","params":[1,[{"character_end":0,"character_start":0,"group":"ALEError","line":0,"text":""}]]} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["LSP#filename()"],"id":18} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 18, "jsonrpc": "2.0", "result": "/home/julien/development/hls-qq-example/Main.hs"} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["LSP#viewport()"],"id":19} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 19, "jsonrpc": "2.0", "result": {"end": 7, "start": 0}} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["bufnr('/home/julien/development/hls-qq-example/Main.hs')"],"id":20} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 20, "jsonrpc": "2.0", "result": 1} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"nvim_create_namespace","params":["LanguageClient_VirtualText"],"id":21} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 21, "jsonrpc": "2.0", "result": 2} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"mode","params":[],"id":22} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 22, "jsonrpc": "2.0", "result": "n"} 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"s:set_virtual_texts","params":[1,2,0,7,[{"hl_group":"Error","line":0,"text":"compiler: /home/julien/.cache/hie-bios/wrapper-13a09b18ea883dd377d59db5e821a86b: openFile: does not exist (No such file or directory) "}]],"id":23} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 23, "jsonrpc": "2.0", "result": 0} 14:38:14 INFO unnamed src/language_server_protocol.rs:3297 End languageClient/handleCursorMoved 14:38:14 INFO unnamed src/language_server_protocol.rs:2499 End textDocument/publishDiagnostics 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"s:ExecuteAutocmd","params":["LanguageClientDiagnosticsChanged"]} 14:38:14 INFO reader-None src/rpcclient.rs:191 <= None {"id": 1, "jsonrpc": "2.0", "method": "languageClient/getState", "params": {"bufnr": 1, "languageId": "haskell"}} 14:38:14 INFO unnamed src/language_server_protocol.rs:2909 Begin languageClient/getState 14:38:14 INFO unnamed src/language_server_protocol.rs:2911 End languageClient/getState 14:38:14 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","result":"{\"capabilities\":{\"haskell\":{\"capabilities\":{\"textDocumentSync\":{\"openClose\":true,\"change\":2,\"save\":{}},\"hoverProvider\":true,\"completionProvider\":{\"resolveProvider\":false,\"triggerCharacters\":[\".\"]},\"definitionProvider\":true,\"typeDefinitionProvider\":true,\"implementationProvider\":true,\"documentHighlightProvider\":true,\"documentSymbolProvider\":true,\"codeActionProvider\":true,\"codeLensProvider\":{},\"documentFormattingProvider\":true,\"documentRangeFormattingProvider\":true,\"renameProvider\":false,\"colorProvider\":false,\"foldingRangeProvider\":false,\"executeCommandProvider\":{\"commands\":[\"9164:class:addMinimalMethodPlaceholders\",\"9164:eval:evalCommand\",\"9164:ghcide-type-lenses:typesignature.add\",\"9164:hlint:applyOne\",\"9164:hlint:applyAll\",\"9164:moduleName:edit\",\"9164:retrie:retrieCommand\",\"9164:splice:expandTHSpliceInplace\",\"9164:tactic:tacticsAutoCommand\",\"9164:tactic:tacticsIntrosCommand\",\"9164:tactic:tacticsDestructCommand\",\"9164:tactic:tacticsHomomorphismCommand\",\"9164:tactic:tacticsDestructLambdaCaseCommand\",\"9164:tactic:tacticsHomomorphismLambdaCaseCommand\"]},\"workspace\":{\"workspaceFolders\":{\"supported\":true,\"changeNotifications\":true}}}}},\"registrations\":[{\"id\":\"globalFileWatches\",\"method\":\"workspace/didChangeWatchedFiles\",\"registerOptions\":{\"watchers\":[{\"globPattern\":\"**/*.hs\",\"kind\":5},{\"globPattern\":\"**/*.hs-boot\",\"kind\":5},{\"globPattern\":\"**/*.lhs\",\"kind\":5},{\"globPattern\":\"**/*.lhs-boot\",\"kind\":5}]}}],\"roots\":{\"haskell\":\"/home/julien/development/hls-qq-example\"},\"text_documents\":{\"/home/julien/development/hls-qq-example/Main.hs\":{\"uri\":\"file:///home/julien/development/hls-qq-example/Main.hs\",\"languageId\":\"haskell\",\"version\":0,\"text\":\"{-# LANGUAGE QuasiQuotes #-}\\n\\nimport Data.String.Interpolate (i)\\n\\nmain :: IO ()\\nmain = do\\n putStrLn [i|Hello #{42 :: Int}|]\\n\"}},\"text_documents_metadata\":{},\"semantic_scopes\":{},\"semantic_scope_to_hl_group_table\":{},\"semantic_highlights\":{},\"diagnostics\":{\"/home/julien/development/hls-qq-example/Main.hs\":[{\"range\":{\"start\":{\"line\":0,\"character\":0},\"end\":{\"line\":1,\"character\":0}},\"severity\":1,\"source\":\"compiler\",\"message\":\"/home/julien/.cache/hie-bios/wrapper-13a09b18ea883dd377d59db5e821a86b: openFile: does not exist (No such file or directory)\"}]},\"code_lens\":{},\"code_lens_hl_group\":\"Comment\",\"signs\":{\"/home/julien/development/hls-qq-example/Main.hs\":{\"0\":{\"id\":75001,\"line\":0,\"name\":\"LanguageClientError\"}}},\"namespace_ids\":{\"LanguageClient_VirtualText\":2},\"highlight_source\":1,\"highlights\":{\"/home/julien/development/hls-qq-example/Main.hs\":[{\"line\":0,\"character_start\":0,\"character_end\":0,\"group\":\"ALEError\",\"text\":\"\"}]},\"highlights_placed\":{\"/home/julien/development/hls-qq-example/Main.hs\":[{\"line\":0,\"character_start\":0,\"character_end\":0,\"group\":\"ALEError\",\"text\":\"\"}]},\"highlight_match_ids\":[],\"document_highlight_source\":null,\"user_handlers\":{},\"is_nvim\":true,\"last_cursor_line\":0,\"last_line_diagnostic\":\" \",\"stashed_code_action_actions\":[],\"server_commands\":{\"rust\":[\"rls\"],\"haskell\":[\"haskell-language-server\",\"--lsp\"],\"cpp\":[\"clangd\"]},\"semantic_highlight_maps\":{},\"semantic_scope_separator\":\":\",\"auto_start\":true,\"selection_ui\":\"Funcref\",\"selection_ui_auto_open\":true,\"trace\":\"off\",\"diagnostics_enable\":true,\"diagnostics_list\":\"Quickfix\",\"diagnostics_display\":{\"2\":{\"name\":\"Warning\",\"texthl\":\"ALEWarning\",\"signText\":\"⚠\",\"signTexthl\":\"ALEWarningSign\",\"virtualTexthl\":\"Todo\"},\"3\":{\"name\":\"Information\",\"texthl\":\"ALEInfo\",\"signText\":\"ℹ\",\"signTexthl\":\"ALEInfoSign\",\"virtualTexthl\":\"Todo\"},\"4\":{\"name\":\"Hint\",\"texthl\":\"ALEInfo\",\"signText\":\"➤\",\"signTexthl\":\"ALEInfoSign\",\"virtualTexthl\":\"Todo\"},\"1\":{\"name\":\"Error\",\"texthl\":\"ALEError\",\"signText\":\"✖\",\"signTexthl\":\"ALEErrorSign\",\"virtualTexthl\":\"Error\"}},\"diagnostics_signs_max\":null,\"diagnostics_max_severity\":4,\"diagnostics_ignore_sources\":[],\"document_highlight_display\":{\"1\":{\"name\":\"Text\",\"texthl\":\"SpellCap\"},\"3\":{\"name\":\"Write\",\"texthl\":\"SpellRare\"},\"2\":{\"name\":\"Read\",\"texthl\":\"SpellLocal\"}},\"window_log_message_level\":2,\"settings_path\":[\".vim/settings.json\"],\"load_settings\":true,\"root_markers\":null,\"change_throttle\":null,\"wait_output_timeout\":{\"secs\":10,\"nanos\":0},\"hover_preview\":\"Auto\",\"completion_prefer_text_edit\":false,\"apply_completion_additional_text_edits\":true,\"use_virtual_text\":\"All\",\"hide_virtual_texts_on_insert\":false,\"echo_project_root\":true,\"enable_extensions\":null,\"server_stderr\":\"/home/julien/.local/share/nvim/LanguageServer.log\",\"logger\":{\"level\":\"INFO\",\"path\":\"/home/julien/.local/share/nvim/LanguageClient.log\"},\"preferred_markup_kind\":null}","id":1} 14:38:18 INFO reader-None src/rpcclient.rs:191 <= None {"method": "exit", "jsonrpc": "2.0", "params": {"bufnr": 1, "languageId": "haskell"}} 14:38:18 INFO unnamed src/language_server_protocol.rs:2884 Begin exit 14:38:18 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["LSP#filename()"],"id":24} 14:38:18 INFO reader-None src/rpcclient.rs:191 <= None {"id": 24, "jsonrpc": "2.0", "result": "/home/julien/development/hls-qq-example/Main.hs"} 14:38:18 INFO unnamed src/language_server_protocol.rs:1058 Begin cleanup 14:38:18 INFO writer-Some("haskell") src/rpcclient.rs:238 => Some("haskell") {"jsonrpc":"2.0","method":"exit","params":null} 14:38:18 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"setbufvar","params":["/home/julien/development/hls-qq-example/Main.hs","LanguageClient_isServerRunning",0]} 14:38:18 INFO writer-None src/rpcclient.rs:238 => None {"jsonrpc":"2.0","method":"eval","params":["bufnr('/home/julien/development/hls-qq-example/Main.hs')"],"id":25} 14:38:18 INFO reader-None src/rpcclient.rs:225 reader-None terminated ```
fendor commented 3 years ago

Thank you for the bug-report!

I was able to reproduce on hie-bios, so this is a hie-bios issue. Bug-fix is in the pipeline.

fendor commented 3 years ago

Bug fix is here: https://github.com/mpickering/hie-bios/pull/283

Will take a new release for the fix to be available

jflanglois commented 3 years ago

Wow, thanks for the super fast response!