nx.nxd

Clone Tools
  • last updated 2 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- library/nx/nx.nxd: Rewrote and completed API doc for nx::Class

  1. … 1 more file in changeset.
- TODO: Noted down some observations, issues. To be reviewed. - library/nx/nx.nxd: Completed doc of ::nx::Object - library/nx/nx.tcl: While documenting ::nx::Object, I applied some changes along the way. For example, adding a missing element to the require() API, removing some unwanted params from the "info slot *" sub-interface, added some parameter types where appropriate, ...

  1. … 2 more files in changeset.
Having rewritten 2/3 of nx::Object

  1. … 3 more files in changeset.
- @class.html.yuidoc, @object.html.yuidoc: Reflected naming changes from "attribute*" to "property*" - library/lib/nxdoc-core.tcl: Major cleanup - library/lib/nxdoc-html.tcl: Made sure that the navigation structure is rendered in a fixed order, with the per-entity elements coming last. - library/nx/nxdocIndex: Added method occurrences etc.

  1. … 5 more files in changeset.
- small update to test makefile dependencies

- Allow for defining type specifications for @param entities as an @spec part. - Corrected some inconsistencies in the doc templates for attribute methods - Added object parametersyntax in @class templates (though they appear quite lengthy, keep them at the end of the day?) - Distinguish between the "cls" and "obj" as affices

  1. … 10 more files in changeset.
- be more precise on return value of alloc and create

- Provided proper template for hook methods; started partial support for validating Tcl packages (remains to be completeted, i.e., missing and mismatch support) - Fixed rendering for glossary back-references in the light of nested render() calls. - Refactored the rendering of overview lists/status into proper template; show per-project stats - Made @stashed filtering working; some fixes

  1. … 9 more files in changeset.
- Reactivated and extended the filtering support around the yuidoc theme. One can now filter according to various entity states (deprecated, missing, mismatch, protected, ...) - filter.html.yuidoc: Refactored the checkbox battery into a proper template. - Fixed some typos in templates - library/lib/doc-assets/yuidoc/ac-js: Refined the checkbox/visibility mechanism to honour defaultChecked states of checkboxes. - library/lib/doc-assets/yuidoc/api.css: checkbox/visibility selectors are now based on composite class selectors. - Removed @modifier and related selection statements throughout the code. Background: The call-protection state is inferred during verification, so there is no need to actually declare a method protected. Also, filtering in the templates breaks orthogonality when it comes to rendering doc entities at various spots (leftbar, ...). Method filtering can be applied during the initial processing step or visually in the final output. - Added print names for per-object methods

  1. … 12 more files in changeset.
- @class.html.yuidoc: Printing class-scope validation messages. - @object.html.yuidoc: Printing object-scope validation messages. - @method.html.yuidoc: Flattening list structure of validation messages when printed. - Revised and fixed status propagation - Fixed an issue when verifying forwarders/aliases which do not carry any verifiable parameter specifications. Also, I had forgotten to collect paramtersyntax docstrings for forwarders. Addresses an issue reported by Gustaf Neumann trying to make appear the proper paramsyntax of the Object->class() forwarder. - statusmark resolution is now aware of @use chains

  1. … 4 more files in changeset.
- documentation work

  1. … 1 more file in changeset.
- doc updates

- doc-tools: added "-where" to !get - doc-tools: title to internal links, provided css class, added nicer label - updated reference doc

  1. … 6 more files in changeset.
listing(): Trim result string of pretty printer for trailing newlines to avoid their transformation to multiple line breaks.

  1. … 1 more file in changeset.
- playing with empty comment lines

- documentation updates

  1. … 1 more file in changeset.
- library/lib/doc-tools.tcl: Added a link renderer for Tcl commands, pointing to the tcl.tk online reference; usage: <<tclcmd /cmd/>>. - library/nx/nx.nxd: Fixed glossary references pointing to mixin classes. - glossary.html.tmpl: Made the tmpl more robust against the non-existence of glossary entries. - method.html.tmpl: Made Type and Protection fully conditional - doc-tools.tcl: added a @project.is_validated attribute to reflect the validation status of a given project. this should later turn into a derived property. - langRef.xotcl: added a missing </tt> closing tag, to avoid tt pollution of the remaining document space.

  1. … 5 more files in changeset.
