UNPKG

codetainer

Version:

A clean and simple CLI to manage and store code snippets with ease.

37 lines (32 loc) 1.21 kB
import chalk from "chalk"; import { loadSnippets } from "../utils/snippetStore.js"; export function registerListCommand(program) { program .command("list") .option("--tag <tag>", "Filter by tag") .option("--language <lang>", "Filter by language") .description("List saved snippets") .action((options) => { const snippets = loadSnippets(); const entries = Object.entries(snippets); const filtered = entries.filter(([_, data]) => { const tagMatch = options.tag ? (data.tags || []).includes(options.tag) : true; const langMatch = options.language ? (data.language || "").toLowerCase() === options.language.toLowerCase() : true; return tagMatch && langMatch; }); if (filtered.length === 0) { console.log(chalk.yellow("No snippets found.")); return; } filtered.forEach(([name, data], i) => { const tags = data.tags?.length ? ` [${data.tags.join(", ")}]` : ""; const lang = data.language ? ` (${data.language})` : ""; console.log(`${i + 1}. ${chalk.blue(name)}${lang}${tags}`); }); }); }