unused-0.7.0.0: src/Unused/CLI/Views/SearchResult/ColumnFormatter.hs
module Unused.CLI.Views.SearchResult.ColumnFormatter
( ColumnFormat(..)
, buildColumnFormatter
) where
import Text.Printf (printf)
import Unused.Types (TermResults(..), TermMatch(..))
data ColumnFormat = ColumnFormat
{ cfPrintTerm :: String -> String
, cfPrintPath :: String -> String
}
buildColumnFormatter :: [TermResults] -> ColumnFormat
buildColumnFormatter r =
ColumnFormat (printf $ termFormat r) (printf $ pathFormat r)
termFormat :: [TermResults] -> String
termFormat rs =
"%-" ++ show termWidth ++ "s"
where
termWidth = maximum $ termLength =<< trMatches =<< rs
termLength = return . length . tmTerm
pathFormat :: [TermResults] -> String
pathFormat rs =
"%-" ++ show pathWidth ++ "s"
where
pathWidth = maximum $ pathLength =<< trMatches =<< rs
pathLength = return . length . tmPath