#95 Fandoc

brian Sun 2 Jul 2006

I checked support for reflection APIs on Type and Slot to get fandoc and the line number where they are defined in the source file. The line number required a format change to fcode (I just inline it right after flags for both type and slot definitions). The fandoc is available only if you compile with a new -doc flag. The fandoc is appended into the pod's zip file under "doc/<typename>.fandoc" using a very simple text file format (you shouldn't access it directly, but rather via the Type.doc() or Slot.doc() methods). I'm going to make one more change to the compiler to support a -src flag which will also include the source code in the pod file as a resource file. Then we should have everything packaged up into the pod to provide a kick ass documentation browser.

andy Mon 3 Jul 2006

I've checked in very basic support for the Fandoc web interface - and have hardcoded httpd to run FandocWeblet for the time being. Its functional, but some of the things left to do:

  • I/O peformance - am seeing poor performance here
  • Cleanup L&F and url structure
  • Add search field
  • Add view source -> do we want this?
  • "Markdown" formatting

brian Mon 3 Jul 2006

Andy,

You can use Type.isSynthetic and Slot.isSynthetic now for filtering.

I'm not going to add Sys.pods() right now, but rather wait until I do the registry feature. Until then this code is almost as good to use:

lib := Sys.homeDir.join("lib/fan")
files := lib.list.findAll |File f->Bool| { return f.ext == "pod" }
podNames := (Str[])files.collect(Str[,]) |File f->Obj| { return f.basename }

andy Wed 12 Jul 2006

I've checked in basic search support and source code viewing. The search only handles a direct type name match at the moment. The source code viewer lists line numbers and has a very crude and inefficient syntax highlighter - I need to go back and rewrite that piece.

andy Thu 13 Jul 2006

Fixed, finished and checked in support for syntax highlighting.

brian Tue 18 Jul 2006

It's starting to shape up. Here are my comments in no particular order:

  • I don't really like the style sheet, things seem too plain and run together
  • There is no styling yet for all/pod overview
  • Source with syntax highlighting is sweet
  • Not sure I like line numbers (or at least with dot) in source
  • Source breadcrumb says X Fandoc? Breadcrumb trails seem a bit inconsistent
  • Type detail gets lost in the noise
  • I don't like how static/new look with indentation and alignment in overview
  • I want to jump to source line of methods/fields (and also classes if more than one in a single source file)
  • Method types aren't showing up with pipe wrappers
  • For now let's make indentation and @xyz preformated until we have a real ftext processor
  • I would omit sections (like Field, Field Details) if there are no fields
  • I would like a way to toggle inherited fields (and somewhere see where they are originally defined)

andy Wed 19 Jul 2006

Checked in a few changes:

  • I still haven't finalized a stylesheet yet, but I tweaked the current one
  • More intuitive breadcrumb
  • Cleaned up type layout (moved type detail to top - and moved method/field summary back to rdoc style)
  • Checked in a very crude ftext formatter
  • I now omit summary/detail if no methods or fields respectivly

I started down some ideas last night - but today I backtracked - simplicity always seem to win. However, I do think there is at least two places for some AJAX:

  • Toggle button to toggle inherited fields
  • Would be really cool to have a auto-complete search field

brian Wed 19 Jul 2006

I don't know - I think some AJAX to do Netflix style rollover bubble help might work good.

brian Wed 19 Jul 2006

Also I think I'd like the ability to see my entire superclass chain as well as subclasses

Login or Signup to reply.