7
7
module Ide.TypesTests
8
8
( tests
9
9
) where
10
- import Control.Lens (preview , (?~) , (^?) )
11
- import Control.Monad ((>=>) )
10
+ import Control.Lens ((?~) , (^?) )
12
11
import Data.Default (Default (def ))
13
12
import Data.Function ((&) )
14
- import Data.List.NonEmpty (NonEmpty ((:|) ), nonEmpty )
13
+ import Data.List.NonEmpty (NonEmpty ((:|) ))
15
14
import Data.Maybe (isJust )
16
15
import qualified Data.Text as Text
17
- import Ide.Types (Config (Config ),
18
- PluginRequestMethod (combineResponses ))
16
+ import Ide.Types (PluginRequestMethod (combineResponses ))
19
17
import qualified Language.LSP.Protocol.Lens as L
20
- import Language.LSP.Protocol.Message (Method ( Method_TextDocumentDefinition ) ,
18
+ import Language.LSP.Protocol.Message (MessageParams , MessageResult ,
21
19
SMethod (.. ))
22
20
import Language.LSP.Protocol.Types (ClientCapabilities ,
23
21
Definition (Definition ),
@@ -29,18 +27,17 @@ import Language.LSP.Protocol.Types (ClientCapabilities,
29
27
Null (Null ),
30
28
Position (Position ),
31
29
Range (Range ),
32
- TextDocumentClientCapabilities ( TextDocumentClientCapabilities , _definition ) ,
30
+ TextDocumentClientCapabilities ,
33
31
TextDocumentIdentifier (TextDocumentIdentifier ),
34
32
TypeDefinitionClientCapabilities (TypeDefinitionClientCapabilities , _dynamicRegistration , _linkSupport ),
35
33
TypeDefinitionParams (.. ),
36
- Uri (Uri ), _L , _R ,
34
+ Uri (Uri ), _L , _R , _definition ,
37
35
_typeDefinition , filePathToUri ,
38
36
type (|? ) (.. ))
39
37
import Test.Tasty (TestTree , testGroup )
40
- import Test.Tasty.HUnit (assertBool , testCase , (@=?) )
38
+ import Test.Tasty.HUnit (testCase , (@=?) )
41
39
import Test.Tasty.QuickCheck (ASCIIString (ASCIIString ),
42
40
Arbitrary (arbitrary ), Gen ,
43
- NonEmptyList (NonEmpty ),
44
41
arbitraryBoundedEnum , cover ,
45
42
listOf1 , oneof , testProperty ,
46
43
(===) )
@@ -63,6 +60,11 @@ combineResponsesTextDocumentTypeDefinitionTests :: TestTree
63
60
combineResponsesTextDocumentTypeDefinitionTests = testGroup " TextDocumentTypeDefinition" $
64
61
defAndTypeDefSharedTests SMethod_TextDocumentTypeDefinition typeDefinitionParams
65
62
63
+ defAndTypeDefSharedTests ::
64
+ ( MessageResult m ~ (Definition |? ([DefinitionLink ] |? Null ))
65
+ , PluginRequestMethod m
66
+ )
67
+ => SMethod m -> MessageParams m -> [TestTree ]
66
68
defAndTypeDefSharedTests message params =
67
69
[ testCase " merges all single location responses into one response with all locations (without upgrading to links)" $ do
68
70
let pluginResponses :: NonEmpty (Definition |? ([DefinitionLink ] |? Null ))
@@ -177,7 +179,11 @@ defAndTypeDefSharedTests message params =
177
179
(isJust (result ^? _L) || isJust (result ^? _R >>= (^? _R))) === True
178
180
]
179
181
180
- (range1, range2, range3) = (Range (Position 3 0 ) $ Position 3 5 , Range (Position 5 7 ) $ Position 5 13 , Range (Position 24 30 ) $ Position 24 40 )
182
+
183
+ range1 , range2 , range3 :: Range
184
+ range1 = Range (Position 3 0 ) $ Position 3 5
185
+ range2 = Range (Position 5 7 ) $ Position 5 13
186
+ range3 = Range (Position 24 30 ) $ Position 24 40
181
187
182
188
supportsLinkInAllDefinitionCaps :: ClientCapabilities
183
189
supportsLinkInAllDefinitionCaps = def & L. textDocument ?~ textDocumentCaps
0 commit comments