Index: library/lib/doc-assets/api.css =================================================================== diff -u -r239888ee1ee6ed6d7b9afa5e170f49c5224a186d -re4a5c3979effc10d1e807063956d51c72994db6e --- library/lib/doc-assets/api.css (.../api.css) (revision 239888ee1ee6ed6d7b9afa5e170f49c5224a186d) +++ library/lib/doc-assets/api.css (.../api.css) (revision e4a5c3979effc10d1e807063956d51c72994db6e) @@ -285,4 +285,8 @@ span.mismatch { display:inline; background-position: -24px 0; +} + +code span.var { + font-style: italic; } \ No newline at end of file Index: library/lib/doc-assets/attributemethod.html.tmpl =================================================================== diff -u -r9e98d057e87eb5d9bf8cd3a25dc679ed02cd6399 -re4a5c3979effc10d1e807063956d51c72994db6e --- library/lib/doc-assets/attributemethod.html.tmpl (.../attributemethod.html.tmpl) (revision 9e98d057e87eb5d9bf8cd3a25dc679ed02cd6399) +++ library/lib/doc-assets/attributemethod.html.tmpl (.../attributemethod.html.tmpl) (revision e4a5c3979effc10d1e807063956d51c72994db6e) @@ -3,64 +3,46 @@ [$owning_attribute print_name -status]
[:? {[info exists :@return] && [${:@return} spec] ne ""} {<[${:@return} spec]>} ] - [:? {[$owning_attribute pinfo get -default 0 bundle incremental]} { - /obj/ ${:name} ?value?
- /obj/ ${:name} add|assign|delete value
- /obj/ ${:name} get
- } - { - /obj/ ${:name} ?value? - }] + obj ${:name} ?value? +
[:? {[$owning_attribute pinfo exists validation]} { [$owning_attribute pinfo get validation] }] [$owning_attribute as_text] +
- [:? {[info exists :@parameter]} { -
-
Parameters:
- [:for param ${:@parameter} { -
- [$param print_name] - [:? {[$param eval {info exists :spec}] && [$param spec] ne ""} {<[$param spec]>}] - - [$param statusmark] - [$param as_text] - [$param pinfo get -default "" validation] - [:? {[$param eval {info exists :default}]} { -
- Default Value: [$param default] -
- }] -
- }] -
- }] - - [:? {[info exists :@return]} { -
-
Returns: - - [:? {[${:@return} eval {info exists :spec}] && [${:@return} spec] ne ""} {[${:@return} spec]}] -
-
[${:@return} as_text]
-
- }] - - [:? ${:@deprecated} { + [:? {[$owning_attribute eval {set :@deprecated}]} {
Deprecated
}] -
+
+
Parameters:
+
+ value <optional> + + If provided, list of values to + be set for the attribute ${:name} +
+
+ + [:?objvar $owning_attribute @return { +
+
Returns: + [:? {[${:@return} eval {info exists :spec}] && [${:@return} spec] ne ""} {[${:@return} spec]}] +
+
[${:@return} as_text]
+
+ }] + +
Type:
-
[:pinfo get bundle type]
attribute accessor/mutator
[:? {${:@syshook}} {
-internally called, redefinable hook
- }] +
[:pinfo get bundle type]
attribute accessor/mutator
@@ -69,10 +51,67 @@
redefine-protected
}]
- - + [:? {[$owning_attribute pinfo get -default 0 bundle incremental]} { +
+ +
+

${:name} add +

+
+ [:? {[info exists :@return] && [${:@return} spec] ne ""} {<[${:@return} spec]>} ] + obj + ${:name} add + value + +
+
+
Parameters:
+
+ value <required> + + ... +
+
+
+
Returns:
+
The element + added to the list
+
+
+
+
+
+ +
+

${:name} delete +

+
+ [:? {[info exists :@return] && [${:@return} spec] ne ""} {<[${:@return} spec]>} ] + obj + ${:name} delete + value + +
+
+
Parameters:
+
+ value <required> + + ... +
+
+
+
Returns:
+
The element + deleted from the the list
+
+
+
+
+ }] +
- +

