4
4
module Ide.Plugin.SignatureHelp (descriptor ) where
5
5
6
6
import Control.Arrow ((>>>) )
7
+ import Control.Monad.Trans.Except (ExceptT (ExceptT ))
7
8
import Data.Bifunctor (bimap )
8
9
import Data.Function ((&) )
9
10
import Data.IntMap (IntMap )
@@ -20,7 +21,8 @@ import Development.IDE (DocAndTyThingMap (DKMap),
20
21
IdeState (shakeExtras ),
21
22
Pretty (pretty ),
22
23
Recorder , WithPriority ,
23
- printOutputableOneLine )
24
+ printOutputableOneLine ,
25
+ useWithStaleFast )
24
26
import Development.IDE.Core.PluginUtils (runIdeActionE ,
25
27
useWithStaleFastE )
26
28
import Development.IDE.Core.PositionMapping (fromCurrentPosition )
@@ -101,8 +103,10 @@ signatureHelpProvider ideState _pluginId (SignatureHelpParams (TextDocumentIdent
101
103
Just (functionName, functionTypes, argumentNumber)
102
104
)
103
105
(docMap, argDocMap) <- runIdeActionE " signatureHelp.docMap" (shakeExtras ideState) $ do
104
- (DKMap docMap _tyThingMap argDocMap, _positionMapping) <- useWithStaleFastE GetDocMap nfp
105
- pure (docMap, argDocMap)
106
+ mResult <- ExceptT $ Right <$> useWithStaleFast GetDocMap nfp
107
+ case mResult of
108
+ Just (DKMap docMap _tyThingMap argDocMap, _positionMapping) -> pure (docMap, argDocMap)
109
+ Nothing -> pure (mempty , mempty )
106
110
case results of
107
111
[(_functionName, [] , _argumentNumber)] -> pure $ InR Null
108
112
[(functionName, functionTypes, argumentNumber)] ->
0 commit comments