yi-core-0.19.2: Yi editor core library
LicenseGPL-2
Maintaineryi-devel@googlegroups.com
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010
Extensions
  • Cpp
  • ScopedTypeVariables
  • DeriveDataTypeable
  • DeriveFunctor
  • DeriveTraversable
  • DeriveFoldable
  • FlexibleContexts
  • ConstrainedClassMethods
  • MultiParamTypeClasses
  • ExistentialQuantification
  • GeneralizedNewtypeDeriving
  • ExplicitForAll
  • LambdaCase

Yi.Types

Description

This module is the host of the most prevalent types throughout Yi. It is unfortunately a necessary evil to avoid use of bootfiles.

You're encouraged to import from more idiomatic modules which will re-export these where appropriate.

Synopsis

Documentation

data Action Source #

Constructors

forall a.Show a => YiA (YiM a) 
forall a.Show a => EditorA (EditorM a) 
forall a.Show a => BufferA (BufferM a) 

Instances

Instances details
Show Action Source # 
Instance details

Defined in Yi.Types

Eq Action Source # 
Instance details

Defined in Yi.Types

YiAction Action () Source # 
Instance details

Defined in Yi.Keymap

class (Default a, Binary a, Typeable a) => YiVariable a Source #

Instances

Instances details
YiVariable CabalBuffer Source # 
Instance details

Defined in Yi.Command

YiVariable Histories Source # 
Instance details

Defined in Yi.History

YiVariable RegionStyle Source # 
Instance details

Defined in Yi.Types

class (Default a, Typeable a) => YiConfigVariable a Source #

Instances

Instances details
YiConfigVariable Evaluator Source # 
Instance details

Defined in Yi.Eval

type Interact ev a = I ev Action a Source #

data Yi Source #

Constructors

Yi 

Fields

Instances

Instances details
MonadReader Yi YiM Source # 
Instance details

Defined in Yi.Types

Methods

ask :: YiM Yi Source #

local :: (Yi -> Yi) -> YiM a -> YiM a Source #

reader :: (Yi -> a) -> YiM a Source #

newtype YiM a Source #

The type of user-bindable functions TODO: doc how these are actually user-bindable are they?

Constructors

YiM 

Fields

Instances

Instances details
MonadFail YiM Source # 
Instance details

Defined in Yi.Types

Methods

fail :: String -> YiM a Source #

Applicative YiM Source # 
Instance details

Defined in Yi.Types

Methods

pure :: a -> YiM a Source #

(<*>) :: YiM (a -> b) -> YiM a -> YiM b Source #

liftA2 :: (a -> b -> c) -> YiM a -> YiM b -> YiM c Source #

(*>) :: YiM a -> YiM b -> YiM b Source #

(<*) :: YiM a -> YiM b -> YiM a Source #

Functor YiM Source # 
Instance details

Defined in Yi.Types

Methods

fmap :: (a -> b) -> YiM a -> YiM b Source #

(<$) :: a -> YiM b -> YiM a Source #

Monad YiM Source # 
Instance details

Defined in Yi.Types

Methods

(>>=) :: YiM a -> (a -> YiM b) -> YiM b Source #

(>>) :: YiM a -> YiM b -> YiM b Source #

return :: a -> YiM a Source #

MonadEditor YiM Source # 
Instance details

Defined in Yi.Types

MonadReader Yi YiM Source # 
Instance details

Defined in Yi.Types

Methods

ask :: YiM Yi Source #

local :: (Yi -> Yi) -> YiM a -> YiM a Source #

reader :: (Yi -> a) -> YiM a Source #

MonadState Editor YiM Source # 
Instance details

Defined in Yi.Types

Methods

get :: YiM Editor Source #

put :: Editor -> YiM () Source #

state :: (Editor -> (a, Editor)) -> YiM a Source #

MonadBase IO YiM Source # 
Instance details

Defined in Yi.Types

Methods

liftBase :: IO α -> YiM α Source #

HookType (YiM a) Source # 
Instance details

Defined in Yi.Hooks

Methods

runHookImpl :: YiConfigVariable var => (var -> YiM a) -> YiM a

YiAction (YiM x) x Source # 
Instance details

Defined in Yi.Keymap

Methods

makeAction :: YiM x -> Action Source #

data KeymapSet Source #

Constructors

KeymapSet 

Fields

newtype BufferM a Source #

The BufferM monad writes the updates performed.

Constructors

BufferM 

Instances

Instances details
MonadFail BufferM Source # 
Instance details

Defined in Yi.Types

Methods

fail :: String -> BufferM a Source #

Applicative BufferM Source # 
Instance details

Defined in Yi.Types

Methods

pure :: a -> BufferM a Source #

(<*>) :: BufferM (a -> b) -> BufferM a -> BufferM b Source #

