vgrep-0.2.3.0: A pager for grep
Safe HaskellNone
LanguageHaskell2010

Vgrep.Environment.Config.Monoid

Synopsis

Documentation

data ConfigMonoid Source #

A Monoid for reading partial configs. The ConfigMonoid can be converted to an actual Config using fromConfigMonoid.

The Monoid consists mostly of 'First a' values, so the most important config (the one that overrides all the others) should be read first.

Instances

Instances details
Eq ConfigMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Show ConfigMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Generic ConfigMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Associated Types

type Rep ConfigMonoid :: Type -> Type #

Semigroup ConfigMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Monoid ConfigMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

FromJSON ConfigMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Sources.File

type Rep ConfigMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

type Rep ConfigMonoid = D1 ('MetaData "ConfigMonoid" "Vgrep.Environment.Config.Monoid" "vgrep-0.2.3.0-79CAs1b54BVGsHizAm4Sjp" 'False) (C1 ('MetaCons "ConfigMonoid" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_mcolors") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ColorsMonoid) :*: S1 ('MetaSel ('Just "_mtabstop") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (First Int))) :*: (S1 ('MetaSel ('Just "_meditor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (First String)) :*: S1 ('MetaSel ('Just "_mkeybindings") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 KeybindingsMonoid))))

data ColorsMonoid Source #

A Monoid for reading partial Colors configurations.

Note that the attributes are not merged, but overridden:

>>> import Graphics.Vty.Attributes
>>> let leftStyle  = defAttr `withStyle` standout
>>> let rightStyle = defAttr `withForeColor` black
>>> let l = mempty { _mnormal = First (Just leftStyle)}
>>> let r = mempty { _mnormal = First (Just rightStyle)}
>>> _mnormal (l <> r) == First (Just (leftStyle <> rightStyle))
False
>>> _mnormal (l <> r) == First (Just leftStyle)
True

Instances

Instances details
Eq ColorsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Show ColorsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Generic ColorsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Associated Types

type Rep ColorsMonoid :: Type -> Type #

Semigroup ColorsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Monoid ColorsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

FromJSON ColorsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Sources.File

type Rep ColorsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

type Rep ColorsMonoid = D1 ('MetaData "ColorsMonoid" "Vgrep.Environment.Config.Monoid" "vgrep-0.2.3.0-79CAs1b54BVGsHizAm4Sjp" 'False) (C1 ('MetaCons "ColorsMonoid" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_mlineNumbers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (First Attr)) :*: (S1 ('MetaSel ('Just "_mlineNumbersHl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (First Attr)) :*: S1 ('MetaSel ('Just "_mnormal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (First Attr)))) :*: (S1 ('MetaSel ('Just "_mnormalHl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (First Attr)) :*: (S1 ('MetaSel ('Just "_mfileHeaders") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (First Attr)) :*: S1 ('MetaSel ('Just "_mselected") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (First Attr))))))

data KeybindingsMonoid Source #

A Monoid for reading a partial Keybindings configuration.

Mappings are combined using left-biased union:

>>> let l = Just (KeybindingMap (fromList [(Key.Chord mempty Key.Down, ResultsDown), (Key.Chord mempty Key.Up, ResultsUp)]))
>>> let r = Just (KeybindingMap (fromList [(Key.Chord mempty Key.Down, PagerDown)]))
>>> l <> r
Just (KeybindingMap {unKeybindingMap = fromList [(Chord (fromList []) Up,ResultsUp),(Chord (fromList []) Down,ResultsDown)]})
>>> r <> l
Just (KeybindingMap {unKeybindingMap = fromList [(Chord (fromList []) Up,ResultsUp),(Chord (fromList []) Down,PagerDown)]})

In particular, Just (fromList []) (declaring an empty list of mappings) and Nothing (not declaring anything) are equivalent, given that there are already default mappings:

>>> l <> Just (KeybindingMap (fromList [])) == l <> Nothing
True

This means that new keybindings override the previous ones if they collide, otherwise they are simply added. To remove a keybinding, it has to be mapped to Unset explicitly.

Instances

Instances details
Eq KeybindingsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Show KeybindingsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Generic KeybindingsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Associated Types

type Rep KeybindingsMonoid :: Type -> Type #

Semigroup KeybindingsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

Monoid KeybindingsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

FromJSON KeybindingsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Sources.File

type Rep KeybindingsMonoid Source # 
Instance details

Defined in Vgrep.Environment.Config.Monoid

type Rep KeybindingsMonoid = D1 ('MetaData "KeybindingsMonoid" "Vgrep.Environment.Config.Monoid" "vgrep-0.2.3.0-79CAs1b54BVGsHizAm4Sjp" 'False) (C1 ('MetaCons "KeybindingsMonoid" 'PrefixI 'True) (S1 ('MetaSel ('Just "_mresultsKeybindings") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe KeybindingMap)) :*: (S1 ('MetaSel ('Just "_mpagerKeybindings") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe KeybindingMap)) :*: S1 ('MetaSel ('Just "_mglobalKeybindings") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe KeybindingMap)))))