File tree 2 files changed +16
-1
lines changed
2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ import System.Environment
30
30
data Arguments
31
31
= VersionMode PrintVersion
32
32
| ProbeToolsMode
33
+ | ListPluginsMode
33
34
| BiosMode BiosAction
34
35
| Ghcide GhcideArguments
35
36
| VSCodeExtensionSchemaMode
@@ -64,6 +65,7 @@ getArguments exeName plugins = execParser opts
64
65
opts = info ((
65
66
VersionMode <$> printVersionParser exeName
66
67
<|> probeToolsParser exeName
68
+ <|> listPluginsParser
67
69
<|> BiosMode <$> biosParser
68
70
<|> Ghcide <$> arguments plugins
69
71
)
@@ -90,6 +92,11 @@ probeToolsParser exeName =
90
92
flag' ProbeToolsMode
91
93
(long " probe-tools" <> help (" Show " ++ exeName ++ " version and other tools of interest" ))
92
94
95
+ listPluginsParser :: Parser Arguments
96
+ listPluginsParser =
97
+ flag' ListPluginsMode
98
+ (long " list-plugins" <> help " List all avaliable plugins" )
99
+
93
100
arguments :: IdePlugins IdeState -> Parser GhcideArguments
94
101
arguments plugins = GhcideArguments
95
102
<$> (commandP plugins <|> lspCommand <|> checkCommand)
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ import Control.Monad.Extra
13
13
import qualified Data.Aeson.Encode.Pretty as A
14
14
import qualified Data.ByteString.Lazy.Char8 as LBS
15
15
import Data.Default
16
+ import Data.List (sort )
16
17
import qualified Data.Text as T
17
18
import Development.IDE.Core.Rules
18
19
import Development.IDE.Graph (ShakeOptions (shakeThreads ))
@@ -25,7 +26,8 @@ import Ide.Arguments
25
26
import Ide.Logger
26
27
import Ide.Plugin.ConfigUtils (pluginsToDefaultConfig ,
27
28
pluginsToVSCodeExtensionSchema )
28
- import Ide.Types (IdePlugins , ipMap )
29
+ import Ide.Types (IdePlugins , PluginId (PluginId ),
30
+ ipMap )
29
31
import Ide.Version
30
32
import qualified Language.LSP.Server as LSP
31
33
import qualified System.Directory.Extra as IO
@@ -51,6 +53,12 @@ defaultMain args idePlugins = do
51
53
VersionMode PrintNumericVersion ->
52
54
putStrLn haskellLanguageServerNumericVersion
53
55
56
+ ListPluginsMode -> do
57
+ let pluginNames = sort
58
+ $ map ((\ (PluginId t) -> T. unpack t) . fst )
59
+ $ ipMap idePlugins
60
+ mapM_ putStrLn pluginNames
61
+
54
62
BiosMode PrintCradleType -> do
55
63
dir <- IO. getCurrentDirectory
56
64
hieYaml <- Session. findCradle def dir
You can’t perform that action at this time.
0 commit comments