1
- {-# LANGUAGE DataKinds #-}
2
- {-# LANGUAGE GADTs #-}
1
+ {-# LANGUAGE DataKinds #-}
2
+ {-# LANGUAGE DisambiguateRecordFields #-}
3
+ {-# LANGUAGE GADTs #-}
3
4
4
5
module Ide.Plugin.SignatureHelp (descriptor ) where
5
6
@@ -64,10 +65,10 @@ import Language.LSP.Protocol.Types (MarkupContent (MarkupCont
64
65
Null (Null ),
65
66
ParameterInformation (ParameterInformation ),
66
67
Position (Position ),
67
- SignatureHelp (SignatureHelp ),
68
- SignatureHelpContext (SignatureHelpContext ),
68
+ SignatureHelp (.. ),
69
+ SignatureHelpContext (.. ),
69
70
SignatureHelpParams (SignatureHelpParams ),
70
- SignatureInformation (SignatureInformation ),
71
+ SignatureInformation (.. ),
71
72
TextDocumentIdentifier (TextDocumentIdentifier ),
72
73
UInt ,
73
74
type (|? ) (InL , InR ))
@@ -115,17 +116,19 @@ signatureHelpProvider ideState _pluginId (SignatureHelpParams (TextDocumentIdent
115
116
mkSignatureHelp :: Maybe SignatureHelpContext -> DocMap -> ArgDocMap -> UInt -> Name -> [Type ] -> SignatureHelp
116
117
mkSignatureHelp mSignatureHelpContext docMap argDocMap parameterIndex functionName functionTypes =
117
118
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
+ }
121
123
where
122
124
activeSignature = case mSignatureHelpContext of
123
125
Just
124
126
( 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
+ }
129
132
) -> oldActivateSignature
130
133
_ -> Just 0
131
134
@@ -139,10 +142,11 @@ mkSignatureInformation docMap argDocMap parameterIndex functionName functionType
139
142
Nothing -> mempty
140
143
Just thisArgDocMap' -> thisArgDocMap'
141
144
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
+ }
146
150
147
151
mkParameterInformations :: IntMap SpanDoc -> UInt -> Type -> [ParameterInformation ]
148
152
mkParameterInformations thisArgDocMap offset functionType =
0 commit comments