-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | See README on Github for more information -- -- static-ls ("static language server") reads static project information -- to provide IDE functionality through the language server protocol. -- static-ls will not generate this information on its own and instead -- will rely on the user to generate this information via separate -- programs @package static-ls @version 0.1.2 module StaticLS.Except exceptToMaybe :: Except a b -> Maybe b module StaticLS.HIE hieAstNodeToIdentifiers :: HieAST a -> [Identifier] identifiersToNames :: [Identifier] -> [Name] hieAstToNames :: HieAST a -> [Name] hieAstsAtPoint :: HieFile -> HieDbCoords -> Maybe HieDbCoords -> [HieAST TypeIndex] hiedbCoordsToLspPosition :: Monad m => HieDbCoords -> ExceptT UIntConversionException m Position lspPositionToHieDbCoords :: Position -> HieDbCoords namesAtPoint :: HieFile -> HieDbCoords -> [Name] instance GHC.Show.Show StaticLS.HIE.UIntConversionException instance GHC.Exception.Type.Exception StaticLS.HIE.UIntConversionException module StaticLS.HIE.File.Except data HieFileReadException HieFileReadException :: HieFileReadException HieFileVersionException :: HieHeader -> HieFileReadException instance GHC.Show.Show StaticLS.HIE.File.Except.HieFileReadException instance GHC.Exception.Type.Exception StaticLS.HIE.File.Except.HieFileReadException module StaticLS.HieDb -- | Lookup HieModule row from HieDb given the path to the -- Haskell hie file A temporary function until this is supported in hiedb -- proper lookupHieFileFromHie :: HieDb -> FilePath -> IO (Maybe HieModuleRow) module StaticLS.Maybe flatMaybeT :: Monad m => MaybeT m (Maybe a) -> MaybeT m a toAlt :: (Functor f, Foldable f, Alternative g) => f a -> g a orDie :: Monad m => Maybe a -> e -> ExceptT e m a orDieT :: Monad m => MaybeT m a -> e -> ExceptT e m a module StaticLS.SDoc showGhc :: Outputable a => a -> Text showSD :: SDoc -> Text printSDocSimple :: SDoc -> String pprStyleToSDocContext :: PprStyle -> SDocContext showNameWithoutUniques :: Outputable a => a -> Text module StaticLS.HI getDocs :: Name -> ModIface -> Maybe NameDocs getDocsBatch :: [Name] -> ModIface -> [NameDocs] renderNameDocs :: NameDocs -> Text data NameDocs NameDocs :: Maybe [HsDoc GhcRn] -> IntMap (HsDoc GhcRn) -> NameDocs [$sel:declComment:NameDocs] :: NameDocs -> Maybe [HsDoc GhcRn] [$sel:argComments:NameDocs] :: NameDocs -> IntMap (HsDoc GhcRn) instance GHC.Utils.Outputable.Outputable StaticLS.HI.NameDocs module StaticLS.IDE.Hover.Info hoverInfo :: Array TypeIndex HieTypeFlat -> [NameDocs] -> HieAST TypeIndex -> (Maybe Range, [Text]) module StaticLS.SrcFiles type SrcFilePath = FilePath srcDirs :: [FilePath] module StaticLS.FilePath modToFilePath :: ModuleName -> String -> FilePath -- | Substitute a filepath extension and parent directory starting from -- some root subRootExtensionFilepath :: MonadIO m => FilePath -> FilePath -> String -> FilePath -> MaybeT m FilePath module StaticLS.StaticEnv.Options defaultStaticEnvOptions :: StaticEnvOptions defaultHieDb :: FilePath defaultHieFiles :: FilePath defaultSrcDirs :: [FilePath] defaultHiFiles :: FilePath data StaticEnvOptions StaticEnvOptions :: FilePath -> FilePath -> FilePath -> [FilePath] -> StaticEnvOptions -- | Relative path to hiedb file hiedb is required for find references and -- go to definition to work correctly [$sel:optionHieDbPath:StaticEnvOptions] :: StaticEnvOptions -> FilePath -- | Relative path to hie files directory hie files are required for all -- functionality [$sel:optionHieFilesPath:StaticEnvOptions] :: StaticEnvOptions -> FilePath -- | Relative path to hi files directory [$sel:optionHiFilesPath:StaticEnvOptions] :: StaticEnvOptions -> FilePath [$sel:optionSrcDirs:StaticEnvOptions] :: StaticEnvOptions -> [FilePath] instance GHC.Classes.Eq StaticLS.StaticEnv.Options.StaticEnvOptions instance GHC.Show.Show StaticLS.StaticEnv.Options.StaticEnvOptions module StaticLS.StaticEnv initStaticEnv :: FilePath -> StaticEnvOptions -> IO StaticEnv runStaticLs :: StaticEnv -> StaticLs a -> IO a getStaticEnv :: HasStaticEnv m => m StaticEnv -- | Run an hiedb action in an exceptT runHieDbExceptT :: (HasStaticEnv m, MonadIO m) => (HieDb -> IO a) -> ExceptT HieDbException m a -- | Run an hiedb action with the MaybeT Monad runHieDbMaybeT :: (HasStaticEnv m, MonadIO m) => (HieDb -> IO a) -> MaybeT m a -- | Static environment used to fetch data data StaticEnv StaticEnv :: HieDbPath -> HieFilePath -> HiFilePath -> FilePath -> [FilePath] -> StaticEnv -- | Path to the hiedb file [$sel:hieDbPath:StaticEnv] :: StaticEnv -> HieDbPath [$sel:hieFilesPath:StaticEnv] :: StaticEnv -> HieFilePath [$sel:hiFilesPath:StaticEnv] :: StaticEnv -> HiFilePath -- | workspace root [$sel:wsRoot:StaticEnv] :: StaticEnv -> FilePath -- | directories to search for source code in order of priority [$sel:srcDirs:StaticEnv] :: StaticEnv -> [FilePath] type StaticLs = ReaderT StaticEnv IO type HieDbPath = FilePath type HieFilePath = FilePath type HiFilePath = FilePath type HasStaticEnv = MonadReader StaticEnv instance GHC.Show.Show StaticLS.StaticEnv.HieDbException instance GHC.Show.Show StaticLS.StaticEnv.StaticEnv instance GHC.Classes.Eq StaticLS.StaticEnv.StaticEnv instance GHC.Exception.Type.Exception StaticLS.StaticEnv.HieDbException module StaticLS.HIE.File -- | Retrieve a hie info from a lsp text document identifier getHieFileFromTdi :: (HasStaticEnv m, MonadIO m) => TextDocumentIdentifier -> MaybeT m HieFile -- | Retrieve an hie file from a hie filepath getHieFile :: (HasCallStack, MonadIO m) => HieFilePath -> ExceptT HieFileReadException m HieFile -- | Retrieve an hie file from a module name modToHieFile :: (HasStaticEnv m, MonadIO m) => ModuleName -> MaybeT m HieFile -- | Retrieve a src file from a module name modToSrcFile :: (HasStaticEnv m, MonadIO m) => ModuleName -> MaybeT m SrcFilePath -- | Fetch a src file from an hie file, checking hiedb but falling back on -- a file manipulation method if not indexed srcFilePathToHieFilePath :: (HasStaticEnv m, MonadIO m) => SrcFilePath -> MaybeT m HieFilePath -- | Fetch an hie file from a src file hieFilePathToSrcFilePath :: (HasStaticEnv m, MonadIO m) => HieFilePath -> MaybeT m SrcFilePath getHieFileMap :: FilePath -> HieFilePath -> IO (Map SrcFilePath HieInfo) hieFileMapToSrcMap :: Map SrcFilePath HieInfo -> Map HieFilePath SrcFilePath module StaticLS.IDE.Workspace.Symbol symbolInfo :: (HasCallStack, HasStaticEnv m, MonadIO m) => Text -> m [SymbolInformation] defRowToSymbolInfo :: (HasStaticEnv m, MonadIO m) => Res DefRow -> m (Maybe SymbolInformation) toUri :: FilePath -> Uri module StaticLS.IDE.References findRefs :: (HasStaticEnv m, MonadIO m) => TextDocumentIdentifier -> Position -> m [Location] module StaticLS.IDE.Definition getDefinition :: (HasCallStack, HasStaticEnv m, MonadIO m) => TextDocumentIdentifier -> Position -> m [DefinitionLink] getTypeDefinition :: (HasCallStack, HasStaticEnv m, MonadIO m) => TextDocumentIdentifier -> Position -> m [DefinitionLink] module StaticLS.HI.File -- | Only supports 64 bit platforms readHiFile :: MonadIO m => FilePath -> m (Maybe ModIface) srcFilePathToHiFilePath :: (HasStaticEnv m, MonadIO m) => SrcFilePath -> MaybeT m HiFilePath getModIfaceFromTdi :: (HasStaticEnv m, MonadIO m) => TextDocumentIdentifier -> MaybeT m ModIface tdiToHiFilePath :: (HasStaticEnv m, MonadIO m) => TextDocumentIdentifier -> MaybeT m HiFilePath modToHiFile :: (HasStaticEnv m, MonadIO m) => ModuleName -> MaybeT m HiFilePath module StaticLS.IDE.Hover -- | Retrieve hover information. retrieveHover :: (HasCallStack, HasStaticEnv m, MonadIO m) => TextDocumentIdentifier -> Position -> m (Maybe Hover) module StaticLS.Server runServer :: StaticEnvOptions -> IO Int