代码之家  ›  专栏  ›  技术社区  ›  LA.27

Haskell的visualstudio代码中没有类型悬停

  •  1
  • LA.27  · 技术社区  · 7 年前

    我无法让我的VS代码显示Haskell类型的悬停。而且,没有自动完成功能。我所看到的只是一个小的空框,就在我用鼠标悬停的元素上方(请参阅右边关于“getArgs”函数的小框)。

    my VS Code with "Hakelly" installed

    以前有人有过类似的问题吗? 我使用:

    • VS代码:1.27.1
    • ghc模块:5.8.0.0
    • 哈斯凯利:0.5.4
    • 互操作:0.1.32
    • 操作系统:Linux Mint 19

    免责声明:我是哈斯克尔的新手,所以我可能在这里犯了严重的错误。抱歉,仍在学习;)。

    编辑:

    enter image description here

    有一件事可能很重要:我遵循本教程: https://www.youtube.com/watch?v=a7R-2vtPLDM

    编辑2:

    我试过使用stack,但结果更糟。VS代码扩展崩溃,代码如下:

    The following GHC options are incompatible with GHCi and have not been passed to it: -threaded
    Configuring GHCi with the following packages: MyProject
    
    Warning: Didn't find expected autogen file:
             <path_to_project>/MyProject/.stack-work/dist/x86_64-linux/Cabal-2.2.0.1/build/autogen/cabal_macros.h
    
    Warning: Didn't find expected autogen file:
             <path_to_project>/MyProject/.stack-work/dist/x86_64-linux/Cabal-2.2.0.1/build/MyProject-exe/autogen/cabal_macros.h
    <home>/.stack/programs/x86_64-linux/ghc-8.4.3/lib/ghc-8.4.3/package.conf.d/package.cache: GHC.PackageDb.readPackageDb: inappropriate type (Not a valid Unicode code point!)
    
    
      Code: -32603 
    

    编辑3:

    enter image description here

    有什么办法吗?

    1 回复  |  直到 5 年前
        1
  •  2
  •   LA.27    7 年前

    作为最快的解决方案,我决定安装Haskell IDE引擎(HIE: https://github.com/haskell/haskell-ide-engine )和原子一起使用。虽然没有用VS代码来配置它,但是现在还可以。

        2
  •  1
  •   LA.27    5 年前

    我知道已经很久了,但我想和大家分享一下我过去的经历。也许有人利用了这个机会,就不需要再经历同样的问题了。

    在花了几个小时阅读文章和与各种各样的人交谈之后,我得出了这样的结论:开始Haskell的最好方法是。。。就从Haskell开始。我安装了ghc平台和阴谋集团,使用阴谋集团的新型命令,这似乎是足够的。至少现在是这样。另外,我决定使用VSCode和一个简单的语法突出显示扩展。

    最近,我一直在尝试创建一个非常简单的DB+webapi应用程序,我一直很难让两个monad正确地相互交谈。我想没有IDE能帮我做到这一点。当我发现很难写下正确的函数类型时,我就使用“cabal new repl”,加载我的模块,用“:t”检查所需的类型,并尝试解密输出。这不是一个完美的解决方案,但再次-足够好了。

    编辑:2021年1月12日

    我花了更多的时间与哈斯克尔和我的理解增加。我搬到了尼克松,那里似乎处理得很好。

    以下是我的NixOS配置文件的repo链接: https://github.com/bratfizyk/dotFiles/tree/master/nixos

    使用“原样”安装启用HIE支持的VS代码。您可能只需要安装VS代码扩展本身,因为我发现nix中的这个特性有问题,但这是一个简单的过程。

    我会随时更新回购协议。