@@ -211,11 +211,11 @@ gotoDefinition withHieDb getHieFile ideOpts imports srcSpans pos
211
211
atPoint
212
212
:: IdeOptions
213
213
-> HieAstResult
214
- -> DocAndKindMap
215
- -> HscEnv
214
+ -> Maybe DocAndKindMap
215
+ -> Maybe HscEnv
216
216
-> Position
217
217
-> Maybe (Maybe Range , [T. Text ])
218
- atPoint IdeOptions {} (HAR _ hf _ _ kind) ( DKMap dm km) env pos = listToMaybe $ pointCommand hf pos hoverInfo
218
+ atPoint IdeOptions {} (HAR _ hf _ _ kind) mDkMap mEnv pos = listToMaybe $ pointCommand hf pos hoverInfo
219
219
where
220
220
-- Hover info for values/data
221
221
hoverInfo ast = (Just range, prettyNames ++ pTypes)
@@ -245,22 +245,33 @@ atPoint IdeOptions{} (HAR _ hf _ _ kind) (DKMap dm km) env pos = listToMaybe $ p
245
245
prettyName (Right n, dets) = T. unlines $
246
246
wrapHaskell (printOutputable n <> maybe " " (" :: " <> ) ((prettyType <$> identType dets) <|> maybeKind))
247
247
: maybeToList (pretty (definedAt n) (prettyPackageName n))
248
- ++ catMaybes [ T. unlines . spanDocToMarkdown <$> lookupNameEnv dm n
248
+ ++ catMaybes [ T. unlines . spanDocToMarkdown <$> maybeDoc
249
249
]
250
- where maybeKind = fmap printOutputable $ safeTyThingType =<< lookupNameEnv km n
250
+ where maybeKind = do
251
+ (DKMap _ km) <- mDkMap
252
+ nameEnv <- lookupNameEnv km n
253
+ printOutputable <$> safeTyThingType nameEnv
254
+ maybeDoc = do
255
+ (DKMap dm _) <- mDkMap
256
+ lookupNameEnv dm n
251
257
pretty Nothing Nothing = Nothing
252
258
pretty (Just define) Nothing = Just $ define <> " \n "
253
259
pretty Nothing (Just pkgName) = Just $ pkgName <> " \n "
254
260
pretty (Just define) (Just pkgName) = Just $ define <> " " <> pkgName <> " \n "
255
261
prettyName (Left m,_) = printOutputable m
256
262
257
- prettyPackageName n = do
258
- m <- nameModule_maybe n
259
- let pid = moduleUnit m
260
- conf <- lookupUnit env pid
261
- let pkgName = T. pack $ unitPackageNameString conf
262
- version = T. pack $ showVersion (unitPackageVersion conf)
263
- pure $ " *(" <> pkgName <> " -" <> version <> " )*"
263
+ prettyPackageName n = case mEnv of
264
+ Just env -> do
265
+ pid <- getUnit n
266
+ conf <- lookupUnit env pid
267
+ let pkgName = T. pack $ unitPackageNameString conf
268
+ version = T. pack $ showVersion (unitPackageVersion conf)
269
+ pure $ " *(" <> pkgName <> " -" <> version <> " )*"
270
+ Nothing -> do
271
+ u <- getUnit n
272
+ let pkgStr = takeWhile (/= ' :' ) $ show $ toUnitId u
273
+ pure $ " *(" <> T. pack pkgStr <> " )*"
274
+ getUnit n = moduleUnit <$> nameModule_maybe n
264
275
265
276
prettyTypes = map ((" _ :: " <> ) . prettyType) types
266
277
prettyType t = case kind of
0 commit comments