Move checking of forced compact mode into helper functions to ensure it is checked everywhere (follow up to #237)

This commit is contained in:
David Dworken 2024-08-11 11:46:54 -07:00
parent eb7af4b276
commit 02f6934d9d
No known key found for this signature in database

View File

@ -94,9 +94,6 @@ type model struct {
// The currently executing shell. Defaults to bash if not specified. Used for more precise AI suggestions. // The currently executing shell. Defaults to bash if not specified. Used for more precise AI suggestions.
shellName string shellName string
// Compacting TUI config
compactTUIflag bool
} }
type doneDownloadingMsg struct{} type doneDownloadingMsg struct{}
@ -147,7 +144,7 @@ func initialModel(ctx context.Context, shellName, initialQuery string) model {
queryInput.SetValue(initialQuery) queryInput.SetValue(initialQuery)
} }
CURRENT_QUERY_FOR_HIGHLIGHTING = initialQuery CURRENT_QUERY_FOR_HIGHLIGHTING = initialQuery
return model{ctx: ctx, spinner: s, isLoading: true, table: nil, tableEntries: []*data.HistoryEntry{}, runQuery: &initialQuery, queryInput: queryInput, help: help.New(), shellName: shellName, compactTUIflag: cfg.ForceCompactMode} return model{ctx: ctx, spinner: s, isLoading: true, table: nil, tableEntries: []*data.HistoryEntry{}, runQuery: &initialQuery, queryInput: queryInput, help: help.New(), shellName: shellName}
} }
func (m model) Init() tea.Cmd { func (m model) Init() tea.Cmd {
@ -399,21 +396,24 @@ func (m model) View() string {
additionalMessages = append(additionalMessages, fmt.Sprintf("%s Executing search query...", m.spinner.View())) additionalMessages = append(additionalMessages, fmt.Sprintf("%s Executing search query...", m.spinner.View()))
} }
additionalMessagesStr := strings.Join(additionalMessages, "\n") + "\n" additionalMessagesStr := strings.Join(additionalMessages, "\n") + "\n"
if isExtraCompactHeightMode() || m.compactTUIflag { if isExtraCompactHeightMode(m.ctx) {
additionalMessagesStr = "\n" additionalMessagesStr = "\n"
} }
helpView := m.help.View(loadedKeyBindings) helpView := m.help.View(loadedKeyBindings)
if isExtraCompactHeightMode() || m.compactTUIflag { if isExtraCompactHeightMode(m.ctx) {
helpView = "" helpView = ""
} }
additionalSpacing := "\n" additionalSpacing := "\n"
if isCompactHeightMode() || m.compactTUIflag { if isCompactHeightMode(m.ctx) {
additionalSpacing = "" additionalSpacing = ""
} }
return fmt.Sprintf("%s%s%s%sSearch Query: %s\n%s%s\n", additionalSpacing, additionalMessagesStr, m.banner, additionalSpacing, m.queryInput.View(), additionalSpacing, renderNullableTable(m, helpView)) + helpView return fmt.Sprintf("%s%s%s%sSearch Query: %s\n%s%s\n", additionalSpacing, additionalMessagesStr, m.banner, additionalSpacing, m.queryInput.View(), additionalSpacing, renderNullableTable(m, helpView)) + helpView
} }
func isExtraCompactHeightMode() bool { func isExtraCompactHeightMode(ctx context.Context) bool {
if hctx.GetConf(ctx).ForceCompactMode {
return true
}
_, height, err := getTerminalSize() _, height, err := getTerminalSize()
if err != nil { if err != nil {
hctx.GetLogger().Infof("got err=%v when retrieving terminal dimensions, assuming the terminal is reasonably tall", err) hctx.GetLogger().Infof("got err=%v when retrieving terminal dimensions, assuming the terminal is reasonably tall", err)
@ -422,7 +422,10 @@ func isExtraCompactHeightMode() bool {
return height < 15 return height < 15
} }
func isCompactHeightMode() bool { func isCompactHeightMode(ctx context.Context) bool {
if hctx.GetConf(ctx).ForceCompactMode {
return true
}
_, height, err := getTerminalSize() _, height, err := getTerminalSize()
if err != nil { if err != nil {
hctx.GetLogger().Infof("got err=%v when retrieving terminal dimensions, assuming the terminal is reasonably tall", err) hctx.GetLogger().Infof("got err=%v when retrieving terminal dimensions, assuming the terminal is reasonably tall", err)
@ -443,7 +446,7 @@ func renderNullableTable(m model, helpText string) string {
} }
helpTextLen := strings.Count(helpText, "\n") helpTextLen := strings.Count(helpText, "\n")
baseStyle := getBaseStyle(*hctx.GetConf(m.ctx)) baseStyle := getBaseStyle(*hctx.GetConf(m.ctx))
if isCompactHeightMode() && helpTextLen > 1 { if isCompactHeightMode(m.ctx) && helpTextLen > 1 {
// If the help text is expanded, and this is a small window, then we truncate the table so that the help text displays on top of it // If the help text is expanded, and this is a small window, then we truncate the table so that the help text displays on top of it
lines := strings.Split(baseStyle.Render(m.table.View()), "\n") lines := strings.Split(baseStyle.Render(m.table.View()), "\n")
truncated := lines[:len(lines)-helpTextLen] truncated := lines[:len(lines)-helpTextLen]
@ -664,10 +667,10 @@ func makeTable(ctx context.Context, shellName string, rows []table.Row) (table.M
return table.Model{}, err return table.Model{}, err
} }
tuiSize := 12 tuiSize := 12
if isCompactHeightMode() { if isCompactHeightMode(ctx) {
tuiSize -= 2 tuiSize -= 2
} }
if isExtraCompactHeightMode() { if isExtraCompactHeightMode(ctx) {
tuiSize -= 3 tuiSize -= 3
} }
tableHeight := min(TABLE_HEIGHT, terminalHeight-tuiSize) tableHeight := min(TABLE_HEIGHT, terminalHeight-tuiSize)