github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/pkg/interactive/autocomplete_suggestions.go (about) 1 package interactive 2 3 import ( 4 "github.com/c-bata/go-prompt" 5 "sort" 6 ) 7 8 type autoCompleteSuggestions struct { 9 schemas []prompt.Suggest 10 unqualifiedTables []prompt.Suggest 11 unqualifiedQueries []prompt.Suggest 12 tablesBySchema map[string][]prompt.Suggest 13 queriesByMod map[string][]prompt.Suggest 14 mods []prompt.Suggest 15 } 16 17 func newAutocompleteSuggestions() *autoCompleteSuggestions { 18 return &autoCompleteSuggestions{ 19 tablesBySchema: make(map[string][]prompt.Suggest), 20 queriesByMod: make(map[string][]prompt.Suggest), 21 } 22 } 23 func (s autoCompleteSuggestions) sort() { 24 sortSuggestions := func(s []prompt.Suggest) { 25 sort.Slice(s, func(i, j int) bool { 26 return s[i].Text < s[j].Text 27 }) 28 } 29 30 sortSuggestions(s.schemas) 31 sortSuggestions(s.unqualifiedTables) 32 sortSuggestions(s.unqualifiedQueries) 33 for _, tables := range s.tablesBySchema { 34 sortSuggestions(tables) 35 } 36 for _, queries := range s.queriesByMod { 37 sortSuggestions(queries) 38 } 39 }