purebred-0.1.0.0: An mail user agent built around notmuch

Safe HaskellNone
LanguageHaskell2010

Types

Description

Basic types for the UI used by this library

Synopsis

Documentation

data PurebredEvent Source #

Purebred event type. In the future we can abstract this over a custom event type to allow plugins to define their own events. But I've YAGNI'd it for now because it will require an event type parameter on AppState, which will be a noisy change.

Constructors

NotifyNumThreads Int Generation 
NotifyNewMailArrived Int 
InputValidated (Lens' AppState (Maybe Error)) (Maybe Error) 

newtype Generation Source #

A serial number that can be used to match (or ignore as irrelevant) asynchronous events to current application state.

Use the Eq and Ord instances to compare generations. The constructor is hidden; use firstGeneration as the first generation, and use nextGeneration to monotonically increment it.

Constructors

Generation Integer 
Instances
Eq Generation Source # 
Instance details

Defined in Types

Methods

(==) :: Generation -> Generation -> Bool

(/=) :: Generation -> Generation -> Bool

Ord Generation Source # 
Instance details

Defined in Types

data EntityCommand m a Source #

Command configuration which is bound to an acquired resource (e.g. a tempfile) filtered through an external command. The resource may or may not be cleaned up after the external command exits.

Constructors

EntityCommand 

Fields

data MailcapHandler Source #

Constructors

MailcapHandler 

Fields

Instances
Generic MailcapHandler Source # 
Instance details

Defined in Types

Associated Types

type Rep MailcapHandler :: Type -> Type

NFData MailcapHandler Source # 
Instance details

Defined in Types

Methods

rnf :: MailcapHandler -> ()

type Rep MailcapHandler Source # 
Instance details

Defined in Types

type Rep MailcapHandler = D1 (MetaData "MailcapHandler" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "MailcapHandler" PrefixI True) (S1 (MetaSel (Just "_mhMakeProcess") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 MakeProcess) :*: (S1 (MetaSel (Just "_mhCopiousoutput") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 CopiousOutput) :*: S1 (MetaSel (Just "_mhKeepTemp") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 TempfileOnExit))))

data TempfileOnExit Source #

Instances
Generic TempfileOnExit Source # 
Instance details

Defined in Types

Associated Types

type Rep TempfileOnExit :: Type -> Type

NFData TempfileOnExit Source # 
Instance details

Defined in Types

Methods

rnf :: TempfileOnExit -> ()

type Rep TempfileOnExit Source # 
Instance details

Defined in Types

type Rep TempfileOnExit = D1 (MetaData "TempfileOnExit" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "KeepTempfile" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "DiscardTempfile" PrefixI False) (U1 :: Type -> Type))

data CopiousOutput Source #

Instances
Generic CopiousOutput Source # 
Instance details

Defined in Types

Associated Types

type Rep CopiousOutput :: Type -> Type

NFData CopiousOutput Source # 
Instance details

Defined in Types

Methods

rnf :: CopiousOutput -> ()

type Rep CopiousOutput Source # 
Instance details

Defined in Types

type Rep CopiousOutput = D1 (MetaData "CopiousOutput" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "CopiousOutput" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "IgnoreOutput" PrefixI False) (U1 :: Type -> Type))

data MakeProcess Source #

Constructors

Shell (NonEmpty Char) 
Process (NonEmpty Char) [String] 
Instances
Generic MakeProcess Source # 
Instance details

Defined in Types

Associated Types

type Rep MakeProcess :: Type -> Type

Methods

from :: MakeProcess -> Rep MakeProcess x

to :: Rep MakeProcess x -> MakeProcess

NFData MakeProcess Source # 
Instance details

Defined in Types

Methods

rnf :: MakeProcess -> ()

type Rep MakeProcess Source # 
Instance details

Defined in Types

type Rep MakeProcess = D1 (MetaData "MakeProcess" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "Shell" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (NonEmpty Char))) :+: C1 (MetaCons "Process" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (NonEmpty Char)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String])))

data ResourceSpec m a Source #

A bracket-style type for creating and releasing acquired resources (e.g. temporary files). Note that extending this is perhaps not worth it and we should perhaps look at ResourceT if necessary.

Constructors

ResourceSpec 

