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.

Category: Enquiry

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

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

ArgumentTypeRequiredWhat it is
includeBuiltinsbooleanWhether to include org.ek9.lang built-in modules (default false)
moduleFilterarray of stringRestrict to these modules - exact names; an entry ending in '*' is a prefix ('com.acme.*'). A single string is accepted. Omit for workspace-wide.
verbositystring: full | summary | nonenone = 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"
}