on debug help sign in
ghcide/exe/Arguments.hs
33 lines 1.2 kB history raw
1-- Copyright (c) 2019 The DAML Authors. All rights reserved.
2-- SPDX-License-Identifier: Apache-2.0
4module Arguments(Arguments(..), getArguments) where
6import Options.Applicative
9data Arguments = Arguments
10 {argLSP :: Bool
11 ,argsCwd :: Maybe FilePath
12 ,argFiles :: [FilePath]
13 ,argsVersion :: Bool
14 ,argsShakeProfiling :: Maybe FilePath
15 ,argsTesting :: Bool
16 }
18getArguments :: IO Arguments
19getArguments = execParser opts
20 where
21 opts = info (arguments <**> helper)
22 ( fullDesc
23 <> progDesc "Used as a test bed to check your IDE will work"
24 <> header "ghcide - the core of a Haskell IDE")
26arguments :: Parser Arguments
27arguments = Arguments
28 <$> switch (long "lsp" <> help "Start talking to an LSP server")
29 <*> optional (strOption $ long "cwd" <> metavar "DIR" <> help "Change to this directory")
30 <*> many (argument str (metavar "FILES/DIRS..."))
31 <*> switch (long "version" <> help "Show ghcide and GHC versions")
32 <*> optional (strOption $ long "shake-profiling" <> metavar "DIR" <> help "Dump profiling reports to this directory")
33 <*> switch (long "test" <> help "Enable additional lsp messages used by the testsuite")