haskell-ide-engine
haskell-ide-engine copied to clipboard
.hsc files with C headers unsupported? or broken?
$ git https://github.com/haskell/network.git
$ code network
Then from VSCode open Network/Socket/Posix/CmsgHdr.hsc
Got a problem reported:
{
"resource": "/qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc",
"owner": "Haskell HIE (network)",
"severity": 8,
"message": "target ‘/qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc’ is not a module name or a source file\n",
"source": "bios",
"startLineNumber": 1,
"startColumn": 1,
"endLineNumber": 2,
"endColumn": 1
}
Shown in OUTPUT panel - Haskell HIE (network)
:
[client] run command = "hie-wrapper --lsp"
[client] debug command = "hie-wrapper --lsp"
2020-05-06 23:35:33.063356 [ThreadId 4] - run entered for hie-wrapper(hie-wrapper) Version 1.4 x86_64 ghc-8.6.5
2020-05-06 23:35:33.064089 [ThreadId 4] - Current directory:/qw/ews/network
2020-05-06 23:35:33.064143 [ThreadId 4] - Operating system:darwin
2020-05-06 23:35:33.064191 [ThreadId 4] - args:["--lsp"]
2020-05-06 23:35:33.065923 [ThreadId 4] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/qw/ews/network/stack.yaml"}
2020-05-06 23:35:33.065993 [ThreadId 4] - Module "/qw/ews/network/File.hs" is loaded by Cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
2020-05-06 23:35:33.066045 [ThreadId 4] - Cradle directory:/qw/ews/network
2020-05-06 23:35:33.066218 [ThreadId 4] - Executing Stack GHC with args: --numeric-version
2020-05-06 23:35:33.496944 [ThreadId 4] - Project GHC version:8.6.5
2020-05-06 23:35:33.497036 [ThreadId 4] - hie exe candidates :["hie-8.6.5","hie-8.6","hie"]
2020-05-06 23:35:33.497825 [ThreadId 4] - found hie exe at:/Users/cyue/.cabal/bin/hie-8.6.5
2020-05-06 23:35:33.497883 [ThreadId 4] - args:["--lsp"]
2020-05-06 23:35:33.497933 [ThreadId 4] - launching ....
2020-05-06 23:35:33.515663 [ThreadId 4] - Run entered for HIE(hie-8.6.5) Version 1.4 x86_64 ghc-8.6.5
2020-05-06 23:35:33.516312 [ThreadId 4] - Operating as a LSP server on stdio
2020-05-06 23:35:33.516366 [ThreadId 4] - Current directory:/qw/ews/network
2020-05-06 23:35:33.516413 [ThreadId 4] - Operating system:darwin
2020-05-06 23:35:33.516455 [ThreadId 4] - args:["--lsp"]
2020-05-06 23:35:33.550325 [ThreadId 4] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/qw/ews/network/stack.yaml"}
2020-05-06 23:35:33.550426 [ThreadId 4] - Module "/qw/ews/network/File.hs" is loaded by Cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
2020-05-06 23:35:33.550648 [ThreadId 4] - Executing Stack GHC with args: --numeric-version
2020-05-06 23:35:33.916513 [ThreadId 9] - Executing Stack GHC with args: --print-libdir
Using hie version: Version 1.4 x86_64 ghc-8.6.5
2020-05-06 23:35:34.314191 [ThreadId 14] - New cradle: /qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc
2020-05-06 23:35:34.316065 [ThreadId 14] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/qw/ews/network/stack.yaml"}
2020-05-06 23:35:34.316128 [ThreadId 14] - Module "/qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc" is loaded by Cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
2020-05-06 23:35:34.316193 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
Using hoogle db at: /Users/cyue/.hoogle/default-haskell-5.0.17.hoo
2020-05-06 23:35:37.599572 [ThreadId 19] - Cradle set succesfully
Warning: Can't find file "HsNet.h" in directories
/private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481
.
Asked for by: /private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481/CmsgHdr.hsc-00000-3132707331887361086.hs at line 3 col 1
Warning: Can't find file "sys/types.h" in directories
/private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481
.
Asked for by: /private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481/CmsgHdr.hsc-00000-3132707331887361086.hs at line 11 col 1
Warning: Can't find file "sys/socket.h" in directories
/private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481
.
Asked for by: /private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481/CmsgHdr.hsc-00000-3132707331887361086.hs at line 12 col 1
2020-05-06 23:35:37.797409 [ThreadId 14] - New cradle: /qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc
2020-05-06 23:35:37.799676 [ThreadId 14] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/qw/ews/network/stack.yaml"}
2020-05-06 23:35:37.799733 [ThreadId 14] - Module "/qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc" is loaded by Cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
2020-05-06 23:35:37.800297 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
2020-05-06 23:35:40.724014 [ThreadId 197] - Cradle set succesfully
Adding an hie.yaml
with
cradle: { cabal: {component: "lib:network"} }
does not solve it, basically the same error.
It might be possible that this is related to Include directories. Relevant changes https://github.com/mpickering/hie-bios/pull/166. It is maybe fixed in the next-release of hie-bios, can I ping you when we are integrating the new changes in HIE?
@fendor thanks for the information, you replied so quick! :)
of course please ping me.
Confess I forgot that I had put
"files.associations": {
"*.hsc": "haskell"
}
In my VSCode's user settings.json, or opening .hsc
files won't trigger HIE loading at all.
So maybe this is really unsupported?
It is definitely not officially supported. Pretty sure there some open issue already. Still, I am interested to know what would be necessary to support this.