@@ -47,20 +47,7 @@ func NewSQLDatabase(dataSourceName string) (*SQLDatabase, error) {
47
47
48
48
func NewHelp () map [string ]map [string ]string {
49
49
defaultSQLHelp := "A SQL keyword"
50
- // defaultGoalHelp := "A Goal keyword"
51
- goalGlobalsHelp := GoalGlobalsHelp ()
52
- goalKeywordsHelp := GoalKeywordsHelp ()
53
- goalSyntaxHelp := GoalSyntaxHelp ()
54
- goalHelp := make (map [string ]string , len (goalGlobalsHelp )+ len (goalKeywordsHelp )+ len (goalSyntaxHelp ))
55
- for k , v := range goalGlobalsHelp {
56
- goalHelp [k ] = v
57
- }
58
- for k , v := range goalKeywordsHelp {
59
- goalHelp [k ] = v
60
- }
61
- for k , v := range goalSyntaxHelp {
62
- goalHelp [k ] = v
63
- }
50
+ goalHelp := GoalKeywordsHelp ()
64
51
sqlKeywords := SQLKeywords ()
65
52
sqlHelp := make (map [string ]string , len (sqlKeywords ))
66
53
for _ , x := range sqlKeywords {
@@ -76,8 +63,19 @@ func NewHelp() map[string]map[string]string {
76
63
func NewContext (dataSourceName string ) (* Context , error ) {
77
64
ctx := Context {}
78
65
helpDictionary := NewHelp ()
79
- // TODO HERE IS WHERE WE Wrap() a function that closes over helpDictionary to provide lookups for user-added help strings
80
- help := Help {Dictionary : helpDictionary , Func : help .HelpFunc ()}
66
+ ariHelpFunc := func (s string ) string {
67
+ goalHelp , ok := helpDictionary ["goal" ]
68
+ if ! ok {
69
+ panic (`Developer Error: Dictionary in Help must have a \"goal\" entry.` )
70
+ }
71
+ help , found := goalHelp [s ]
72
+ if found {
73
+ return help
74
+ }
75
+ return ""
76
+ }
77
+ helpFunc := help .Wrap (ariHelpFunc , help .HelpFunc ())
78
+ help := Help {Dictionary : helpDictionary , Func : helpFunc }
81
79
sqlDatabase , err := NewSQLDatabase (dataSourceName )
82
80
if err != nil {
83
81
return nil , err
0 commit comments