diff --git a/macro.go b/macro.go index 789277b..7c01bc9 100644 --- a/macro.go +++ b/macro.go @@ -25,7 +25,8 @@ func AddMacro(s string, m Macro) { macros["_"+s] = m } -func parseMacro(s string) carapace.Action { +// ActionMacro completes given macro +func ActionMacro(s string) carapace.Action { r := regexp.MustCompile(`^\$(?P[^(]*)(\((?P.*)\))?$`) if !r.MatchString(s) { return carapace.ActionMessage(fmt.Sprintf("malformed macro: '%v'", s)) diff --git a/spec.go b/spec.go index 64e5249..de25b91 100644 --- a/spec.go +++ b/spec.go @@ -119,7 +119,7 @@ func parseAction(cmd *cobra.Command, arr []string) carapace.Action { if elemSubst, err := c.Envsubst(elem); err != nil { batch = append(batch, carapace.ActionMessage(fmt.Sprintf("%v: %v", err.Error(), elem))) } else if strings.HasPrefix(elemSubst, "$") { // macro - batch = append(batch, parseMacro(elemSubst)) + batch = append(batch, ActionMacro(elemSubst)) } else { vals = append(vals, parseValue(elemSubst)...) }