首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ghc-mod开关元件

ghc-mod开关元件
EN

Stack Overflow用户
提问于 2016-05-24 13:24:06
回答 1查看 81关注 0票数 1

我有一个项目,其主要的阴谋组成部分是一个库。

代码语言:javascript
复制
library
  hs-source-dirs:      src
  ...

它也定义了

代码语言:javascript
复制
executable todo
   if !flag(example)
        Buildable: False
   ghc-options: -Wall
   cpp-options: -DGHCJS_BROWSER

   default-language: Haskell2010
   hs-source-dirs: example/todo
   other-modules: TodoDispatcher
                  TodoStore
                  TodoComponents


   main-is: Main.hs

现在,如果我试图键入一个文件,我会得到以下错误

代码语言:javascript
复制
Configuring react-flux-1.0.3...
EXCEPTION: types:
           Could not find module ‘TodoDispatcher’
           Use -v to see a list of the files searched for.

如果我在命令行中这样做,我就会得到

代码语言:javascript
复制
 $ ghc-mod  --ghcOpt=-v7 type example/todo/TodoViews.hs 29 28                                            not sandboxed
EXCEPTION: types:
           Could not find module ‘TodoDispatcher’
           Locations searched:
             .stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/TodoDispatcher.hs
             .stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/TodoDispatcher.lhs
             .stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/TodoDispatcher.hsig
             .stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/TodoDispatcher.lhsig
             src/TodoDispatcher.hs
             src/TodoDispatcher.lhs
             src/TodoDispatcher.hsig
             src/TodoDispatcher.lhsig
             .stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/autogen/TodoDispatcher.hs
             .stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/autogen/TodoDispatcher.lhs
             .stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/autogen/TodoDispatcher.hsig
             .stack-work/dist/x86_64-osx/Cabal-1.22.8.0/build/autogen/TodoDispatcher.lhsig

因此,它似乎忽略了我试图键入的当前文件所属的组件的hs-source-dirs设置,而是考虑包的第一个组件中的一个,就像默认情况下阴谋集团所做的那样。

By default cabal repl loads the first component in a package.

我怎样才能改变这种美好的全球状态?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-24 14:20:03

好的,下面是你应该做的事情,这样才能让它发挥作用:

  • 您需要编辑阴谋文件并将组件的标志更改为 Buildable : True
  • 然后,您可以键入check。 $ ghc-mod --ghcOpt=-v7类型示例/todo/todoViews.hs 29 28非沙箱29 24 29 34 "Char“27 25 33 12 "TextInputArgs”27 9 33 12 "ReactElementM [

在Emacs:

  • 你也许需要离开埃马克斯
  • 您需要打开您的文件和haskell-process-load-file (又名C,又名空间m b)

它应该加载正确的“目标”,这是黑斯克尔模式下的“组件”在阴谋中的说法。如果这有效,那么ghc也应该这样做。(?)

http://haskell.github.io/haskell-mode/manual/latest/Interactive-Haskell.html

14.8.1改变REPL目标 使用haskell- session - change,您可以更改REPL会话的目标。 在REPL会话开始后,在haskell-交互式模式缓冲区中调用haskell-会话更改-目标并从可用的目标中选择

  • 测试
  • 基准测试
  • 可执行文件
  • 图书馆

回答“是”重新启动会话,并运行您的测试,基准测试,可执行文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37414984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档