liftA2 :: (a -> b -> c) -> BufferM a -> BufferM b -> BufferM c Source #

(*>) :: BufferM a -> BufferM b -> BufferM b Source #

(<*) :: BufferM a -> BufferM b -> BufferM a Source #

Functor BufferM Source # 
Instance details

Defined in Yi.Types

Methods

fmap :: (a -> b) -> BufferM a -> BufferM b Source #

(<$) :: a -> BufferM b -> BufferM a Source #

Monad BufferM Source # 
Instance details

Defined in Yi.Types

Methods

(>>=) :: BufferM a -> (a -> BufferM b) -> BufferM b Source #

(>>) :: BufferM a -> BufferM b -> BufferM b Source #

return :: a -> BufferM a Source #

MonadReader Window BufferM Source # 
Instance details

Defined in Yi.Types

MonadState FBuffer BufferM Source # 
Instance details

Defined in Yi.Types

YiAction (BufferM x) x Source # 
Instance details

Defined in Yi.Keymap

data IndentSettings Source #

Currently duplicates some of Vim's indent settings. Allowing a buffer to specify settings that are more dynamic, perhaps via closures, could be useful.

Constructors

IndentSettings 

Fields

Instances

Instances details
Show IndentSettings Source # 
Instance details

Defined in Yi.Types

Eq IndentSettings Source # 
Instance details

Defined in Yi.Types

data FBuffer Source #

Constructors

forall syntax. FBuffer 

Fields

Instances

Instances details
Show FBuffer Source # 
Instance details

Defined in Yi.Buffer.Misc

Binary FBuffer Source # 
Instance details

Defined in Yi.Buffer.Misc

Eq FBuffer Source # 
Instance details

Defined in Yi.Types

MonadState FBuffer BufferM Source # 
Instance details

Defined in Yi.Types

data MarkSet a Source #

Constructors

MarkSet 

Fields

Instances

Instances details
Foldable MarkSet Source # 
Instance details

Defined in Yi.Types

Methods

fold :: Monoid m => MarkSet m -> m Source #

foldMap :: Monoid m => (a -> m) -> MarkSet a -> m Source #

foldMap' :: Monoid m => (a -> m) -> MarkSet a -> m Source #

foldr :: (a -> b -> b) -> b -> MarkSet a -> b Source #

foldr' :: (a -> b -> b) -> b -> MarkSet a -> b Source #

foldl :: (b -> a -> b) -> b -> MarkSet a -> b Source #

foldl' :: (b -> a -> b) -> b -> MarkSet a -> b Source #

foldr1 :: (a -> a -> a) -> MarkSet a -> a Source #

foldl1 :: (a -> a -> a) -> MarkSet a -> a Source #

toList :: MarkSet a -> [a] Source #

null :: MarkSet a -> Bool Source #

length :: MarkSet a -> Int Source #

elem :: Eq a => a -> MarkSet a -> Bool Source #

maximum :: Ord a => MarkSet a -> a Source #

minimum :: Ord a => MarkSet a -> a Source #

sum :: Num a => MarkSet a -> a Source #

product :: Num a => MarkSet a -> a Source #

Traversable MarkSet Source # 
Instance details

Defined in Yi.Types

Methods

traverse :: Applicative f => (a -> f b) -> MarkSet a -> f (MarkSet b) Source #

sequenceA :: Applicative f => MarkSet (f a) -> f (MarkSet a) Source #

mapM :: Monad m => (a -> m b) -> MarkSet a -> m (MarkSet b) Source #

sequence :: Monad m => MarkSet (m a) -> m (MarkSet a) Source #

Functor MarkSet Source # 
Instance details

Defined in Yi.Types

Methods

fmap :: (a -> b) -> MarkSet a -> MarkSet b Source #

(<$) :: a -> MarkSet b -> MarkSet a Source #

Show a => Show (MarkSet a) Source # 
Instance details

Defined in Yi.Types

Binary a => Binary (MarkSet a) Source # 
Instance details

Defined in Yi.Types

Methods

put :: MarkSet a -> Put Source #

get :: Get (MarkSet a) Source #

putList :: [MarkSet a] -> Put Source #

data Attributes Source #

Constructors

Attributes 

Fields

Instances

Instances details
Binary Attributes Source # 
Instance details

Defined in Yi.Types

data BufferId Source #

Instances

Instances details
Show BufferId Source # 
Instance details

Defined in Yi.Types

Binary BufferId Source # 
Instance details

Defined in Yi.Types

Eq BufferId Source # 
Instance details

Defined in Yi.Types

Ord BufferId Source # 
Instance details

Defined in Yi.Types

data AnyMode Source #

Constructors

forall syntax. AnyMode (Mode syntax) 

data Mode syntax Source #

