File tree Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ import System.Environment
3030data Arguments
3131 = VersionMode PrintVersion
3232 | ProbeToolsMode
33+ | ListPluginsMode
3334 | BiosMode BiosAction
3435 | Ghcide GhcideArguments
3536 | VSCodeExtensionSchemaMode
@@ -64,6 +65,7 @@ getArguments exeName plugins = execParser opts
6465 opts = info ((
6566 VersionMode <$> printVersionParser exeName
6667 <|> probeToolsParser exeName
68+ <|> listPluginsParser
6769 <|> BiosMode <$> biosParser
6870 <|> Ghcide <$> arguments plugins
6971 )
@@ -90,6 +92,11 @@ probeToolsParser exeName =
9092 flag' ProbeToolsMode
9193 (long " probe-tools" <> help (" Show " ++ exeName ++ " version and other tools of interest" ))
9294
95+ listPluginsParser :: Parser Arguments
96+ listPluginsParser =
97+ flag' ListPluginsMode
98+ (long " list-plugins" <> help " List all avaliable plugins" )
99+
93100arguments :: IdePlugins IdeState -> Parser GhcideArguments
94101arguments plugins = GhcideArguments
95102 <$> (commandP plugins <|> lspCommand <|> checkCommand)
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ import Control.Monad.Extra
1313import qualified Data.Aeson.Encode.Pretty as A
1414import qualified Data.ByteString.Lazy.Char8 as LBS
1515import Data.Default
16+ import Data.List (sort )
1617import qualified Data.Text as T
1718import Development.IDE.Core.Rules
1819import Development.IDE.Graph (ShakeOptions (shakeThreads ))
@@ -25,7 +26,8 @@ import Ide.Arguments
2526import Ide.Logger
2627import Ide.Plugin.ConfigUtils (pluginsToDefaultConfig ,
2728 pluginsToVSCodeExtensionSchema )
28- import Ide.Types (IdePlugins , ipMap )
29+ import Ide.Types (IdePlugins , PluginId (PluginId ),
30+ ipMap )
2931import Ide.Version
3032import qualified Language.LSP.Server as LSP
3133import qualified System.Directory.Extra as IO
@@ -51,6 +53,12 @@ defaultMain args idePlugins = do
5153 VersionMode PrintNumericVersion ->
5254 putStrLn haskellLanguageServerNumericVersion
5355
56+ ListPluginsMode -> do
57+ let pluginNames = sort
58+ $ map ((\ (PluginId t) -> T. unpack t) . fst )
59+ $ ipMap idePlugins
60+ mapM_ putStrLn pluginNames
61+
5462 BiosMode PrintCradleType -> do
5563 dir <- IO. getCurrentDirectory
5664 hieYaml <- Session. findCradle def dir
You can’t perform that action at this time.
0 commit comments