MCPcopy Create free account
hub / github.com/cloudbase/garm / EditText

Method EditText

cmd/garm-cli/editor/editor.go:579–651  ·  view source on GitHub ↗

EditText launches the editor with initial content and returns the edited text

(initialContent string)

Source from the content-addressed store, hash-verified

577
578// EditText launches the editor with initial content and returns the edited text
579func (e *Editor) EditText(initialContent string) (string, bool, error) {
580 e.result = initialContent
581 e.saved = false
582
583 e.editor = tview.NewTextArea().
584 SetText(initialContent, false).
585 SetWrap(false)
586
587 e.editor.SetBorder(true).
588 SetTitleAlign(tview.AlignCenter)
589
590 e.updateTitle()
591
592 e.editor.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
593 // Handle global commands first (available in all modes)
594 switch {
595 case event.Key() == tcell.KeyCtrlS:
596 e.result = e.editor.GetText()
597 e.saved = true
598 e.app.Stop()
599 return nil
600 case event.Key() == tcell.KeyCtrlQ:
601 e.app.Stop()
602 return nil
603 case event.Rune() == 'h' && event.Modifiers()&tcell.ModAlt != 0:
604 e.pages.SwitchToPage("help")
605 return nil
606 case event.Key() == tcell.KeyCtrlUnderscore:
607 e.pages.SwitchToPage("help")
608 return nil
609 case event.Rune() == 'v' && event.Modifiers()&tcell.ModAlt != 0:
610 // Toggle vim mode
611 e.toggleVimMode()
612 return nil
613 }
614
615 // Handle vim keybindings if enabled
616 if e.useVim {
617 return e.handleVimInput(event)
618 }
619
620 return event
621 })
622
623 // Create footer with shortcuts
624 e.footer = tview.NewTextView().
625 SetDynamicColors(true).
626 SetTextAlign(tview.AlignCenter)
627
628 e.updateFooter()
629
630 // Create layout with editor and footer
631 grid := tview.NewGrid().
632 SetRows(0, 1).
633 AddItem(e.editor, 0, 0, 1, 1, 0, 0, true).
634 AddItem(e.footer, 1, 0, 1, 1, 0, 0, false)
635
636 // Create help pages

Callers 1

templates.goFile · 0.80

Calls 7

updateTitleMethod · 0.95
toggleVimModeMethod · 0.95
handleVimInputMethod · 0.95
updateFooterMethod · 0.95
createHelpPagesMethod · 0.95
StopMethod · 0.65
RunMethod · 0.45

Tested by

no test coverage detected