nx.nxd: Shifted glossary entries to nsf.nxd

  1. … 1 more file in changeset.
nx.nxd: Corrected the @glossary entries for empty leading comment lines

- documentation work

  1. … 6 more files in changeset.
- nsf.nxd: Completed a first draft version of the NSF reference (needs to be revised and improved in further iterations) - doc-tools.tcl: Fixed an issue with closing comment blocks (the last comment line closes with an eof), previously dropped silently by the processor.

  1. … 3 more files in changeset.
- library/lib/doc-tools.tcl: added [pinfo append] to collect multiple validation reports per entity - library/lib/doc-tools.tcl / owned_parts(): skip entities which are not structured themselves (namely parameters); otherwise they show up in the lefthand navigation or the autosearch box. also: glossary entries now disappeared from these navigation items (do we need them there?). - library/lib/doc-assets/command.html.tmpl: validation reports need to be fused using [join] - library/lib/doc-assets/command.html.tmpl: fixed subcommand support; adjusted and refined the per-command template, as well as @command validation. - Provided for parameter validation for @command and the extraction of the parametersyntax for commands - nsf.nxd: Added to the NSF documentation, namely completed a first round commands ::nsf::alias throughout ::nsf::log. Also: Refactored some glossary entries to nsf.nxd. - glossary: glossary entries can now be shared between projects; this required to make the back references aware of their project context. - @project: added a depends attribute which can be used to express inter-project dependencies. - An empty @doc string is now reported during validation - processor->process(): Added include/exclude filtering based on namespace patterns

  1. … 7 more files in changeset.
- Changed parametersyntax visualisation to show variable/replacable elements in italics. - Rewrote the method template for attribute accessors/mutators - Revised and refactored the resolution helper of member entities along an inheritance path to reflect member overloading - Reduced verbosity

  1. … 6 more files in changeset.
- Adjusted the TODOs - Completed marking internally-called methods and provided a first documentation draft for them. - Fixed the indentation level for code listings - Now using method.html.tmpl to render per-object methods in class.html.tmpl - Fixed return (out parameter) validation

  1. … 4 more files in changeset.
- Adjusted for multiplicity types - Added new templates: attributemethod.html.tmpl is responsible for rendering accessor/mutators for attribute slots, object.html.tmpl for objects. - I now render attribute slots both in their object parameter view & a method view. Furthermore, I distinguish between the incremental vs. ordinary interface (as requested). - Fixed div boxing scheme (again) - Adjusted various places (method.html.tmpl, submethod.html.tmpl) to display the status marks (more to come) - Streamlined the method views, introducing Type and Protection sections - Started adopting the /obj/ prefix in parameter listings - Made the @use mechanism working again (under validation). Once tiny bit needs to be fixed: The upward propagation of status messages if @use is in place. - Removed the cause for redundant validation calls by traversing the entity hierarchy only once. - Added nx-specific tracers (to distinguish between ensemble and slot objects, ...) For now, they work fine, but are tangled with non-nx tracing. This needs refactoring. - Added another nx-specific tracer which tackles the issue of the __resolve_method_path helper. While quite cumbersome and coupling nxdoc to many internal design decisions of nx, it turns any change in nx.tcl unnecessary. - Fixed ::nx::doc::handleinfo to deal with objects as methods (the case for intermediate ensemble objects). - Added ::nsf::setter support - Fixed the validation support for submethod structures. - Some cleanup (to be continued)

  1. … 8 more files in changeset.
- Fixed some naming confusion around @class-object-method - Completed statusmark support down to the @param level - method parameter definitions are now pre-processed during tracing; see ::nx::doc::paraminfo - Continued the pinfo/pdata-based refactoring

  1. … 5 more files in changeset.
Accomplishments: - Completed a first version of the sandboxed (partial) evaluation of Tcl source artifacts (packages, script files, C extensions) based on a dedicated child/slave interp environment: see ::nx::doc::Sandbox; the test suite and the test documentation builts run on it. - Based on this infrastructure, we can now generate a snapshot of a program's structure to be documented (and contrast it to the explicitly documented structure). - Added simplistic css sprites for visualising the doc entity status (extra, missing, mismatch, complete); see also library/lib/doc-assets/status.svg and library/lib/doc-assets/status.png - The entity status is printed optionally along with the print name of an entity - Added switch-like parts to represent properties of doc entities: @deprecated, @stashed, @c-implemented, @syshook. The implementation and use of ::nx::doc::SwitchAttribute should be reviewed after having figured out how to proceed using "switching" objparams. - I provide a multi-property dispatcher as doc-syntactic sugar and for mere convenience: @property

