prompt-hs 1.0.2.0 → 1.0.3.0
raw patch · 2 files changed
+33/−1 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ System.Prompt: promptMultipleChoiceFromSet :: (ChooseableItem a, Eq a, MonadIO m) => NonEmpty a -> Text -> m [a]
Files
- prompt-hs.cabal +1/−1
- src/System/Prompt.hs +32/−0
prompt-hs.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: prompt-hs-version: 1.0.2.0+version: 1.0.3.0 synopsis: A user-friendly, dependently-typed library for asking your users questions description: A library making use of the terminal package to prompt users for answers in a CLI context. .
src/System/Prompt.hs view
@@ -41,6 +41,7 @@ promptChoice, promptChoiceFromSet, promptMultipleChoice,+ promptMultipleChoiceFromSet, -- * Data Chooseable (..),@@ -302,6 +303,23 @@ liftIO . withTerminal . runTerminalT $ promptMultipleChoiceInternal pxy prompt initialPromptMultipleChoiceState +-- | Ask the user to choose zero-to-many of some arbitrary options.+--+-- Note: duplicate options will be removed.+promptMultipleChoiceFromSet ::+ (ChooseableItem a, Eq a, MonadIO m) =>+ -- | The items from which they can choose+ NonEmpty a ->+ -- | What should the prompt say? (You need not add a space to the end of this text; one will be added)+ Text ->+ m [a]+promptMultipleChoiceFromSet options prompt =+ liftIO+ . withTerminal+ . runTerminalT+ . promptMultipleChoiceInternal Proxy prompt+ $ initialPromptMultipleChoiceStateFromSet options+ -- | Ask the user to enter text. -- -- The answer is stripped of leading and trailing whitespace.@@ -404,6 +422,20 @@ pmcsOptions = universeChooseableNE, pmcsFilteredOptions = NE.toList universeChooseableNE, pmcsHoveredOption = initialSelectionChooseable,+ pmcsSelectedOptions = []+ }++initialPromptMultipleChoiceStateFromSet ::+ (ChooseableItem a) =>+ NonEmpty a ->+ PromptMultipleChoiceState a+initialPromptMultipleChoiceStateFromSet options =+ PromptMultipleChoiceState+ { pmcsFilter = "",+ pmcsInstruction = ChoiceInstructionNormal,+ pmcsOptions = options,+ pmcsFilteredOptions = NE.toList options,+ pmcsHoveredOption = Just initialSelectionChooseableItem, pmcsSelectedOptions = [] }