22{-# LANGUAGE DeriveAnyClass #-}
33{-# LANGUAGE DerivingStrategies #-}
44{-# LANGUAGE ExplicitNamespaces #-}
5+ {-# LANGUAGE LambdaCase #-}
56{-# LANGUAGE OverloadedStrings #-}
67{-# LANGUAGE PartialTypeSignatures #-}
78{-# LANGUAGE RecordWildCards #-}
8- {-# LANGUAGE LambdaCase #-}
99
1010module Ide.Plugin.Cabal.CabalAdd
1111( findResponsibleCabalFile
@@ -22,17 +22,26 @@ import Control.Monad.IO.Class (liftIO, MonadIO)
2222import Data.String (IsString )
2323import qualified Data.Text as T
2424import qualified Data.Text.Encoding as T
25- import Development.IDE (IdeState (shakeExtras ), runIdeAction , useWithStale )
25+ import Development.IDE (IdeState (shakeExtras ),
26+ runIdeAction ,
27+ useWithStale )
2628import Distribution.PackageDescription.Quirks (patchQuirks )
27- import Ide.PluginUtils ( mkLspCommand , WithDeletions (SkipDeletions ), diffText )
29+ import Ide.PluginUtils (WithDeletions (SkipDeletions ),
30+ diffText ,
31+ mkLspCommand )
2832import Ide.Types (CommandFunction ,
2933 CommandId (CommandId ),
3034 PluginId , pluginGetClientCapabilities , pluginSendRequest , HandlerM )
3135import Language.LSP.Protocol.Types (CodeAction (CodeAction ),
3236 CodeActionKind (CodeActionKind_QuickFix ),
3337 Diagnostic (.. ),
3438 Null (Null ),
35- type (|? ) (InR ), toNormalizedFilePath , TextDocumentIdentifier , VersionedTextDocumentIdentifier , ClientCapabilities , WorkspaceFoldersServerCapabilities , WorkspaceEdit , ApplyWorkspaceEditParams (ApplyWorkspaceEditParams ))
39+ TextDocumentIdentifier ,
40+ VersionedTextDocumentIdentifier ,
41+ WorkspaceEdit ,
42+ WorkspaceFoldersServerCapabilities ,
43+ toNormalizedFilePath ,
44+ type (|? ) (InR ), ClientCapabilities , ApplyWorkspaceEditParams (ApplyWorkspaceEditParams ))
3645import System.Directory (doesFileExist ,
3746 listDirectory )
3847
@@ -42,29 +51,29 @@ import Data.ByteString (ByteString)
4251import qualified Data.ByteString.Char8 as B
4352import Data.List.NonEmpty (NonEmpty (.. ),
4453 fromList )
54+ import Development.IDE.Core.Rules (runAction )
4555import Distribution.Client.Add as Add
4656import Distribution.Compat.Prelude (Generic )
47- import Distribution.PackageDescription (packageDescription ,
48- specVersion , GenericPackageDescription (GenericPackageDescription ))
57+ import Distribution.PackageDescription (GenericPackageDescription (GenericPackageDescription ),
58+ packageDescription ,
59+ specVersion )
4960import Distribution.PackageDescription.Configuration (flattenPackageDescription )
5061import Distribution.Pretty (pretty )
5162import Distribution.Simple.BuildTarget (BuildTarget ,
5263 buildTargetComponentName ,
5364 readBuildTargets )
65+ import Distribution.Simple.Utils (safeHead )
5466import Distribution.Verbosity (silent ,
5567 verboseNoStderr )
68+ import Ide.Plugin.Cabal.Completion.Types (ParseCabalFields (.. ),
69+ ParseCabalFile (.. ))
5670import System.FilePath (dropFileName ,
5771 makeRelative ,
5872 splitPath ,
5973 takeExtension ,
6074 (</>) )
6175import Text.PrettyPrint (render )
6276import Text.Regex.TDFA
63- import Distribution.Simple.Utils (safeHead )
64- import Development.IDE.Core.Rules (runAction )
65- import Ide.Plugin.Cabal.Completion.Types (ParseCabalFields (.. ),
66- ParseCabalFile (.. ))
67-
6877import Development.IDE.Core.RuleTypes (GetFileContents (.. ))
6978import Data.Text.Encoding (encodeUtf8 )
7079import Ide.Plugin.Cabal.Orphans ()
@@ -107,7 +116,7 @@ findResponsibleCabalFile haskellFilePath = do
107116 objectsCabalExtension = filter (\ c -> takeExtension c == " .cabal" ) objectsWithPaths
108117 cabalFiles <- filterM (\ c -> doesFileExist c) objectsCabalExtension
109118 case safeHead cabalFiles of
110- Nothing -> go ps
119+ Nothing -> go ps
111120 Just cabalFile -> pure $ Just cabalFile
112121
113122
@@ -188,7 +197,7 @@ command recorder state _ params@(CabalAddCommandParams {cabalPath = path, verTxt
188197 let env = (state, caps, verTxtDocId)
189198 edit <- getDependencyEdit recorder env path target (fromList [T. unpack specifiedDep])
190199 void $ lift $ pluginSendRequest SMethod_WorkspaceApplyEdit (ApplyWorkspaceEditParams Nothing edit) (\ _ -> pure () )
191- Logger. logWith recorder Logger. Info $ LogExecutedCommand
200+ Logger. logWith recorder Logger. Info LogExecutedCommand
192201 pure $ InR Null
193202
194203
@@ -223,7 +232,7 @@ getDependencyEdit recorder env cabalFilePath buildTarget dependency = do
223232 inPackDescr <- useWithStale ParseCabalFile $ toNormalizedFilePath cabalFilePath
224233 let mbCnfOrigContents = case snd . fst <$> contents of
225234 Just (Just txt) -> Just $ encodeUtf8 txt
226- _ -> Nothing
235+ _ -> Nothing
227236 let mbFields = fst <$> inFields
228237 let mbPackDescr :: Maybe GenericPackageDescription = fst <$> inPackDescr
229238 pure (mbCnfOrigContents, mbFields, mbPackDescr)
0 commit comments