【问题标题】:Cabals Paths_*-Module and emacs' haskell-modeCabals Paths_*-Module 和 emacs 的 haskell-mode
【发布时间】:2014-03-29 03:03:06
【问题描述】:

给定一个 cabal-project,它有一个数据文件和一个想要读取它的函数。

来自项目p 的这个函数f 大致执行以下操作:

module F where

import Paths_p

f = getDataFileName "datafile.dat" >>= readFile

在此文件中,emacs haskell-mode 将导入标记为错误。永远不会标记该文件中可能存在的所有其他错误或警告。

有没有办法让 haskell-mode 知道模块 Paths_p

【问题讨论】:

  • Haskell 模式本身不包括任何语法检查,据我所知。你使用 ghc-mod 还是 hdevtools?
  • 据我了解我的设置我有flymake-haskell 用于语法检查和ghc-mod 用于完成。我刚切换到 emacs,不了解或理解 eLisp 和其他 emacs 的详细信息……

标签: haskell emacs cabal haskell-mode


【解决方案1】:

只需创建一个带有getDataFileName的适当定义的文件Paths_p.hs

【讨论】:

  • 已经这样做了,然后在cabal build期间使用了这个假文件,这使得编译程序失败......
  • 现在手头没有编译器,但如果你只做cabal install呢?
  • 你不需要假文件。如果您至少构建过一次项目,则只需将dist/build/autogen/ 添加到导入搜索路径即可。
  • @MigMit:我使用构建还是安装都没关系,因为安装只是调用构建然后将文件复制到沙箱/cabal-dir
  • 不,我没有。我刚刚在源根目录下创建了它,并将getDataFileNameversion 作为undefined 放在那里,并为函数提供了适当的类型。现在我将我的项目的 autogen-dirs 通过 ghc-ghc-options 文件中的 ghc-ghc-options 放入包含路径,但如果我可以删除这些行,我会很高兴,因为手动维护这样一个列表非常难看每次我开始一个新项目时,删除一些或尝试为一些开源项目做出贡献……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
相关资源
最近更新 更多