{-# 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 =
    forall a. [a] -> Maybe a
listToMaybe forall a b. (a -> b) -> a -> b
$ forall a. (a -> Bool) -> [a] -> [a]
filter ((forall a. Eq a => a -> a -> Bool
== Text
topic) forall b c a. (b -> c) -> (a -> b) -> a -> c
. HelpTopic -> Text
helpTopicName) [HelpTopic]
helpTopics