packages feed

lens 4.4 → 4.4.0.1

raw patch · 3 files changed

+16/−13 lines, 3 files

Files

CHANGELOG.markdown view
@@ -1,3 +1,7 @@+4.4.0.1+----+* Restore previous default of `makeFields` using the camel case field namer.+ 4.4 ---- * Internals of Template Haskell code generation rewritten. makeLenses,
lens.cabal view
@@ -1,6 +1,6 @@ name:          lens category:      Data, Lenses, Generics-version:       4.4+version:       4.4.0.1 license:       BSD3 cabal-version: >= 1.8 license-file:  LICENSE
src/Control/Lens/TH.hs view
@@ -38,7 +38,7 @@   -- * Configuring Lenses   , makeLensesWith   , declareLensesWith-  , fieldRules+  , defaultFieldRules   , camelCaseFields   , underscoreFields   , LensRules@@ -377,9 +377,9 @@   forM_ maybeDecs emit   return dec --- | @ declareFields = 'declareFieldsWith' 'fieldRules' @+-- | @ declareFields = 'declareFieldsWith' 'defaultFieldRules' @ declareFields :: DecsQ -> DecsQ-declareFields = declareLensesWith fieldRules+declareFields = declareLensesWith defaultFieldRules  -- | Declare lenses for each records in the given declarations, using the -- specified 'LensRules'. Any record syntax in the input will be stripped@@ -541,7 +541,7 @@  -- | Field rules for fields in the form @ _prefix_fieldname @ underscoreFields :: LensRules-underscoreFields = fieldRules & lensField .~ underscoreNamer+underscoreFields = defaultFieldRules & lensField .~ underscoreNamer  underscoreNamer :: [Name] -> Name -> [DefName] underscoreNamer _ field = maybeToList $ do@@ -560,7 +560,7 @@ -- If you want all fields to be lensed, then there is no reason to use an @_@ before the prefix. -- If any of the record fields leads with an @_@ then it is assume a field without an @_@ should not have a lens created. camelCaseFields :: LensRules-camelCaseFields = fieldRules & lensField .~ camelCaseNamer+camelCaseFields = defaultFieldRules  camelCaseNamer :: [Name] -> Name -> [DefName] camelCaseNamer fields field = maybeToList $ do@@ -619,25 +619,24 @@ -- @ -- -- @--- makeFields = 'makeLensesWith' 'fieldRules'+-- makeFields = 'makeLensesWith' 'defaultFieldRules' -- @ makeFields :: Name -> DecsQ-makeFields = makeFieldOptics fieldRules+makeFields = makeFieldOptics camelCaseFields +-- | Deprecated alias for 'makeLensesWith' makeFieldsWith :: LensRules -> Name -> DecsQ makeFieldsWith = makeLensesWith {-# DEPRECATED makeFieldsWith "Use `makeLensesWith`, functionality merged" #-} -fieldRules :: LensRules-fieldRules = LensRules+defaultFieldRules :: LensRules+defaultFieldRules = LensRules   { _simpleLenses    = True   , _generateSigs    = True   , _generateClasses = True  -- classes will still be skipped if they already exist   , _allowIsos       = False -- generating Isos would hinder field class reuse   , _classyLenses    = const Nothing-  , _fieldToDef      = \_ n -> let rest = dropWhile (not.isUpper) (nameBase n)-                             in [MethodName (mkName ("Has"++rest))-                                            (mkName (overHead toLower rest))]+  , _fieldToDef      = camelCaseNamer   }