Skip to content

Commit ccd9fa5

Browse files
committed
fix: entire file folding because of root node
1 parent 57cb482 commit ccd9fa5

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

Diff for: plugins/hls-code-range-plugin/src/Ide/Plugin/CodeRange.hs

+2-2
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ getFoldingRanges :: NormalizedFilePath -> ExceptT String IdeAction [FoldingRange
8888
getFoldingRanges file = do
8989
(codeRange, _) <- maybeToExceptT "fail to get code range" $ useE GetCodeRange file
9090

91-
pure $ findFoldingRanges codeRange
91+
-- removing first node because it folds the entire file
92+
pure $ drop 1 $ findFoldingRanges codeRange
9293

9394
selectionRangeHandler :: IdeState -> PluginId -> SelectionRangeParams -> LspM c (Either ResponseError (List SelectionRange))
9495
selectionRangeHandler ide _ SelectionRangeParams{..} = do
@@ -179,7 +180,6 @@ createFoldingRange :: CodeRange -> Maybe FoldingRange
179180
createFoldingRange (CodeRange (Range (Position lineStart charStart) (Position lineEnd charEnd)) _ ck) = do
180181
-- Type conversion of codeRangeKind to FoldingRangeKind
181182
let frk = crkToFrk ck
182-
183183
Just (FoldingRange lineStart (Just charStart) lineEnd (Just charEnd) (Just frk))
184184

185185
-- | Likes 'toCurrentPosition', but works on 'SelectionRange'

Diff for: plugins/hls-code-range-plugin/test/testdata/folding-range/Function.golden.txt

+22-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
((2, 16) : (2, 22)) : FoldingRangeRegion
12
((4, 0) : (7, 21)) : FoldingRangeRegion
23
((4, 0) : (4, 25)) : FoldingRangeRegion
34
((4, 0) : (4, 6)) : FoldingRangeRegion
@@ -17,4 +18,24 @@
1718
((5, 24) : (5, 26)) : FoldingRangeRegion
1819
((5, 27) : (5, 28)) : FoldingRangeRegion
1920
((6, 16) : (6, 20)) : FoldingRangeRegion
20-
((7, 16) : (7, 21)) : FoldingRangeRegion
21+
((7, 16) : (7, 21)) : FoldingRangeRegion
22+
((9, 0) : (12, 20)) : FoldingRangeRegion
23+
((9, 0) : (9, 24)) : FoldingRangeRegion
24+
((9, 0) : (9, 5)) : FoldingRangeRegion
25+
((9, 9) : (9, 24)) : FoldingRangeRegion
26+
((9, 9) : (9, 16)) : FoldingRangeRegion
27+
((9, 20) : (9, 24)) : FoldingRangeRegion
28+
((10, 0) : (12, 20)) : FoldingRangeRegion
29+
((10, 0) : (10, 5)) : FoldingRangeRegion
30+
((10, 6) : (10, 7)) : FoldingRangeRegion
31+
((10, 8) : (12, 20)) : FoldingRangeRegion
32+
((10, 10) : (12, 20)) : FoldingRangeRegion
33+
((10, 13) : (10, 27)) : FoldingRangeRegion
34+
((10, 13) : (10, 22)) : FoldingRangeRegion
35+
((10, 13) : (10, 14)) : FoldingRangeRegion
36+
((10, 15) : (10, 20)) : FoldingRangeRegion
37+
((10, 21) : (10, 22)) : FoldingRangeRegion
38+
((10, 23) : (10, 25)) : FoldingRangeRegion
39+
((10, 26) : (10, 27)) : FoldingRangeRegion
40+
((11, 16) : (11, 21)) : FoldingRangeRegion
41+
((12, 16) : (12, 20)) : FoldingRangeRegion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
22
{-# HLINT ignore "Use module export list" #-}
3-
module FuncMultiMatch where
3+
module Function(isEven) where
44

55
isEven :: Integer -> Bool
66
isEven n = if n `mod` 2 == 0
77
then True
88
else False
9+
10+
isOdd :: Integer -> Bool
11+
isOdd n = if n `mod` 2 == 0
12+
then False
13+
else True

0 commit comments

Comments
 (0)