aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [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).
* [haddock @ 2002-05-06 13:32:32 by simonmar]simonmar2002-05-061-0/+2
| | | | Be more lenient about extra paragraph breaks
* [haddock @ 2002-05-06 12:49:21 by simonmar]simonmar2002-05-061-2/+3
| | | | Fix silly bug in named documentation block lookup.
* [haddock @ 2002-05-06 12:32:32 by simonmar]simonmar2002-05-061-4/+8
| | | | Allow empty data declarations (another GHC extension).
* [haddock @ 2002-05-06 12:30:09 by simonmar]simonmar2002-05-061-3/+0
| | | | Remove workaround for simplifier bug in previous revision.
* [haddock @ 2002-05-06 12:29:26 by simonmar]simonmar2002-05-061-1/+2
| | | | | Add missing type signature (a different workaround for the bug in GHC's simplifier).
* [haddock @ 2002-05-05 19:40:51 by panne]panne2002-05-051-1/+5
| | | | | | As a temporary hack/workaround for a bug in GHC's simplifier, don't pass Happy the -c option for generating the parsers in this subdir. Furthermore, disable -O for HaddocParse, too.
* [haddock @ 2002-04-29 15:56:19 by simonmar]simonmar2002-04-291-1/+1
| | | | Fix for 'make install'
* [haddock @ 2002-04-29 15:55:46 by simonmar]simonmar2002-04-291-2/+2
| | | | remove a trace
* [haddock @ 2002-04-29 15:28:54 by simonmar]simonmar2002-04-293-22/+34
| | | | Allow '-- |' style annotations on constructors and record fields.
* [haddock @ 2002-04-29 15:28:12 by simonmar]simonmar2002-04-291-1/+1
| | | | bugfix for declBinders on a NewTypeDecl
* [haddock @ 2002-04-26 13:15:02 by simonmar]simonmar2002-04-261-13/+7
| | | | | | Move the explicit formatting of the little table for the stability/portability/maintainer info from the HTML into the CSS, and remove the explicit table size (just right-align it).
* [haddock @ 2002-04-26 11:18:56 by simonmar]simonmar2002-04-269-32/+72
| | | | | | | - support for fundeps (partially contributed by Brett Letner - thanks Brett). - make it build with GHC 4.08.2
* [haddock @ 2002-04-26 10:13:00 by simonmar]simonmar2002-04-261-0/+2
| | | | Include $(GHC_HAPPY_OPTS) when compiling HsParser
* [haddock @ 2002-04-26 08:43:33 by simonmar]simonmar2002-04-261-1/+1
| | | | Package util reqd. to compile with 4.08.2
* [haddock @ 2002-04-25 14:40:05 by simonmar]simonmar2002-04-2510-38/+103
| | | | | | | - Add support for named chunks of documentation which can be referenced from the export list. - Copy the icon from $libdir to the destination in HTML mode.
* [haddock @ 2002-04-24 15:57:47 by simonmar]simonmar2002-04-242-14/+12
| | | | Handle gcons in export lists (a common extension).
* [haddock @ 2002-04-24 15:14:11 by simonmar]simonmar2002-04-244-36/+78
| | | | | | | Grok the kind of module headers we use in fptools/libraries, and pass the "portability", "stability", and "maintainer" strings through into the generated HTML. If the module header doesn't match the pattern, then we don't include the info in the HTML.
* [haddock @ 2002-04-24 15:12:41 by simonmar]simonmar2002-04-241-3/+7
| | | | | Stop slurping comment lines when we see a row of dashes longer than length 2: these are useful as separators.
* [haddock @ 2002-04-11 13:40:30 by simonmar]simonmar2002-04-118-117/+275
| | | | | | | | | | | | | - copy haddock.css into the same place as the generated HTML - new option: --css <file> specifies the style sheet to use - new option: -o <dir> specifies the directory in which to generate the output. - because Haddock now needs to know where to find its default stylesheet, we have to have a wrapper script and do the haddock-inplace thing (Makefile code copied largely from fptools/happy).
* [haddock @ 2002-04-10 16:28:05 by simonmar]simonmar2002-04-102-3/+13
| | | | | | Parse errors in doc strings are now reported as warnings rather that causing the whole thing to fall over. It still needs cleaning up (the warning is emitted with trace) but this will do for the time being.
* [haddock @ 2002-04-10 16:10:26 by simonmar]simonmar2002-04-102-2/+5
| | | | | Now we understand (or at least don't barf on) type signatures in patterns such as you might find when scoped type variables are in use.
* [haddock @ 2002-04-10 15:50:10 by simonmar]simonmar2002-04-104-11/+51
| | | | | Generate a little table of contents at the top of the module doc (only if the module actually contains some section headings, though).
* [haddock @ 2002-04-10 14:59:51 by simonmar]simonmar2002-04-101-1/+2
| | | | Sort the module tree
* [haddock @ 2002-04-10 13:26:09 by simonmar]simonmar2002-04-103-139/+330
| | | | | | | | | Lots of changes, including: - add index support to the HTML backend - clean up the renamer, put it into a monad - propogate unresolved names to the top level and report them in a nicer way - various bugfixes
* [haddock @ 2002-04-10 13:23:55 by simonmar]simonmar2002-04-101-2/+2
| | | | | Not sure why I made the constructor name for a record declaration into a TyCls name, but change it back into a Var name anyhow.
* [haddock @ 2002-04-10 13:23:13 by simonmar]simonmar2002-04-102-9/+17
| | | | | Lex URLs as a single token to avoid having to escape special characters inside the URL string.
* [haddock @ 2002-04-09 11:33:54 by simonmar]simonmar2002-04-094-68/+92
| | | | | | | | - add the <...> syntax for marking up URLs in documentation - Make the output for data & class declarations more compact when there aren't any documentation annotations on the individual methods or constructors respectively.
* [haddock @ 2002-04-09 11:23:24 by simonmar]simonmar2002-04-091-1/+3
| | | | Add '-- /' as a synonym for '-- |', for compatibility with IDoc.
* [haddock @ 2002-04-08 16:41:37 by simonmar]simonmar2002-04-083-90/+1335
| | | | | - Add our own versions of Html & BlockTable for the time being. - Add support for generating an index to the HTML backend