1{-# OPTIONS_GHC -Wall #-}
11import qualified AST.Module as Module
12import qualified Elm.Compiler.Imports as Imports
13import qualified Elm.Compiler.Internals as I
14import qualified Elm.Compiler.Module as M
15import qualified Elm.Package as Package
16import qualified Parse.Helpers as Parse (run)
17import qualified Parse.Module as Parse (header)
18import qualified Reporting.Annotation as A
19import qualified Reporting.Error as Error
26data Tag = Normal | Effect | Port
33parse :: Package.Name -> Text -> Either I.Error (Maybe (Tag, M.Raw), [M.Raw])
34parse pkgName sourceCode =
35 case Parse.run Parse.header sourceCode of
37 Right $ toSummary pkgName header
40 Left (I.Error (A.map Error.Syntax err))
43toSummary :: Package.Name -> Module.Header [Module.UserImport] -> (Maybe (Tag, M.Raw), [M.Raw])
44toSummary pkgName (Module.Header maybeHeaderDecl imports) =
47 if pkgName == Package.core
48 then map (A.drop . fst . A.drop) imports
49 else map (A.drop . fst . A.drop) imports ++ map fst Imports.defaults
51 case maybeHeaderDecl of
53 ( Nothing, dependencies )
55 Just (Module.HeaderDecl sourceTag name _ _ _) ->
59 Module.Normal -> Normal
61 Module.Effect _ -> Effect
63 ( Just (tag, name), dependencies )
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list