すぐに使える実用的なマクロのスニペット集です。各コードの冒頭にあるメタデータ設定(Permissions等)も併せてコピーして使用してください。
エディタで開いているテキストの各行の先頭に行番号を挿入します。
// Name: Add Line Numbers
// Permissions: editor_read editor_write
const content = await Editor.getActiveContents();
const lines = content.split('\n');
const numbered = lines.map((line, i) => `${i + 1}: ${line}`).join('\n');
await Editor.setActiveContents(numbered);
Editor.info("行番号を付与しました");
SQLiteデータベースからデータを抽出し、JavaScriptリテラル表記としてコンソールに表示します。
// Name: DB Summary
// Permissions: sql_query
// ユーザーテーブルからアクティブなユーザーを取得
const sql = "SELECT id, name, email FROM users WHERE status = 'active' LIMIT 10";
const results = await Editor.query(sql);
if (Array.isArray(results) && results.length > 0) {
Editor.log("アクティブユーザー一覧");
Editor.log(results[0]);
} else {
Editor.warn("データが見つかりませんでした");
}
GitHub APIを使用してリポジトリ情報を取得し、エディタに挿入します。fetch を有効化するために Allow 設定を利用します。
// Name: Fetch GitHub Info
// Permissions: console_input rich_console
// Allow: https://api.github.com/repos/*
const repo = await Editor.input("リポジトリ名 (例: user/repo)", "text");
if (!repo) return;
const response = await fetch(`https://api.github.com/repos/${repo}`);
const data = await response.json();
const info = `
### Repository: ${data.full_name}
- Stars: ${data.stargazers_count}
- Description: ${data.description}
`;
await Editor.mdLog(info);
ファイル一覧を取得し、ログに出力します。
// Name: List Files
// Permissions: stat
const files = await Editor.getFiles();
Editor.log(files.join("\n"));