A Mode customizes the Yi interface for editing a particular data format. It specifies when the mode should be used and controls file-specific syntax highlighting and command input, among other things.

Constructors

Mode 

Fields

Instances

Instances details
Binary (Mode syntax) Source #

Just stores the mode name.

Instance details

Defined in Yi.Buffer.Misc

Methods

put :: Mode syntax -> Put Source #

get :: Get (Mode syntax) Source #

putList :: [Mode syntax] -> Put Source #

data IndentBehaviour Source #

Used to specify the behaviour of the automatic indent command.

Constructors

IncreaseCycle

Increase the indentation to the next higher indentation hint. If we are currently at the highest level of indentation then cycle back to the lowest.

DecreaseCycle

Decrease the indentation to the next smaller indentation hint. If we are currently at the smallest level then cycle back to the largest

IncreaseOnly

Increase the indentation to the next higher hint if no such hint exists do nothing.

DecreaseOnly

Decrease the indentation to the next smaller indentation hint, if no such hint exists do nothing.

type Statuses = DelayList Status Source #

data Editor Source #

The Editor state

Constructors

Editor 

Fields

Instances

Instances details
Binary Editor Source # 
Instance details

Defined in Yi.Editor

MonadState Editor EditorM Source # 
Instance details

Defined in Yi.Types

MonadState Editor YiM Source # 
Instance details

Defined in Yi.Types

Methods

get :: YiM Editor Source #

put :: Editor -> YiM () Source #

state :: (Editor -> (a, Editor)) -> YiM a Source #

newtype EditorM a Source #

Constructors

EditorM 

Instances

Instances details
MonadFail EditorM Source # 
Instance details

Defined in Yi.Types

Methods

fail :: String -> EditorM a Source #

Applicative EditorM Source # 
Instance details

Defined in Yi.Types

Methods

pure :: a -> EditorM a Source #

(<*>) :: EditorM (a -> b) -> EditorM a -> EditorM b Source #

liftA2 :: (a -> b -> c) -> EditorM a -> EditorM b -> EditorM c Source #

(*>) :: EditorM a -> EditorM b -> EditorM b Source #

(<*) :: EditorM a -> EditorM b -> EditorM a Source #

Functor EditorM Source # 
Instance details

Defined in Yi.Types

Methods

fmap :: (a -> b) -> EditorM a -> EditorM b Source #

(<$) :: a -> EditorM b -> EditorM a Source #

Monad EditorM Source # 
Instance details

Defined in Yi.Types

Methods

(>>=) :: EditorM a -> (a -> EditorM b) -> EditorM b Source #

(>>) :: EditorM a -> EditorM b -> EditorM b Source #

return :: a -> EditorM a Source #

MonadEditor EditorM Source # 
Instance details

Defined in Yi.Types

MonadReader Config EditorM Source # 
Instance details

Defined in Yi.Types

MonadState Editor EditorM Source # 
Instance details

Defined in Yi.Types

HookType (EditorM a) Source # 
Instance details

Defined in Yi.Hooks

Methods

runHookImpl :: YiConfigVariable var => (var -> EditorM a) -> EditorM a

YiAction (EditorM x) x Source # 
Instance details

Defined in Yi.Keymap

class (Monad m, MonadState Editor m) => MonadEditor m where Source #

Minimal complete definition

askCfg

Methods

askCfg :: m Config Source #

withEditor :: EditorM a -> m a Source #

withEditor_ :: EditorM a -> m () Source #

Instances

Instances details
MonadEditor EditorM Source # 
Instance details

Defined in Yi.Types

MonadEditor YiM Source # 
Instance details

Defined in Yi.Types

data UIConfig Source #

Constructors

UIConfig 

Fields

type UIBoot = Config -> ([Event] -> IO ()) -> ([Action] -> IO ()) -> Editor -> IO (UI Editor) Source #

data CursorStyle Source #

When should we use a "fat" cursor (i.e. 2 pixels wide, rather than 1)? Fat cursors have only been implemented for the Pango frontend.

data Config Source #

Configuration record. All Yi hooks can be set here.

Constructors

Config 

Fields

Instances

Instances details
MonadReader Config EditorM Source # 
Instance details

Defined in Yi.Types

MonadState Config ConfigM Source # 
Instance details

Defined in Yi.Config.Simple.Types

data RegionStyle Source #

Instances

Instances details
Show RegionStyle Source # 
Instance details

Defined in Yi.Types

Binary RegionStyle Source # 
Instance details

Defined in Yi.Types

Default RegionStyle Source # 
Instance details

Defined in Yi.Types

Methods

def :: RegionStyle #

Eq RegionStyle Source # 
Instance details

Defined in Yi.Types

YiVariable RegionStyle Source # 
Instance details

Defined in Yi.Types