Respect the user's configuration settings
Only lookup user configuration before doing a search; implement version completion for Cabal and HLS removal
This commit is contained in:
		
							parent
							
								
									1a5f0259f4
								
							
						
					
					
						commit
						453a29fdf7
					
				| @ -596,14 +596,14 @@ rmParser = | ||||
|       <> command | ||||
|            "cabal" | ||||
|            (   RmCabal | ||||
|            <$> (info (versionParser' <**> helper) | ||||
|            <$> (info (versionParser' False (Just ListInstalled) (Just Cabal) <**> helper) | ||||
|                      (progDesc "Remove Cabal version") | ||||
|                ) | ||||
|            ) | ||||
|       <> command | ||||
|            "hls" | ||||
|            (   RmHLS | ||||
|            <$> (info (versionParser' <**> helper) | ||||
|            <$> (info (versionParser' False (Just ListInstalled) (Just HLS) <**> helper) | ||||
|                      (progDesc "Remove haskell-language-server version") | ||||
|                ) | ||||
|            ) | ||||
| @ -795,6 +795,11 @@ versionCompleter networkSensitive criteria tool = | ||||
|       runLogger = | ||||
|         myLoggerT loggerConfig | ||||
| 
 | ||||
|       downloadWithUserSource = do | ||||
|         userConf <- runE @'[ JSONError ] ghcupConfigFile | ||||
|         getDownloadsF $ | ||||
|           veitherCont (const GHCupURL) (fromMaybe GHCupURL . uUrlSource) userConf | ||||
| 
 | ||||
|     mpFreq <- | ||||
|       runLogger . runE $ | ||||
|         platformRequest | ||||
| @ -811,11 +816,11 @@ versionCompleter networkSensitive criteria tool = | ||||
| 
 | ||||
|       mGhcUpInfo <- | ||||
|         runEnv . runE $ | ||||
|           if networkSensitive then | ||||
|             getDownloadsF GHCupURL | ||||
|           if networkSensitive then do | ||||
|             downloadWithUserSource | ||||
|           else | ||||
|             catchE | ||||
|               (\(FileDoesNotExistError _) -> getDownloadsF GHCupURL) | ||||
|               (\(FileDoesNotExistError _) -> downloadWithUserSource) | ||||
|               readFromCache | ||||
| 
 | ||||
|       forFold mGhcUpInfo $ \(GHCupInfo _ dls) -> do | ||||
| @ -833,10 +838,10 @@ versionParser = option | ||||
|   (short 'v' <> long "version" <> metavar "VERSION" <> help "The target version" | ||||
|   ) | ||||
| 
 | ||||
| versionParser' :: Parser Version | ||||
| versionParser' = argument | ||||
| versionParser' :: Bool -> Maybe ListCriteria -> Maybe Tool -> Parser Version | ||||
| versionParser' networkSensitive criteria tool = argument | ||||
|   (eitherReader (first show . version . T.pack)) | ||||
|   (metavar "VERSION") | ||||
|   (metavar "VERSION"  <> foldMap (completer . versionCompleter networkSensitive criteria) tool) | ||||
| 
 | ||||
| 
 | ||||
| tagEither :: String -> Either String Tag | ||||
|  | ||||
| @ -185,9 +185,9 @@ getDirs = do | ||||
| ghcupConfigFile :: (MonadIO m) | ||||
|                 => Excepts '[JSONError] m UserSettings | ||||
| ghcupConfigFile = do | ||||
|   confDir <- liftIO $ ghcupConfigDir | ||||
|   confDir <- liftIO ghcupConfigDir | ||||
|   let file = confDir </> [rel|config.yaml|] | ||||
|   bs <- liftIO $ handleIO' NoSuchThing (\_ -> pure $ Nothing) $ fmap Just $ readFile file  | ||||
|   bs <- liftIO $ handleIO' NoSuchThing (\_ -> pure Nothing) $ Just <$> readFile file | ||||
|   case bs of | ||||
|       Nothing -> pure defaultUserSettings | ||||
|       Just bs' -> lE' JSONDecodeError . bimap show id . Y.decodeEither' . L.toStrict $ bs' | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Huw campbell
						Huw campbell