Move towards implementing terminal autocomplete

This commit is contained in:
2025-08-16 23:13:24 +01:00
parent f7759b1f31
commit 76b6cda19b
14 changed files with 351 additions and 261 deletions
+12 -8
View File
@@ -8,7 +8,6 @@ module Dodge.Data.Terminal (
module Dodge.Data.Terminal.Status,
) where
import qualified Data.ListTrie.Patricia.Map.Enum as PT
import Sound.Data
import Color
import Control.Lens
@@ -31,12 +30,12 @@ data Terminal = Terminal
, _tmExternalColor :: Color
, _tmDisplayedLines :: [(String, Color)]
, _tmFutureLines :: [TerminalLine]
, _tmCommands :: [TerminalCommand]
, _tmCommands :: [TCom]
, _tmDeathEffect :: TmWdWd
, _tmStatus :: TerminalStatus
, _tmCommandHistory :: [String]
, _tmToggles :: M.Map String TerminalToggle
, _tmPartialCommand :: Maybe TerminalCommand
-- , _tmPartialCommand :: Maybe TerminalCommand
}
data TerminalLineString = TerminalLineConst String Color
@@ -77,10 +76,13 @@ data TerminalCommand = TerminalCommand
, _tcEffect :: TerminalCommandEffect -- Terminal -> World -> EffectArguments
}
data TCom = TCom
{ _tcomHelp :: String
, _tcomArgs :: PT.TrieMap Char [TerminalLine]
}
data TCom = TCInfo String String
| TCBase
--data TEff = TEff
-- { _teffHelp :: String
-- , _teffArgs :: PTE.TrieMap Char [TerminalLine]
-- }
data TmWdWd
= TmWdId
@@ -90,13 +92,14 @@ data TmWdWd
| TmWdWdDoDeathTriggers
| TmTmClearDisplayedLines
| TmTmSetStatus TerminalStatus
| TmTmSetPartialCommand (Maybe TerminalCommand)
| TmDisplayCommands
makeLenses ''Terminal
makeLenses ''TerminalLine
makeLenses ''TerminalToggle
makeLenses ''EffectArguments
makeLenses ''TerminalCommand
makeLenses ''TCom
concat
<$> mapM
(deriveJSON defaultOptions)
@@ -106,6 +109,7 @@ concat
, ''EffectArguments
, ''TerminalCommandEffect
, ''TerminalCommand
, ''TCom
, ''TmWdWd
, ''Terminal
]
+1 -1
View File
@@ -10,7 +10,7 @@ import Data.Aeson.TH
data TerminalStatus
= TerminalOff
| TerminalBusy
| TerminalTextInput {_tiText :: String, _tiSel :: Int}
| TerminalTextInput {_tiText :: String}
| TerminalPressTo {_tptString :: String}
-- | TerminalArgumentInput TerminalCommand
deriving (Eq)