Various:

- Corrected some div-boxing mess in the templates

- Added a filtered helper to process entity collections

- Made the mixin layer infrastructure more symmetric (a revoke operation).

- Added tracers for ::nsf::method and ::nsf::alias (remains to be completed)

- Renamed ::nx::doc to ::nx::processor and turned it into another

mixin layer to trace the doc entity creation in e.g. readin()

- Companion (*.nxd) files: Revised the handling of companion

files. Temporarily moved generic/nsf.nxd in the top-level

directory. We need to find a permanent place as its location is

currently derived from the location of the shared extension. A

candidate is doc/ but this is not linked to the shared extension

location at all.

- processor.readin() now returns a collection of entities created

during its execution.

- Improved robustedness and orthogonality: destroy hooks; the

tag-dispatcher can now handle empty comment lines; when placing NSF

object tracer, we now use the freshly added introspection of an

object system's method aliases.

  1. … 12 more files in changeset.
- Corrected the link generation for autocomplete/search entries in case of @use chaining and made them location-independent - Removed an superfluous div-closing tag in class.html.tmpl - Refactored the backend code for the auto-completion search box, separating the concerns of rendering the JS array of hashes and serialising entities into a dict representation. The latter allows to discriminate entity-specific rendering behaviour (together with the mixin layer facility). - Added the entity type (its pretty name) to the search results presented to the doc user. - Removed the unwanted "::"s from @project and @package names.

  1. … 5 more files in changeset.
- Switch to print_name() for rendering entity names for the search box - Fixed the @parameter generation in method.html.tmpl - @glossary: Support for referencing glossary entries with certain formatting annotations: @gls (minor letters only), @Gls (title), @glspl (plural), @Glspl (title plural), ... Added explicit acronym rendering (long and short forms): @acrfirst, @acr; fixing an id-generation issue for @glossary entities - Completed the first round of amending nx.nxd with @glossary entries and references. - I got rid of curly braces ("{", "}") as marker symbols ("{{...}}", "{{{ ... }}}") for formatting fragments of comment blocks. They proofed sufficiently hairy due to their heavily loaded meaning for the Tcl parser (the unclosed brace issue in Tcl comment blocks, the list-like processing in our comment block parser, ...). Instead, I introduced <<...>> for link-like elements (anchors, glossary references) and MediaWiki-like '''...''' blockmarkers for code listings. Thanks to Victor Guerra for reviewing and discussing this concrete-syntactic design decision. - Increased the robustness of line-by-line parsing for comment blocks. Within the comment block parser, we operate on comment lines as Tcl lists (lindex, lassign, ...). While convenient from a processing perspective, this risks limiting the degrees of freedom when writing comments (e.g., using tabs and spaces to indent inline, grouping words to form lists of lists, ...). By leveraging "args" argument processing through [apply] for line preprocessing, we balance the two requirements. - Verified that @use works between objects and methods. - Some cleanup in the mixin layer code - Resolve interp-alias chains to entity class objects explicitly - Adjusting the Container/Containable mechanism to apply only to part classes relevant to particular container entities. - Fixing support for package rendering as top-level entities (e.g., in the leftbar menu) - Providing the project object to all entities subject to template processing. - Declaring some forwarders public explicitly (to reflect recent changes in the reach of default call protection)

  1. … 6 more files in changeset.
- Major refactoring based on a minimal Mixin Layer facility to modularise optional features (such as templating, documentation verification etc.) in layers of mixins to be applied to the entire entity hierarchy. - Rewrote the html templating machinery in terms of a mixin layer: NxDocRenderer - Used the new modularisation granularity to add @glossary-specific link rendering (following ideas from http://www.alistapart.com/articles/hattrick/) - Completed glossary support and added acronym handling - Added back references and ref counting for @glossary entries (to be displayed with the glossary lists) - I added the short-cut lists for selected part types of @class entities, namely @class-method and @class-attribute. - Fixed the rendering of methods and attributes for ascending alphabetical order.

  1. … 7 more files in changeset.