ek9_query_workspace
Answers first: status, moduleCount, moduleNames, constructCount, then modules[] {name, constructCount, constructs[] {name, category, genus}}; verbosity:'none' lists modules only, 'full' adds per-construct detail.
When to use it
'What is in this workspace - every module and what each declares' is one call with no arguments; moduleFilter:['com.acme.*'] narrows it.
When not to use it
- one module's contents anchored by a file (use
ek9_query_module) - locating a single named construct, not enumerating the workspace (use
ek9_find_constructs_by_name) - the module dependency graph rather than the inventory (use
ek9_query_module_dependencies) - a built-in type's API (use
ek9_help; includeBuiltins only lists org.ek9.lang constructs, it does not document them)
Details
verbosity selects the shape: none = module names + sourceCount only; summary (default) = adds each module's public constructs as {name, category, genus} plus constructCount; full = further adds line, memberCount and a modifiers array (open/abstract/extern) on aggregate constructs. moduleFilter is exact names, '*' suffix for a prefix; includeBuiltins defaults false (user code only).
Arguments
| Argument | Type | Required | What it is |
|---|---|---|---|
includeBuiltins | boolean | Whether to include org.ek9.lang built-in modules (default false) | |
moduleFilter | array of string | Restrict to these modules - exact names; an entry ending in '*' is a prefix ('com.acme.*'). A single string is accepted. Omit for workspace-wide. | |
verbosity | string: full | summary | none | none = module names + sourceCount; summary (default) = each module's constructs as {name, category, genus}; full = adds line, memberCount and modifiers per construct. |
Recorded calls
Real calls, recorded against small projects and checked on every build - a changed answer fails it.
Workspace shape
Request
{ }
Response
{
"constructCount" : 1,
"meta" : {
"serverMs" : "<timing>"
},
"moduleCount" : 1,
"moduleNames" : [ "com.example" ],
"modules" : [ {
"constructCount" : 1,
"constructs" : [ {
"category" : "TYPE",
"genus" : "RECORD",
"name" : "MyRecord"
} ],
"name" : "com.example"
} ],
"status" : "ok"
}