aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* [haddock @ 2002-06-21 15:50:42 by simonmar]simonmar2002-06-214-9/+724
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for reading and writing interface files(!) This turned out to be quite easy, and necessary to get decent hyperlinks between the documentation for separate packages in the libraries. The functionality isn't quite complete yet: for a given package of modules, you'd like to say "the HTML for these modules lives in directory <dir>" (currently they are assumed to be all in the same place). Two new flags: --dump-interface=FILE dump an interface file in FILE --read-interface=FILE read interface from FILE an interface file describes *all* the modules being processed. Only the exported names are kept in the interface: if you re-export a name from a module in another interface the signature won't be copied. This is a compromise to keep the size of the interfaces sensible. Also, I added another useful option: --no-implicit-prelude avoids trying to import the Prelude. Previously this was the default, but now importing the Prelude from elsewhere makes sense if you also read in an interface containing the Prelude module, so Haddock imports the Prelude implicitly according to the Haskell spec.
* [haddock @ 2002-06-21 12:43:06 by simonmar]simonmar2002-06-211-0/+1
| | | | | | When we have a single code block paragraph, don't place it in <pre>..</pre>, just use <tt>..</tt> to avoid generating extra vertical white space in some browsers.
* [haddock @ 2002-06-20 12:39:01 by simonmar]simonmar2002-06-202-6/+33
| | | | | Add support for a "prologue" - a description for the whole library, placed on the contents page before the module list.
* [haddock @ 2002-06-20 12:38:07 by simonmar]simonmar2002-06-201-11/+7
| | | | Empty declaration fixes.
* [haddock @ 2002-06-11 09:23:25 by simonmar]simonmar2002-06-111-0/+3
| | | | portability nit
* [haddock @ 2002-06-08 14:03:36 by panne]panne2002-06-081-1/+1
| | | | | | | Tiny workaround for the fact that Haddock currently ignores HsImportSpecs: Let the local_orig_env take precedence. This is no real solution at all, but improves things sometimes, e.g. in my GLUT documentation. :-)
* [haddock @ 2002-06-05 09:12:02 by simonmar]simonmar2002-06-051-1/+1
| | | | | Identifiers in single quotes can be symbol names too (bug reported by Hal Daume).
* [haddock @ 2002-06-05 09:05:07 by simonmar]simonmar2002-06-051-6/+7
| | | | | Keep foreign imports when there is no export list (bug reported by Sven Panne).
* [haddock @ 2002-06-03 14:12:38 by simonmar]simonmar2002-06-031-11/+13
| | | | Render class names as proper binders
* [haddock @ 2002-06-03 13:46:48 by simonmar]simonmar2002-06-031-0/+6
| | | | Fix for exporting record selectors from a newtype declaration
* [haddock @ 2002-06-03 13:20:00 by simonmar]simonmar2002-06-031-1/+1
| | | | | Fix linking to qualified names again (thanks to Sven Panne for pointing out the bug).
* [haddock @ 2002-06-03 13:05:57 by simonmar]simonmar2002-06-037-57/+110
| | | | | | | Allow exporting of individual class methods and record selectors. For these we have to invent the correct type signature, which we do in the simplest possible way (i.e. no context reduction nonsense in the class case).
* [haddock @ 2002-05-29 15:27:18 by simonmar]simonmar2002-05-291-10/+8
| | | | Include the instances in abstract data types too
* [haddock @ 2002-05-29 13:19:06 by simonmar]simonmar2002-05-292-66/+73
| | | | | | | | | | | Make the markup syntax a little more friendly: - single quotes are now interpreted literally unless they surround a valid Haskell identifier. So for example now there's no need to escape a single quote used as an apostrophe. - text to the right of a bird track is now literal (if you want marked-up text in a code block, use @...@).
* [haddock @ 2002-05-29 09:09:49 by simonmar]simonmar2002-05-292-15/+3
| | | | Back out previous change until we can find a better way to do this.
* [haddock @ 2002-05-28 22:42:08 by sof]sof2002-05-282-3/+15
| | | | | | | | | Handle lone occurrences of '/', e.g., -- | This/that. [did this in the lexer rather than in the parser, as I couldn't see a way not to introduce an S/R conflict that way.]
* [haddock @ 2002-05-28 16:16:19 by simonmar]simonmar2002-05-281-38/+66
| | | | | | | Only link to names in the current module which are actually listed in the documentation. A name may be exported but not present in the documentation if it is exported as part of a 'module M' export specifier.
* [haddock @ 2002-05-28 11:17:55 by simonmar]simonmar2002-05-281-15/+16
| | | | If an identifier doesn't lex, then just replace it by a DocString.
* [haddock @ 2002-05-28 10:12:50 by simonmar]simonmar2002-05-282-4/+11
| | | | Rename the module documentation properly (bug reported by Sven Panne).
* [haddock @ 2002-05-27 15:56:45 by simonmar]simonmar2002-05-271-3/+2
| | | | | Do something sensible for modules which don't export anything (except instances).
* [haddock @ 2002-05-27 14:53:53 by simonmar]simonmar2002-05-271-1/+1
| | | | hyperlinked identifiers should be in <tt>
* [haddock @ 2002-05-27 14:36:45 by simonmar]simonmar2002-05-271-2/+2
| | | | warning message tweak
* [haddock @ 2002-05-27 14:10:27 by simonmar]simonmar2002-05-271-27/+32
| | | | Fix some bugs in the rendering of qualified type signatures.
* [haddock @ 2002-05-27 13:19:49 by simonmar]simonmar2002-05-271-0/+3
| | | | Fix bug: we weren't renaming HsDocCommentNamed in renameDecl
* [haddock @ 2002-05-27 12:30:37 by simonmar]simonmar2002-05-271-5/+5
| | | | | | | | | - Put function arguments *before* the doc for the function, as suggested by Sven Panne. This looks nicer when the function documentation is long. - Switch to using bold for binders at the definition site, and use underline for keywords. This makes the binder stand out more.
* [haddock @ 2002-05-27 09:03:51 by simonmar]simonmar2002-05-278-155/+257
| | | | | | | | | | | | | | Lots of changes: - instances of a class are listed with the class, and instances involving a datatype are listed with that type. Derived instances aren't included at the moment: the calculation to find the instance head for a derived instance is non-trivial. - some formatting changes; use rows with specified height rather than cellspacing in some places. - various fixes (source file links were wrong, amongst others)
* [haddock @ 2002-05-21 10:24:52 by simonmar]simonmar2002-05-211-45/+79
| | | | | - Use an alternate tabular layout for datatypes, which is more compact - Fix some problems with the function argument documentation
* [haddock @ 2002-05-17 10:51:57 by simonmar]simonmar2002-05-171-10/+9
| | | | Fix bugs in qualified name handling (A.B.f was returned as B.f)
* [haddock @ 2002-05-15 13:28:46 by simonmar]simonmar2002-05-151-1/+2
| | | | Patch to add support for GHC-style primitive strings ".."#, from Ross Paterson.
* [haddock @ 2002-05-15 13:03:01 by simonmar]simonmar2002-05-1510-664/+678
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reworking of the internals to support documenting function arguments (the Most Wanted new feature by the punters). The old method of keeping parsed documentation in a Name -> Doc mapping wasn't going to cut it for anntations on type components, where there's no name to attach the documentation to, so I've moved to storing all the documentation in the abstract syntax. Previously some of the documentation was left in the abstract syntax by the parser, but was later extracted into the mapping. In order to avoid having to parameterise the abstract syntax over the type of documentation stored in it, we have to parse the documentation at the same time as we parse the Haskell source (well, I suppose we could store 'Either String Doc' in the HsSyn, but that's clunky). One upshot is that documentation is now parsed eagerly, and documentation parse errors are fatal (but have better line numbers in the error message). The new story simplifies matters for the code that processes the source modules, because we don't have to maintain the extra Name->Doc mapping, and it should improve efficiency a little too. New features: - Function arguments and return values can now have doc annotations. - If you refer to a qualified name in a doc string, eg. 'IO.putStr', then Haddock will emit a hyperlink even if the identifier is not in scope, so you don't have to make sure everything referred to from the documentation is imported. - several bugs & minor infelicities fixed.
* [haddock @ 2002-05-15 12:44:35 by simonmar]simonmar2002-05-151-16/+38
| | | | Preserve the newline before a bird-track, but only within a paragraph.
* [haddock @ 2002-05-13 15:19:03 by simonmar]simonmar2002-05-131-2/+9
| | | | | | | Cope with datatypes which have documentation on the constructor but not the type itself, and records which have documentation on the fields but not the constructor. (Thanks to Ross Paterson for pointing out the bugs).
* [haddock @ 2002-05-13 10:14:22 by simonmar]simonmar2002-05-131-8/+6
| | | | | | | Allow backquote as the right-hand quote as well as the left-hand quote, as suggested by Dean Herrington. Clean up the grammar a litte.
* [haddock @ 2002-05-10 16:05:08 by simonmar]simonmar2002-05-101-3/+3
| | | | Only include a mini-contents if there are 2 or more sections
* [haddock @ 2002-05-09 13:38:04 by simonmar]simonmar2002-05-091-0/+2
| | | | Add dependency
* [haddock @ 2002-05-09 13:37:35 by simonmar]simonmar2002-05-091-19/+25
| | | | Print the module name in a doc-string parse error
* [haddock @ 2002-05-09 12:45:19 by simonmar]simonmar2002-05-091-2/+3
| | | | Add 'stdcall' keyword
* [haddock @ 2002-05-09 12:43:06 by simonmar]simonmar2002-05-091-2/+2
| | | | Type synonyms can accept a ctype on the RHS, to match GHC.
* [haddock @ 2002-05-09 11:10:55 by simonmar]simonmar2002-05-091-6/+8
| | | | Add a special case for list types in ppHsAType
* [haddock @ 2002-05-09 10:44:15 by simonmar]simonmar2002-05-091-0/+1
| | | | | Don't consider a module re-export as having documentation, for the purposes of deciding whether we need a Synopsis section or not.
* [haddock @ 2002-05-09 10:37:07 by simonmar]simonmar2002-05-092-8/+431
| | | | | | | | | | The last commit to Main.lhs broke the delicate balance of laziness which was being used to avoid computing the dependency graph of modules. So I finally bit the bullet and did a proper topological sort of the module graph, which turned out to be easy (stealing the Digraph module from GHC - this really ought to be in the libraries somewhere).
* [haddock @ 2002-05-09 10:35:00 by simonmar]simonmar2002-05-091-2/+5
| | | | Give a more useful instance of Show for Module.
* [haddock @ 2002-05-09 10:34:44 by simonmar]simonmar2002-05-091-2/+2
| | | | Fix buglet
* [haddock @ 2002-05-09 10:33:14 by simonmar]simonmar2002-05-091-1/+1
| | | | oops, left out '/' from the special characters in the last change.
* [haddock @ 2002-05-08 14:48:39 by simonmar]simonmar2002-05-087-35/+58
| | | | Add support for existential quantifiers on constructors.
* [haddock @ 2002-05-08 13:39:56 by simonmar]simonmar2002-05-081-27/+56
| | | | | | | | | | | | | | Allow nested-style comments to be used as documentation annotations too. eg. {-| ... -} is equivalent to -- | ... An extra space can also be left after the comment opener: {- | ... -}. The only version that isn't allowed is {-# ... -}, because this syntax overlaps with Haskell pragmas; use {- # ... -} instead.
* [haddock @ 2002-05-08 13:37:25 by simonmar]simonmar2002-05-082-4/+17
| | | | | | | | | | Change the markup for typewriter-font from [...] to @...@. The reasoning is that the '@' symbol is much less likely to be needed than square brackets, and we don't want to have to escape square brackets in code fragments. This will be mildly painful in the short term, but it's better to get the change out of the way as early as possible.
* [haddock @ 2002-05-08 11:21:56 by simonmar]simonmar2002-05-087-154/+268
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a facility for specifying options that affect Haddock's treatment of the module. Options are given at the top of the module in a comma-separated list, beginning with '-- #'. eg. -- # prune, hide, ignore-exports Options currently available, with their meanings: prune: ignore declarations which have no documentation annotations ignore-exports: act as if the export list were not specified (i.e. export everything local to the module). hide: do not include this module in the generated documentation, but propagate any exported definitions to modules which re-export them. There's a slight change in the semantics for re-exporting a full module by giving 'module M' in the export list: if module M does not have the 'hide' option, then the documentation will now just contain a reference to module M rather than the full inlined contents of that module. These features, and some other changes in the pipeline, are the result of discussions between myself and Manuel Chakravarty <chak@cse.unsw.edu.au> (author of IDoc) yesterday. Also: some cleanups, use a Writer monad to collect error messages in some places instead of just printing them with trace.
* [haddock @ 2002-05-07 15:37:15 by simonmar]simonmar2002-05-072-3/+15
| | | | Allow code blocks to be denoted with bird-tracks in addition to [...].
* [haddock @ 2002-05-07 15:36:36 by simonmar]simonmar2002-05-071-0/+2
| | | | | DocEmpty is a right and left-unit of DocAppend (remove it in the smart constructor).