stubbed out menu interface

This commit is contained in:
Paul Chiusano 2018-10-23 09:45:39 -04:00
parent 38710c71e7
commit 0bc58352bb
2 changed files with 62 additions and 4 deletions

View File

@ -0,0 +1,57 @@
module Unison.Util.Menu where
-- utility - command line menus
type Caption = String
type Stylized = String -- todo upgrade this to a doc
type Keyword = String
type MetaChoice = String
type Console = IO Char
{-
<caption>
1 ping
pong
2 foo
3 bar
[cancel]
[help]
>> ping
-}
menu1 :: Console
-> Caption
-> (a -> Stylized)
-> (MetaChoice -> Stylized)
-> [[(Keyword, a)]]
-> [([Keyword], MetaChoice)]
-> IO (Either MetaChoice [a])
menu1 _console _caption _render _renderMeta _groups _metas = pure (Right [])
{-
<caption>
1 ping
pong
2 foo
3 bar
[all]
[cancel]
[help]
>> 1 3
>> *
-}
menuN :: Console
-> Caption
-> (a -> Stylized)
-> (MetaChoice -> Stylized)
-> [[(Keyword, a)]]
-> [([Keyword], MetaChoice)]
-> IO (Either MetaChoice [[a]])
menuN _console _caption _render _renderMeta _groups _metas = pure (Right [])

View File

@ -47,10 +47,10 @@ library
Unison.Codebase.NameEdit
Unison.Codebase.Runtime
Unison.Codebase.Runtime.JVM
Unison.Codebase.TermEdit
Unison.Codebase.TypeEdit
Unison.Codebase.Serialization
Unison.Codebase.Serialization.V0
Unison.Codebase.TermEdit
Unison.Codebase.TypeEdit
Unison.Codebase.Watch
Unison.DataDeclaration
Unison.FileParser
@ -68,8 +68,8 @@ library
Unison.PrettyPrint
Unison.PrintError
Unison.Reference
Unison.Runtime.Rt0
Unison.Result
Unison.Runtime.Rt0
Unison.Settings
Unison.Symbol
Unison.Term
@ -80,14 +80,15 @@ library
Unison.TypePrinter
Unison.TypeVar
Unison.Typechecker
Unison.Typechecker.Context
Unison.Typechecker.Components
Unison.Typechecker.Context
Unison.Typechecker.Extractor
Unison.Typechecker.TypeError
Unison.UnisonFile
Unison.Util.AnnotatedText
Unison.Util.ColorText
Unison.Util.Logger
Unison.Util.Menu
Unison.Util.Monoid
Unison.Util.PrettyPrint
Unison.Util.Range