package catalogue import ( "regexp" ) // settingRef is how a definition asks for an operator's value: ${setting:}. var settingRef = regexp.MustCompile(`\$\{setting:([a-z0-9][a-z0-9_.-]*)\}`) // settingsUsed is every key a file's content asks for, once each, in order of first use. func settingsUsed(content string) []string { var keys []string seen := map[string]bool{} for _, m := range settingRef.FindAllStringSubmatch(content, -1) { if !seen[m[1]] { seen[m[1]] = true keys = append(keys, m[1]) } } return keys }