Skip to content

Commit ee90ad0

Browse files
committed
preliminary tests
1 parent 75c7780 commit ee90ad0

File tree

1 file changed

+31
-19
lines changed

1 file changed

+31
-19
lines changed

plugins/hls-cabal-plugin/test/FoldingRange.hs

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
{-# LANGUAGE OverloadedStrings #-}
22

33
module FoldingRange (
4-
outlineTests,
4+
foldingRangeTests,
55
) where
66

7-
import Language.LSP.Protocol.Types (DocumentSymbol (..),
8-
Position (..), Range (..))
9-
import qualified Test.Hls as T
7+
import Language.LSP.Protocol.Message (Method (Method_TextDocumentFoldingRange, Method_TextDocumentSelectionRange),
8+
SMethod (SMethod_TextDocumentFoldingRange, SMethod_TextDocumentSelectionRange))
9+
import qualified Language.LSP.Protocol.Types as LSP
10+
import qualified Test.Hls as T
1011
import Utils
1112

1213
testFoldingRanges :: (T.HasCallStack)
@@ -15,9 +16,9 @@ testFoldingRanges :: (T.HasCallStack)
1516
-> [LSP.FoldingRange]
1617
-> T.TestTree
1718
testFoldingRanges testName path expectedRanges =
18-
runCabalTestCaseSession testName "outline-cabal" $ do
19+
runCabalTestCaseSession testName "folding-range-cabal" $ do
1920
docId <- T.openDoc path "cabal"
20-
ranges <- T.getFoldingRanges docId
21+
ranges <- getFoldingRanges docId
2122
T.liftIO $ ranges T.@?= Right expectedRanges
2223

2324
foldingRangeTests :: T.TestTree
@@ -45,39 +46,50 @@ foldingRangeTests =
4546
fieldFoldingRange :: LSP.FoldingRange
4647
fieldFoldingRange =
4748
(defFoldingRange (LSP.Position 0 0))
48-
{ _endLine = 0
49-
, _endCharacter = Just 8
50-
, _collapsedText = Just "homepage"
49+
{ LSP._endLine = 0
50+
, LSP._endCharacter = Just 8
51+
, LSP._collapsedText = Just "homepage"
5152
}
5253

5354
-- Expected folding range for fieldline.cabal
5455
fieldLineFoldingRange :: LSP.FoldingRange
5556
fieldLineFoldingRange =
5657
(defFoldingRange (LSP.Position 0 0))
57-
{ _endLine = 0
58-
, _endCharacter = Just 13
59-
, _collapsedText = Just "cabal-version"
58+
{ LSP._endLine = 0
59+
, LSP._endCharacter = Just 13
60+
, LSP._collapsedText = Just "cabal-version"
6061
}
6162

6263
-- Expected folding range for section.cabal
6364
sectionFoldingRange :: LSP.FoldingRange
6465
sectionFoldingRange =
6566
(defFoldingRange (LSP.Position 0 2))
66-
{ _endLine = 0
67-
, _endCharacter = Just 15
68-
, _collapsedText = Just "build-depends"
67+
{ LSP._endLine = 0
68+
, LSP._endCharacter = Just 15
69+
, LSP._collapsedText = Just "build-depends"
6970
}
7071

7172
-- Expected folding range for sectionarg.cabal
7273
sectionArgFoldingRange :: LSP.FoldingRange
7374
sectionArgFoldingRange =
7475
(defFoldingRange (LSP.Position 0 2))
75-
{ _endLine = 1
76-
, _endCharacter = Just 17
77-
, _collapsedText = Just "if os ( windows )"
76+
{ LSP._endLine = 1
77+
, LSP._endCharacter = Just 17
78+
, LSP._collapsedText = Just "if os(windows)"
7879
}
7980

80-
getFoldingRanges :: LSP.TextDocumentIdentifier -> Session (Either ResponseError [FoldingRange])
81+
getFoldingRanges :: LSP.TextDocumentIdentifier -> Session (Either ResponseError [LSP.FoldingRange])
8182
getFoldingRanges docId = do
8283
let params = LSP.FoldingRangeParams docId Nothing
8384
request SMethod_TextDocumentFoldingRange params
85+
86+
defFoldingRange :: LSP.Position -> LSP.FoldingRange
87+
defFoldingRange startPos =
88+
LSP.FoldingRange
89+
{ LSP._startLine = LSP._line startPos
90+
, LSP._startCharacter = Just (LSP._character startPos)
91+
, LSP._endLine = LSP._line startPos
92+
, LSP._endCharacter = Just (LSP._character startPos)
93+
, LSP._kind = Nothing
94+
, LSP._collapsedText = Nothing
95+
}

0 commit comments

Comments
 (0)