Per-object parameters
Index: library/lib/nxdoc-core.tcl
===================================================================
diff -u -r187fbd20a453ae9d73e9b48f88b8d6a8c79685c2 -r30410351eef652c4e89ab87475b28cead6add6ac
--- library/lib/nxdoc-core.tcl (.../nxdoc-core.tcl) (revision 187fbd20a453ae9d73e9b48f88b8d6a8c79685c2)
+++ library/lib/nxdoc-core.tcl (.../nxdoc-core.tcl) (revision 30410351eef652c4e89ab87475b28cead6add6ac)
@@ -1326,7 +1326,13 @@
}
:public method get_fqn_command_name {} {
- # ::nx::Object::slot::class
+ #
+ # TODO: For now, we only handle class properties
+ # (*::slot::*), per-object properties are excluded
+ # (*::per-object-slot::*). However, as per-object ones do
+ # not make it into the object parameters spec, this is fine
+ # for now ... review later.
+ #
if {[${:partof} info has type ::nx::doc::@object]} {
return "[${:partof} name]::slot::${:name}"
} else {
@@ -1394,7 +1400,7 @@
:public method render {
{-initscript ""}
-theme
- {name:substdefault "[namespace tail [:info class]]"}
+ {name:substdefault "[::namespace tail [:info class]]"}
} {
:rendered push [current]
# Here, we assume the -nonleaf mode being active for {{{[eval]}}}.
@@ -1440,7 +1446,13 @@
set r [uplevel 1 [list $origin eval [list ::set :$varname] ]]
}
- set where_clause "!\${:@stashed}"
+ #
+ # TODO: For now, we cannot distinguish between entities stashed
+ # for the role as mere dependencies and those which are stashed
+ # explicitly! Probably, we must introduce a decent dep state for
+ # entities ... Again, review later ...
+ # set where_clause "!\${:@stashed}"
+ set where_clause "1"
if {[info exists where]} {
append where_clause "&& $where"
}
@@ -1516,7 +1528,7 @@
:method include {
-theme
- {name:substdefault "[namespace tail [:info class]]"}
+ {name:substdefault "[::namespace tail [:info class]]"}
} {
uplevel 1 [list subst [[:renderer] getTemplate $name \
{*}[expr {[info exists theme]?$theme:""}]]]
@@ -1933,6 +1945,7 @@
:public method at_register_command [list \
name:fqn,slot=[current] \
->cmdtype:in,arg=@object|@class|@command|@method,slot=[current] \
+ ->ownerPath:0..*,fqn,slot=[current] \
->source:fpathtype,arg=absolute,slot=[current] \
{->nsexported:boolean 0} \
{->nsimported:boolean 0} \
@@ -2284,6 +2297,7 @@
}
::nx::doc::__at_register_command $handle \
->cmdtype @method \
+ ->ownerPath $obj \
->source [file normalize [info script]] \
->bundle $bundle
[::nsf::current class] eval [list dict set :handles $handle _]
@@ -2340,6 +2354,7 @@
object
args
} {
+ set object [uplevel [list namespace which $object]]
set handle [uplevel [list ::nsf::_%&method $object {*}$args]]
if {$handle ne ""} {
set bundle [dict create]
@@ -2353,6 +2368,7 @@
dict set bundle returns [::nsf::method::property ${::nx::doc::rootns}::__Tracer $handle returns]
::nx::doc::__at_register_command $handle \
->cmdtype @method \
+ ->ownerPath $object \
->source [file normalize [info script]] \
->bundle $bundle
}
@@ -2361,9 +2377,11 @@
rename ::nsf::method::alias ::nsf::_%&alias
::interp invokehidden "" proc ::nsf::method::alias {
- args
+ object args
} {
- set handle [uplevel [list ::nsf::_%&alias {*}$args]]
+ set object [uplevel [list namespace which $object]]
+ # set object [uplevel [list $object]]; crashes
+ set handle [uplevel [list ::nsf::_%&alias $object {*}$args]]
if {$handle ne ""} {
dict set bundle handle $handle
dict set bundle handleinfo [::nx::doc::handleinfo $handle]
@@ -2380,6 +2398,7 @@
::nx::doc::__at_register_command $handle \
->cmdtype @method \
+ ->ownerPath $object \
->source [file normalize [info script]] \
->bundle $bundle
}
@@ -2388,9 +2407,10 @@
rename ::nsf::method::forward ::nsf::_%&forward
::interp invokehidden "" proc ::nsf::method::forward {
- args
- } {
- set handle [uplevel [list ::nsf::_%&forward {*}$args]]
+ object args
+ } {
+ set object [uplevel [list namespace which $object]]
+ set handle [uplevel [list ::nsf::_%&forward $object {*}$args]]
if {$handle ne ""} {
dict set bundle handle $handle
dict set bundle handleinfo [::nx::doc::handleinfo $handle]
@@ -2401,6 +2421,7 @@
::nx::doc::__at_register_command $handle \
->cmdtype @method \
+ ->ownerPath $object \
->source [file normalize [info script]] \
->bundle $bundle
}
@@ -2409,16 +2430,18 @@
rename ::nsf::method::setter ::nsf::_%&setter
::interp invokehidden "" proc ::nsf::method::setter {
- args
+ object args
} {
- set handle [uplevel [list ::nsf::_%&setter {*}$args]]
+ set object [uplevel [list namespace which $object]]
+ set handle [uplevel [list ::nsf::_%&setter $object {*}$args]]
if {$handle ne ""} {
dict set bundle handle $handle
dict set bundle handleinfo [::nx::doc::handleinfo $handle]
dict set bundle type [::nsf::dispatch ${::nx::doc::rootns}::__Tracer ::nsf::methods::object::info::method type $handle]
::nx::doc::__at_register_command $handle \
->cmdtype @method \
+ ->ownerPath $object \
->source [file normalize [info script]] \
->bundle $bundle
}
@@ -2549,7 +2572,7 @@
:public method getCommandsFound {
-exported:boolean
- -imported:switch
+ -imported:boolean
-types
-not:switch
nspatterns:optional
@@ -2558,14 +2581,25 @@
if {![info exists :registered_commands]} return;
if {[info exists nspatterns]} {
set opts [join $nspatterns |]
- # set nspatterns "^($opts)\[^\:\]*\$"
set nspatterns "^($opts)\$"
}
dict filter ${:registered_commands} script {cmd props} {
dict with props {
- expr {[expr {[info exists nspatterns]?[expr {[regexp -- $nspatterns $cmd _] != $not}]:1}] && \
+ #
+ # TODO: Depending on the include/exclude semantics intended,
+ # we could filter for the entire ownership path ... However,
+ # this would require changing the index file usage. For now,
+ # we cannot include an object and exclude a single method
+ # ... a feature currently needed. An option is to switch to
+ # exclude semantics ... Review later, when the release dust
+ # settles ...
+ #
+ #if {[info exists ownerPath]} {
+ # lappend cmd {*}$ownerPath
+ #}
+ expr {[expr {[info exists nspatterns]?[expr {[expr {[lsearch -regexp $cmd $nspatterns] > -1}] != $not}]:1}] && \
[expr {[info exists exported]?[expr {$nsexported == $exported}]:1}] && \
- [expr {$nsimported == $imported}] && \
+ [expr {[info exists imported]?[expr {$nsimported == $imported}]:1}] && \
[expr {[info exists types]?[expr {$cmdtype in $types}]:1}]}
}
}
@@ -2745,6 +2779,7 @@
set en [$partof_entity @[join [list {*}${scope} method] -] id $subm]
if {$en ni $provided_entities} {
set partof_entity [$partof_entity @[join [list {*}${scope} method] -] $subm]
+ $partof_entity pinfo propagate status mismatch
} else {
set partof_entity $en
}
@@ -2760,6 +2795,7 @@
lappend ppdata status missing
}
$paramid pdata $ppdata
+ $paramid pinfo propagate status mismatch
}
}
} else {
@@ -2788,10 +2824,10 @@
set cmdname [:get_fqn_command_name]
if {[$box eval {info exists :registered_commands}] && \
[$box eval [concat dict exists \${:registered_commands} $cmdname]]} {
+
:pdata [$box eval [concat dict get \${:registered_commands} $cmdname]]
}
}
- [[current class] info parent] at_processed [current]
}
:public method validate {} {
@@ -2861,7 +2897,7 @@
# TODO (Review!): [next] will cause the missing parameter
# created to be validated and will have the appropriate
- # status propagated upstream!b
+ # status propagated upstream!
next
}
}
@@ -2999,14 +3035,19 @@
Mixin create [current]::@param -superclass [current]::Entity {
:public method init args {
- next
- if {${:name} eq "__out__"} {
- if {[${:partof} pinfo exists bundle returns]} {
- :pdata [list bundle [list spec [${:partof} pinfo get bundle returns]]]
+ if {[${:partof} info has type ::nx::doc::@method] || \
+ [${:partof} info has type ::nx::doc::@command]} {
+ if {${:name} eq "__out__"} {
+ if {[${:partof} pinfo exists bundle returns]} {
+ :pdata [list bundle [list spec [${:partof} pinfo get bundle returns]]]
+ }
}
- } elseif {[${:partof} pinfo exists bundle parameter ${:name}]} {
- lassign [${:partof} pinfo get bundle parameter ${:name}] spec default
- :pdata [list bundle [list spec $spec default $default]]
+ if {[${:partof} pinfo exists bundle parameter ${:name}]} {
+ lassign [${:partof} pinfo get bundle parameter ${:name}] spec default
+ :pdata [list bundle [list spec $spec default $default]]
+ }
+ } else {
+ next
}
}
@@ -3048,29 +3089,6 @@
}
}
}
-
- #
- # mixin layer interface
- #
-
- :public class method apply {} {
- unset -nocomplain :processed_entities
- next
- }
-
- :public class method revoke {} {
- #
- # TODO: reset current_project here?
- #
- next
- if {[info exists :processed_entities]} {
- return [dict keys ${:processed_entities}]
- }
- }
-
- :public class method at_processed {entity} {
- dict set :processed_entities $entity _
- }
}
}
@@ -3100,7 +3118,7 @@
# 2pass
$sbox do [list ::nx::doc::__init]
$sbox do $scriptBlock
- set cmds [dict keys [$sbox get_registered_commands -types {@command @object @class}]]
+ set cmds [dict keys [$sbox getCommandsFound -types {@command @object @class @method}]]
append index "# NXDoc index file, version [package require nx::doc]\n"
append index "# This file was generated by the \"::nx::doc::mkIndex\" command\n"
Index: library/lib/nxdoc-html.tcl
===================================================================
diff -u -r187fbd20a453ae9d73e9b48f88b8d6a8c79685c2 -r30410351eef652c4e89ab87475b28cead6add6ac
--- library/lib/nxdoc-html.tcl (.../nxdoc-html.tcl) (revision 187fbd20a453ae9d73e9b48f88b8d6a8c79685c2)
+++ library/lib/nxdoc-html.tcl (.../nxdoc-html.tcl) (revision 30410351eef652c4e89ab87475b28cead6add6ac)
@@ -49,6 +49,7 @@
:public method statustoken {} {
set token ""
set obj [:origin]
+ #set obj [current]
set prj [:current_project]
if {[$prj is_validated]} {
if {[$obj eval {info exists :pdata}]} {
@@ -127,6 +128,32 @@
return $ownedParts
}
+
+ :public method navigatable_parts {mergeParts:optional} {
+ #
+ # TODO: Should I wrap up delegating calls to the originator
+ # entity behind a unified interface (a gatekeeper?)
+ #
+ set ownedParts [[:origin] owned_parts \
+ -where "!\${:@stashed}" \
+ -class ::nx::doc::StructuredEntity]
+
+ if {[info exists mergeParts]} {
+ dict for {feature featureInstances} $ownedParts {
+ if {![dict exists $mergeParts $feature]} {
+ dict set mergeParts $feature $featureInstances
+ } else {
+ set prevInst [lindex [dict get $mergeParts $feature] 1]
+ lappend prevInst {*}$featureInstances
+ dict set mergeParts $feature [lsort -unique $prevInst]
+ }
+ }
+ return $mergeParts
+ }
+
+ return $ownedParts
+ }
+
:method listing {{-inline true} script} {
set listing $script
Index: library/nx/nx.nxd
===================================================================
diff -u -rd05e4a5bcd8a40b387c99bf08c7dfc68394a1587 -r30410351eef652c4e89ab87475b28cead6add6ac
--- library/nx/nx.nxd (.../nx.nxd) (revision d05e4a5bcd8a40b387c99bf08c7dfc68394a1587)
+++ library/nx/nx.nxd (.../nx.nxd) (revision 30410351eef652c4e89ab87475b28cead6add6ac)
@@ -54,28 +54,28 @@
# Attributes of ::nx::Object
########################################################################
-# @class.attribute {Object filter}
+# @class.property {Object filter}
#
# Register the specified method(s) as per-object <<@glspl
# filter>>. Every filter must be an existing method in the
# scope of the object.
-# @class.attribute {Object mixin}
+# @class.property {Object mixin}
#
# Register the specified class(es) as per-object <<@glspl
# mixin_class>>. Every mixin must be an existing class.
#
# @spec object,type=::nx::Class
-# @class.attribute {Object noinit}
+# @class.property {Object noinit}
#
# Omit object initialization. When this flag is provided, the object
# initialization will not call the constructor '''init'''. This is for
# example useful when a serialized object is recreated in a previous
# state, which would be altered by resetting its variables via
# '''init'''.
-# @class.attribute {Object volatile}
+# @class.property {Object volatile}
#
# Create object as volatile. A volatile object is destroyed
# automatically, when the current variable scope is left.
@@ -156,29 +156,29 @@
# Attributes of ::nx::Class
########################################################################
-# @class.attribute {Class filter}
+# @class.property {Class filter}
#
# Register the specified method(s) as per-class <<@glspl
# filter>>. Every filter must be an existing method in the
# scope of the object.
-# @class.attribute {Class mixin}
+# @class.property {Class mixin}
#
# Register the specified class(es) as per-class <<@glspl
# mixin_class>>. Every mixin must be an existing class.
-# @class.attribute {Class object-filter}
+# @class.property {Class object-filter}
#
# Register the specified method(s) as per-object <<@glspl
# filter>> for the class.
-# @class.attribute {Class object-mixin}
+# @class.property {Class object-mixin}
#
# Register the specified class(es) as per-object <<@glspl
# mixin_class>> for the class.
-# @class.attribute {Class superclass}
+# @class.property {Class superclass}
#
# Set the superclass(es) for this class. The argument might contain a
# list of classes to specify multiple inheritance. The order of the
@@ -757,54 +757,54 @@
#
# @superclass ::nx::doc::entities::class::nx::Slot
-# @class.attribute {Slot name:string}
+# @class.property {Slot name:string}
#
# Name of the <<@gls slot>> which can be used to access the <<@gls
# slot>> data from an object
-# @class.attribute {Slot multivalued}
+# @class.property {Slot multivalued}
#
# Boolean value for specifying single or multiple values (lists)
-# @class.attribute {Slot required}
+# @class.property {Slot required}
#
# Denotes whether a value must be provided
-# @class.attribute {Slot default}
+# @class.property {Slot default}
#
# Allows you to define a default value (to be set upon object creation)
-# @class.attribute {Slot type}
+# @class.property {Slot type}
#
# You may specify a type constraint on the value range to managed by
# the <<@gls slot>>
-# @class.attribute {ObjectParameterSlot name}
+# @class.property {ObjectParameterSlot name}
#
# Name of the <<@gls slot>> which can be used to access the <<@gls
# slot>> data of an object. It defaults to unqualified name of an
# instance.
-# @class.attribute {ObjectParameterSlot methodname}
+# @class.property {ObjectParameterSlot methodname}
#
# The name of the accessor methods to be registed on behalf of the
# <<@gls slot>> object with its domains can vary from the slot name.
-# @class.attribute {ObjectParameterSlot domain}
+# @class.property {ObjectParameterSlot domain}
#
# The domain (object or class) of a <<@gls slot>> on which it can be used
-# @class.attribute {ObjectParameterSlot defaultmethods}
+# @class.property {ObjectParameterSlot defaultmethods}
#
# A list of two elements for specifying which methods are called per
# default, when no slot method is explicitly specified in a call.
-# @class.attribute {ObjectParameterSlot manager}
+# @class.property {ObjectParameterSlot manager}
#
# The manager object of the <<@gls slot>> (per default, the slot object takes
# this role, i.e. '''[self]''')
-# @class.attribute {ObjectParameterSlot per-object}
+# @class.property {ObjectParameterSlot per-object}
#
# If set to '''true''', the accessor methods are registered with the
# domain object scope only. It defaults to '''false'''.
Index: library/nx/nxdocIndex
===================================================================
diff -u -rfebad4bd293048e0d5c227f0dba33ac7efd8e93c -r30410351eef652c4e89ab87475b28cead6add6ac
--- library/nx/nxdocIndex (.../nxdocIndex) (revision febad4bd293048e0d5c227f0dba33ac7efd8e93c)
+++ library/nx/nxdocIndex (.../nxdocIndex) (revision 30410351eef652c4e89ab87475b28cead6add6ac)
@@ -5,88 +5,302 @@
# sets an element in the ::nxdoc::include array, where the
# element name is the name of a command and the value indicates whether
# the command is to be documented (1) or not (0).
-#
-# Generated by running in nxsh at the root dir of the source
-# distribution:
-# package req nx::doc
-# ::nx::doc::mkIndex -outdir library/nx/ library/nx/nx.tcl
-
set ::nxdoc::include(::nx::Object) 1
set ::nxdoc::include(::nx::Class) 1
-set ::nxdoc::include(::nx::next) 1
-set ::nxdoc::include(::nx::current) 1
-set ::nxdoc::include(::nx::self) 1
-set ::nxdoc::include(::nx::my) 1
-set ::nxdoc::include(::nx::dispatch) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::volatile) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::configure) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::upvar) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::destroy) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::uplevel) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::eval) 1
set ::nxdoc::include(::nsf::methods::object::unknown) 0
set ::nxdoc::include(::nsf::methods::object::init) 0
set ::nxdoc::include(::nsf::methods::object::defaultmethod) 0
+set ::nxdoc::include(::nsf::classes::nx::Class::create) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::new) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::__resolve_method_path) 0
+set ::nxdoc::include(::nsf::classes::nx::Object::__default_method_call_protection) 0
+set ::nxdoc::include(::nsf::classes::nx::Object::__default_property_call_protection) 0
+set ::nxdoc::include(::nsf::classes::nx::Class::method) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::method) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::unknown) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::public) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::protected) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::private) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::objectparameter) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::forward) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::forward) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::alias) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::alias) 1
set ::nxdoc::include(::nx::isSlotContainer) 0
set ::nxdoc::include(::nx::internal::setSlotContainerProperties) 0
set ::nxdoc::include(::nx::slotObj) 0
set ::nxdoc::include(::nx::EnsembleObject) 1
-set ::nxdoc::include(::nx::Class::slot::__info) 0
+set ::nxdoc::include(::nsf::classes::nx::EnsembleObject::unknown) 1
+set ::nxdoc::include(::nsf::classes::nx::EnsembleObject::defaultmethod) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::delete) 1
+set ::nxdoc::include(::nx::Object::slot::__delete::property) 1
+set ::nxdoc::include(::nx::Object::slot::__delete::variable) 1
+set ::nxdoc::include(::nx::Object::slot::__delete::method) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::delete) 1
+set ::nxdoc::include(::nx::Class::slot::__delete::property) 1
+set ::nxdoc::include(::nx::Class::slot::__delete::variable) 1
+set ::nxdoc::include(::nx::Class::slot::__delete::method) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::class) 1
+set ::nxdoc::include(::nx::Class::slot::__class::delete) 1
+set ::nxdoc::include(::nx::Class::slot::__class::delete::property) 1
+set ::nxdoc::include(::nx::Class::slot::__class::delete::variable) 1
+set ::nxdoc::include(::nx::Class::slot::__class::delete::method) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::require) 1
+set ::nxdoc::include(::nx::Object::slot::__require::namespace) 1
+set ::nxdoc::include(::nx::Object::slot::__require::method) 1
+set ::nxdoc::include(::nx::Object::slot::__require::class) 1
+set ::nxdoc::include(::nx::Object::slot::__require::class::method) 1
+set ::nxdoc::include(::nx::Object::slot::__require::public) 1
+set ::nxdoc::include(::nx::Object::slot::__require::public::method) 1
+set ::nxdoc::include(::nx::Object::slot::__require::public::class) 1
+set ::nxdoc::include(::nx::Object::slot::__require::public::class::method) 1
+set ::nxdoc::include(::nx::Object::slot::__require::protected) 1
+set ::nxdoc::include(::nx::Object::slot::__require::protected::method) 1
+set ::nxdoc::include(::nx::Object::slot::__require::protected::class) 1
+set ::nxdoc::include(::nx::Object::slot::__require::protected::class::method) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::info) 1
+set ::nxdoc::include(::nx::Object::slot::__info::lookup) 1
+set ::nxdoc::include(::nx::Object::slot::__info::lookup::filter) 1
+set ::nxdoc::include(::nx::Object::slot::__info::lookup::method) 1
+set ::nxdoc::include(::nx::Object::slot::__info::lookup::methods) 1
+set ::nxdoc::include(::nx::Object::slot::__info::lookup::slots) 1
+set ::nxdoc::include(::nx::Object::slot::__info::children) 1
+set ::nxdoc::include(::nx::Object::slot::__info::class) 1
+set ::nxdoc::include(::nx::Object::slot::__info::filter) 1
+set ::nxdoc::include(::nx::Object::slot::__info::filter::guard) 1
+set ::nxdoc::include(::nx::Object::slot::__info::filter::methods) 1
+set ::nxdoc::include(::nx::Object::slot::__info::has) 1
+set ::nxdoc::include(::nx::Object::slot::__info::has::mixin) 1
+set ::nxdoc::include(::nx::Object::slot::__info::has::namespace) 1
+set ::nxdoc::include(::nx::Object::slot::__info::has::type) 1
+set ::nxdoc::include(::nx::Object::slot::__info::is) 1
+set ::nxdoc::include(::nx::Object::slot::__info::methods) 1
+set ::nxdoc::include(::nx::Object::slot::__info::mixin) 1
+set ::nxdoc::include(::nx::Object::slot::__info::mixin::guard) 1
+set ::nxdoc::include(::nx::Object::slot::__info::mixin::classes) 1
+set ::nxdoc::include(::nx::Object::slot::__info::parent) 1
+set ::nxdoc::include(::nx::Object::slot::__info::precedence) 1
+set ::nxdoc::include(::nx::Object::slot::__info::slot) 1
+set ::nxdoc::include(::nx::Object::slot::__info::slot::definition) 1
+set ::nxdoc::include(::nx::Object::slot::__info::slot::names) 1
+set ::nxdoc::include(::nx::Object::slot::__info::slot::objects) 1
+set ::nxdoc::include(::nx::Object::slot::__info::properties) 1
+set ::nxdoc::include(::nx::Object::slot::__info::vars) 1
+set ::nxdoc::include(::nx::Class::slot::__info) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::info) 1
+set ::nxdoc::include(::nx::Class::slot::__info::children) 1
+set ::nxdoc::include(::nx::Class::slot::__info::is) 1
+set ::nxdoc::include(::nx::Class::slot::__info::info) 1
+set ::nxdoc::include(::nx::Class::slot::__info::properties) 1
+set ::nxdoc::include(::nx::Class::slot::__info::parent) 1
+set ::nxdoc::include(::nx::Class::slot::__info::vars) 1
+set ::nxdoc::include(::nx::Class::slot::__info::methods) 1
+set ::nxdoc::include(::nx::Class::slot::__info::precedence) 1
+set ::nxdoc::include(::nx::Class::slot::__info::class) 1
+set ::nxdoc::include(::nx::Class::slot::__info::lookup) 1
+set ::nxdoc::include(::nx::Class::slot::__info::filter) 1
+set ::nxdoc::include(::nx::Class::slot::__info::filter::guard) 1
+set ::nxdoc::include(::nx::Class::slot::__info::filter::methods) 1
+set ::nxdoc::include(::nx::Class::slot::__info::has) 1
+set ::nxdoc::include(::nx::Class::slot::__info::heritage) 1
+set ::nxdoc::include(::nx::Class::slot::__info::instances) 1
+set ::nxdoc::include(::nx::Class::slot::__info::mixin) 1
+set ::nxdoc::include(::nx::Class::slot::__info::mixin::guard) 1
+set ::nxdoc::include(::nx::Class::slot::__info::mixin::classes) 1
+set ::nxdoc::include(::nx::Class::slot::__info::mixinof) 1
+set ::nxdoc::include(::nx::Class::slot::__info::parameter) 1
+set ::nxdoc::include(::nx::Class::slot::__info::parameter::definition) 1
+set ::nxdoc::include(::nx::Class::slot::__info::parameter::list) 1
+set ::nxdoc::include(::nx::Class::slot::__info::parameter::names) 1
+set ::nxdoc::include(::nx::Class::slot::__info::parameter::syntax) 1
+set ::nxdoc::include(::nx::Class::slot::__info::slot) 1
+set ::nxdoc::include(::nx::Class::slot::__info::slot::objects) 1
+set ::nxdoc::include(::nx::Class::slot::__info::slot::definition) 1
+set ::nxdoc::include(::nx::Class::slot::__info::slot::names) 1
+set ::nxdoc::include(::nx::Class::slot::__info::subclass) 1
+set ::nxdoc::include(::nx::Class::slot::__info::superclass) 1
set ::nxdoc::include(::nx::internal::infoOptions) 0
+set ::nxdoc::include(::nx::Object::slot::__info::unknown) 1
+set ::nxdoc::include(::nx::Object::slot::__info::info) 1
+set ::nxdoc::include(::nx::Object::slot::__info::method) 1
+set ::nxdoc::include(::nx::Class::slot::__info::method) 1
+set ::nxdoc::include(::nx::Class::slot::__class::alias) 1
+set ::nxdoc::include(::nx::Class::slot::__class::forward) 1
+set ::nxdoc::include(::nx::Class::slot::__class::method) 1
+set ::nxdoc::include(::nx::Class::slot::__class::info) 1
+set ::nxdoc::include(::nx::Class::slot::__class::filter) 1
+set ::nxdoc::include(::nx::Class::slot::__class::mixin) 1
+set ::nxdoc::include(::nx::Class::slot::__class::filterguard) 1
+set ::nxdoc::include(::nx::Class::slot::__class::mixinguard) 1
set ::nxdoc::include(::nx::MetaSlot) 1
+set ::nxdoc::include(::nx::MetaSlot::requireClass) 1
+set ::nxdoc::include(::nx::MetaSlot::parseParameterSpec) 1
+set ::nxdoc::include(::nx::MetaSlot::createFromParameterSpec) 1
set ::nxdoc::include(::nx::Slot) 1
set ::nxdoc::include(::nx::ObjectParameterSlot) 1
set ::nxdoc::include(::nx::MethodParameterSlot) 1
set ::nxdoc::include(::nx::methodParameterSlot) 1
set ::nxdoc::include(::nx::createBootstrapVariableSlots) 0
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::namedParameterSpec) 1
set ::nxdoc::include(::nx::BootStrapVariableSlot) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::name) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::domain) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::manager) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::per-object) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::methodname) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::forwardername) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::defaultmethods) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::accessor) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::config) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::noarg) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::disposition) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::required) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::default) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::initcmd) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::substdefault) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::position) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::positional) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::elementtype) 0
-set ::nxdoc::include(::nx::ObjectParameterSlot::slot::multiplicity) 0
+set ::nxdoc::include(::nsf::classes::nx::BootStrapVariableSlot::getParameterSpec) 1
+set ::nxdoc::include(::nsf::classes::nx::BootStrapVariableSlot::init) 0
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::name) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::name) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::domain) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::domain) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::manager) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::manager) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::per-object) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::per-object) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::methodname) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::methodname) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::forwardername) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::forwardername) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::defaultmethods) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::defaultmethods) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::accessor) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::accessor) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::config) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::config) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::noarg) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::noarg) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::noleadingdash) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::noleadingdash) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::disposition) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::disposition) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::required) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::required) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::default) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::default) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::initcmd) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::initcmd) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::substdefault) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::substdefault) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::position) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::position) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::positional) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::positional) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::elementtype) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::elementtype) 1
+set ::nxdoc::include(::nx::ObjectParameterSlot::slot::multiplicity) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::multiplicity) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::unknown) 0
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::init) 0
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::destroy) 0
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::makeForwarder) 0
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::getParameterOptions) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::getParameterSpec) 1
+set ::nxdoc::include(::nsf::classes::nx::ObjectParameterSlot::getPropertyDefinition) 1
set ::nxdoc::include(::nx::RelationSlot) 1
-set ::nxdoc::include(::nx::RelationSlot::slot::accessor) 0
-set ::nxdoc::include(::nx::RelationSlot::slot::multiplicity) 0
-set ::nxdoc::include(::nx::register_system_slots) 0
-set ::nxdoc::include(::nx::Object::slot::mixin) 0
-set ::nxdoc::include(::nx::Object::slot::filter) 0
-set ::nxdoc::include(::nx::Class::slot::mixin) 0
-set ::nxdoc::include(::nx::Class::slot::filter) 0
-set ::nxdoc::include(::nx::Class::slot::object-mixin) 0
-set ::nxdoc::include(::nx::Class::slot::object-filter) 0
-set ::nxdoc::include(::nx::Object::slot::noinit) 0
-set ::nxdoc::include(::nx::Object::slot::volatile) 0
-set ::nxdoc::include(::nx::Object::slot::class) 0
-set ::nxdoc::include(::nx::Class::slot::superclass) 0
+set ::nxdoc::include(::nx::RelationSlot::slot::accessor) 1
+set ::nxdoc::include(::nsf::classes::nx::RelationSlot::accessor) 1
+set ::nxdoc::include(::nx::RelationSlot::slot::multiplicity) 1
+set ::nxdoc::include(::nsf::classes::nx::RelationSlot::multiplicity) 1
+set ::nxdoc::include(::nsf::classes::nx::RelationSlot::init) 0
+set ::nxdoc::include(::nsf::classes::nx::RelationSlot::assign) 1
+set ::nxdoc::include(::nsf::classes::nx::RelationSlot::delete_value) 1
+set ::nxdoc::include(::nsf::classes::nx::RelationSlot::get) 1
+set ::nxdoc::include(::nsf::classes::nx::RelationSlot::add) 1
+set ::nxdoc::include(::nsf::classes::nx::RelationSlot::delete) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::mixin) 1
+set ::nxdoc::include(::nx::Object::slot::mixin) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::filter) 1
+set ::nxdoc::include(::nx::Object::slot::filter) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::mixin) 1
+set ::nxdoc::include(::nx::Class::slot::mixin) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::filter) 1
+set ::nxdoc::include(::nx::Class::slot::filter) 1
+set ::nxdoc::include(::nx::Class::slot::object-mixin) 1
+set ::nxdoc::include(::nx::Class::slot::object-filter) 1
+set ::nxdoc::include(::nx::Object::slot::noinit) 1
+set ::nxdoc::include(::nx::Object::slot::volatile) 1
+set ::nxdoc::include(::nx::Object::slot::class) 1
+set ::nxdoc::include(::nx::Class::slot::superclass) 1
set ::nxdoc::include(::nx::Object::slot::__initcmd) 0
+set ::nxdoc::include(::nx::Object::slot::filter::guard) 0
+set ::nxdoc::include(::nx::Class::slot::filter::guard) 0
+set ::nxdoc::include(::nx::Object::slot::mixin::guard) 0
+set ::nxdoc::include(::nx::Class::slot::mixin::guard) 0
set ::nxdoc::include(::nx::VariableSlot) 1
-set ::nxdoc::include(::nx::VariableSlot::slot::arg) 0
-set ::nxdoc::include(::nx::VariableSlot::slot::convert) 0
-set ::nxdoc::include(::nx::VariableSlot::slot::incremental) 0
-set ::nxdoc::include(::nx::VariableSlot::slot::multiplicity) 0
-set ::nxdoc::include(::nx::VariableSlot::slot::accessor) 0
-set ::nxdoc::include(::nx::VariableSlot::slot::type) 0
-set ::nxdoc::include(::nx::VariableSlot::slot::valuecmd) 0
-set ::nxdoc::include(::nx::VariableSlot::slot::defaultcmd) 0
-set ::nxdoc::include(::nx::VariableSlot::slot::valuechangedcmd) 0
+set ::nxdoc::include(::nx::VariableSlot::slot::arg) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::arg) 1
+set ::nxdoc::include(::nx::VariableSlot::slot::convert) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::convert) 1
+set ::nxdoc::include(::nx::VariableSlot::slot::incremental) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::incremental) 1
+set ::nxdoc::include(::nx::VariableSlot::slot::multiplicity) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::multiplicity) 1
+set ::nxdoc::include(::nx::VariableSlot::slot::accessor) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::accessor) 1
+set ::nxdoc::include(::nx::VariableSlot::slot::type) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::type) 1
+set ::nxdoc::include(::nx::VariableSlot::slot::valuecmd) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::valuecmd) 1
+set ::nxdoc::include(::nx::VariableSlot::slot::defaultcmd) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::defaultcmd) 1
+set ::nxdoc::include(::nx::VariableSlot::slot::valuechangedcmd) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::valuechangedcmd) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::setCheckedInstVar) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::getParameterOptions) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::isMultivalued) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::needsForwarder) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::makeAccessor) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::reconfigure) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::init) 0
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::makeSetter) 0
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::makeIncrementalOperations) 0
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::handleTraces) 0
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::__default_from_cmd) 0
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::__value_from_cmd) 0
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::__value_changed_cmd) 0
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::get) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::assign) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::add) 1
+set ::nxdoc::include(::nsf::classes::nx::VariableSlot::delete) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::variable) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::property) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::variable) 1
+set ::nxdoc::include(::nsf::classes::nx::Class::property) 1
+set ::nxdoc::include(::nx::Class::slot::__class::property) 1
+set ::nxdoc::include(::nx::Class::slot::__class::variable) 1
set ::nxdoc::include(::nx::internal::addProperties) 0
-set ::nxdoc::include(::nx::Class::slot::properties) 0
+set ::nxdoc::include(::nx::Object::slot::properties) 1
+set ::nxdoc::include(::nsf::classes::nx::Slot::type=any) 1
+set ::nxdoc::include(::nsf::classes::nx::ScopedNew::withclass) 0
set ::nxdoc::include(::nx::ScopedNew::slot::withclass) 0
+set ::nxdoc::include(::nsf::classes::nx::ScopedNew::container) 0
set ::nxdoc::include(::nx::ScopedNew::slot::container) 0
+set ::nxdoc::include(::nsf::classes::nx::ScopedNew::init) 0
set ::nxdoc::include(::nx::ScopedNew) 0
-set ::nxdoc::include(::nx::CopyHandler::slot::targetList) 0
-set ::nxdoc::include(::nx::CopyHandler::slot::dest) 0
-set ::nxdoc::include(::nx::CopyHandler::slot::objLength) 0
+set ::nxdoc::include(::nsf::classes::nx::Object::contains) 1
+set ::nxdoc::include(::nsf::classes::nx::CopyHandler::targetList) 1
+set ::nxdoc::include(::nx::CopyHandler::slot::targetList) 1
+set ::nxdoc::include(::nsf::classes::nx::CopyHandler::dest) 1
+set ::nxdoc::include(::nx::CopyHandler::slot::dest) 1
+set ::nxdoc::include(::nsf::classes::nx::CopyHandler::objLength) 1
+set ::nxdoc::include(::nx::CopyHandler::slot::objLength) 1
+set ::nxdoc::include(::nsf::classes::nx::CopyHandler::makeTargetList) 1
+set ::nxdoc::include(::nsf::classes::nx::CopyHandler::copyNSVarsAndCmds) 1
+set ::nxdoc::include(::nsf::classes::nx::CopyHandler::getDest) 1
+set ::nxdoc::include(::nsf::classes::nx::CopyHandler::copyTargets) 1
+set ::nxdoc::include(::nsf::classes::nx::CopyHandler::copy) 1
set ::nxdoc::include(::nx::CopyHandler) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::copy) 1
+set ::nxdoc::include(::nsf::classes::nx::Object::move) 1
+set ::nxdoc::include(::nx::configure::defaultMethodCallProtection) 0
+set ::nxdoc::include(::nx::configure::defaultPropertyCallProtection) 0
set ::nxdoc::include(::nx::configure) 1
+set ::nxdoc::include(::nx::var::exists) 1
+set ::nxdoc::include(::nx::var::import) 1
+set ::nxdoc::include(::nx::var::set) 1
set ::nxdoc::include(::nx::var) 1
+set ::nxdoc::include(::nx::current) 1
+set ::nxdoc::include(::nx::next) 1