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.



Get RexxLiterate at SourceForge.net. Fast, secure and Free Open Source software downloads
Generated on 31 Aug 2010 05:20:36 for RexxLiterate by rexxliterate  0.0.1