dev: lens: Introduce lenses for CliOpts.

This commit is contained in:
Stephen Morgan 2021-08-08 18:38:47 +10:00 committed by Simon Michael
parent f3eacebc1d
commit bd113b223f
3 changed files with 32 additions and 1 deletions

View File

@ -5,7 +5,13 @@ related utilities used by hledger commands.
-}
{-# LANGUAGE CPP, ScopedTypeVariables, FlexibleContexts, TypeFamilies, OverloadedStrings, PackageImports #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PackageImports #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
module Hledger.Cli.CliOptions (
@ -35,6 +41,7 @@ module Hledger.Cli.CliOptions (
-- * CLI options
CliOpts(..),
HasCliOpts(..),
defcliopts,
getHledgerCliOpts,
getHledgerCliOpts',
@ -747,3 +754,22 @@ getDirectoryContentsSafe d =
-- putStrLn $ "processed opts:\n" ++ show opts
-- d <- getCurrentDay
-- putStrLn $ "search query: " ++ (show $ queryFromOpts d $ reportopts_ opts)
-- ** Lenses
makeHledgerClassyLenses ''CliOpts
instance HasInputOpts CliOpts where
inputOpts = inputopts
instance HasBalancingOpts CliOpts where
balancingOpts = inputOpts.balancingOpts
instance HasReportSpec CliOpts where
reportSpec = reportspec
instance HasReportOptsNoUpdate CliOpts where
reportOptsNoUpdate = reportSpec.reportOptsNoUpdate
instance HasReportOpts CliOpts where
reportOpts = reportSpec.reportOpts

View File

@ -158,6 +158,7 @@ library
, lucid
, math-functions >=0.3.3.0
, megaparsec >=7.0.0 && <9.2
, microlens >=0.4
, mtl >=2.2.1
, process
, regex-tdfa
@ -207,6 +208,7 @@ executable hledger
, hledger-lib >=1.22.99 && <1.23
, math-functions >=0.3.3.0
, megaparsec >=7.0.0 && <9.2
, microlens >=0.4
, mtl >=2.2.1
, process
, regex-tdfa
@ -257,6 +259,7 @@ test-suite unittest
, hledger-lib >=1.22.99 && <1.23
, math-functions >=0.3.3.0
, megaparsec >=7.0.0 && <9.2
, microlens >=0.4
, mtl >=2.2.1
, process
, regex-tdfa
@ -306,6 +309,7 @@ benchmark bench
, html
, math-functions >=0.3.3.0
, megaparsec >=7.0.0 && <9.2
, microlens >=0.4
, mtl >=2.2.1
, process
, regex-tdfa

View File

@ -112,6 +112,7 @@ dependencies:
- githash >=0.1.4
- haskeline >=0.6
- megaparsec >=7.0.0 && <9.2
- microlens >=0.4
- mtl >=2.2.1
- process
- regex-tdfa