module Chiasma.Data.CopyModeParams where import Chiasma.Class.CmdArgs (CmdArgs (cmdArgs), flag1) import Chiasma.Data.Target (Target) data CopyModeParams = CopyModeParams { CopyModeParams -> Bool mouseDrag :: Bool, CopyModeParams -> Bool scrollUp :: Bool, CopyModeParams -> Bool exitBottom :: Bool, CopyModeParams -> Target target :: Target } deriving stock (CopyModeParams -> CopyModeParams -> Bool (CopyModeParams -> CopyModeParams -> Bool) -> (CopyModeParams -> CopyModeParams -> Bool) -> Eq CopyModeParams forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: CopyModeParams -> CopyModeParams -> Bool == :: CopyModeParams -> CopyModeParams -> Bool $c/= :: CopyModeParams -> CopyModeParams -> Bool /= :: CopyModeParams -> CopyModeParams -> Bool Eq, Int -> CopyModeParams -> ShowS [CopyModeParams] -> ShowS CopyModeParams -> String (Int -> CopyModeParams -> ShowS) -> (CopyModeParams -> String) -> ([CopyModeParams] -> ShowS) -> Show CopyModeParams forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> CopyModeParams -> ShowS showsPrec :: Int -> CopyModeParams -> ShowS $cshow :: CopyModeParams -> String show :: CopyModeParams -> String $cshowList :: [CopyModeParams] -> ShowS showList :: [CopyModeParams] -> ShowS Show) instance Default CopyModeParams where def :: CopyModeParams def = CopyModeParams { $sel:mouseDrag:CopyModeParams :: Bool mouseDrag = Bool False, $sel:scrollUp:CopyModeParams :: Bool scrollUp = Bool False, $sel:exitBottom:CopyModeParams :: Bool exitBottom = Bool False, $sel:target:CopyModeParams :: Target target = Target forall a. Default a => a def } instance CmdArgs CopyModeParams where cmdArgs :: CopyModeParams -> [Text] cmdArgs CopyModeParams {Bool Target $sel:mouseDrag:CopyModeParams :: CopyModeParams -> Bool $sel:scrollUp:CopyModeParams :: CopyModeParams -> Bool $sel:exitBottom:CopyModeParams :: CopyModeParams -> Bool $sel:target:CopyModeParams :: CopyModeParams -> Target mouseDrag :: Bool scrollUp :: Bool exitBottom :: Bool target :: Target ..} = Text -> Bool -> [Text] flag1 Text "-M" Bool mouseDrag [Text] -> [Text] -> [Text] forall a. Semigroup a => a -> a -> a <> Text -> Bool -> [Text] flag1 Text "-u" Bool scrollUp [Text] -> [Text] -> [Text] forall a. Semigroup a => a -> a -> a <> Text -> Bool -> [Text] flag1 Text "-e" Bool exitBottom [Text] -> [Text] -> [Text] forall a. Semigroup a => a -> a -> a <> Target -> [Text] forall a. CmdArgs a => a -> [Text] cmdArgs Target target