[ 
https://issues.apache.org/jira/browse/CAMEL-24372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-24372:
--------------------------------
    Fix Version/s: 4.23.0

> camel-tui - YAML editor: undo/redo, block-aware move/duplicate/delete for EIP 
> nodes
> -----------------------------------------------------------------------------------
>
>                 Key: CAMEL-24372
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24372
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-jbang
>            Reporter: Claus Ibsen
>            Priority: Major
>             Fix For: 4.23.0
>
>
> The TUI Source tab YAML editor currently supports basic character-level 
> editing (insert, delete, cursor movement, auto-indent, Tab completion, 
> validate on save). Several common editor operations are missing that would 
> elevate it from a basic text editor into a proper low-code tool for Camel 
> routes.
> The key insight is that operations like move, duplicate, and delete should be 
> *YAML-structure-aware* -- operating on entire EIP/node blocks rather than 
> single lines. In YAML DSL, a single EIP step is often multiple lines:
> {code:yaml}
> steps:
>   - setHeader:
>       name: foo
>       simple: "${body}"
>   - to:
>       uri: kafka:myTopic
>       parameters:
>         brokers: localhost:9092
>   - log:
>       message: "Done"
> {code}
> Moving one line at a time is not useful here. What users need is to move the 
> entire {{- setHeader:}} block (all 3 lines) as a unit, swapping it with the 
> adjacent sibling {{- to:}} block (all 4 lines). Block boundaries can be 
> detected from the {{- }} list item prefix and indentation level.
> The editor already has the YAML DSL model from the catalog for Tab 
> completion, so it has structural awareness to know where blocks start and end.
> *Proposed features (ranked by user value):*
> # *Undo / Redo* (Ctrl+Z / Ctrl+Shift+Z) -- needs an undo stack in 
> TextAreaState or SourceViewer
> # *Move EIP block up/down* (Alt+Up / Alt+Down) -- swap entire sibling blocks, 
> not single lines
> # *Duplicate EIP block* (Ctrl+D) -- duplicate the whole block, useful for 
> adding similar steps
> # *Delete EIP block* (Ctrl+Shift+K) -- delete the entire block at once
> # *Word-level navigation* (Ctrl+Left / Ctrl+Right / Ctrl+Backspace) -- jump 
> and delete by word
> # *Smart Home* -- first press goes to first non-whitespace, second press to 
> column 0
> # *Find in edit mode* (Ctrl+F) -- search exists in view mode but not while 
> editing
> # *Comment toggle* (Ctrl+/) -- add/remove # prefix on current line



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to