我在一个名字相似的文件中有一个名为EditorTest
的模块。
导入一些模块。它也有一些声明,就像任何Haskell模块一样。
我想以编程方式获取该模块上下文中顶级可用声明的列表。
到目前为止,我只能使用hint
来获取此模块的顶级本地声明。那很好,我想我可以递归导入(等等到这些模块等),收集它们的列表,然后使用提示获取所有可用的声明名称...但如果可能的话,我是在追求更简单的方法来查找给定模块中的可用声明。我认为Haskell的API应该有一些方法来做到这一点。
有这样的事吗?
答案 0 :(得分:0)
自我回答,因为它已经有一段时间了,而且我很久以前就已经摒弃了一个概念验证,所以我会把它放在其他地方,即使它相当混乱。
因此,假设我们将此文件设为TestModule.hs
:
module TestModule (g, h) where
import Data.List as L
f = head
g = f [f]
h = L.map
然后,可以使用以下代码来展示我们如何使用Hint
的{{1}}模块和Language.Haskell.Interpreter
模块来提取顶级声明并使用它们。 {1}}包:
Language.Haskell.Exts.SrcLoc