Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>SyteLine Dev HubNew to Visual Studio Code? Get it now.
SyteLine Dev Hub

SyteLine Dev Hub

Jeking

|
15 installs
| (0) | Free
The SyteLine middle-tier code hub: indexes C# ExtensionClasses, shows DI dependency relationships (look up / look down), and links the MG REST Client, IDO Editor, and IDS Form Designer across the SyteLine development lifecycle.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

SyteLine Dev Hub

The code-layer hub for SyteLine middle-tier development, and the connective tissue between the sibling extensions across the whole SyteLine lifecycle:

Layer Extension
REST / IDO request testing MG REST Client (jeking.mg-rest-client)
IDO metadata (XML) MG IDO Pro Editor (jeking.mg-ido-pro-editor)
IDS forms (JSON) SL IDS Form Designer (jeking.sl-ids-form-designer)
C# ExtensionClasses (code) SyteLine Dev Hub (this extension)

It indexes the C# ExtensionClasses tree and gives a perspective the generic editors can't: the dependency relationship graph, navigable both ways —

  • Look Down — for an interface / class / IDO method, the tree of implementations and constructor-injected dependencies, resolved through CompositionRoot.cs and *ModuleRegistrar.cs.
  • Look Up — who injects / consumes a given service, including the IDO entry points that reach it.

From any IDO entry point you can jump straight into the sibling tools: Open IDO (IDO Editor), Test in MG REST Client, and Open Form (IDS Form Designer).

