| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Text.Casing
Description
Conversions between several common identifier casing conventions:
PascalCase- no spacing between words, first letter in word is uppercase, all others are lowercase.camelCase- likePascalCase, but the very first letter is lowercase.kebab-case- everything lowercase, dash delimits words.snake_Case- underscores delimit words, case is unrestricted.quiet_snake_case- underscores delimit words, everything lowercase.SCREAMING_SNAKE_CASE- underscores delimit words, everything uppercase.
Synopsis
- newtype Identifier a = Identifier {
- unIdentifier :: [a]
- fromHumps :: String -> Identifier String
- fromKebab :: String -> Identifier String
- fromSnake :: String -> Identifier String
- fromWords :: String -> Identifier String
- fromAny :: String -> Identifier String
- toCamel :: Identifier String -> String
- toPascal :: Identifier String -> String
- toSnake :: Identifier String -> String
- toQuietSnake :: Identifier String -> String
- toScreamingSnake :: Identifier String -> String
- toKebab :: Identifier String -> String
- toWords :: Identifier String -> String
- pascal :: String -> String
- camel :: String -> String
- snake :: String -> String
- quietSnake :: String -> String
- screamingSnake :: String -> String
- kebab :: String -> String
- wordify :: String -> String
- dropPrefix :: Identifier String -> Identifier String
Types
newtype Identifier a Source #
An opaque type that represents a parsed identifier.
Constructors
| Identifier | |
Fields
| |
Instances
| Applicative Identifier Source # | |
Defined in Text.Casing Methods pure :: a -> Identifier a (<*>) :: Identifier (a -> b) -> Identifier a -> Identifier b liftA2 :: (a -> b -> c) -> Identifier a -> Identifier b -> Identifier c (*>) :: Identifier a -> Identifier b -> Identifier b (<*) :: Identifier a -> Identifier b -> Identifier a | |
| Functor Identifier Source # | |
Defined in Text.Casing | |
| Monad Identifier Source # | |
Defined in Text.Casing Methods (>>=) :: Identifier a -> (a -> Identifier b) -> Identifier b (>>) :: Identifier a -> Identifier b -> Identifier b return :: a -> Identifier a | |
| Foldable Identifier Source # | |
Defined in Text.Casing Methods fold :: Monoid m => Identifier m -> m foldMap :: Monoid m => (a -> m) -> Identifier a -> m foldMap' :: Monoid m => (a -> m) -> Identifier a -> m foldr :: (a -> b -> b) -> b -> Identifier a -> b foldr' :: (a -> b -> b) -> b -> Identifier a -> b foldl :: (b -> a -> b) -> b -> Identifier a -> b foldl' :: (b -> a -> b) -> b -> Identifier a -> b foldr1 :: (a -> a -> a) -> Identifier a -> a foldl1 :: (a -> a -> a) -> Identifier a -> a toList :: Identifier a -> [a] null :: Identifier a -> Bool length :: Identifier a -> Int elem :: Eq a => a -> Identifier a -> Bool maximum :: Ord a => Identifier a -> a minimum :: Ord a => Identifier a -> a sum :: Num a => Identifier a -> a product :: Num a => Identifier a -> a | |
| Traversable Identifier Source # | |
Defined in Text.Casing Methods traverse :: Applicative f => (a -> f b) -> Identifier a -> f (Identifier b) sequenceA :: Applicative f => Identifier (f a) -> f (Identifier a) mapM :: Monad m => (a -> m b) -> Identifier a -> m (Identifier b) sequence :: Monad m => Identifier (m a) -> m (Identifier a) | |
| Show a => Show (Identifier a) Source # | |
Defined in Text.Casing Methods showsPrec :: Int -> Identifier a -> ShowS show :: Identifier a -> String showList :: [Identifier a] -> ShowS | |
| Eq a => Eq (Identifier a) Source # | |
Defined in Text.Casing | |
Parsing
fromHumps :: String -> Identifier String Source #
Convert from "humped" casing (camelCase or PascalCase)
fromKebab :: String -> Identifier String Source #
Convert from kebab-cased-identifiers
fromSnake :: String -> Identifier String Source #
Convert from snake_cased (either flavor)
fromWords :: String -> Identifier String Source #
fromAny :: String -> Identifier String Source #
Convert from anything, including mixed casing.
Generating
toCamel :: Identifier String -> String Source #
To camelCase
toPascal :: Identifier String -> String Source #
To PascalCase
toSnake :: Identifier String -> String Source #
To snake_Case
toQuietSnake :: Identifier String -> String Source #
To quiet_snake_case
toScreamingSnake :: Identifier String -> String Source #
To SCREAMING_SNAKE_CASE
toKebab :: Identifier String -> String Source #
To kebab-case
toWords :: Identifier String -> String Source #
To word Case
Shorthand functions
quietSnake :: String -> String Source #
Directly convert to quiet_snake_case through fromAny
screamingSnake :: String -> String Source #
Directly convert to SCREAMING_SNAKE_CASE through fromAny
Miscellaneous
dropPrefix :: Identifier String -> Identifier String Source #
Drop the first word from a parsed identifier. Typical usage is between
parsing and writing, e.g.: toKebab . dropPrefix . fromAny $ "strHelloWorld" == "hello-world"