SourceGraph(Haskell)的问题

时间:2014-04-08 13:17:04

标签: haskell

我尝试使用SourceGraph可视化现有的Haskell代码库。

SourceGraph mycabal.cabal

但我得到的只是这样的错误信息:

Could not parse source file ./src/mysource.hs
SourceGraph: Could not find data file templates/default.html

任何提示要做什么或在哪里查找文档?

到目前为止,我发现的唯一文档就是这一个:http://code.haskell.org/~ivanm/Sample_SourceGraph/SourceGraph/SourceGraph.html遗憾的是,它只包含引人注目的图像,但没有提示如何制作它们。

2 个答案:

答案 0 :(得分:2)

关于您的直接问题,这里的最佳文档似乎是来源:http://code.haskell.org/SourceGraph/

我在自己的存储库上尝试过,并且遇到了解析问题。这是haskell-src-exts无法解析模块。以下补丁显示实际错误:

--- Parsing.hs  2013-02-14 12:59:34.000000000 +0100
+++ ../SourceGraph-0.7.0.5-fixed/Parsing.hs 2014-04-08 20:49:54.000000000 +0200
@@ -64,7 +64,7 @@
 parseFile       :: FileContents -> Either FilePath Module
 parseFile (p,f) = case (parseFileContentsWithMode mode f) of
                     (ParseOk hs) -> Right hs
-                    _            -> Left p
+                    x            -> Left $ p ++ ": " ++ show x
     where
       mode = defaultParseMode { parseFilename = p
                               , fixities = Nothing

事实证明,我的大部分失败模块都失败了,因为" MultiParamTypeClasses未启用"。这显然是haskell-src-exts非常严格,而ghc很高兴没有MultiParamTypeClasses扩展名:https://github.com/haskell-suite/haskell-src-exts/issues/29

作为快速解决方法,请尝试添加

{-# LANGUAGE MultiParamTypeClasses #-}

位于失败模块的顶部。

答案 1 :(得分:2)

刚遇到类似的问题,所以我想我在这里记录了我的所作所为。我把我的更改放在一个补丁文件中。 https://gist.github.com/ivanperez-keera/b398ce71a22e8a4849f3

cabal sandbox init
cabal unpack SourceGraph
wget https://gist.githubusercontent.com/ivanperez-keera/b398ce71a22e8a4849f3/raw/bf26ffc45564934c0f175e7619ded8a299a9b7d5/verbose-sourcegraph.patch
cd SourceGraph-0.7.0.6/
patch -i ../verbose-sourcegraph.patch
cd ..
cabal install SourceGraph-0.7.0.6/

大多数"错误"在我的文件中由于爆炸模式和多参数类型类。必须有一个更好的解决方案,使SourceGraph的解析模式默认为与GHC相同。