Index: TODO
===================================================================
diff -u -r8aaec98df564488dc8540cd078d6a32dd55a08f7 -r79287f596cc2c14ecd2b788d217699e2baeb050d
--- TODO (.../TODO) (revision 8aaec98df564488dc8540cd078d6a32dd55a08f7)
+++ TODO (.../TODO) (revision 79287f596cc2c14ecd2b788d217699e2baeb050d)
@@ -635,6 +635,8 @@
- doCleanup is just called by recreate; merge it into
XOTclCRecreateMethod.
Is method cleanup necessary? is recreate not sufficient?
+ Delete "cleanup" from internally called methods in next,
+ keep it for compatibility in XOTcl
- make XOTcl_FrameDecls transparent (use variable declarations
in place instead of the macro)
@@ -869,6 +871,9 @@
- added checks for documented, but unavailable methods in documentation
- added comparison of documented parameters vs. actual parameters in documentation
+- added @properties and has_property to the documentation classes.
+ Current primary purpose: define, which methods are internally-called
+- added interanlly-called to the method object template
TODO:
- nameing
@@ -930,6 +935,36 @@
- reduce indenting for code examples in documentation (high indentation makes readability worse).
- make quality checks (missing documentation, ...) optional (maybe?)
- handle object methods as well in quality checks
+- why does one have to specify @superclass rather than determining the
+ superclass via introspection?
+- danger, tcl-commands in comments (see :method get_unqualified_name)
+- kann man "[:? {[$attr eval {info exists :default}]}" durch "[:?var :@param ..." ausdrücken?
+ oder vielleicht besser die variablen mit leerstring initialisieren + infrastrukt anpassen?
+
+- die Dokumentation der objekt- und Klassenmethoden muss aus gentclapi weg
+ und in predefined.tcl und xotcl2.tcl hineinwandern. Es werden nicht alle
+ möglichen methoden in next und/oder xotcl2 registiert, ein paar namen sind
+ anders, etc.
+
+- die folgenden calls sind streng genommen auch internally-called (d.h. von c aus aufgerufen),
+ aber aus unterscheidl. gründen noch nicht als solche gekennzeichnet:
+
+ * wird meist vom benutzer aufgerufen, allerdings auch intern (bspw "reate" von "new")
+ XO_c_create_idx,
+ XO_o_destroy_idx,
+ XO_o_move_idx,
+
+ * not documented yet
+ XO_c_requireobject_idx,
+ XO_o_defaultmethod_idx,
+ XO_o_init_idx,
+ XO_o_objectparameter_idx,
+ XO_o_unknown_idx
+
+ * only XOTCL2:
+ XO_o_cleanup_idx,
+ XO_o_residualargs_idx,
+
- info method pararmetersyntax not defined for classical tcl procs (needed?)
- migrate further test from .xotcl to .tcl (based on next instead of xotcl)
Index: generic/gentclAPI.decls
===================================================================
diff -u -r8aaec98df564488dc8540cd078d6a32dd55a08f7 -r79287f596cc2c14ecd2b788d217699e2baeb050d
--- generic/gentclAPI.decls (.../gentclAPI.decls) (revision 8aaec98df564488dc8540cd078d6a32dd55a08f7)
+++ generic/gentclAPI.decls (.../gentclAPI.decls) (revision 79287f596cc2c14ecd2b788d217699e2baeb050d)
@@ -319,6 +319,9 @@
# @method ::nx::Object#cleanup
#
+# TODO: this is a method not needed in Next, for backward compatibility
+# available in XOTcl 2.0
+#
# Resets an object or class to its initial state, as after object
# allocation (see {{@method ::nx::Class class alloc}}). This method
# participates in recreating objects, i.e, it is called during the
@@ -327,6 +330,8 @@
# ::nx::core::configure}}, object variables are deleted, per-object
# namespaces are cleared, and the object's relationsships (e.g., mixin
# relations) are reset.
+#
+# @properties interally-called
objectMethod cleanup XOTclOCleanupMethod {
}
@@ -345,6 +350,7 @@
# The method {{{configure}}} can be called at arbitrary times to
# "re-set" an object.
#
+# @properties interally-called
# @param args The variable argument vector stores the object parameters and their values
objectMethod configure XOTclOConfigureMethod {
{-argName "args" -type allargs}
@@ -484,6 +490,7 @@
# @method ::nx::Object#residualargs
#
+# @properties interally-called
# @param args
objectMethod residualargs XOTclOResidualargsMethod {
{-argName "args" -type allargs}
@@ -568,6 +575,7 @@
# bypassing the overall {{{create}}} mechanism by just allocating
# uninitialized objects using {{{alloc}}}.
#
+# @properties interally-called
# @param name The object identifier assigned to the object storage to be allocated.
# @return The name of the allocated, uninitialized object
classMethod alloc XOTclCAllocMethod {
@@ -641,6 +649,7 @@
# {{{::nx::Class}}}, you may consider refining it in a subclass or
# mixin class for customizing the destruction process.
#
+# @properties interally-called
# @param object The name of the object to be scheduled for deletion.
classMethod dealloc XOTclCDeallocMethod {
{-argName "object" -required 1 -type tclobj}
@@ -707,6 +716,7 @@
# Class create Bar; # calls Bar->destroy() + Class->create(::Bar, ...)
# }}}
#
+# @properties interally-called
# @param name The name (identifier) of the object under recreation
# @param args Arbitrary vector of arguments
# @return The name of the recreated object
Index: generic/predefined.tcl
===================================================================
diff -u -r8aaec98df564488dc8540cd078d6a32dd55a08f7 -r79287f596cc2c14ecd2b788d217699e2baeb050d
--- generic/predefined.tcl (.../predefined.tcl) (revision 8aaec98df564488dc8540cd078d6a32dd55a08f7)
+++ generic/predefined.tcl (.../predefined.tcl) (revision 79287f596cc2c14ecd2b788d217699e2baeb050d)
@@ -56,7 +56,7 @@
}
# set a few aliases as protected
- foreach cmd [list __next cleanup noinit residualargs uplevel upvar] {
+ foreach cmd [list __next cleanup noinit residualargs uplevel upvar] {
::nx::core::methodproperty Object $cmd protected 1
}
Index: library/lib/doc-assets/object.html.tmpl
===================================================================
diff -u -r8aaec98df564488dc8540cd078d6a32dd55a08f7 -r79287f596cc2c14ecd2b788d217699e2baeb050d
--- library/lib/doc-assets/object.html.tmpl (.../object.html.tmpl) (revision 8aaec98df564488dc8540cd078d6a32dd55a08f7)
+++ library/lib/doc-assets/object.html.tmpl (.../object.html.tmpl) (revision 79287f596cc2c14ecd2b788d217699e2baeb050d)
@@ -103,6 +103,10 @@
[$method name]
[$method parameters]
+ [:? {[$method has_property interally-called]} {
+
Internally called method, can be redefined.
+ }]
+