2017-12-23 50 views
6

GHCは、暗黙的なインポートがある場合に警告を生成します(下記参照)。目標は、これらを明示的なインポートに置き換えることです。コードを手動で検索するのではなく、リストを自動生成する方法はありますか?ghcの-wmissing-import-listsの明示的なインポートの検索

/Users/srid/code/slownews/backend/src/SlowNews/Main.hs:10:1: warning: [-Wmissing-import-lists] 
    The module ‘Control.Exception’ does not have an explicit import list 
    | 
10 | import   Control.Exception 
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

/Users/srid/code/slownews/backend/src/SlowNews/Main.hs:13:1: warning: [-Wmissing-import-lists] 
    The module ‘Control.Monad.IO.Class’ does not have an explicit import list 
    | 
13 | import   Control.Monad.IO.Class 
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

答えて

5

GHCには、このトリックを行う-ddump-minimal-importsフラグがあります。

+0

このフラグを使用して目的の結果を得る方法について:https://stackoverflow.com/a/32959693/55246 –

1

私が取り組んでいるオープンプルリクエストun importifyツールがあります。これが行われた後、自動的に明示的に暗黙の輸入を変換することができるようになります。

https://github.com/serokell/importify/pull/82

0

Haskell Toolsプロジェクトは、そのためのいくつかの見栄えの良いツールを持っています。どうやらそれはAtomで動作しますが、私はそれをmacOS上のatomまたはatom-betaで動作させることができませんでした。ただし、コマンドラインで動作します。私はa simple example stack project set upです。 Main.hsは、明示的なインポートリストを使用しています。

module Main where 

import System.Environment 

doMain = print =<< getEnvironment 

main = doMain 

ところで、私はHaskellのツールをインストール:実行し

$ stack install haskell-tools-daemon haskell-tools-cli fswatch 

$ ht-refact -e 'ProjectOrganizeImports' . 

を今gitのは、私は、次のしていることを私に伝えますdiff:

-import System.Environment 
+import System.Environment (getEnvironment) 

Haskell Toolsウェブサイトで、エディタでどのように動作するかのインタラクティブな例をご覧ください。非常に有望なリファクタリングツールのセットのように見えます。

関連する問題