haskell-ide-engine icon indicating copy to clipboard operation
haskell-ide-engine copied to clipboard

Documentation outside projects

Open lyh970817 opened this issue 4 years ago • 10 comments

The hover documentation doesn't seem to work on coc.vim (tested with call CocAction('doHover') when cursor is on a function like sum). Everything else is working fine. call CocAction('doHover') also works fine for other languages.

lyh970817 avatar Apr 13 '20 18:04 lyh970817

I get this in the coc docs window do you?

sum :: Any Integer -> Integer
sum :: forall (t :: * -> *) a. (Foldable t, Num a) => t a -> a


The `sum` function computes the sum of the numbers of a structure.



[Documentation](file:///home/user/.ghcup/ghc/8.8.3/share/doc/ghc-8.8.3/html/libraries/base-4.13.0.0/Data-Foldable.html#v:sum)

[Source](file:///home/user/.ghcup/ghc/8.8.3/share/doc/ghc-8.8.3/html/libraries/base-4.13.0.0/src/Data-Foldable.html#sum)

base Data.Foldable

Avi-D-coder avatar Apr 13 '20 18:04 Avi-D-coder

It works for me too with Coc.

image

Ask for Coc specific help on https://gitter.im/neoclide/coc.nvim

This is not the place for that.

louwers avatar Apr 13 '20 19:04 louwers

@lyh970817 You may not have generated a hoogle database. Check the hie readme for instructions for cabal or stack

Avi-D-coder avatar Apr 13 '20 23:04 Avi-D-coder

@lyh970817 You may not have generated a hoogle database. Check the hie readme for instructions for cabal or stack

Thanks. I've realized that too. I did have a hoogle database but I've tried to regenerate it and set HIE_HOOGLE_DATABASE="$HOME/.hoogle/default-haskell-5.0.17.hoo". It still doesn't work but I found these messages in the coc debug info

2020-04-14 00:11:29.247987052 [ThreadId 4] - Run entered for HIE(hie-8.8.3) Version 1.3, Git revision 78eb87b221481d81b8764c821ab3d673e9768464 (3873 commits) x86_64 ghc-8.8.3
2020-04-14 00:11:29.254453103 [ThreadId 4] - Operating as a LSP server on stdio
2020-04-14 00:11:29.254604875 [ThreadId 4] - Current directory:/home/lyh970817
2020-04-14 00:11:29.254720905 [ThreadId 4] - Operating system:linux
2020-04-14 00:11:29.255430882 [ThreadId 4] - args:["--lsp"]
2020-04-14 00:11:29.318052289 [ThreadId 4] - Could not find a Project for file: /home/lyh970817/File.hs
2020-04-14 00:11:29.318241283 [ThreadId 4] - Module "/home/lyh970817/File.hs" is loaded by Cradle: Cradle {cradleRootDir = "/home/lyh970817", cradleOptsProg = CradleAction: Direct}
2020-04-14 00:11:29.318684066 [ThreadId 4] - Executing GHC on path with args: --numeric-version
2020-04-14 00:11:29.356956607 [ThreadId 9] - Executing GHC on path with args: --print-libdir
Using hie version: Version 1.3, Git revision 78eb87b221481d81b8764c821ab3d673e9768464 (3873 commits) x86_64 ghc-8.8.3
2020-04-14 00:11:31.391215903 [ThreadId 15] - New cradle: /home/lyh970817/.tmp/21:59-04-13.hs
2020-04-14 00:11:31.392684989 [ThreadId 15] - Could not find a Project for file: /home/lyh970817/.tmp/21:59-04-13.hs
2020-04-14 00:11:31.3928309 [ThreadId 15] - Module "/home/lyh970817/.tmp/21:59-04-13.hs" is loaded by Cradle: Cradle {cradleRootDir = "/home/lyh970817", cradleOptsProg = CradleAction: Direct}
2020-04-14 00:11:31.392956659 [ThreadId 15] - Found cradle: Cradle {cradleRootDir = "/home/lyh970817", cradleOptsProg = CradleAction: Direct}
Using hoogle db at: /home/lyh970817/.hoogle/default-haskell-5.0.17.hoo
2020-04-14 00:11:31.666985538 [ThreadId 19] - Cradle did not load succesfully

Is it related to the last two lines?

lyh970817 avatar Apr 14 '20 00:04 lyh970817

Most likely, do you get type error diagnostics? stack or cabal? hie.yaml? multi component?

Avi-D-coder avatar Apr 14 '20 00:04 Avi-D-coder

Most likely, do you get type error diagnostics? stack or cabal? hie.yaml? multi component?

I'm using stack but have not created a project and are not using a hie.yaml at all I just created an hs file and put it somewhere randomly. If I do create a project with stack new and go into the Setup.hs I get something like this

2020-04-14 08:27:05.058725234 [ThreadId 4] - Run entered for HIE(hie-8.8.3) Version 1.3, Git revision 78eb87b221481d81b8764c821ab3d673e9768464 (3873 commits) x86_64 ghc-8.8.3
2020-04-14 08:27:05.059043817 [ThreadId 4] - Operating as a LSP server on stdio
2020-04-14 08:27:05.059085441 [ThreadId 4] - Current directory:/home/lyh970817
2020-04-14 08:27:05.05911235 [ThreadId 4] - Operating system:linux
2020-04-14 08:27:05.059140453 [ThreadId 4] - args:["--lsp"]
2020-04-14 08:27:05.060339086 [ThreadId 4] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/home/lyh970817/myp/stack.yaml"}
2020-04-14 08:27:06.490624454 [ThreadId 4] - Module "/home/lyh970817/myp/File.hs" is loaded by Cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:06.490709768 [ThreadId 4] - Executing Stack GHC with args: --numeric-version
2020-04-14 08:27:06.860158462 [ThreadId 28] - Executing Stack GHC with args: --print-libdir
Using hie version: Version 1.3, Git revision 78eb87b221481d81b8764c821ab3d673e9768464 (3873 commits) x86_64 ghc-8.8.3
2020-04-14 08:27:07.222829025 [ThreadId 34] - New cradle: /home/lyh970817/myp/Setup.hs
2020-04-14 08:27:07.223216675 [ThreadId 34] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/home/lyh970817/myp/stack.yaml"}
Using hoogle db at: /home/lyh970817/.hoogle/default-haskell-5.0.17.hoo
2020-04-14 08:27:08.624431659 [ThreadId 34] - Module "/home/lyh970817/myp/Setup.hs" is loaded by Cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:08.624497332 [ThreadId 34] - Found cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:09.056331445 [ThreadId 58] - Fail on cradle initialisation: (ExitFailure 2)["Could not obtain flags for: \"Setup.hs\".","","This module was not part of any component we are aware of.","","Component: ChLibName ChMainLibName with source directory: [\"src\"]","Component: ChExeName \"myp-exe\" with source directory: [\"app\"]","","","To expose a module, refer to:","https://docs.haskellstack.org/en/stable/GUIDE/","If you are using `package.yaml` then you don't have to manually expose modules.","Maybe you didn't set the source directories for your project correctly."]
2020-04-14 08:27:09.056507995 [ThreadId 34] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "Fail on initialisation for \"/home/lyh970817/myp/Setup.hs\". Could not obtain flags for: \"Setup.hs\".", ideInfo = Null} with mid: Nothing
2020-04-14 08:27:09.056590428 [ThreadId 34] - New cradle: /home/lyh970817/myp/Setup.hs
2020-04-14 08:27:09.05694471 [ThreadId 34] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/home/lyh970817/myp/stack.yaml"}
2020-04-14 08:27:10.49384344 [ThreadId 34] - Module "/home/lyh970817/myp/Setup.hs" is loaded by Cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:10.493913638 [ThreadId 34] - Found cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:10.925542302 [ThreadId 80] - Fail on cradle initialisation: (ExitFailure 2)["Could not obtain flags for: \"Setup.hs\".","","This module was not part of any component we are aware of.","","Component: ChLibName ChMainLibName with source directory: [\"src\"]","Component: ChExeName \"myp-exe\" with source directory: [\"app\"]","","","To expose a module, refer to:","https://docs.haskellstack.org/en/stable/GUIDE/","If you are using `package.yaml` then you don't have to manually expose modules.","Maybe you didn't set the source directories for your project correctly."]
2020-04-14 08:27:10.925763731 [ThreadId 34] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "Fail on initialisation for \"/home/lyh970817/myp/Setup.hs\". Could not obtain flags for: \"Setup.hs\".", ideInfo = Null} with mid: Nothing
2020-04-14 08:27:11.291429928 [ThreadId 34] - New cradle: /home/lyh970817/myp/Setup.hs
2020-04-14 08:27:11.29180652 [ThreadId 34] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/home/lyh970817/myp/stack.yaml"}
2020-04-14 08:27:12.716777069 [ThreadId 34] - Module "/home/lyh970817/myp/Setup.hs" is loaded by Cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:12.716845418 [ThreadId 34] - Found cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:13.153104377 [ThreadId 102] - Fail on cradle initialisation: (ExitFailure 2)["Could not obtain flags for: \"Setup.hs\".","","This module was not part of any component we are aware of.","","Component: ChLibName ChMainLibName with source directory: [\"src\"]","Component: ChExeName \"myp-exe\" with source directory: [\"app\"]","","","To expose a module, refer to:","https://docs.haskellstack.org/en/stable/GUIDE/","If you are using `package.yaml` then you don't have to manually expose modules.","Maybe you didn't set the source directories for your project correctly."]
2020-04-14 08:27:13.153349196 [ThreadId 34] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "Fail on initialisation for \"/home/lyh970817/myp/Setup.hs\". Could not obtain flags for: \"Setup.hs\".", ideInfo = Null} with mid: Nothing
2020-04-14 08:27:13.153428155 [ThreadId 34] - New cradle: /home/lyh970817/myp/Setup.hs
2020-04-14 08:27:13.15370313 [ThreadId 34] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/home/lyh970817/myp/stack.yaml"}
2020-04-14 08:27:14.577241037 [ThreadId 34] - Module "/home/lyh970817/myp/Setup.hs" is loaded by Cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:14.577303015 [ThreadId 34] - Found cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:15.002229841 [ThreadId 125] - Fail on cradle initialisation: (ExitFailure 2)["Could not obtain flags for: \"Setup.hs\".","","This module was not part of any component we are aware of.","","Component: ChLibName ChMainLibName with source directory: [\"src\"]","Component: ChExeName \"myp-exe\" with source directory: [\"app\"]","","","To expose a module, refer to:","https://docs.haskellstack.org/en/stable/GUIDE/","If you are using `package.yaml` then you don't have to manually expose modules.","Maybe you didn't set the source directories for your project correctly."]
2020-04-14 08:27:15.002463364 [ThreadId 34] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "Fail on initialisation for \"/home/lyh970817/myp/Setup.hs\". Could not obtain flags for: \"Setup.hs\".", ideInfo = Null} with mid: Nothing
2020-04-14 08:27:15.002540018 [ThreadId 34] - New cradle: /home/lyh970817/myp/Setup.hs
2020-04-14 08:27:15.002806916 [ThreadId 34] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/home/lyh970817/myp/stack.yaml"}
2020-04-14 08:27:16.399185114 [ThreadId 34] - Module "/home/lyh970817/myp/Setup.hs" is loaded by Cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:16.399248852 [ThreadId 34] - Found cradle: Cradle {cradleRootDir = "/home/lyh970817/myp", cradleOptsProg = CradleAction: Other Stack}
2020-04-14 08:27:16.826857977 [ThreadId 147] - Fail on cradle initialisation: (ExitFailure 2)["Could not obtain flags for: \"Setup.hs\".","","This module was not part of any component we are aware of.","","Component: ChLibName ChMainLibName with source directory: [\"src\"]","Component: ChExeName \"myp-exe\" with source directory: [\"app\"]","","","To expose a module, refer to:","https://docs.haskellstack.org/en/stable/GUIDE/","If you are using `package.yaml` then you don't have to manually expose modules.","Maybe you didn't set the source directories for your project correctly."]
2020-04-14 08:27:16.827086349 [ThreadId 34] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "Fail on initialisation for \"/home/lyh970817/myp/Setup.hs\". Could not obtain flags for: \"Setup.hs\".", ideInfo = Null} with mid: Nothing

By type diagnostics do you mean like when I try to sum ['a',2] and it says I can't do that because 'a' is not Num?

Sorry I'm not sure what multi component is... But I have not applied any config so everything should be the default?

lyh970817 avatar Apr 14 '20 08:04 lyh970817

Opening setup.hs is not supported, so that is expected

fendor avatar Apr 14 '20 08:04 fendor

Opening setup.hs is not supported, so that is expected

Thanks! I can see the documentation now if I go into app/Main.hs. The debug info says cradle has been loaded successfully. I'm wondering if there is any way to make the documentation work globally not just inside projecs?

lyh970817 avatar Apr 14 '20 09:04 lyh970817

I'm wondering if there is any way to make the documentation work globally not just inside projecs?

I assume so, but currently it is only supported in projects.

fendor avatar Apr 14 '20 09:04 fendor

I'm wondering if there is any way to make the documentation work globally not just inside projecs?

I assume so, but currently it is only supported in projects.

I see. Thanks so much!

lyh970817 avatar Apr 18 '20 17:04 lyh970817