File tree Expand file tree Collapse file tree 5 files changed +33
-12
lines changed
src/Distribution/Client/Init/Interactive
tests/UnitTests/Distribution/Client/Init
cabal-testsuite/PackageTests/Init Expand file tree Collapse file tree 5 files changed +33
-12
lines changed Original file line number Diff line number Diff line change 1- {-# LANGUAGE LambdaCase #-}
1+ {-# LANGUAGE LambdaCase, MultiWayIf #-}
22-----------------------------------------------------------------------------
33-- |
44-- Module : Distribution.Client.Init.Command
@@ -413,17 +413,22 @@ testDirsPrompt flags = getTestDirs flags $ do
413413
414414languagePrompt :: Interactive m => InitFlags -> String -> m Language
415415languagePrompt flags pkgType = getLanguage flags $ do
416- lang <- promptList (" Choose a language for your " ++ pkgType)
417- [" Haskell2010" , " Haskell98" ]
418- (DefaultPrompt " Haskell2010" )
416+ let h2010 = " Haskell2010"
417+ h98 = " Haskell98"
418+ ghc2021 = " GHC2021 (requires at least GHC 9.2)"
419+
420+ l <- promptList (" Choose a language for your " ++ pkgType)
421+ [h2010, h98, ghc2021]
422+ (DefaultPrompt h2010)
419423 Nothing
420424 True
421425
422- case lang of
423- " Haskell2010" -> return Haskell2010
424- " Haskell98" -> return Haskell98
425- l | all isAlphaNum l -> return $ UnknownLanguage l
426- _ -> do
426+ if
427+ | l == h2010 -> return Haskell2010
428+ | l == h98 -> return Haskell98
429+ | l == ghc2021 -> return GHC2021
430+ | all isAlphaNum l -> return $ UnknownLanguage l
431+ | otherwise -> do
427432 putStrLn
428433 $ " \n The language must be alphanumeric. "
429434 ++ " Please enter a different language."
Original file line number Diff line number Diff line change @@ -912,15 +912,15 @@ interactiveTests srcDb = testGroup "Check top level getter functions"
912912 ]
913913 , testGroup " Check languagePrompt output"
914914 [ testNumberedPrompt " Language indices" (`languagePrompt` " test" )
915- [Haskell2010 , Haskell98 ]
915+ [Haskell2010 , Haskell98 , GHC2021 ]
916916 , testSimplePrompt " Other language"
917917 (`languagePrompt` " test" ) (UnknownLanguage " Haskell2022" )
918- [ " 3 "
918+ [ " 4 "
919919 , " Haskell2022"
920920 ]
921921 , testSimplePrompt " Invalid language"
922922 (`languagePrompt` " test" ) Haskell2010
923- [ " 3 "
923+ [ " 4 "
924924 , " Lang_TS!"
925925 , " 1"
926926 ]
Original file line number Diff line number Diff line change 1+ # cabal init
Original file line number Diff line number Diff line change 1+ import Test.Cabal.Prelude
2+
3+ main = cabalTest $
4+ withSourceCopyDir " app" $ do
5+ cwd <- fmap testSourceCopyDir getTestEnv
6+
7+ buildOut <- withDirectory cwd $ do
8+ cabalWithStdin " init" [" -i" ]
9+ " 2\n\n 5\n\n\n 2\n\n\n\n\n\n\n\n 3\n\n "
10+
11+ assertFileDoesContain (cwd </> " app.cabal" ) " GHC2021"
Original file line number Diff line number Diff line change 1+ synopsis: cabal init -i: add the GHC2021 language option
2+ packages: cabal-install
3+ prs: #8277
4+ issues: #8265
You can’t perform that action at this time.
0 commit comments