| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The rule is to prefer type constructors to other things when an identifier in a
doc string can refer to multiple things. This stopped working with newer GHC
versions (due to a tiny change in the GHC renamer). We implement this rule
in the HTML backend for now, instead of fixing it in GHC, since we will move
renaming of doc strings to Haddock in the future anyway.
|
|
|
|
|
|
| |
We only show the strictness annotation for an unboxed constructor argument. The
fact that it is unboxed is an implementation detail and should not be part of
the module interface.
|
|
|
|
|
|
|
| |
This fixes GHC ticket 2746.
In order to also link to the exported subordinate names of a declaration, we
need to re-introduce the sub map in the .haddock files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of a complicated calculation of visible names out of GHC's export
items, we can get them straight out of the already calculated ExportItems. The
ExportItems should represent exactly those items that are visible in an
interface.
If store all the exported sub-names in ExportDecl instead of only those with
documentation, the calculation becomes very simple. So we do this change as
well (should perhaps have been a separate patch).
This should fix the problem with names from ghc-prim not appearing in the link
environment.
|
|
|
|
| |
Fixes #65
|
|
|
|
|
|
| |
We generate two anchor tags for each name, one where we don't escape the name
and one where we URI-encode it. This is for compatibility between IE and Opera.
Test output is updated.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch introduces:
- A page that displays the documentation in a framed view. The left
side will show a full module index. Clicking a module name will
show it in the right frame. If Javascript is enabled, the left
side is split again to show the modules at the top and a very short
synopsis for the module currently displayed on the right.
- Code to generate the mini-synopsis for each module and the mini
module index ("index-frames.html").
- CSS rules for the mini-synopsis.
- A very small amount of javascript to update the mini-synopsis (but
only if inside a frame.)
Some perhaps controversial things:
- Sharing code was very difficult, so there is a small amount of code
duplication.
- The amount of generated pages has been doubled, since every module
now also gets a mini-synopsis. The overhead should not be too
much, but I haven't checked. Alternatively, the mini-synopsis
could also be generated using Javascript if we properly annotate
the actual synopsis.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were not getting docs for re-exported class methods. This was because we
were looking up the docs in a map made from the declarations in the current
module being rendered. Obviously, re-exported class methods come from another
module.
Class methods and ATs were the only thing we were looking up using the doc map,
everything else we found in the ExporItems. So now I've put subordinate docs
in the ExportItem's directly, to make things a bit more consistent.
To do this, I added subordinates to the the declarations in the declaration
map. This was easy since we were computing subordinates anyway, to store
stand-alone in the map. I added a new type synonym 'DeclInfo', which is what we
call what is now stored in the map.
This little refactoring removes duplicate code to retrieve subordinates and
documentation from the HsGroup.
|
|
|
|
|
| |
It was there to know the documentation home module when creating
a wiki link, but we already know this since we have the DocName.
|
|
|
|
|
|
| |
The support for DocPic was merged into the GHC source long ago,
but the support in Haddock was forgotten. Thanks Peter Gavin for
submitting this fix!
|
| |
|
| |
|
|
|
|
|
|
|
| |
environment.
Getting it from the environment must have been a remnant from the
times when we were using unqualified names (versions 0.x).
|
| |
|
| |
|
|
|
|
| |
Fixes half of #44
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were putting in parenthesis were the user did. Let's remove this since
it just clutters up the types. The types are readable anyway since we print
parens around infix operators and do not rely on fixity levels.
When doing this I discovered that we were relying on user parenthesis when
printin types like (a `O` b) c. This patchs fixes this problem so that
parenthesis are always inserted around an infix op application in case it
is applied to further arguments, or if it's an arguments to a type constructor.
Tests are updated.
|
| |
|
|
|
|
|
|
|
|
|
| |
We want to be able to render instances as separate declarations. So we remove
the Name argument of ExportDecl, since instances are nameless.
This patch also contains the first steps needed to gather type family instances
and display them in the backend, but the implementation is far from complete.
Because of this, we don't actually show the instances yet.
|
|
|
|
| |
Now we just need to render the instances
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ross Paterson reported a bug where links would point to the defining module
instead of the "best" module for an identifier (e.g Int pointing to GHC.Base
instead of Data.Int). This patch fixes this problem by refactoring the way
renamed names are represented. Instead of representing them by:
> data DocName = Link Name | NoLink Name
they are now represented as such:
> data DocName = Documented Name Module | Undocumented Name
and the the link-env looks like this:
> type LinkEnv = Map Name Module
There are several reasons for this. First of all, the bug was caused by
changing the module part of Names during the renaming process, without changing
the Unique field. This caused names to be overwritten during the loading of
.haddock files (which caches names using the NameCache of the GHC session).
So we might create new Uniques during renaming to fix this (but I'm not
sure that would be problem-free). Instead, we just keep the Name and add the
Module where the name is best documented, since it can be useful to keep
the original Name around (for e.g. source-code location info and for users of
the Haddock API).
Also, the names Link/NoLink don't really make sense, since wether to use
links or not is entirely up to the users of DocName.
In the process of following this change into H.Backends.Html I removed the
assumption that binder names are Undocumented (which was just an unnecessary
assumption, the OccName is the only thing needed to render these). This will
probably make it possible to get rid of the renamer and replace it with a
traversal from SYB or Uniplate.
Since DocName has changed, InterfaceFile has changed so this patch also
increments the file-format version. No backwards-compatibility is implemented.
|
|
|
|
|
|
|
| |
Thu Dec 6 15:00:10 CET 2007 Simon Marlow <simonmar@microsoft.com>
* Source links must point to the original module, not the referring
module
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is also a refactoring to share this code for rendering predicates.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
on the base library with IE, the new version guarantees less than O(log n) operations be performed, where n is the number in the list (before was always O(n))
|
| |
|
|
|
|
|
|
| |
Sat Apr 21 04:36:43 CEST 2007 Roberto Zunino <zunrob@users.sf.net>
* URL expansion for %%, %L, %{LINE}
|
| |
|
| |
|
|
|
|
| |
constructors, instances or comments. Gets better HTML 4.01 compliance
|
| |
|