htags-1.0.1: src/Tag.hs
module Tag
( Tag
, tag
, identT
, fnameT
, exComT
, tagsToTagfile
) where
import ExCommand
import Data.Ord (comparing)
import Data.List (sortBy, intercalate)
import Data.Traversable (sequenceA)
data Tag = T { identT :: String
, fnameT :: String
, exComT :: ExCommand
}
tag :: String -> String -> ExCommand -> Tag
tag = T
tagsToTagfile :: [Tag] -> String
tagsToTagfile = unlines . fmap tagline . sortBy (comparing identT)
where
tagline :: Tag -> String
tagline = intercalate "\t" . sequenceA [identT, fnameT, exToStr.exComT]
-- Alt. defn.
-- tagline t = (identT t) ++ "\t"
-- ++ (fnameT t) ++ "\t"
-- ++ (exToStr (exComT t))