module Language.Haskell.Stylish.Step.Tabs
( step
) where
import Language.Haskell.Stylish.Step
removeTabs :: Int -> String -> String
removeTabs :: Int -> String -> String
removeTabs Int
spaces = (Char -> String) -> String -> String
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap Char -> String
removeTabs'
where
removeTabs' :: Char -> String
removeTabs' Char
'\t' = Int -> Char -> String
forall a. Int -> a -> [a]
replicate Int
spaces Char
' '
removeTabs' Char
x = [Char
x]
step :: Int -> Step
step :: Int -> Step
step Int
spaces = String -> (Lines -> Module -> Lines) -> Step
makeStep String
"Tabs" ((Lines -> Module -> Lines) -> Step)
-> (Lines -> Module -> Lines) -> Step
forall a b. (a -> b) -> a -> b
$ \Lines
ls Module
_ -> (String -> String) -> Lines -> Lines
forall a b. (a -> b) -> [a] -> [b]
map (Int -> String -> String
removeTabs Int
spaces) Lines
ls