Fields

  • _rsAcquire :: (MonadIO m, MonadError Error m) => m a

    acquire a resource (e.g. create temporary file)

  • _rsFree :: (MonadIO m, MonadError Error m) => a -> m ()

    release a resource (e.g. remove temporary file)

  • _rsUpdate :: (MonadIO m, MonadError Error m) => a -> ByteString -> m ()

    update the acquired resource with the ByteString obtained from serialising the WireEntity

data TagOp Source #

Tag operations

Constructors

RemoveTag Tag 
AddTag Tag 
ResetTags 
Instances
Eq TagOp Source # 
Instance details

Defined in Types

Methods

(==) :: TagOp -> TagOp -> Bool

(/=) :: TagOp -> TagOp -> Bool

Show TagOp Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> TagOp -> ShowS

show :: TagOp -> String

showList :: [TagOp] -> ShowS

data NotmuchThread Source #

Constructors

NotmuchThread 

Fields

Instances
Eq NotmuchThread Source # 
Instance details

Defined in Types

Show NotmuchThread Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> NotmuchThread -> ShowS

show :: NotmuchThread -> String

showList :: [NotmuchThread] -> ShowS

ManageTags NotmuchThread Source # 
Instance details

Defined in Storage.Notmuch

Methods

tags :: Lens' NotmuchThread [Tag] Source #

data NotmuchMail Source #

an email from the notmuch database

Constructors

NotmuchMail 

Fields

Instances
Eq NotmuchMail Source # 
Instance details

Defined in Types

Methods

(==) :: NotmuchMail -> NotmuchMail -> Bool

(/=) :: NotmuchMail -> NotmuchMail -> Bool

Show NotmuchMail Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> NotmuchMail -> ShowS

show :: NotmuchMail -> String

showList :: [NotmuchMail] -> ShowS

ManageTags NotmuchMail Source # 
Instance details

Defined in Storage.Notmuch

Methods

tags :: Lens' NotmuchMail [Tag] Source #

data Keybinding (v :: ViewName) (ctx :: Name) Source #

Constructors

Keybinding 

Fields

Instances
Eq (Keybinding v ctx) Source # 
Instance details

Defined in Types

Methods

(==) :: Keybinding v ctx -> Keybinding v ctx -> Bool

(/=) :: Keybinding v ctx -> Keybinding v ctx -> Bool

NFData (Keybinding v ctx) Source #

HACK: the Event is only evaluated to WHNF. There is no NFData instance for Event and I don't want to make an orphan instance for it.

Instance details

Defined in Types

Methods

rnf :: Keybinding v ctx -> ()

data Action (v :: ViewName) (ctx :: Name) a Source #

Constructors

Action 

Fields

Instances
NFData (Action v ctx a) Source # 
Instance details

Defined in Types

Methods

rnf :: Action v ctx a -> ()

data AppState Source #

Overall application state

Constructors

AppState 

Fields

newtype Async Source #

State needed to be kept for keeping track of concurrent/asynchronous actions

Constructors

Async 

Fields

data FileBrowser Source #

Constructors

CreateFileBrowser 

Fields

data FileSystemEntry Source #

Constructors

Directory String 
File String 
Instances
Eq FileSystemEntry Source # 
Instance details

Defined in Types

Ord FileSystemEntry Source # 
Instance details

Defined in Types

Show FileSystemEntry Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> FileSystemEntry -> ShowS

show :: FileSystemEntry -> String

showList :: [FileSystemEntry] -> ShowS

type Toggleable a = (Bool, a) Source #

An item carrying it's selected state. Used in order to mark list items.

data ViewSettings Source #

Constructors

ViewSettings 

Fields

newtype Layer Source #

Constructors

Layer (Vector Tile) 
Instances
Eq Layer Source # 
Instance details

Defined in Types

Methods

(==) :: Layer -> Layer -> Bool

(/=) :: Layer -> Layer -> Bool

Show Layer Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> Layer -> ShowS

show :: Layer -> String

showList :: [Layer] -> ShowS

Ixed Layer Source # 
Instance details

Defined in Types

Methods

ix :: Index Layer -> Traversal' Layer (IxValue Layer)

type Index Layer Source # 
Instance details

Defined in Types

type Index Layer = Name
type IxValue Layer Source # 
Instance details

Defined in Types

type IxValue Layer = Tile

data View Source #

Constructors

View 

Fields

type Layers = Vector Layer Source #

data Tile Source #

Constructors

Tile ViewState Name 
Instances
Eq Tile Source # 
Instance details

Defined in Types

Methods