Features

  • Commands launcher (top of the activity-bar panel) — a curated set of the most valuable commands from Dev Hub and every installed sibling extension (MG IDO Pro Editor, SL IDS Form Designer, MG REST Client), grouped by extension; click to run. Only commands that run with no parameters (a picker/prompt or a global action) are listed, so every click does something — view-toolbar plumbing and context-only commands are excluded (use the Command Palette for the full surface). Refreshed on install/uninstall.
  • Dependencies view (activity bar) with an up/down toggle.
  • Trace an interface/class from the palette, or the symbol under the cursor in a .cs file.
  • Flat, de-duplicated file list for any trace (copy paths / export a Markdown report).
  • Cross-extension jumps to IDO Editor, REST Client, and Form Designer (shown when installed).
  • Validate IDO Methods — reconcile a C# entry class's [IDOMethod] surface against the IDO's metadata methods (via the IDO Editor) and flag code-only / dangling / kind mismatches.
  • List VB Entry Points — static scan for VB <IDOExtensionClass> classes (not covered by the C#-driven tree), reported by module with IDO and [IDOMethod] counts.
  • Diagnose All Layers — runs the cross-layer scan (IDO metadata + IDS form + C# DI issues into one normalized, IDO-grouped model) and opens the interactive Diagnostics Matrix seeded with the fresh result (DI Health view toolbar). The Markdown/HTML, JSON, and CSV report is produced from the Matrix toolbar's Export — no separate report step. Dev Hub orchestrates and correlates — each layer's validation stays in its own extension.
  • Diagnostics Matrix (interactive) — an interactive webview over the same cross-layer aggregation with a merged IDO / Forms / DI availability+view switcher: the IDO view lists standard and _IDS IDOs as separate objects (with a Merged toggle), colored severity cells, a category dropdown, module/layer filters, sort, expand-to-issues, and per-row codicon actions — Open IDO, Open C# entry point, Forms, Test in REST, and Import (deploy). The DI view lists captive/unregistered DI issues with a Trace jump; the Forms view tags each form .ids/.iv2 (with a type filter), lists its dependent IDOs on expand, and offers Open / Build-import / Run, plus a COUI Readiness % per .iv2 form (from the Form Designer's slIds.validateAllFormsData). All three grids (IDO / Forms / DI) have sortable column headers. A trend view compares each scan to the last (▲ worsened / ▼ improved, new/fixed IDOs, pinnable baseline). Rescan and export (MD/JSON/CSV) from the toolbar. Unavailable row actions are disabled (not hidden) so columns align, and an opt-in "show all" mode lists every IDO / form (not just those with issues). Themed with VS Code variables (light/dark/high-contrast), strict nonce-CSP.
  • Analyze Middle-Tier Logic (coded → code-based Data Rules) — "decompile" an IDO's C# extension class into output structurally compatible with ido_analyze_datarules (rules[], propertyValidators[], seedPlan, messages[]; shared set|state|in-list|in-collection|method effect vocabulary; operationType; confidence; uiOnly) so the MG REST Client generator + coverage analyzer consume it with zero new matching logic. Detects SetContext event hooks (PreItemInsert→insert, PostLoadCollection→load, …), follows one level of DI into handler/dispatcher impls, and enumerates a dispatcher switch (e.g. ItemFieldValidate) into one property validator per case. Pure stored-procedure/legacy methods are excluded; computed/cross-method values are honestly inferred/restTestable:false, never guessed. Human report command + data command (slDevHub.api.analyzeMiddleTier) + MCP tool (see below).
  • IDO Method Parameter API (slDevHub.api.getIdoMethodParameters, + batch slDevHub.api.getIdoMethodContracts) — a hidden, read-only data command that backs the MG IDO Pro Editor's "Refresh Parameters": it locates the C#/VB [IDOMethod] entry point (with one level of base-class lookup) and returns each parameter's C# type, sequence, message (Infobar) flag, and a best-effort advisory direction (naming-prefix → keyword) with per-field evidence + confidence, plus parameterStatus, sourceInfo freshness, a changes summary (from a caller-supplied existingParameters snapshot — Dev Hub never reads the IDO XML), capabilities, a contractFingerprint, and a CLM outputContract matching Custom-Load result columns to IDO properties under strict safety rules. The IDO Editor does the mechanical XML mapping.
  • Bundled MCP server exposing the same engine to Kiro: trace_down, trace_up, trace_ido, list_files, find_registration, index_status, plus list_entry_points, entry_point_for_ido, di_health, list_methods, list_types, and the Forms↔IDO tools forms_using_ido / idos_for_form / trace_backend_for_form, plus diagnostics_all (normalized DI-layer rollup; the full IDO/forms aggregation is a UI feature), and analyze_middle_tier / describe_middle_tier_spec_format (an IDO's coded middle-tier logic "decompiled" into code-based Data Rules — rules[]/propertyValidators[]/seedPlan/messages[], structurally compatible with ido_analyze_datarules — for AI test generation and coverage), plus analyze_middle_tier_ai / kiro_cli_status (optional, deterministic-first AI fallback that fills only the residual gaps[] via the locally-authenticated kiro-cli — no token stored; conflicts lose to the deterministic result; degrades gracefully when kiro-cli is absent/not logged in).

Settings

Setting Purpose
slDevHub.extensionClassesRoots ExtensionClasses root folder(s) to index (may live outside the workspace).
slDevHub.formRoots Folder(s) to scan for IDS/IV2 forms (Forms↔IDO + MCP forms tools); blank = scan the open workspace, plus the folder of any form you point a command at.
slDevHub.referenceScope Resolve references within the current module or across all roots.
slDevHub.reportFormat Output format for generated reports: markdown (default) opens a Markdown document, html opens a rendered HTML webview.
slDevHub.mcpNodePath Optional Node path for the MCP server (blank = self-contained launcher).

MCP

Run “SyteLine: Register MCP Server with Kiro” to add the bundled server to ~/.kiro/settings/mcp.json, then reload Kiro. The server reads SL_HUB_ROOTS and reuses the exact same engine as the UI, so agents and humans see one source of truth. After an upgrade the registration self-heals on activation (the bundled launcher path is version-stamped), so you no longer need to re-run the command on every version bump — reload Kiro when prompted.

Build

npm install
npm run build        # esbuild → dist/extension.js + dist/mcp/server.js
npm run typecheck    # tsc --noEmit
npm test             # node --test on the pure engine
npm run package      # vsce package

How it works

A pure, vscode-free engine (src/model/) does a syntax/regex parse of the tree (no compiler): DI registrations, [IDOExtensionClass] entry points, GetService<T> calls, and constructor dependencies. The extension wraps it with a tree view and cross-extension commands; the MCP server wraps the same engine for Kiro. Lambda-factory registrations are resolved by reading a new X( in the registration statement.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft