Todo
More cross referencing. ::REQUIRES targets in particular, but this needs
disambiguation by path (done) A list of required but unavailable source
files would be good. Instantiations of known classes should be xref-ed in
the source (done, with all class methods).
Some of the tabs destinations might be better: should a ROUTINE display its
File Reference page within Files, or be on the Routines tab?
Labels contained in a method should be suppressed from the File Reference
page (some label suppression done).
Are two sizes of icon file really necessary?
Latest
Consider release 4 changes. Adding an abstract state to the icons
doubles the current number from 16 to 32. Javascript to run an
overlay?
::REquires search set up at document level and full tree reported for
each file
callableexpand needs to be called from PROCs and ROUTs
Done
labels could be converted to procedures at the document level when
a call to them is detected. Or at the rexxprogram level, since such
references are necessarily local? rexxprogram doesn't parse clauses
at the moment, lacking global knowledge of the name space.
Attributes and methods need an exposed-by cross refererence.
badly documented parameter reporting needs to be taken out of
callableexpand and completed before HTML output starts
requires space to be determined at the document level with comprehensive
search. Emitter to report complete requires space for each file.
class cross referencing in parameters
done
and block comments
needs to be taken out of htmlrexxclass. rdfeatures should
have a block comment and comment parameters parsed and prepared
before html output starts
each line in the comment/parms will need to be a list of
chunks, some of which have references attached
before html output starts
cf tokenized approach to references. Needs an rdcomment
Source cross referencing
done - makes emitter much leaner
and tagging *could* be pushed back into the parser, but really only
the emitter knows what to tag, given whatever output format is use,
so leave this as a job for the emitter. Emitter can get away with one
pass of the token list to colour key words and symbols
Decompose documents.clsinto adocument + textdocument + rexx document
+ files/folders + rexxdocument classifications (rd*). That leads to
two large files (rexxdocument and classifications) and three tiny
files.
Document needs further abstraction: srcurl docurl docurlpre need to
be built by the emitter. A rexx program needs a source URL, and
document URL for HTML output.
HTML emitter to attach methods to documents to access the required
identifiers. The document elements (rdclause) have an abstract
'isReferenced' attribute set in the xref, the emitter uses this to
decide whether or not to assign url(s) to the document elements
Done in rexxliterate.cls
These should be set in the document by an early pass of emitter, and
rdfeature needs a getanchor() method that refers back to its document
to whomp up that anchorname.
Done in rexxliterate.cls
Split into 3 phases: ::init builds the file list, ::parse does the
parsing and ::emit does the emission. The user can traverse the file
tree setting processing (such as dynamic indexing, from and to)
before the parse gets done, permitting fine grained control.
cf. fsobject.cls::blob docs, which aren't much use.
Method public interface on rexxdocument to support this? It's already
huge. A configuration object would be better.
file~document~getconfiguration~setdynto(.true)
Done in rexxliterate.cls
rdclass assembly of inherited features needs to be taken
out of htmlrexxclass and completed before html output
starts, as lists of rdmethod
htmlrexxclass htmlrexxsource htmlrexxprogram htmltext to
be merged to htmloutput in one file (class methods) or
become part of their respective documents
references to class methods from class methods are not
detected dynamically. Dynamic detection needs a test set of
classes to explore what happens,
A method reference followed by a parameter list cannot be
an attribute reference (so attributes can be excluded from
dynamic cross reference). There must be more rules like
this, need to bring everything to bear so we're less likely
to hit false positives. Ordering the search correctly in ::REQUIRES
space will make the list more useful.
The confusing case is multiple attributes or methods with the same
name, sent messages but not in this class. How to exclude names from
the global list of methods and attributes?
In reality, it doesn't seem to be so bad a problem, but it's annoying
for some names. More class and object classification when searching
would be good. "This is a CLASS message to receiver self", "This is a
an OBJECT message to receiver self", etc.
|
Generated on 31 Aug 2010 05:20:36 for RexxLiterate by
0.0.1
|