- + Index: library/lib/doc-assets/class.html.tmpl =================================================================== diff -u -rfa18300f1eee8e1998930245b22982c605c071da -re4a5c3979effc10d1e807063956d51c72994db6e --- library/lib/doc-assets/class.html.tmpl (.../class.html.tmpl) (revision fa18300f1eee8e1998930245b22982c605c071da) +++ library/lib/doc-assets/class.html.tmpl (.../class.html.tmpl) (revision e4a5c3979effc10d1e807063956d51c72994db6e) @@ -81,11 +81,11 @@ }] - [:!let iattrs [:inherited @class-attribute]] +[:!let iattrs [:inherited @class-attribute]] [:? {$iattrs ne ""} {
[:for superclass [dict keys $iattrs] { - [:!let attrs [dict get $iattrs $superclass]] + [:!let attrs [dict values [dict get $iattrs $superclass]]]

Per-class parameters inherited @@ -184,7 +184,7 @@ [:? {$imethods ne ""} {
[:for superclass [dict keys $imethods] { - [:!let ms [dict get $imethods $superclass]] + [:!let ms [dict values [dict get $imethods $superclass]]]

Per-class methods inherited Index: library/lib/doc-assets/method.html.tmpl =================================================================== diff -u -rfa18300f1eee8e1998930245b22982c605c071da -re4a5c3979effc10d1e807063956d51c72994db6e --- library/lib/doc-assets/method.html.tmpl (.../method.html.tmpl) (revision fa18300f1eee8e1998930245b22982c605c071da) +++ library/lib/doc-assets/method.html.tmpl (.../method.html.tmpl) (revision e4a5c3979effc10d1e807063956d51c72994db6e) @@ -3,9 +3,9 @@ [:print_name -status]

[:? {[info exists :@return] && [${:@return} spec] ne ""} {<[${:@return} spec]>} ] - /obj/ + obj ${:name} - [:pinfo get -default "" bundle parametersyntax] + [:pinfo get -default "" bundle parametersyntax]
[:as_text] Index: library/lib/doc-assets/submethod.html.tmpl =================================================================== diff -u -r9e98d057e87eb5d9bf8cd3a25dc679ed02cd6399 -re4a5c3979effc10d1e807063956d51c72994db6e --- library/lib/doc-assets/submethod.html.tmpl (.../submethod.html.tmpl) (revision 9e98d057e87eb5d9bf8cd3a25dc679ed02cd6399) +++ library/lib/doc-assets/submethod.html.tmpl (.../submethod.html.tmpl) (revision e4a5c3979effc10d1e807063956d51c72994db6e) @@ -4,9 +4,9 @@

[:? {[info exists :@return] && [${:@return} spec] ne ""} {<[${:@return} spec]>} ] - /obj/ + obj $name - [:pinfo get -default "" bundle parametersyntax] + [:pinfo get -default "" bundle parametersyntax]
[:as_text] Index: library/lib/doc-tools.tcl =================================================================== diff -u -rfa18300f1eee8e1998930245b22982c605c071da -re4a5c3979effc10d1e807063956d51c72994db6e --- library/lib/doc-tools.tcl (.../doc-tools.tcl) (revision fa18300f1eee8e1998930245b22982c605c071da) +++ library/lib/doc-tools.tcl (.../doc-tools.tcl) (revision e4a5c3979effc10d1e807063956d51c72994db6e) @@ -1020,25 +1020,8 @@ next } } - - :method inherited {member} { - set prj [:current_project] - set box [$prj sandbox] - if {[$box eval [list ::nsf::is class ${:name}]]} { - set inherited [dict create] - foreach c [lreverse [${:name} info heritage]] { - set entity [[::nsf::current class] id $c] - if {![::nsf::is object $entity]} continue - if {[$entity eval [list info exists :${member}]]} { - dict set inherited $entity [$entity $member] - } - } - return $inherited - } - } } - - + Class create PartEntity -superclass Entity { :attribute partof:object,type=::nx::doc::StructuredEntity,required :attribute part_attribute:object,type=::nx::doc::PartAttribute,required @@ -1295,7 +1278,6 @@ :pinfo set validation "Specification mismatch. Expected: '${:spec}' Got: '$pspec'." } } else { - puts stderr ">>> PARAM MISMATCH ${:name} [current]" ${:partof} pinfo propagate status mismatch } } @@ -1406,7 +1388,7 @@ :public method !get {-sortedby -with varname} { if {![[:origin] eval [list info exists :$varname]]} return; if {[info exists sortedby]} { - set r [uplevel 1 [list sorted [[:origin] eval [list ::set :$varname]] $sortedby]] + set r [uplevel 1 [list ::nx::doc::sorted [[:origin] eval [list ::set :$varname]] $sortedby]] } else { set r [uplevel 1 [list [:origin] eval [list ::set :$varname] ]] } @@ -1876,6 +1858,35 @@ } }; # NxDocRenderer::@glossary + MixinLayer::Mixin create [current]::@class -superclass [current]::Entity { + :method inherited {member} { + set inherited [dict create] + set prj [:current_project] + set box [$prj sandbox] + set exp "expr {\[::nsf::is class ${:name}\]?\[lreverse \[${:name} info heritage\]\]:\"\"}" + set ipath [$box do $exp] + foreach c [concat $ipath ${:name}] { + set entity [[:info class] id $c] + if {![::nsf::is object $entity]} continue + set origin [$entity origin] + if {[$origin eval [list info exists :${member}]]} { + dict set inherited $entity [$entity !get \ + -sortedby name \ + -with name $member] + if {[info exists previous_entity]} { + dict set inherited $previous_entity \ + [dict remove [dict get $inherited $previous_entity] \ + {*}[dict keys [dict get $inherited $entity]]] + } + } + set previous_entity $entity + } + dict unset inherited [current] + return $inherited + } + } + + MixinLayer::Mixin create [current]::@method -superclass [current]::Entity { :public method as_dict {partof feature} { set hash [next] @@ -2278,7 +2289,7 @@ if {[info commands "::nx::Class"] ne ""} { if {[::nsf::dispatch $obj ::nsf::methods::object::info::hastype ::nx::Slot]} { dict set bundle objtype slot - dict set bundle incremental [expr {[::nsf::dispatch $obj ::nsf::methods::object::info::hastype ::nx::ObjectParameterSlot] || ([::nsf::dispatch $obj ::nsf::methods::object::info::hastype ::nx::Attribute] && [::nsf::existsvar $obj incremental] && [::nsf::setvar $obj incremental])}] + dict set bundle incremental [expr {[::nsf::dispatch $obj ::nsf::methods::object::info::hastype ::nx::RelationSlot] || ([::nsf::dispatch $obj ::nsf::methods::object::info::hastype ::nx::Attribute] && [::nsf::existsvar $obj incremental] && [::nsf::setvar $obj incremental])}] } if {[::nsf::dispatch $obj ::nsf::methods::object::info::hastype ::nx::EnsembleObject]} { dict set bundle objtype ensemble Index: library/nx/nx.nxd =================================================================== diff -u -rfa18300f1eee8e1998930245b22982c605c071da -re4a5c3979effc10d1e807063956d51c72994db6e --- library/nx/nx.nxd (.../nx.nxd) (revision fa18300f1eee8e1998930245b22982c605c071da) +++ library/nx/nx.nxd (.../nx.nxd) (revision e4a5c3979effc10d1e807063956d51c72994db6e) @@ -700,7 +700,7 @@ # @return If called as a getter (without arguments), '''class''' # returns the current <<@gls class>> of the object -# class.attribute {Object mixin} +# @class.attribute {Object mixin} # # As a setter, '''mixin''' specifies a list of <<@glspl mixincls>> to # set. Every mixin must be an existing class. In getter mode, you can