packages feed

ghc-mod-0.4.0: Lint.hs

module Lint where

import Control.Applicative
import Data.List
import System.IO
import System.Process
import Types

lintSyntax :: Options -> String -> IO String
lintSyntax cmd file = pretty <$> lint cmd file
  where
    pretty = unlines . map (concat . intersperse "\0")
           . filter (\x -> length x > 1)
           . groupBy (\a b -> a /= "" && b /= "") 
           . lines

lint :: Options -> String -> IO String
lint cmd file = do
  (_,hout,_,_) <- runInteractiveProcess (hlint cmd) ["-i","Use camelCase",file] Nothing Nothing
  hGetContents hout