微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

本地依赖性导致Haskell Extension for VSCode中出现错误消息

如何解决本地依赖性导致Haskell Extension for VSCode中出现错误消息

我正在尝试结合使用pandocpandoc-types仓库,以便能够同时更改两者中的源代码,同时具有Haskel Extension for VSCode的优点(悬停文档和自动完成

我使用了自己对question的回答中描述的两种方法。我可以使用pandoc-typescabal buildstack build作为本地依赖项成功地编译我的代码

如上面的链接中所述,为了向stack项目添加本地依赖项,需要更改以下文件

flags:
  pandoc:
    trypandoc: false
    embed_data_files: true
    static: false
packages:
- '.'
extra-deps:
- pandoc-types-1.22
- texmath-0.12.0.3
- rfc5051-0.2
- haddock-library-1.9.0
- skylighting-0.10.0.3
- skylighting-core-0.10.0.3
- doclayout-0.3
- emojis-0.1
- hslua-1.1.2
- jira-wiki-markup-1.3.2
- HsYAML-0.2.1.0
- HsYAML-aeson-0.2.0.0
- doctemplates-0.8.2
- commonmark-0.1.1
- commonmark-extensions-0.2.0.2
- commonmark-pandoc-0.2.0.1
- git: https://github.com/jgm/citeproc
  commit: 1860f189e9995c1dc27a68893bedfbf8de1ee67f

ghc-options:
   "$locals": -fhide-source-paths -Wno-missing-home-modules
resolver: lts-14.6
nix:
  packages: [zlib]

...对此:

flags:
  pandoc:
    trypandoc: false
    embed_data_files: true
    static: false
packages:
- '.'
- pandoc-types
extra-deps:
- texmath-0.12.0.3
- rfc5051-0.2
- haddock-library-1.9.0
- skylighting-0.10.0.2
- skylighting-core-0.10.0.2
- doclayout-0.3
- emojis-0.1
- hslua-1.1.2
- jira-wiki-markup-1.3.2
- HsYAML-0.2.1.0
- HsYAML-aeson-0.2.0.0
- doctemplates-0.8.2
- commonmark-0.1.0.2
- commonmark-extensions-0.2.0.1
- commonmark-pandoc-0.2.0.1
- citeproc-0.1.0.1

ghc-options:
   "$locals": -fhide-source-paths -Wno-missing-home-modules -exclude-module={Paths_pandoc.hs}
resolver: lts-14.6
nix:
  packages: [zlib]

但是,此更改将导致大约400个A do-notation statement discarded a result of type <...>类型的警告和大约40个类似Could not deduce ... arising from a use of ...错误。在VSCode的Haskell扩展中。实际上,应该已经在pandoc.cabal文件中的ghc-options中使用-fno-warn-unused-do-bind标志取消了第一个警告(假设这是扩展名读取的内容,以打印警告/错误)。但是最重​​要的是悬停文档无法正常工作。编译仍然有效。

由于我是Haskell的新手,并且我需要了解代码库,因此我确实需要适当的IDE功能。但是我真的不知道错误/警告是由什么引起的。 有人知道如何解决这个问题吗?

解决方法

对于问题中提到的我的情况,一般设置似乎是正确的。 为了使Haskell语言服务器(扩展的基础)正常工作,需要使用名为hie.yaml的文件来设置hie-bios。 在我的情况下,文件如下所示:

cradle:
  stack:
    - path: "./pandoc-types/src"
      component: "pandoc-types:lib"

    - path: "./src"
      component: "pandoc:lib"

    - path: "."
      component: "pandoc:exe:pandoc"

语言服务器可以正常启动而不会出现错误,并且本地依赖项不会在此过程中下载和构建。

但是我仍然没有获得 hover文档

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。