| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Render class names as proper binders
|
|
|
|
|
|
|
| |
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).
|
|
|
|
| |
Include the instances in abstract data types too
|
|
|
|
|
| |
Do something sensible for modules which don't export anything (except
instances).
|
|
|
|
| |
hyperlinked identifiers should be in <tt>
|
|
|
|
| |
Fix some bugs in the rendering of qualified type signatures.
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
| |
- Use an alternate tabular layout for datatypes, which is more compact
- Fix some problems with the function argument documentation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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).
|
|
|
|
| |
Only include a mini-contents if there are 2 or more sections
|
|
|
|
| |
Add a special case for list types in ppHsAType
|
|
|
|
|
| |
Don't consider a module re-export as having documentation, for the
purposes of deciding whether we need a Synopsis section or not.
|
|
|
|
| |
Add support for existential quantifiers on constructors.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
remove a trace
|
|
|
|
| |
Allow '-- |' style annotations on constructors and record fields.
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
| |
- support for fundeps (partially contributed by Brett Letner - thanks
Brett).
- make it build with GHC 4.08.2
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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).
|
|
|
|
|
| |
Generate a little table of contents at the top of the module doc (only
if the module actually contains some section headings, though).
|
|
|
|
| |
Sort the module tree
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
| |
- Add our own versions of Html & BlockTable for the time being.
- Add support for generating an index to the HTML backend
|
|
|
|
|
|
|
|
| |
- Update to generate more correct HTML.
- Use our own non-overloaded table combinators, as the overloaded
versions were giving me a headache. The improved type safety
caught several errors in the HTML generation.
|
|
|
|
| |
Fix the anchor for a class declaration
|
|
This is Haddock, my stab at a Haskell documentation tool. It's not
quite ready for release yet, but I'm putting it in the repository so
others can take a look.
It uses a locally modified version of the hssource parser, extended
with support for GHC extensions and documentation annotations.
|