1- {-# LANGUAGE DataKinds #-}
2- {-# LANGUAGE GADTs #-}
1+ {-# LANGUAGE DataKinds #-}
2+ {-# LANGUAGE DisambiguateRecordFields #-}
3+ {-# LANGUAGE GADTs #-}
34
45module Ide.Plugin.SignatureHelp (descriptor ) where
56
@@ -64,10 +65,10 @@ import Language.LSP.Protocol.Types (MarkupContent (MarkupCont
6465 Null (Null ),
6566 ParameterInformation (ParameterInformation ),
6667 Position (Position ),
67- SignatureHelp (SignatureHelp ),
68- SignatureHelpContext (SignatureHelpContext ),
68+ SignatureHelp (.. ),
69+ SignatureHelpContext (.. ),
6970 SignatureHelpParams (SignatureHelpParams ),
70- SignatureInformation (SignatureInformation ),
71+ SignatureInformation (.. ),
7172 TextDocumentIdentifier (TextDocumentIdentifier ),
7273 UInt ,
7374 type (|? ) (InL , InR ))
@@ -115,17 +116,19 @@ signatureHelpProvider ideState _pluginId (SignatureHelpParams (TextDocumentIdent
115116mkSignatureHelp :: Maybe SignatureHelpContext -> DocMap -> ArgDocMap -> UInt -> Name -> [Type ] -> SignatureHelp
116117mkSignatureHelp mSignatureHelpContext docMap argDocMap parameterIndex functionName functionTypes =
117118 SignatureHelp
118- (mkSignatureInformation docMap argDocMap parameterIndex functionName <$> functionTypes)
119- activeSignature
120- (Just $ InL parameterIndex)
119+ { _signatures = mkSignatureInformation docMap argDocMap parameterIndex functionName <$> functionTypes,
120+ _activeSignature = activeSignature,
121+ _activeParameter = Just $ InL parameterIndex
122+ }
121123 where
122124 activeSignature = case mSignatureHelpContext of
123125 Just
124126 ( SignatureHelpContext
125- _triggerKind
126- _triggerCharacter
127- True
128- (Just (SignatureHelp _signatures oldActivateSignature _activeParameter))
127+ { _triggerKind,
128+ _triggerCharacter,
129+ _isRetrigger = True ,
130+ _activeSignatureHelp = Just (SignatureHelp _signatures oldActivateSignature _activeParameter)
131+ }
129132 ) -> oldActivateSignature
130133 _ -> Just 0
131134
@@ -139,10 +142,11 @@ mkSignatureInformation docMap argDocMap parameterIndex functionName functionType
139142 Nothing -> mempty
140143 Just thisArgDocMap' -> thisArgDocMap'
141144 in SignatureInformation
142- (functionNameLabelPrefix <> printOutputableOneLine functionType)
143- mFunctionDoc
144- (Just $ mkParameterInformations thisArgDocMap (fromIntegral $ T. length functionNameLabelPrefix) functionType)
145- (Just $ InL parameterIndex)
145+ { _label = functionNameLabelPrefix <> printOutputableOneLine functionType,
146+ _documentation = mFunctionDoc,
147+ _parameters = Just $ mkParameterInformations thisArgDocMap (fromIntegral $ T. length functionNameLabelPrefix) functionType,
148+ _activeParameter = Just $ InL parameterIndex
149+ }
146150
147151mkParameterInformations :: IntMap SpanDoc -> UInt -> Type -> [ParameterInformation ]
148152mkParameterInformations thisArgDocMap offset functionType =
0 commit comments