summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2022-06-28 18:24:07 +0100
committerMatthew Pickering <matthewtpickering@gmail.com>2022-07-05 11:15:56 +0100
commit8c7dcdabb6c6a13d58f4ea50b74ac426f1440f12 (patch)
tree2c821ef8d6bf48ac55d91d2d2b6219abeea473a7
parent1d84c68ff6bbe284d180cf1120210ad5f99911dc (diff)
downloadhaskell-wip/ghc-9.4-backports-5.tar.gz
ghci: Support :set prompt in multi replwip/ghc-9.4-backports-5
This adds supports for various :set commands apart from `:set <FLAG>` in multi repl, this includes `:set prompt` and so-on. Fixes #21796 (cherry picked from commit 620ee7edc931dc5273dd04880059cc9ec8d41528)
-rw-r--r--ghc/GHCi/UI.hs4
-rw-r--r--testsuite/tests/driver/multipleHomeUnits/multiGHCi.script3
-rw-r--r--testsuite/tests/driver/multipleHomeUnits/multiGHCi.stderr1
3 files changed, 6 insertions, 2 deletions
diff --git a/ghc/GHCi/UI.hs b/ghc/GHCi/UI.hs
index 8108accaa2..d6440917ce 100644
--- a/ghc/GHCi/UI.hs
+++ b/ghc/GHCi/UI.hs
@@ -236,7 +236,7 @@ ghciCommands = map mkCmd [
("reload!", keepGoingMulti' reloadModuleDefer, noCompletion),
("run", keepGoing runRun, completeFilename),
("script", keepGoing' scriptCmd, completeFilename),
- ("set", keepGoing setCmd, completeSetOptions),
+ ("set", keepGoingMulti setCmd, completeSetOptions),
("seti", keepGoingMulti setiCmd, completeSeti),
("show", keepGoingMulti' showCmd, completeShowOptions),
("showi", keepGoing showiCmd, completeShowiOptions),
@@ -2958,7 +2958,7 @@ setCmd str
setLocalConfigBehaviour $ dropWhile isSpace rest
_ -> case toArgsNoLoc str of
Left err -> liftIO (hPutStrLn stderr err)
- Right wds -> setOptions wds
+ Right wds -> () <$ keepGoing' setOptions wds
setiCmd :: GhciMonad m => String -> m ()
setiCmd "" = GHC.getInteractiveDynFlags >>= liftIO . showDynFlags False
diff --git a/testsuite/tests/driver/multipleHomeUnits/multiGHCi.script b/testsuite/tests/driver/multipleHomeUnits/multiGHCi.script
index 8007f19e51..2af64f99be 100644
--- a/testsuite/tests/driver/multipleHomeUnits/multiGHCi.script
+++ b/testsuite/tests/driver/multipleHomeUnits/multiGHCi.script
@@ -1,4 +1,7 @@
:r
:seti -fprint-explicit-foralls
+:set prompt >>>
+:set -Wall
:t id
:l abc
+
diff --git a/testsuite/tests/driver/multipleHomeUnits/multiGHCi.stderr b/testsuite/tests/driver/multipleHomeUnits/multiGHCi.stderr
index 5829562213..d90a07b924 100644
--- a/testsuite/tests/driver/multipleHomeUnits/multiGHCi.stderr
+++ b/testsuite/tests/driver/multipleHomeUnits/multiGHCi.stderr
@@ -1 +1,2 @@
Command is not supported (yet) in multi-mode
+Command is not supported (yet) in multi-mode