Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var SearchCmd = &cobra.Command{ Use: "search <keywords>", Short: "Search CANARY tokens by keywords", Long: `Search tokens by keywords across feature names, requirement IDs, keyword tags, file paths, test names, and bench names. Keywords are matched case-insensitively using LIKE queries.`, Args: cobra.MinimumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { prompt, _ := cmd.Flags().GetString("prompt") if prompt != "" { if _, err := utils.LoadPrompt(prompt); err != nil { return err } } dbPath, _ := cmd.Flags().GetString("db") jsonOutput, _ := cmd.Flags().GetBool("json") limit, _ := cmd.Flags().GetInt("limit") var effLimit int if limit < 0 { effLimit = math.MaxInt32 } else { effLimit = utils.EffectiveLimit(limit, defaultSearchLimit) } keywords := strings.Join(args, " ") projectID := utils.ReadProjectID(cmd) db, err := utils.OpenIndexRO(cmd, dbPath) if err != nil { return err } defer func() { _ = db.Close() }() tokens, err := db.SearchTokens(projectID, keywords, effLimit) if err != nil { return utils.GuardContract(cmd, err) } if jsonOutput { if tokens == nil { tokens = []*storage.Token{} } enc := json.NewEncoder(os.Stdout) return enc.Encode(tokens) } if len(tokens) == 0 { fmt.Printf("No tokens found for: %s\n", keywords) return nil } fmt.Printf("Search results for '%s' (%d tokens):\n\n", keywords, len(tokens)) for _, token := range tokens { fmt.Printf("📌 %s - %s\n", token.ReqID, token.Feature) fmt.Printf(" Status: %s | Priority: %d | %s:%d\n", token.Status, token.Priority, token.FilePath, token.LineNumber) if token.Keywords != "" { fmt.Printf(" Tags: %s\n", token.Keywords) } fmt.Println() } if effLimit > 0 && len(tokens) == effLimit { fmt.Printf("(showing %d; use --limit -1 for all)\n", effLimit) } return nil }, }
CANARY: REQ=ENG-4309; FEATURE="SearchCmd"; ASPECT=CLI; STATUS=IMPL; OWNER=canary; UPDATED=2025-10-16
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.