Index: TODO =================================================================== diff -u -r0722c5e7a7d98ec23fcb8fdc55f528567c3bd3fa -r98bfbbfaad78cab360b8db446ad40613c6d421aa --- TODO (.../TODO) (revision 0722c5e7a7d98ec23fcb8fdc55f528567c3bd3fa) +++ TODO (.../TODO) (revision 98bfbbfaad78cab360b8db446ad40613c6d421aa) @@ -5163,6 +5163,18 @@ ======================================================================== TODO: +- Minor redundancy: "/obj/ info object filter" methods plus "-order" + switch is functionally equivalent to "/obj/ info lookup + filters". Suggestions: Remove -order switch param from the former + (not expected from the provider perspective, we are just interested + in the filters defined on the given obj in isolation). + + the same holds for "/obj/ info object mixin classes -heritage" and + /obj/ info lookup mixins. I suggest, removing "-heritage" from the + former. + + (besides, in nsf.c the respective sections are full code clones) + - TODO: update tutorial and migration guide - finish nx-property reform (merge into master) Index: doc/Object.man =================================================================== diff -u -ra6a5d4be56157641a50c3a25a348464591980ac6 -r98bfbbfaad78cab360b8db446ad40613c6d421aa --- doc/Object.man (.../Object.man) (revision a6a5d4be56157641a50c3a25a348464591980ac6) +++ doc/Object.man (.../Object.man) (revision 98bfbbfaad78cab360b8db446ad40613c6d421aa) @@ -498,66 +498,8 @@ Returns the unqualified name of an object, i.e., the object name without any namespace qualifiers. -[call [arg obj] [method {info object filter guard}] ...] -[para] Description of [method {info object filter guard}] ... +[include info.man.inc] -[call [arg obj] [method {info object filter methods}] ...] -[para] Description of [method {info object filter methods}] ... - -[call [arg obj] [method {info object method args}] ...] -[para] Description of [method {info object method args}] ... - -[call [arg obj] [method {info object method body}] ...] -[para] Description of [method {info object method body}] ... - -[call [arg obj] [method {info object method definition}] ...] -[para] Description of [method {info object method definition}] ... - -[call [arg obj] [method {info object method definitionhandle}] ...] -[para] Description of [method {info object method definitionhandle}] ... - -[call [arg obj] [method {info object method exists}] ...] -[para] Description of [method {info object method exists}] ... - -[call [arg obj] [method {info object method handle}] ...] -[para] Description of [method {info object method handle}] ... - -[call [arg obj] [method {info object method origin}] ...] -[para] Description of [method {info object method origin}] ... - -[call [arg obj] [method {info object method parameters}] ...] -[para] Description of [method {info object method parameters}] ... - -[call [arg obj] [method {info object method registrationhandle}] ...] -[para] Description of [method {info object method registrationhandle}] ... - -[call [arg obj] [method {info object method returns}] ...] -[para] Description of [method {info object method returns}] ... - -[call [arg obj] [method {info object method submethods}] ...] -[para] Description of [method {info object method submethods}] ... - -[call [arg obj] [method {info object method syntax}] ...] -[para] Description of [method {info object method syntax}] ... - -[call [arg obj] [method {info object method type}] ...] -[para] Description of [method {info object method type}] ... - -[call [arg obj] [method {info object methods}] ...] -[para] Description of [method {info object methods}] ... - -[call [arg obj] [method {info object mixin classes}] ...] -[para] Description of [method {info object mixin classes}] ... - -[call [arg obj] [method {info object mixin guard}] ...] -[para] Description of [method {info object mixin guard}] ... - -[call [arg obj] [method {info object slots}] ...] -[para] Description of [method {info object slots}] ... - -[call [arg obj] [method {info object variables}] ...] -[para] Description of [method {info object variables}] ... - [call [arg obj] [method {info parent}]] Returns the fully qualified name of the parent object of [arg obj], if Index: doc/info.man.inc =================================================================== diff -u --- doc/info.man.inc (revision 0) +++ doc/info.man.inc (revision 98bfbbfaad78cab360b8db446ad40613c6d421aa) @@ -0,0 +1,139 @@ +[comment {-*- tcl -*- + manpage fragment for "info *" subset shared by nx::Object and nx::Class +}] + +[keywords "method filter"] + +[call [arg obj] [method "info [vset SCOPE] filter"] [arg option] [opt "[arg arg] ..."]] + +[list_begin definitions] + + +[def "[arg obj] [method "info [vset SCOPE] filter methods"] [opt [option -guards]] [opt [arg pattern]]"] + + +If [arg pattern] is omitted, returns all filter names which are +defined by [arg obj]. By turning on the [term switch] [option -guards], +the corresponding guard expressions, if any, are also +reported along with each filter as a three-element list: [arg filterName] +-guard [arg guardExpr]. The returned filters can be limited to those whose names +match [arg patterns] (see [cmd "string match"]). + +[def "[arg obj] [method "info [vset SCOPE] filter guard"] [arg name]"] + +Returns the guard expression set on the [term "filter"] [arg name] +defined for [arg obj]. If none is available, an empty string will +be returned. + +[list_end] + +[call [arg obj] [method {info object method}] ...] +[para] Description of [method {info object method args}] ... + +[call [arg obj] [method {info object method body}] ...] +[para] Description of [method {info object method body}] ... + +[call [arg obj] [method {info object method definition}] ...] +[para] Description of [method {info object method definition}] ... + +[call [arg obj] [method {info object method definitionhandle}] ...] +[para] Description of [method {info object method definitionhandle}] ... + +[call [arg obj] [method {info object method exists}] ...] +[para] Description of [method {info object method exists}] ... + +[call [arg obj] [method {info object method handle}] ...] +[para] Description of [method {info object method handle}] ... + +[call [arg obj] [method {info object method origin}] ...] +[para] Description of [method {info object method origin}] ... + +[call [arg obj] [method {info object method parameters}] ...] +[para] Description of [method {info object method parameters}] ... + +[call [arg obj] [method {info object method registrationhandle}] ...] +[para] Description of [method {info object method registrationhandle}] ... + +[call [arg obj] [method {info object method returns}] ...] +[para] Description of [method {info object method returns}] ... + +[call [arg obj] [method {info object method submethods}] ...] +[para] Description of [method {info object method submethods}] ... + +[call [arg obj] [method {info object method syntax}] ...] +[para] Description of [method {info object method syntax}] ... + +[call [arg obj] [method {info object method type}] ...] +[para] Description of [method {info object method type}] ... + +[call [arg obj] [method "info [vset SCOPE] methods"] [opt "[option -callprotection] [arg level]"] [opt "[option -type] [arg methodType]"] [opt [option -path]] [opt [arg namePattern]]] + +Returns the names of all methods defined by [arg obj]. Methods covered +include those defined using , +[const [vset SCOPE]] [method alias], and [const [vset SCOPE]] [method forward]. The +returned methods can be limited to those whose names match [arg namePattern] (see +[cmd "string match"]). + +[para] + +By setting [option -callprotection], only methods of a certain [term "call protection"] [arg level] ([term "public"], [term "protected"], or [term "private"]) will be returned. Methods of a specific type can be requested using [option "-type"]. The recognized values for [arg methodType] are: +[list_begin itemized] +[item] [const scripted] denotes methods defined using [const [vset SCOPE]] [method method]; +[item] [const alias] denotes [term "alias method"]s defined using [const [vset SCOPE]] [method alias]; +[item] [const forwarder] denotes [term "forwarder method"]s defined using [const [vset SCOPE]] [method forward]; +[item] [const setter] denotes methods defined using [cmd ::nsf::setter]; +[item] [const all] returns methods of any type, without restrictions (also the default value); +[comment { + [item] [const object] + [item] [const nsfproc] + [item] [const builtin] denotes methods provided a [term "baseclass"]; + +}] +[list_end] + +[call [arg obj] [method "info [vset SCOPE] mixin"] [arg option] [opt "[arg arg] ..."]] + +[list_begin definitions] + +[def "[arg obj] [method {info object mixin classes}] [opt [option -guards]] [opt [arg pattern]]"] + +If [arg pattern] is omitted, returns the object names of the [term "mixin class"]es which +extend [arg obj] directly. By turning on the [term switch] [option -guards], +the corresponding guard expressions, if any, are also +reported along with each mixin as a three-element list: [arg className] +-guard [arg guardExpr]. The returned [term "mixin class"]es can be limited to those whose names +match [arg patterns] (see [cmd "string match"]). + +[def "[arg obj] [method {info object mixin guard}] [arg name]"] + +For the [term "mixin class"] [arg name] which extends +[arg obj] directly, returns the corresponding guard expression, if +any. If none is available, an empty string will be returned. + +[list_end] + + +[call [arg obj] [method "info [vset SCOPE] slots"] [opt "[option -type] [arg className]"] [arg pattern]] + +If [arg pattern] is not specified, returns the object names of all [term "slot object"]s defined by [arg obj]. The returned [term "slot object"]s can be limited according to any or a +combination of the following criteria: First, [term "slot object"]s +can be filtered based on their command names matching [arg namePattern] (see [cmd "string +match"]). Second, [option "-type"] allows to select +[term "slot object"]s which are instantiated from a subclass [arg className] of [cmd nx::Slot] (default: [cmd nx::Slot]). + +[call [arg obj] [method "info [vset SCOPE] variables"] [arg pattern]] + +If [arg pattern] is omitted, returns the object names of all [term "slot object"]s provided +by [arg obj] which are responsible for managing properties and variables of [arg obj]. Otherwise, +only [term "slot object"]s whose names match [arg pattern] are +returned. + +[para] + +This is equivalent to calling: [arg obj] [method "info [vset SCOPE] slots"] -type ::nx::VariableSlot [opt [arg namePattern]]. + +[para] + +To extract details of each [term "slot object"], use the [method info] +submethods available for each [term "slot object"]. +