feat: show top-level option set as a separate facet
4 files changed, 10 insertions(+), 1 deletion(-)
M internal/importer/options.go → internal/importer/options.go
@@ -177,6 +177,11 @@ if len(loc) > 1 { parents = strings.Join(loc[:len(loc)-1], ".") } + var optionSet string + if len(loc) >= 1 { + optionSet = loc[0] + } + // log.Debug("sending option", "name", kv.Key) if !yield(nix.Option{ Name: kv.Key,@@ -188,6 +193,7 @@ Example: exampleDocs, RelatedPackages: nixdocs.Markdown(relatedPackages), Loc: loc, Parents: parents, + OptionSet: optionSet, Type: optType, ImportedAt: time.Now(), }) {
M internal/index/indexer.go → internal/index/indexer.go
@@ -155,6 +155,7 @@ nameNGramMapping, ) optionMapping.AddFieldMappingsAt("Source", identityFieldMapping) optionMapping.AddFieldMappingsAt("Loc", locFieldMapping) + optionMapping.AddFieldMappingsAt("OptionSet", identityFieldMapping) optionMapping.AddFieldMappingsAt("Parents", locFieldMapping) optionMapping.AddFieldMappingsAt("RelatedPackages", textFieldMapping) optionMapping.AddFieldMappingsAt("Description", descriptionFieldMapping)
M internal/index/search.go → internal/index/search.go
@@ -258,7 +258,8 @@ search.AddFacet("Package set", bleve.NewFacetRequest("PackageSet", 10)) search.AddFacet("Platform", bleve.NewFacetRequest("Platforms", 10)) } if opts.Source.Importer.Includes(config.Options) { - search.AddFacet("Option set", bleve.NewFacetRequest("Parents", 10)) + search.AddFacet("Option set", bleve.NewFacetRequest("OptionSet", 10)) + search.AddFacet("Parent options", bleve.NewFacetRequest("Parents", 10)) } if opts.From != 0 {
M internal/nix/option.go → internal/nix/option.go
@@ -25,6 +25,7 @@ Default *Docs `json:",omitempty"` Description nixdocs.Markdown Example *Docs `json:",omitempty"` Loc []string + OptionSet string Parents string RelatedPackages nixdocs.Markdown `json:",omitempty"` Type string