Give me something like this:
import (
// these are compiled ahead of time
Queries "bennypowers.dev/cem/generate/queries"
)
func GetCustomElementDeclarations(
file string,
code string,
) (err error, declarations []manifest.CustomElementDeclaration) {
queryName := "customElementDeclaration"
q := Queries.CustomElementDeclarationQuery.parse(code)
defer q.Close()
for match := range q.Matches() {
declaration = &manifest.ClassDeclaration{ Kind: "class" }
if captures.Has("class.name") {
return errors.Join(err, Queries.&NoCaptureError{ "class.name", q }), nil
}
declaration.ClassLike.Name = match.captures.GetConcatenatedText("class.name")
// ... etc
}
}
Give me something like this: