@@ -20,10 +20,10 @@ module Language.PureScript.Ide.Util
20 , unwrapPositioned
20 , unwrapPositioned
21 , unwrapPositionedRef
21 , unwrapPositionedRef
22 , completionFromMatch
22 , completionFromMatch
26 , discardAnn
25 , discardAnn
27 , module Language.PureScript.Ide.Conversions
27 , module Language.PureScript.Ide.Conversions
@@ -48,25 +48,35 @@ identifierFromIdeDeclaration d = case d of
48discardAnn :: IdeDeclarationAnn -> IdeDeclaration
48discardAnn :: IdeDeclarationAnn -> IdeDeclaration
49discardAnn (IdeDeclarationAnn _ d) = d
49discardAnn (IdeDeclarationAnn _ d) = d
51+withEmptyAnn :: IdeDeclaration -> IdeDeclarationAnn
52+withEmptyAnn = IdeDeclarationAnn emptyAnn
51unwrapMatch :: Match a -> a
54unwrapMatch :: Match a -> a
52unwrapMatch (Match (_, ed)) = ed
55unwrapMatch (Match (_, ed)) = ed
54−completionFromMatch :: Match IdeDeclaration -> Completion
57+completionFromMatch :: Match IdeDeclarationAnn -> Completion
55−completionFromMatch = Completion . completionFromMatch'
58+completionFromMatch (Match (m, IdeDeclarationAnn ann decl)) =
57−completionFromMatch' :: Match IdeDeclaration -> (Text, Text, Text)
58−completionFromMatch' (Match (m', d)) = case d of
59− IdeValue name type' -> (m, runIdentT name, prettyTypeT type')
60− IdeType name kind -> (m, runProperNameT name, toS (P.prettyPrintKind kind))
61− IdeTypeSynonym name kind -> (m, runProperNameT name, prettyTypeT kind)
62− IdeDataConstructor name _ type' -> (m, runProperNameT name, prettyTypeT type')
63− IdeTypeClass name -> (m, runProperNameT name, "class")
64− IdeValueOperator op ref precedence associativity ->
65− (m, runOpNameT op, showFixity precedence associativity ref op)
66− IdeTypeOperator op ref precedence associativity ->
67− (m, runOpNameT op, showFixity precedence associativity ref op)
61+ (complIdentifier, complExpandedType) = case decl of
62+ IdeValue name type' -> (runIdentT name, prettyTypeT type')
63+ IdeType name kind -> (runProperNameT name, toS (P.prettyPrintKind kind))
64+ IdeTypeSynonym name kind -> (runProperNameT name, prettyTypeT kind)
65+ IdeDataConstructor name _ type' -> (runProperNameT name, prettyTypeT type')
66+ IdeTypeClass name -> (runProperNameT name, "class")
67+ IdeValueOperator op ref precedence associativity ->
68+ (runOpNameT op, showFixity precedence associativity ref op)
69+ IdeTypeOperator op ref precedence associativity ->
70+ (runOpNameT op, showFixity precedence associativity ref op)
69− m = runModuleNameT m'
72+ complModule = runModuleNameT m
74+ complType = maybe complExpandedType prettyTypeT (annTypeAnnotation ann)
76+ complLocation = annLocation ann
78+ complDocumentation = Nothing
70 showFixity p a r o =
80 showFixity p a r o =
71 let asso = case a of
81 let asso = case a of
72 P.Infix -> "infix"
82 P.Infix -> "infix"
@@ -74,12 +84,6 @@ completionFromMatch' (Match (m', d)) = case d of
74 P.Infixr -> "infixr"
84 P.Infixr -> "infixr"
75 in T.unwords [asso, show p, r, "as", runOpNameT o]
85 in T.unwords [asso, show p, r, "as", runOpNameT o]
77−infoFromMatch :: Match IdeDeclarationAnn -> Info
78−infoFromMatch (Match (m, IdeDeclarationAnn ann d)) =
79− Info (a, b, maybe c prettyTypeT (annTypeAnnotation ann), annLocation ann)
81− (a, b, c) = completionFromMatch' (Match (m, d))
83encodeT :: (ToJSON a) => a -> Text
87encodeT :: (ToJSON a) => a -> Text
84encodeT = toS . decodeUtf8 . encode
88encodeT = toS . decodeUtf8 . encode
@@ -87,9 +91,9 @@ decodeT :: (FromJSON a) => Text -> Maybe a
87decodeT = decode . encodeUtf8 . toS
91decodeT = decode . encodeUtf8 . toS
89unwrapPositioned :: P.Declaration -> P.Declaration
93unwrapPositioned :: P.Declaration -> P.Declaration
90−unwrapPositioned (P.PositionedDeclaration _ _ x) = x
94+unwrapPositioned (P.PositionedDeclaration _ _ x) = unwrapPositioned x
91unwrapPositioned x = x
95unwrapPositioned x = x
93unwrapPositionedRef :: P.DeclarationRef -> P.DeclarationRef
97unwrapPositionedRef :: P.DeclarationRef -> P.DeclarationRef
94−unwrapPositionedRef (P.PositionedDeclarationRef _ _ x) = x
98+unwrapPositionedRef (P.PositionedDeclarationRef _ _ x) = unwrapPositionedRef x
95unwrapPositionedRef x = x
99unwrapPositionedRef x = x