mirror of
https://github.com/haskell/ghcide.git
synced 2024-12-17 15:11:41 +03:00
72593a285d
* Move the hie-core demo files around (they aren't really a demo anymore) * Split the command line parsing into a separate module * Give messages about how long starting something takes * Make the interactive mode say what it is doing a bit more * Add a --cwd flag to hie-core * Take a list of files and directories for hie-core * Update the readme to say how to test using hie-core * Fix up the bazel file * Add HLint exception
28 lines
856 B
Haskell
28 lines
856 B
Haskell
-- Copyright (c) 2019 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
-- SPDX-License-Identifier: Apache-2.0
|
|
|
|
module Arguments(Arguments(..), getArguments) where
|
|
|
|
import Options.Applicative
|
|
|
|
|
|
data Arguments = Arguments
|
|
{argLSP :: Bool
|
|
,argsCwd :: Maybe FilePath
|
|
,argFiles :: [FilePath]
|
|
}
|
|
|
|
getArguments :: IO Arguments
|
|
getArguments = execParser opts
|
|
where
|
|
opts = info (arguments <**> helper)
|
|
( fullDesc
|
|
<> progDesc "Used as a test bed to check your IDE will work"
|
|
<> header "hie-core - the core of a Haskell IDE")
|
|
|
|
arguments :: Parser Arguments
|
|
arguments = Arguments
|
|
<$> switch (long "lsp" <> help "Start talking to an LSP server")
|
|
<*> optional (strOption $ long "cwd" <> metavar "DIR" <> help "Change to this directory")
|
|
<*> many (argument str (metavar "FILES/DIRS..."))
|