With regard to what doc tools changes this would require, they would
be relatively minor.
Currently we are special-casing "DeclareEvent(ref, 'eventname')" in
js2doc to output the proper documentation, so we'd switch to special-
casing "ref.eventname = LzEvent.nullEvent" to generate the same markup.
On Feb 8, 2007, at 12:53 PM, Phillip George Apley wrote:
As an aside, I now have a smooth development environment that
allows me to perform testing,
compile the system, and make patches from either the PC or from the
Mac. I am using identical
.bashrc, setup-lps.sh, and svn-bash.sh files on PC and Mac !
I was reviewing my changes to DeclareEvent documentation and Tucker
proposed that I make
the following changes for efficiency and readability to the code
since I'm going to touch every
instance of DeclareEvent anyway.
Definitions for LzDeclaredEvent and DeclareEvent would be eliminated.
I would define LzEvent.nullEvent;
static var nullEvent = {
sendEvent: function () {},
toString: function () { return "LzEvent.nullEvent"; }
};
There are three calling syntaxes for DeclareEvent right now:
1) DeclareEvent(prototype, eventName) - used within a class
definition.
2) DeclareEvent(ClassName.prototype, eventName) - may be used
inside or outside of a class definition.
3) DeclareEvent(ClassName, eventName) - used with a singleton class.
For each of these syntaxes I would replace the code as follows:
1) var eventName = LzEvent.nullEvent;
2) Instances of syntax 2 would be substituted with syntax 1 and
placed inside the correct class definition.
3) ClassName.eventName = LzEvent.nullEvent;
One particular example from LzModeManager.lzs:
DeclareEvent(LzModeManager, 'onmode' );
LzModeManager.onmode = null; // This appears to be a mistake
because DeclareEvent is
// setting LzModeManager.onmode = LzDeclaredEvent and it
immediately being set to null after.
would become
LzModeManager.onmode = LzEvent.nullEvent;
Three questions immediately come to mind:
0) Are we missing any particul reason why LzDeclaredEvent is
superior to LzEvent.nullEvent?
1) Will this break anything?
2) How will we have to modify the documentation system to
accomodate the change.