{-# LANGUAGE OverloadedStrings #-} module Matterhorn.HelpTopics ( helpTopics , lookupHelpTopic , themeHelpTopic , mainHelpTopic ) where import Prelude () import Matterhorn.Prelude import Matterhorn.Types helpTopics :: [HelpTopic] helpTopics :: [HelpTopic] helpTopics = [ HelpTopic mainHelpTopic , HelpTopic scriptHelpTopic , HelpTopic themeHelpTopic , HelpTopic keybindingHelpTopic , HelpTopic syntaxHighlightingHelpTopic ] mainHelpTopic :: HelpTopic mainHelpTopic :: HelpTopic mainHelpTopic = Text -> Text -> HelpScreen -> HelpTopic HelpTopic Text "main" Text "This help page" HelpScreen MainHelp scriptHelpTopic :: HelpTopic scriptHelpTopic :: HelpTopic scriptHelpTopic = Text -> Text -> HelpScreen -> HelpTopic HelpTopic Text "scripts" Text "Help on available scripts" HelpScreen ScriptHelp themeHelpTopic :: HelpTopic themeHelpTopic :: HelpTopic themeHelpTopic = Text -> Text -> HelpScreen -> HelpTopic HelpTopic Text "themes" Text "Help on color themes" HelpScreen ThemeHelp keybindingHelpTopic :: HelpTopic keybindingHelpTopic :: HelpTopic keybindingHelpTopic = Text -> Text -> HelpScreen -> HelpTopic HelpTopic Text "keybindings" Text "Help on overriding keybindings" HelpScreen KeybindingHelp syntaxHighlightingHelpTopic :: HelpTopic syntaxHighlightingHelpTopic :: HelpTopic syntaxHighlightingHelpTopic = Text -> Text -> HelpScreen -> HelpTopic HelpTopic Text "syntax" Text "Help on syntax highlighing" HelpScreen SyntaxHighlightHelp lookupHelpTopic :: Text -> Maybe HelpTopic lookupHelpTopic :: Text -> Maybe HelpTopic lookupHelpTopic Text topic = [HelpTopic] -> Maybe HelpTopic forall a. [a] -> Maybe a listToMaybe ([HelpTopic] -> Maybe HelpTopic) -> [HelpTopic] -> Maybe HelpTopic forall a b. (a -> b) -> a -> b $ (HelpTopic -> Bool) -> [HelpTopic] -> [HelpTopic] forall a. (a -> Bool) -> [a] -> [a] filter ((Text -> Text -> Bool forall a. Eq a => a -> a -> Bool == Text topic) (Text -> Bool) -> (HelpTopic -> Text) -> HelpTopic -> Bool forall b c a. (b -> c) -> (a -> b) -> a -> c . HelpTopic -> Text helpTopicName) [HelpTopic] helpTopics