(==) :: Tile -> Tile -> Bool

(/=) :: Tile -> Tile -> Bool

Show Tile Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> Tile -> ShowS

show :: Tile -> String

showList :: [Tile] -> ShowS

data ViewState Source #

Constructors

Hidden 
Visible 
Instances
Eq ViewState Source # 
Instance details

Defined in Types

Methods

(==) :: ViewState -> ViewState -> Bool

(/=) :: ViewState -> ViewState -> Bool

Show ViewState Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> ViewState -> ShowS

show :: ViewState -> String

showList :: [ViewState] -> ShowS

data ViewName Source #

Instances
Eq ViewName Source # 
Instance details

Defined in Types

Methods

(==) :: ViewName -> ViewName -> Bool

(/=) :: ViewName -> ViewName -> Bool

Ord ViewName Source # 
Instance details

Defined in Types

Methods

compare :: ViewName -> ViewName -> Ordering

(<) :: ViewName -> ViewName -> Bool

(<=) :: ViewName -> ViewName -> Bool

(>) :: ViewName -> ViewName -> Bool

(>=) :: ViewName -> ViewName -> Bool

max :: ViewName -> ViewName -> ViewName

min :: ViewName -> ViewName -> ViewName

Show ViewName Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> ViewName -> ShowS

show :: ViewName -> String

showList :: [ViewName] -> ShowS

Generic ViewName Source # 
Instance details

Defined in Types

Associated Types

type Rep ViewName :: Type -> Type

Methods

from :: ViewName -> Rep ViewName x

to :: Rep ViewName x -> ViewName

NFData ViewName Source # 
Instance details

Defined in Types

Methods

rnf :: ViewName -> ()

Titleize ViewName Source # 
Instance details

Defined in UI.Utils

Methods

titleize :: ViewName -> Text Source #

type Rep ViewName Source # 
Instance details

Defined in Types

type Rep ViewName = D1 (MetaData "ViewName" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) ((C1 (MetaCons "Threads" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Mails" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "ViewMail" PrefixI False) (U1 :: Type -> Type))) :+: (C1 (MetaCons "ComposeView" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Help" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "FileBrowser" PrefixI False) (U1 :: Type -> Type))))

data MailViewSettings Source #

Instances
Generic MailViewSettings Source # 
Instance details

Defined in Types

Associated Types

type Rep MailViewSettings :: Type -> Type

NFData MailViewSettings Source # 
Instance details

Defined in Types

Methods

rnf :: MailViewSettings -> ()

type Rep MailViewSettings Source # 
Instance details

Defined in Types

