MCPcopy Index your code
hub / github.com/codechenx/FastTableViewer / showHelpDialog

Function showHelpDialog

ui.go:942–1029  ·  view source on GitHub ↗

showHelpDialog displays the help content as a centered modal dialog

()

Source from the content-addressed store, hash-verified

940
941// showHelpDialog displays the help content as a centered modal dialog
942func showHelpDialog() {
943 // Create help content text view
944 helpText := tview.NewTextView().
945 SetDynamicColors(true).
946 SetText(getHelpContent()).
947 SetTextAlign(tview.AlignLeft).
948 SetWordWrap(true)
949
950 // Make help text scrollable with modern styling
951 helpText.SetScrollable(true)
952 helpText.SetBorder(true)
953 helpText.SetTitle(" ❓ Help - Press ? or q or Esc to close ")
954 helpText.SetTitleAlign(tview.AlignCenter)
955 helpText.SetBorderColor(tcell.NewRGBColor(150, 100, 255))
956 helpText.SetBackgroundColor(tcell.NewRGBColor(10, 10, 20))
957
958 // Handle key events to close dialog
959 helpText.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
960 if event.Key() == tcell.KeyEscape ||
961 (event.Key() == tcell.KeyRune && (event.Rune() == '?' || event.Rune() == 'q')) {
962 UI.RemovePage("helpDialog")
963 app.SetFocus(bufferTable)
964 return nil
965 }
966 // Allow j/k navigation in help
967 if event.Key() == tcell.KeyRune && event.Rune() == 'j' {
968 row, col := helpText.GetScrollOffset()
969 helpText.ScrollTo(row+1, col)
970 return nil
971 }
972 if event.Key() == tcell.KeyRune && event.Rune() == 'k' {
973 row, col := helpText.GetScrollOffset()
974 if row > 0 {
975 helpText.ScrollTo(row-1, col)
976 }
977 return nil
978 }
979 // gg - go to top
980 if event.Key() == tcell.KeyRune && event.Rune() == 'g' {
981 if lastKeyWasG {
982 helpText.ScrollToBeginning()
983 lastKeyWasG = false
984 return nil
985 }
986 lastKeyWasG = true
987 go func() {
988 time.Sleep(500 * time.Millisecond)
989 lastKeyWasG = false
990 }()
991 return nil
992 }
993 // G - go to bottom
994 if event.Key() == tcell.KeyRune && event.Rune() == 'G' {
995 helpText.ScrollToEnd()
996 return nil
997 }
998 // Ctrl-d/u for page scrolling
999 if event.Key() == tcell.KeyCtrlD {

Callers 1

drawUIFunction · 0.85

Calls 1

getHelpContentFunction · 0.85

Tested by

no test coverage detected