1
+ {-# LANGUAGE CPP #-}
1
2
{-# LANGUAGE DuplicateRecordFields #-}
2
3
{-# LANGUAGE OverloadedStrings #-}
3
4
@@ -12,11 +13,12 @@ import qualified Data.Maybe as Maybe
12
13
import qualified Data.Text as T
13
14
import qualified Data.Text.Encoding as Encoding
14
15
import Data.Version (Version (.. ))
15
- import Development.IDE.GHC.Compat (HscEnv , filterUniqMap ,
16
- getUnitInfoMap ,
17
- nonDetEltsUniqMap ,
16
+ import Development.IDE.GHC.Compat (HscEnv , getUnitInfoMap ,
18
17
unitPackageNameString ,
19
18
unitPackageVersion )
19
+ #if MIN_VERSION_GLASGOW_HASKELL(9,8,0,0)
20
+ import Development.IDE.GHC.Compat (nonDetEltsUniqMap )
21
+ #endif
20
22
import Development.IDE.LSP.HoverDefinition (foundHover )
21
23
import qualified Distribution.Fields as Syntax
22
24
import qualified Distribution.Parsec.Position as Syntax
@@ -84,7 +86,12 @@ dependencyHover cabalFields hsc cursorPosition =
84
86
collectPackageDependencyVersions :: [Syntax. Field Syntax. Position ] -> HscEnv -> [DependencyInfo ]
85
87
collectPackageDependencyVersions cabalFields hscEnv = cabalFields >>= collectPackageVersions
86
88
where
87
- lookupPackageVersion pkgName = Maybe. listToMaybe $ nonDetEltsUniqMap $ fmap unitPackageVersion $ filterUniqMap ((==) (T. unpack pkgName) . unitPackageNameString) $ getUnitInfoMap hscEnv
89
+ #if MIN_VERSION_GLASGOW_HASKELL(9,8,0,0)
90
+ unitInfoList = nonDetEltsUniqMap $ getUnitInfoMap hscEnv
91
+ #else
92
+ unitInfoList = getUnitInfoMap hscEnv
93
+ #endif
94
+ lookupPackageVersion pkgName = fmap unitPackageVersion $ find ((==) (T. unpack pkgName) . unitPackageNameString) unitInfoList
88
95
89
96
collectPackageVersions :: Syntax. Field Syntax. Position -> [DependencyInfo ]
90
97
collectPackageVersions (Syntax. Field (Syntax. Name _ " build-depends" ) pos) = concatMap fieldLinePackageVersions pos
0 commit comments