content: module Rasa.Ext.Views
    ( viewports
    -- * Working with Views
    , View(..)
    , viewable
    , splitRule
    , active
    , scrollPos
    , getViews
  
    -- * View Structure
    -- | Views are stored as a Tree, with 'Split's determining
    -- the layout of each branch.
    , Split(..)
    , Dir(..)
    , SplitRule(..)
    , Window
    , BiTree(..)
    , BiTreeF(..)
  
  
    -- * ProvidedApps
    , A.rotate
    , A.closeInactive
    , A.focusViewLeft
    , A.focusViewRight
    , A.focusViewAbove
    , A.focusViewBelow
    , A.hSplit
    , A.vSplit
    , A.addSplit
    , A.nextBuf
    , A.prevBuf
    , A.focusDo
    , A.focusDo_
    , A.focusedBufs
    , A.isFocused
    , A.scrollBy
  
    -- * Creating Widgets
    , Widgets
  
    -- | Lenses for accessing parts of 'Widgets':
    , topBar
    , bottomBar
    , leftBar
    , rightBar
    , HasWidgets(..)
  
    -- ** Providing Widgets
    -- | The following functions register a BufAction which yields some renderable;
    -- On each render that renderable will be used as a top/bottom/left/right bar respectively.
    , addTopBar
    , addBottomBar
    , addLeftBar
    , addRightBar
  
    -- * Provided Widgets
    , enableLineNumbers
    , disableLineNumbers
    , toggleLineNumbers
    , checkLineNumbers
  
    , addTopStatus
    , addBottomStatus
    ) where
  
  import Rasa.Ext
  import Rasa.Ext.Views.Internal.BiTree
  import Rasa.Ext.Views.Internal.Views
  import Rasa.Ext.Views.Internal.Widgets
  import Rasa.Ext.Views.Internal.LineNumbers
  import Rasa.Ext.Views.Internal.StatusBar
  import Rasa.Ext.Views.Internal.Actions as A
  
  -- | Main export from the views extension, add this to your rasa config.
  viewports :: App ()
  viewports = do
    onBufAdded_ A.addSplit
    lineNumbers
  