type Rep MailViewSettings = D1 (MetaData "MailViewSettings" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "MailViewSettings" PrefixI True) (((S1 (MetaSel (Just "_mvIndexRows") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int) :*: (S1 (MetaSel (Just "_mvTextWidth") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int) :*: S1 (MetaSel (Just "_mvPreferredContentType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ContentType))) :*: (S1 (MetaSel (Just "_mvHeadersToShow") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (CI ByteString -> Bool)) :*: (S1 (MetaSel (Just "_mvKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ViewMail ScrollingMailView]) :*: S1 (MetaSel (Just "_mvManageMailTagsKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ViewMail ManageMailTagsEditor])))) :*: ((S1 (MetaSel (Just "_mvMailListOfAttachmentsKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ViewMail MailListOfAttachments]) :*: (S1 (MetaSel (Just "_mvOpenWithKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ViewMail MailAttachmentOpenWithEditor]) :*: S1 (MetaSel (Just "_mvPipeToKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ViewMail MailAttachmentPipeToEditor]))) :*: ((S1 (MetaSel (Just "_mvFindWordEditorKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ViewMail ScrollingMailViewFindWordEditor]) :*: S1 (MetaSel (Just "_mvMailcap") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(ContentType -> Bool, MailcapHandler)])) :*: (S1 (MetaSel (Just "_mvSaveToDiskKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ViewMail SaveToDiskPathEditor]) :*: S1 (MetaSel (Just "_mvToKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ViewMail ComposeTo]))))))

data IndexViewSettings Source #

Instances
Generic IndexViewSettings Source # 
Instance details

Defined in Types

Associated Types

type Rep IndexViewSettings :: Type -> Type

NFData IndexViewSettings Source # 
Instance details

Defined in Types

Methods

rnf :: IndexViewSettings -> ()

type Rep IndexViewSettings Source # 
Instance details

Defined in Types

type Rep IndexViewSettings = D1 (MetaData "IndexViewSettings" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "IndexViewSettings" PrefixI True) ((S1 (MetaSel (Just "_ivBrowseThreadsKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding Threads ListOfThreads]) :*: (S1 (MetaSel (Just "_ivSearchThreadsKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding Threads SearchThreadsEditor]) :*: S1 (MetaSel (Just "_ivManageThreadTagsKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding Threads ManageThreadTagsEditor]))) :*: (S1 (MetaSel (Just "_ivFromKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding Threads ComposeFrom]) :*: (S1 (MetaSel (Just "_ivToKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding Threads ComposeTo]) :*: S1 (MetaSel (Just "_ivSubjectKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding Threads ComposeSubject])))))

newtype HelpViewSettings Source #

Instances
Generic HelpViewSettings Source # 
Instance details

Defined in Types

Associated Types

type Rep HelpViewSettings :: Type -> Type

NFData HelpViewSettings Source # 
Instance details

Defined in Types

Methods

rnf :: HelpViewSettings -> ()

type Rep HelpViewSettings Source # 
Instance details

Defined in Types

type Rep HelpViewSettings = D1 (MetaData "HelpViewSettings" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" True) (C1 (MetaCons "HelpViewSettings" PrefixI True) (S1 (MetaSel (Just "_hvKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding Help ScrollingHelpView])))

data ComposeViewSettings Source #

Instances
Generic ComposeViewSettings Source # 
Instance details

Defined in Types

Associated Types

type Rep ComposeViewSettings :: Type -> Type

NFData ComposeViewSettings Source # 
Instance details

Defined in Types

Methods

rnf :: ComposeViewSettings -> ()

type Rep ComposeViewSettings Source # 
Instance details

Defined in Types

type Rep ComposeViewSettings = D1 (MetaData "ComposeViewSettings" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "ComposeViewSettings" PrefixI True) (((S1 (MetaSel (Just "_cvFromKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ComposeView ComposeFrom]) :*: S1 (MetaSel (Just "_cvToKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ComposeView ComposeTo])) :*: (S1 (MetaSel (Just "_cvCcKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ComposeView ComposeCc]) :*: S1 (MetaSel (Just "_cvBccKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ComposeView ComposeBcc]))) :*: ((S1 (MetaSel (Just "_cvSubjectKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ComposeView ComposeSubject]) :*: S1 (MetaSel (Just "_cvSendMailCmd") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Builder -> IO (Either Error ())))) :*: (S1 (MetaSel (Just "_cvListOfAttachmentsKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ComposeView ComposeListOfAttachments]) :*: (S1 (MetaSel (Just "_cvIdentities") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Mailbox]) :*: S1 (MetaSel (Just "_cvConfirmKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding ComposeView ConfirmDialog]))))))

type ConfigurationLens v = forall z a b c. Lens' (Configuration z a b c) v Source #

type UserConfiguration = Configuration () (IO FilePath) (IO String) (IO FilePath) Source #

type InternalConfigurationFields = (BChan PurebredEvent, String, Text -> IO ()) Source #

data Configuration extra a b c Source #

Instances
Generic (Configuration extra a b c) Source # 
Instance details

Defined in Types

Associated Types

type Rep (Configuration extra a b c) :: Type -> Type

Methods

from :: Configuration extra a b c -> Rep (Configuration extra a b c) x

to :: Rep (Configuration extra a b c) x -> Configuration extra a b c

(NFData a, NFData b, NFData c, NFData extra) => NFData (Configuration extra a b c) Source # 
Instance details

Defined in Types

Methods

rnf :: Configuration extra a b c -> ()

type Rep (Configuration extra a b c) Source # 
Instance details

Defined in Types

type Rep (Configuration extra a b c) = D1 (MetaData "Configuration" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "Configuration" PrefixI True) (((S1 (MetaSel (Just "_confTheme") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 AttrMap) :*: S1 (MetaSel (Just "_confNotmuch") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (NotmuchSettings a))) :*: (S1 (MetaSel (Just "_confEditor") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 b) :*: (S1 (MetaSel (Just "_confMailView") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 MailViewSettings) :*: S1 (MetaSel (Just "_confIndexView") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 IndexViewSettings)))) :*: ((S1 (MetaSel (Just "_confComposeView") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ComposeViewSettings) :*: (S1 (MetaSel (Just "_confHelpView") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 HelpViewSettings) :*: S1 (MetaSel (Just "_confDefaultView") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ViewName))) :*: (S1 (MetaSel (Just "_confFileBrowserView") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (FileBrowserSettings c)) :*: (S1 (MetaSel (Just "_confCharsets") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 CharsetLookup) :*: S1 (MetaSel (Just "_confExtra") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 extra))))))

data Delay Source #

Constructors

Seconds Int 
Minutes Int 
Instances
Generic Delay Source # 
Instance details

Defined in Types

Associated Types

type Rep Delay :: Type -> Type

Methods

from :: Delay -> Rep Delay x

to :: Rep Delay x -> Delay

NFData Delay Source # 
Instance details

Defined in Types

Methods

rnf :: Delay -> ()

type Rep Delay Source # 
Instance details

Defined in Types

type Rep Delay = D1 (MetaData "Delay" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "Seconds" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)) :+: C1 (MetaCons "Minutes" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))

data FileBrowserSettings a Source #

Instances
Generic (FileBrowserSettings a) Source # 
Instance details

Defined in Types

Associated Types

type Rep (FileBrowserSettings a) :: Type -> Type

NFData a => NFData (FileBrowserSettings a) Source # 
Instance details

Defined in Types

Methods

rnf :: FileBrowserSettings a -> ()

type Rep (FileBrowserSettings a) Source # 
Instance details

Defined in Types

type Rep (FileBrowserSettings a) = D1 (MetaData "FileBrowserSettings" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "FileBrowserSettings" PrefixI True) (S1 (MetaSel (Just "_fbKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding FileBrowser ListOfFiles]) :*: (S1 (MetaSel (Just "_fbSearchPathKeybindings") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Keybinding FileBrowser ManageFileBrowserSearchPath]) :*: S1 (MetaSel (Just "_fbHomePath") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))))

data NotmuchSettings a Source #

Instances
Generic (NotmuchSettings a) Source # 
Instance details

Defined in Types

Associated Types

type Rep (NotmuchSettings a) :: Type -> Type

Methods

from :: NotmuchSettings a -> Rep (NotmuchSettings a) x

to :: Rep (NotmuchSettings a) x -> NotmuchSettings a

NFData a => NFData (NotmuchSettings a) Source # 
Instance details

Defined in Types

Methods

rnf :: NotmuchSettings a -> ()

type Rep (NotmuchSettings a) Source # 
Instance details

Defined in Types

type Rep (NotmuchSettings a) = D1 (MetaData "NotmuchSettings" "Types" "purebred-0.1.0.0-6Fm27DmStndB0W4WaAwgGx" False) (C1 (MetaCons "NotmuchSettings" PrefixI True) ((S1 (MetaSel (Just "_nmSearch") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text) :*: (S1 (MetaSel (Just "_nmDatabase") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Just "_nmNewTag") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Tag))) :*: ((S1 (MetaSel (Just "_nmDraftTag") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Tag) :*: S1 (MetaSel (Just "_nmSentTag") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Tag)) :*: (S1 (MetaSel (Just "_nmHasNewMailSearch") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text) :*: S1 (MetaSel (Just "_nmHasNewMailCheckDelay") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Delay))))))

data Compose Source #

Constructors

Compose 

Fields

data ConfirmDraft Source #

Constructors

Keep 
Discard 
Instances
Show ConfirmDraft Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> ConfirmDraft -> ShowS

show :: ConfirmDraft -> String

showList :: [ConfirmDraft] -> ShowS

data MailView Source #

Constructors

MailView 

Fields

data HeadersState Source #

Constructors

ShowAll 
Filtered 

data Line Source #

A line of text with arbitrary length and possible matching sub strings

Constructors

Line 

Fields

  • [Match]
     
  • Int

    line number

  • Text
     
Instances
Eq Line Source # 
Instance details

Defined in Types

Methods

(==) :: Line -> Line -> Bool

(/=) :: Line -> Line -> Bool

Show Line Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> Line -> ShowS

show :: Line -> String

showList :: [Line] -> ShowS

type ScrollStep = (Int, Int, Match) Source #

A scroll step indicated by the sequential number, line number and the match. The sequential number is used for visual purposes to render a status like: 2 of 30 matches

data Match Source #

A match of a substring in the current line of text

Constructors

Match 

Fields

  • Int

    offset

  • Int

    length

  • Int

    line number

Instances
Eq Match Source # 
Instance details

Defined in Types

Methods

(==) :: Match -> Match -> Bool

(/=) :: Match -> Match -> Bool

Show Match Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> Match -> ShowS

show :: Match -> String

showList :: [Match] -> ShowS

newtype Paragraph Source #

A paragraph in the mail body

Constructors

Paragraph [Line] 
Instances
Eq Paragraph Source # 
Instance details

Defined in Types

Methods

(==) :: Paragraph -> Paragraph -> Bool

(/=) :: Paragraph -> Paragraph -> Bool

Show Paragraph Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> Paragraph -> ShowS

show :: Paragraph -> String

showList :: [Paragraph] -> ShowS

data MailBody Source #

Type representing a specific entity from an e-mail for display.

Constructors

MailBody Source [Paragraph] 
Instances
Eq MailBody Source # 
Instance details

Defined in Types

Methods

(==) :: MailBody -> MailBody -> Bool

(/=) :: MailBody -> MailBody -> Bool

Show MailBody Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> MailBody -> ShowS

show :: MailBody -> String

showList :: [MailBody] -> ShowS

type Source = Text Source #

A loose annotation what produced the rendered output of the entity

data MailIndex Source #

main application interface

The main UI shows a list of e-mails, allows the user to manipulate the notmuch search and composes e-mails from here.

data ListWithLength t a Source #

A brick list, with a field that optionally contains its length.

Rather than reading the length from the underlying list, to support lazy loading we have a separate field that optionally contains the length. Widgets should read the length from this field and must handle the Nothing case.

For strict lists (e.g. Vector-based) the length can be recorded when constructed. For lazy lists, it could be left empty, or a thread could be spawned to compute the length in the background and update the value when the length is known.

Constructors

ListWithLength (GenericList Name t a) (Maybe Int) 
Instances
WithContext (ListWithLength t e) Source # 
Instance details

Defined in UI.Status.Main

Methods

renderContext :: AppState -> ListWithLength t e -> Widget Name Source #

data Name Source #

Used to identify widgets in brick

Instances
Eq Name Source # 
Instance details

Defined in Types

Methods

(==) :: Name -> Name -> Bool

(/=) :: Name -> Name -> Bool

Ord Name Source # 
Instance details

Defined in Types

Methods

compare :: Name -> Name -> Ordering

(<) :: Name -> Name -> Bool

(<=) :: Name -> Name -> Bool

(>) :: Name -> Name -> Bool

(>=) :: Name -> Name -> Bool

max :: Name -> Name -> Name

min :: Name -> Name -> Name

Show Name Source # 
Instance details

Defined in Types

Methods

showsPrec :: Int -> Name -> ShowS

show :: Name -> String

showList :: [Name] -> ShowS

Titleize Name Source # 
Instance details

Defined in UI.Utils

Methods

titleize :: Name -> Text Source #

WithContext (Editor Text Name) Source # 
Instance details

Defined in UI.Status.Main

Methods

renderContext :: AppState -> Editor Text Name -> Widget Name Source #

listList :: Lens' (ListWithLength t a) (GenericList Name t a) Source #

listLength :: Lens' (ListWithLength t a) (Maybe Int) Source #

miListOfMails :: Lens' MailIndex (GenericList Name Vector (Toggleable NotmuchMail)) Source #

miMailTagsEditor :: Lens' MailIndex (Editor Text Name) Source #

miThreadTagsEditor :: Lens' MailIndex (Editor Text Name) Source #

pLine :: Traversal' Paragraph Line Source #

mLinenumber :: Lens' Match Int Source #

hasMatches :: Line -> Bool Source #

lText :: Lens' Line Text Source #

lNumber :: Lens' Line Int Source #

mvMail :: Lens' MailView (Maybe MIMEMessage) Source #

mvAttachments :: Lens' MailView (List Name WireEntity) Source #

mvSaveToDiskPath :: Lens' MailView (Editor Text Name) Source #

mvOpenCommand :: Lens' MailView (Editor Text Name) Source #

mvPipeCommand :: Lens' MailView (Editor Text Name) Source #

mvFindWordEditor :: Lens' MailView (Editor Text Name) Source #

cFrom :: Lens' Compose (Editor Text Name) Source #

cTo :: Lens' Compose (Editor Text Name) Source #

cCc :: Lens' Compose (Editor Text Name) Source #

cBcc :: Lens' Compose (Editor Text Name) Source #

cSubject :: Lens' Compose (Editor Text Name) Source #

cTemp :: Lens' Compose Text Source #

cAttachments :: Lens' Compose (List Name MIMEMessage) Source #

nmSearch :: Lens' (NotmuchSettings a) Text Source #

confEditor :: Lens (Configuration z a b c) (Configuration z a b' c) b b' Source #

confExtra :: Lens (Configuration extra a b c) (Configuration extra' a b c) extra extra' Source #

confLogSink :: Lens' InternalConfiguration (Text -> IO ()) Source #

cvSendMailCmd :: Lens' ComposeViewSettings (Builder -> IO (Either Error ())) Source #

mvHeadersToShow :: Getter MailViewSettings (CI ByteString -> Bool) Source #

mvMailcap :: Lens' MailViewSettings [(ContentType -> Bool, MailcapHandler)] Source #

hasCopiousoutput :: Traversal' [(ContentType -> Bool, MailcapHandler)] (ContentType -> Bool, MailcapHandler) Source #

layeriso :: Iso' Layer (Vector Tile) Source #

tile :: Name -> Traversal' Layer Tile Source #

fbSearchPath :: Lens' FileBrowser (Editor FilePath Name) Source #

aValidation :: Lens' Async (Maybe ThreadId) Source #

asError :: Lens' AppState (Maybe Error) Source #

asLocalTime :: Lens' AppState UTCTime Source #

aAction :: Getter (Action v ctx a) (StateT AppState (EventM Name) a) Source #

aDescription :: Getter (Action v ctx a) [Text] Source #

kbEvent :: Getter (Keybinding v ctx) Event Source #

kbAction :: Getter (Keybinding v ctx) (Action v ctx (Next AppState)) Source #

mailDate :: Lens' NotmuchMail UTCTime Source #

mailId :: Lens' NotmuchMail ByteString Source #

thDate :: Lens' NotmuchThread UTCTime Source #

thId :: Lens' NotmuchThread ByteString Source #

decodeLenient :: ByteString -> Text Source #

Utility for safe conversion from bytestring to text

rsAcquire :: (MonadError Error m, MonadIO m) => Lens' (ResourceSpec m a) (m a) Source #

rsFree :: (MonadError Error m, MonadIO m) => Lens' (ResourceSpec m a) (a -> m ()) Source #

rsUpdate :: (MonadError Error m, MonadIO m) => Lens' (ResourceSpec m a) (a -> ByteString -> m ()) Source #

mpCommand :: Lens' MakeProcess (NonEmpty Char) Source #

ccAfterExit :: (MonadIO m, MonadError Error m) => Lens' (EntityCommand m a) ((ExitCode, Tainted ByteString) -> a -> m Text) Source #

ccEntity :: Lens' (EntityCommand m a) ByteString Source #

ccProcessConfig :: Lens' (EntityCommand m a) (ByteString -> a -> ProcessConfig () () ()) Source #

ccResource :: (MonadIO m, MonadError Error m) => Lens' (EntityCommand m a) (ResourceSpec m a) Source #

ccRunProcess :: (MonadError Error m, MonadIO m) => Lens' (EntityCommand m a) (ProcessConfig () () () -> m (ExitCode, Tainted ByteString)) Source #

data Tag #

Instances
Eq Tag 
Instance details

Defined in Notmuch.Tag

Methods

(==) :: Tag -> Tag -> Bool

(/=) :: Tag -> Tag -> Bool

Ord Tag 
Instance details

Defined in Notmuch.Tag

Methods

compare :: Tag -> Tag -> Ordering

(<) :: Tag -> Tag -> Bool

(<=) :: Tag -> Tag -> Bool

(>) :: Tag -> Tag -> Bool

(>=) :: Tag -> Tag -> Bool

max :: Tag -> Tag -> Tag

min :: Tag -> Tag -> Tag

Show Tag 
Instance details

Defined in Notmuch.Tag

Methods

showsPrec :: Int -> Tag -> ShowS

show :: Tag -> String

showList :: [Tag] -> ShowS

IsString Tag 
Instance details

Defined in Notmuch.Tag

Methods

fromString :: String -> Tag

NFData Tag 
Instance details

Defined in Notmuch.Tag

Methods

rnf :: Tag -> ()