{-# LANGUAGE TemplateHaskell #-} module Vgrep.Environment ( Environment (..) , Viewport (..) -- * Auto-generated Lenses , config , viewport , vpHeight , vpWidth -- * Convenience Lenses , viewportWidth , viewportHeight -- * Re-exports , module Vgrep.Environment.Config ) where import Control.Lens.Compat import Vgrep.Environment.Config -- | The bounds (width and height) of a display viewport. data Viewport = Viewport { _vpWidth :: Int, _vpHeight :: Int } deriving (Eq, Show) makeLenses ''Viewport -- | 'Vgrep.Type.VgrepT' actions can read from the environment. data Environment = Env { _config :: Config -- ^ External configuration (colors, editor executable, …) , _viewport :: Viewport -- ^ The bounds (width and height) of the display viewport where the -- 'Vgrep.App.App' or the current 'Vgrep.Widget.Widget' is displayed } deriving (Eq, Show) makeLenses ''Environment viewportHeight, viewportWidth :: Lens' Environment Int viewportHeight = viewport . vpHeight viewportWidth = viewport . vpWidth