yi-core-0.18.0: src/Yi/UI/LineNumbers.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# OPTIONS_HADDOCK show-extensions #-}
-- |
-- Module : Yi.UI.LineNumbers
-- License : GPL-2
-- Maintainer : yi-devel@googlegroups.com
-- Stability : experimental
-- Portability : portable
--
-- Line numbers.
module Yi.UI.LineNumbers
( getDisplayLineNumbersLocal
, setDisplayLineNumbersLocal
) where
import Data.Binary (Binary (..))
import Data.Default (Default (..))
import Data.Typeable (Typeable)
import GHC.Generics (Generic)
import Yi.Buffer (getBufferDyn, putBufferDyn)
import Yi.Types (BufferM, YiVariable)
newtype DisplayLineNumbersLocal = DisplayLineNumbersLocal { unDisplayLineNumbersLocal :: Maybe Bool }
deriving (Generic, Typeable)
instance Default DisplayLineNumbersLocal where
def = DisplayLineNumbersLocal Nothing
instance Binary DisplayLineNumbersLocal
instance YiVariable DisplayLineNumbersLocal
-- | Get the buffer-local line number setting.
getDisplayLineNumbersLocal :: BufferM (Maybe Bool)
getDisplayLineNumbersLocal = unDisplayLineNumbersLocal <$> getBufferDyn
-- | Set the buffer-local line number setting.
-- Nothing: use global setting
-- Just True: display line numbers only in this buffer
-- Just False: hide line numbers only in this buffer
setDisplayLineNumbersLocal :: Maybe Bool -> BufferM ()
setDisplayLineNumbersLocal = putBufferDyn . DisplayLineNumbersLocal