Index: library/lib/doc-assets/glossary.html.tmpl =================================================================== diff -u -rb067e586fadae95916358904fd8392d073c7c87c -rcfd13f351499bb4b1b1debd55f209419edf1af14 --- library/lib/doc-assets/glossary.html.tmpl (.../glossary.html.tmpl) (revision b067e586fadae95916358904fd8392d073c7c87c) +++ library/lib/doc-assets/glossary.html.tmpl (.../glossary.html.tmpl) (revision cfd13f351499bb4b1b1debd55f209419edf1af14) @@ -1,3 +1,4 @@ +[:?var :@glossary { [:!let gls [:@glossary]] [:? {$gls ne ""} { [:!let entries [sorted $gls name]] @@ -43,4 +44,4 @@ }] }] - + }] Index: library/lib/doc-assets/method.html.tmpl =================================================================== diff -u -re4a5c3979effc10d1e807063956d51c72994db6e -rcfd13f351499bb4b1b1debd55f209419edf1af14 --- library/lib/doc-assets/method.html.tmpl (.../method.html.tmpl) (revision e4a5c3979effc10d1e807063956d51c72994db6e) +++ library/lib/doc-assets/method.html.tmpl (.../method.html.tmpl) (revision cfd13f351499bb4b1b1debd55f209419edf1af14) @@ -59,20 +59,22 @@ }] + [:? {[:!get @syshook] || [:pinfo exists bundle type]} {
$script
":[nx::pp render [string trimright $script " \r\n"]]}]
}
- :method link {tag names} {
- set tagpath [split [string trimleft $tag @] .]
- lassign [::nx::doc::Tag normalise $tagpath $names] err res
- if {$err} {
- # puts stderr RES=$res
- return "?";
- }
- lassign [::nx::doc::Tag find -all -strict {*}$res] err path
- if {$err || $path eq ""} {
- # puts stderr "FAILED res $path (err-$err-id-[expr {$path eq ""}])"
- return "?";
- }
-
- set path [dict create {*}$path]
- set entities [dict keys $path]
- set id [lindex $entities end]
- return [$id render_link $tag [:rendered_entity] $path]
+ :method link=tclcmd {cmd} {
+ #
+ # TODO: allow the parametrization of the reference URL at the
+ # project level ...
+ #
+ return "$cmd
"
}
+ :method link {tag value} {
+ set unresolvable "?"
+ if {[string first @ $tag] != 0} {
+ set m [current method]=$tag
+ if {[:info lookup methods \
+ -source application \
+ -callprotection all $m] eq ""} {
+ return $unresolvable
+ }
+ return [:$m $value]
+ } else {
+ set names $value
+ set tagpath [split [string trimleft $tag @] .]
+ lassign [::nx::doc::Tag normalise $tagpath $names] err res
+ if {$err} {
+ # puts stderr RES=$res
+ return $unresolvable;
+ }
+ lassign [::nx::doc::Tag find -all -strict {*}$res] err path
+ if {$err || $path eq ""} {
+ # puts stderr "FAILED res $path (err-$err-id-[expr {$path eq ""}])"
+ return $unresolvable;
+ }
+
+ set path [dict create {*}$path]
+ set entities [dict keys $path]
+ set id [lindex $entities end]
+ return [$id render_link $tag [:rendered_entity] $path]
+ }
+ }
+
:public method make_link {source} {
- set path [dict create {*}[:get_upward_path -attribute {set :name}]]
- set tag [[:info class] tag]
+ set path [dict create {*}[:get_upward_path -attribute {set :name}]]
+ set tag [[:info class] tag]
return [:render_link $tag $source $path]
}
@@ -1945,6 +1970,7 @@
:method inherited {member} {
set inherited [dict create]
set prj [:current_project]
+ if {![$prj eval {info exists :sandbox}]} return;
set box [$prj sandbox]
set exp "expr {\[::nsf::is class ${:name}\]?\[lreverse \[${:name} info heritage\]\]:\"\"}"
set ipath [$box do $exp]
@@ -2959,6 +2985,13 @@
}
if {$validate} {
+ #
+ # TODO: is_validated to later to become a derived/computed
+ # property ... for now, we just need to escape from setting
+ # validation-related info in non-validated projects!
+ #
+ $project is_validated $validate; # is_validated = 1
+
set present_entities [::nx::doc::filtered $provided_entities {[[:origin] eval {info exists :pdata}]}]
# TODO: the nspatterns should be consumed from the source
# specification and should not be hardcoded here ... review
Index: library/nx/nx.nxd
===================================================================
diff -u -rcc815189194d14214c6846ca33f39d74b4d8edc5 -rcfd13f351499bb4b1b1debd55f209419edf1af14
--- library/nx/nx.nxd (.../nx.nxd) (revision cc815189194d14214c6846ca33f39d74b4d8edc5)
+++ library/nx/nx.nxd (.../nx.nxd) (revision cfd13f351499bb4b1b1debd55f209419edf1af14)
@@ -303,7 +303,7 @@
# '''
# Note, however, that '''destroy''' is protected against
# application-level redefinition. You must refine it in a subclass
-# or a <<@gls mixincls>>.
+# or a <<@gls mixin_class>>.
#
# @syshook
@@ -364,7 +364,6 @@
# set obj [Object new]
# set cls [Class new]
# '''
-#
# This will provide object identifiers of the form
# e.g. '''::nsf::__#0'''. The uniqueness of auto-generated identifiers
# is guaranteed for the scope of the current '''interp'''.
@@ -569,7 +568,7 @@
# @class.method {Object "info has mixin"}
#
# Verifies in a boolean test whether the object has the given <<@gls class>>
-# registered as a <<@gls mixincls>>.
+# registered as a <<@gls mixin_class>>.
# @class.method {Object "info has namespace"}
#
@@ -598,7 +597,7 @@
# @class.method {Object "info mixin classes"}
#
-# The list of per-object <<@glspl mixincls>> currently registered for the
+# The list of per-object <<@glspl mixin_class>> currently registered for the
# object is returned.
# @class.method {Object "info parent"}
@@ -729,14 +728,14 @@
# @class.attribute {Object mixin}
#
-# As a setter, '''mixin''' specifies a list of <<@glspl mixincls>> to
+# As a setter, '''mixin''' specifies a list of <<@glspl mixin_class>> to
# set. Every mixin must be an existing class. In getter mode, you can
-# retrieve the list of <<@glspl mixincls>> active for the given object. As for
-# introspecting <<@glspl mixincls>>, consider <<@class.method {Object "info
+# retrieve the list of <<@glspl mixin_class>> active for the given object. As for
+# introspecting <<@glspl mixin_class>>, consider <<@class.method {Object "info
# mixin classes"}>>
#
# @return :list If called as a getter (without arguments),
-# '''mixin''' returns the list of current <<@glspl mixincls>> registered
+# '''mixin''' returns the list of current <<@glspl mixin_class>> registered
# with the object
# @class.attribute {Object filter}
@@ -753,13 +752,13 @@
# @class.attribute {Class mixin}
#
-# As a setter, '''mixin''' specifies a list of <<@glspl mixincls>> to
-# set for the class. Every <<@gls mixincls>> must be an existing
+# As a setter, '''mixin''' specifies a list of <<@glspl mixin_class>> to
+# set for the class. Every <<@gls mixin_class>> must be an existing
# class. In getter mode, you can retrieve the list of <<@glspl
-# mixincls>> active for the given class.
+# mixin_class>> active for the given class.
#
# @return :list If called as a getter (without arguments), '''mixin'''
-# returns the list of current <<@glspl mixincls>> registered with the class
+# returns the list of current <<@glspl mixin_class>> registered with the class
# @class.attribute {Class filter}
#
Index: library/xotcl/doc/langRef.xotcl
===================================================================
diff -u -r6cfab8d93b1fa5fb154d2986919e7e32abb498b8 -rcfd13f351499bb4b1b1debd55f209419edf1af14
--- library/xotcl/doc/langRef.xotcl (.../langRef.xotcl) (revision 6cfab8d93b1fa5fb154d2986919e7e32abb498b8)
+++ library/xotcl/doc/langRef.xotcl (.../langRef.xotcl) (revision cfd13f351499bb4b1b1debd55f209419edf1af14)
@@ -968,7 +968,7 @@
the method <@tt>create<@/tt> to
allocate the object. Note that <@tt>create<@/tt> also calls as
- well configure and init to initialized the
+ well configure and init to initialized the
object. Only in seldom cases the programmer may want to suppress
the <@tt>create<@/tt> mechanism and just allocate uninitiaized
objects via <@tt>alloc<@/tt>.
Index: nsf.nxd
===================================================================
diff -u -rcc815189194d14214c6846ca33f39d74b4d8edc5 -rcfd13f351499bb4b1b1debd55f209419edf1af14
--- nsf.nxd (.../nsf.nxd) (revision cc815189194d14214c6846ca33f39d74b4d8edc5)
+++ nsf.nxd (.../nsf.nxd) (revision cfd13f351499bb4b1b1debd55f209419edf1af14)
@@ -65,13 +65,14 @@
#
# @pretty_name Object
# @pretty_plural Objects
+
# @glossary alias
#
# An alias is an alternate name for some artefact. In NSF, the term
# "alias" is an abbreviation for a "method alias", which allows to
# reuse some command or method unter a certain name. This way, one can
-# e.g. reuse Tcl commands like "set" or "unset" without invocation
-# overhead as methods for object and classes.
+# e.g. reuse Tcl commands like <