Ich versuche, das ghc-mod
vim-Plugin zu verwenden, um Typ- / Syntaxprüfungen usw. durchzuführen. Ich habe jedoch festgestellt, dass ghc-mod
in den Fehlermeldungen immer vollständige Pfadpfade verwendet werden, zum Beispiel:
test.hs|71 col 13 error| Couldn't match type ‘Data.Text.Internal.Text’
|| with ‘[GHC.Types.Char]’
|| Expected type: containers-0.5.6.2:Data.Map.Base.Map
|| [GHC.Types.Char]
|| ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer,
|| integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)],
|| containers-0.5.6.2:Data.Set.Base.Set
|| integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)
|| Actual type: containers-0.5.6.2:Data.Map.Base.Map
|| Data.Text.Internal.Text
|| ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer,
|| integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)],
|| containers-0.5.6.2:Data.Set.Base.Set
|| integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)
|| In the second argument of ‘containers-0.5.6.2:Data.Map.Base.map’, namely
|| ‘zippedMap’
|| In the second argument of ‘(GHC.Base.$)’, namely
|| ‘containers-0.5.6.2:Data.Map.Base.map
...
Das macht den Bildschirm unübersichtlich und es ist sehr schwer für mich herauszufinden, wo etwas schief gelaufen ist. Zum Vergleich ist dies die Fehlermeldung für dieselbe Datei mit ghci
:
test.hs:71:13:
Couldn't match type ‘T.Text’ with ‘[Char]’
Expected type: M.Map [Char] ([(Integer, Integer)], S.Set Integer)
Actual type: M.Map T.Text ([(Integer, Integer)], S.Set Integer)
In the second argument of ‘M.map’, namely ‘zippedMap’
In the second argument of ‘($)’, namely
‘M.map
...
Das ist viel sauberer. Gibt es eine Möglichkeit, ghc-mod
Kurznamen für die Typen zu verwenden?
ghc
und verwendenghc-mod
Sie?Antworten:
Sie können das Argument von ghc-mod an ghc übergeben als:
Dadurch wird das Argument
-dsuppress-module-prefixes
an ghc gesendet.quelle
Sie können versuchen,
-dsuppress-module-prefixes
als GHC-Option zu übergeben. Irgendwann hat es mir geholfen, Modulqualifizierer in Namen loszuwerden.quelle