使用 yesod 时如何查看特定文件的生成模板 haskell 代码
How can I see a specific file's generated template haskell code when using yesod
由于一些错误的输入,模板 Haskell 函数正在生成损坏的代码。如何将 -ddump-splices
应用到 Yesod 中的一个文件?
我知道修复错误的输入是解决方案,但调试取决于模板 Haskell 生成的内容,我通常无法在错误输出中看到它 [=31] =]
stack exec -- yesod devel
我认为 src/Settings/StaticFiles.hs
中的函数 staticFiles
必须是模板 Haskell 函数。我想我会看看它产生了什么,但我意识到我超出了我的深度,天真地尝试 stack exec --ghc-options='-ddump-splices' -- yesod devel
没有效果。
如何将 -ddump-splices 应用到 Yesod 中的一个文件?
非常欢迎关于调试的其他更高级别的评论 Yesod/Template Haskell。
您可以在 Haskell 文件中添加 pragma,以在其中渲染拼接。喜欢:
{-# <b>OPTIONS_GHC -ddump-splices</b> #-}
{-# LANGUAGE TemplateHaskell #-}
import SomeModule(someTHFunction)
foo = $(someTHFunction 14 25)
当我在本地测试时,它只会将模板片段 Haskell 转储到添加了该 pragma 的文件中,因此您可以将其添加到您对模板感兴趣的文件中 Haskell 实现,并忽略其他的。
由于一些错误的输入,模板 Haskell 函数正在生成损坏的代码。如何将 -ddump-splices
应用到 Yesod 中的一个文件?
我知道修复错误的输入是解决方案,但调试取决于模板 Haskell 生成的内容,我通常无法在错误输出中看到它 [=31] =]
stack exec -- yesod devel
我认为 src/Settings/StaticFiles.hs
中的函数 staticFiles
必须是模板 Haskell 函数。我想我会看看它产生了什么,但我意识到我超出了我的深度,天真地尝试 stack exec --ghc-options='-ddump-splices' -- yesod devel
没有效果。
如何将 -ddump-splices 应用到 Yesod 中的一个文件?
非常欢迎关于调试的其他更高级别的评论 Yesod/Template Haskell。
您可以在 Haskell 文件中添加 pragma,以在其中渲染拼接。喜欢:
{-# <b>OPTIONS_GHC -ddump-splices</b> #-}
{-# LANGUAGE TemplateHaskell #-}
import SomeModule(someTHFunction)
foo = $(someTHFunction 14 25)
当我在本地测试时,它只会将模板片段 Haskell 转储到添加了该 pragma 的文件中,因此您可以将其添加到您对模板感兴趣的文件中 Haskell 实现,并忽略其他的。