マクロ実装例 (Examples)

すぐに使える実用的なマクロのスニペット集です。各コードの冒頭にあるメタデータ設定(Permissions等)も併せてコピーして使用してください。

1. 現在のファイルに行番号を付与

エディタで開いているテキストの各行の先頭に行番号を挿入します。

// 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("行番号を付与しました");
2. SQLite データの表示

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("データが見つかりませんでした");
}
3. 外部API (GitHub) との連携

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);
4. ディレクトリ内の全ファイル名出力

ファイル一覧を取得し、ログに出力します。

// Name: List Files
// Permissions: stat

const files = await Editor.getFiles();

Editor.log(files.join("\n"));

← Back to Index