77module Ide.TypesTests
88 ( tests
99 ) where
10- import Control.Lens (preview , (?~) , (^?) )
11- import Control.Monad ((>=>) )
10+ import Control.Lens ((?~) , (^?) )
1211import Data.Default (Default (def ))
1312import Data.Function ((&) )
14- import Data.List.NonEmpty (NonEmpty ((:|) ), nonEmpty )
13+ import Data.List.NonEmpty (NonEmpty ((:|) ))
1514import Data.Maybe (isJust )
1615import qualified Data.Text as Text
17- import Ide.Types (Config (Config ),
18- PluginRequestMethod (combineResponses ))
16+ import Ide.Types (PluginRequestMethod (combineResponses ))
1917import qualified Language.LSP.Protocol.Lens as L
20- import Language.LSP.Protocol.Message (Method ( Method_TextDocumentDefinition ) ,
18+ import Language.LSP.Protocol.Message (MessageParams , MessageResult ,
2119 SMethod (.. ))
2220import Language.LSP.Protocol.Types (ClientCapabilities ,
2321 Definition (Definition ),
@@ -29,18 +27,17 @@ import Language.LSP.Protocol.Types (ClientCapabilities,
2927 Null (Null ),
3028 Position (Position ),
3129 Range (Range ),
32- TextDocumentClientCapabilities ( TextDocumentClientCapabilities , _definition ) ,
30+ TextDocumentClientCapabilities ,
3331 TextDocumentIdentifier (TextDocumentIdentifier ),
3432 TypeDefinitionClientCapabilities (TypeDefinitionClientCapabilities , _dynamicRegistration , _linkSupport ),
3533 TypeDefinitionParams (.. ),
36- Uri (Uri ), _L , _R ,
34+ Uri (Uri ), _L , _R , _definition ,
3735 _typeDefinition , filePathToUri ,
3836 type (|? ) (.. ))
3937import Test.Tasty (TestTree , testGroup )
40- import Test.Tasty.HUnit (assertBool , testCase , (@=?) )
38+ import Test.Tasty.HUnit (testCase , (@=?) )
4139import Test.Tasty.QuickCheck (ASCIIString (ASCIIString ),
4240 Arbitrary (arbitrary ), Gen ,
43- NonEmptyList (NonEmpty ),
4441 arbitraryBoundedEnum , cover ,
4542 listOf1 , oneof , testProperty ,
4643 (===) )
@@ -63,6 +60,11 @@ combineResponsesTextDocumentTypeDefinitionTests :: TestTree
6360combineResponsesTextDocumentTypeDefinitionTests = testGroup " TextDocumentTypeDefinition" $
6461 defAndTypeDefSharedTests SMethod_TextDocumentTypeDefinition typeDefinitionParams
6562
63+ defAndTypeDefSharedTests ::
64+ ( MessageResult m ~ (Definition |? ([DefinitionLink ] |? Null ))
65+ , PluginRequestMethod m
66+ )
67+ => SMethod m -> MessageParams m -> [TestTree ]
6668defAndTypeDefSharedTests message params =
6769 [ testCase " merges all single location responses into one response with all locations (without upgrading to links)" $ do
6870 let pluginResponses :: NonEmpty (Definition |? ([DefinitionLink ] |? Null ))
@@ -177,7 +179,11 @@ defAndTypeDefSharedTests message params =
177179 (isJust (result ^? _L) || isJust (result ^? _R >>= (^? _R))) === True
178180 ]
179181
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
181187
182188supportsLinkInAllDefinitionCaps :: ClientCapabilities
183189supportsLinkInAllDefinitionCaps = def & L. textDocument ?~ textDocumentCaps
0 commit comments