git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge pull request #790 from purescript/completion
2881a5bPhil Freeman
psci/Main.hs+11−6
@@ -234,22 +234,27 @@ completion = completeWordWithPrev Nothing " \t\n\r" findCompletions
234
234
235 getLoadedModules :: StateT PSCiState IO [P.Module]
235 getLoadedModules :: StateT PSCiState IO [P.Module]
236 getLoadedModules = map snd . psciLoadedModules <$> get
236 getLoadedModules = map snd . psciLoadedModules <$> get
237+
237 getModuleNames :: StateT PSCiState IO [String]
238 getModuleNames :: StateT PSCiState IO [String]
238 getModuleNames = moduleNames <$> getLoadedModules
239 getModuleNames = moduleNames <$> getLoadedModules
240+
239 getIdentNames :: StateT PSCiState IO [String]
241 getIdentNames :: StateT PSCiState IO [String]
240 getIdentNames = identNames <$> getLoadedModules
242 getIdentNames = identNames <$> getLoadedModules
241
243
242 getDeclName :: Maybe [P.DeclarationRef] -> P.Declaration -> Maybe P.Ident
244 getDeclName :: Maybe [P.DeclarationRef] -> P.Declaration -> Maybe P.Ident
243− getDeclName Nothing (P.ValueDeclaration ident _ _ _) = Just ident
245+ getDeclName exts (P.ValueDeclaration ident _ _ _) | isExported ident exts = Just ident
244− getDeclName (Just exts) (P.ValueDeclaration ident _ _ _) | isExported = Just ident
246+ getDeclName exts (P.ExternDeclaration _ ident _ _) | isExported ident exts = Just ident
247+ getDeclName exts (P.PositionedDeclaration _ d) = getDeclName exts d
248+ getDeclName _ _ = Nothing
249+
250+ isExported :: N.Ident -> Maybe [P.DeclarationRef] -> Bool
251+ isExported ident = maybe True (any exports)
245 where
252 where
246− isExported = any exports exts
253+ exports :: P.DeclarationRef -> Bool
247 exports (P.ValueRef ident') = ident == ident'
254 exports (P.ValueRef ident') = ident == ident'
248 exports (P.PositionedDeclarationRef _ r) = exports r
255 exports (P.PositionedDeclarationRef _ r) = exports r
249 exports _ = False
256 exports _ = False
250− getDeclName exts (P.PositionedDeclaration _ d) = getDeclName exts d
257+
251− getDeclName _ _ = Nothing
252−
253 identNames :: [P.Module] -> [String]
258 identNames :: [P.Module] -> [String]
254 identNames ms = nub [ show qual
259 identNames ms = nub [ show qual
255 | P.Module moduleName ds exts <- ms
260 | P.Module moduleName ds exts <- ms