You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/08/05 20:52:00 UTC
[jira] [Created] (CAMEL-24362) Generate YAML DSL completion tree from canonical schema and catalog metadata
Claus Ibsen created CAMEL-24362:
-----------------------------------
Summary: Generate YAML DSL completion tree from canonical schema and catalog metadata
Key: CAMEL-24362
URL: https://issues.apache.org/jira/browse/CAMEL-24362
Project: Camel
Issue Type: Improvement
Components: camel-yaml-dsl, tooling
Reporter: Claus Ibsen
Currently the TUI source editor tab completion for YAML DSL routes is hand-coded per context level — each nesting depth (EIP options, expression languages, language options, data format names, data format options, route options, top-level elements) has its own context detection method in SourceViewer and provider method in SourceTab.
This approach works but does not scale: adding a new EIP option kind or a new nesting level requires manual code changes. It also risks going stale when the EIP model changes.
h3. Proposal
Generate a completion tree during the build (via {{camel-package-maven-plugin}} or a new mojo) that maps every valid YAML DSL position to its children, derived from:
- The canonical YAML DSL JSON schema ({{camelYamlDsl-canonical.json}}) — defines the structural tree of valid keys at each level
- The EIP/component/language/dataformat catalog metadata — provides descriptions, types, required flags, default values, enum values, and deprecated status
The generated artifact (a JSON file or Java class in the catalog) would be a single tree that the TUI completor walks at runtime instead of querying the catalog API and doing per-context logic.
h3. Benefits
- Automatically up to date when EIP models, languages, or data formats change
- No manual code changes needed per context level
- Single source of truth for what is valid where in YAML DSL
- Could also be used by other tooling (IDE plugins, MCP server, LSP) for YAML DSL completion
- Replaces ~500 lines of hand-coded context detection and provider methods
h3. Implementation notes
- Follow the same pattern as the existing catalog and YAML schema generation (source-generated during build, committed to {{src/generated}})
- The tree should include: valid child keys at each position, their types, descriptions, required/deprecated flags, default values, enum choices, and whether they expect a value or nested structure
- The tree root corresponds to the YAML DSL document root (top-level elements like route, from, rest, beans, etc.)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)