1{-# LANGUAGE OverloadedStrings #-}
2module Matterhorn.HelpTopics
3  ( helpTopics
4  , lookupHelpTopic
5  , themeHelpTopic
6  , mainHelpTopic
7  )
8where
9
10import Prelude ()
11import Matterhorn.Prelude
12
13import Matterhorn.Types
14
15
16helpTopics :: [HelpTopic]
17helpTopics =
18    [ mainHelpTopic
19    , scriptHelpTopic
20    , themeHelpTopic
21    , keybindingHelpTopic
22    , syntaxHighlightingHelpTopic
23    ]
24
25mainHelpTopic :: HelpTopic
26mainHelpTopic =
27    HelpTopic "main" "This help page" MainHelp HelpText
28
29scriptHelpTopic :: HelpTopic
30scriptHelpTopic =
31    HelpTopic "scripts" "Help on available scripts" ScriptHelp ScriptHelpText
32
33themeHelpTopic :: HelpTopic
34themeHelpTopic =
35    HelpTopic "themes" "Help on color themes" ThemeHelp ThemeHelpText
36
37keybindingHelpTopic :: HelpTopic
38keybindingHelpTopic =
39    HelpTopic "keybindings" "Help on overriding keybindings"
40      KeybindingHelp KeybindingHelpText
41
42syntaxHighlightingHelpTopic :: HelpTopic
43syntaxHighlightingHelpTopic =
44    HelpTopic "syntax" "Help on syntax highlighing"
45      SyntaxHighlightHelp SyntaxHighlightHelpText
46
47lookupHelpTopic :: Text -> Maybe HelpTopic
48lookupHelpTopic topic =
49    listToMaybe $ filter ((== topic) . helpTopicName) helpTopics
50