コンテンツへスキップ
🛠️ToolsShed

VS Code Snippet Generator

任意の言語のタブストップ、プレースホルダー、変数構文を使用したカスタムVS Code スニペットを作成します。

$1, $2 をタブストップに使用; ${1:placeholder} をデフォルト値に使用; $0 を最終カーソル位置に使用

{
  "My Snippet": {
    "prefix": "mysnippet",
    "body": [
      "console.log($1);"
    ],
    "description": ""
  }
}

このツールについて

VS Code スニペットは、キーボード トリガーから展開される再利用可能なコード ブロックで、繰り返しのタイピングを減らすことで開発を劇的に高速化します。ボイラープレート コードを毎回手作業で記述する代わりに、タブストップでマーク済みのプレースホルダー位置を持つスニペットを 1 回定義すれば、短い接頭辞を入力することで直ちに呼び出せます。スニペットは真摯な開発者にとって不可欠です。タイピング時間を削減し、入力間違いを減らし、プロジェクト全体で一貫したコーディング パターンを強制できます。

この VS Code スニペット ジェネレーターは、コードを適切なスニペット構文に変換し、タブストップ($1、$2、$3)、オプション テキスト用のプレースホルダー、$TM_FILENAME や $CURRENT_YEAR などの VS Code 変数に完全対応しています。Body フィールドにコード ブロックを貼り付け、カーソルがジャンプすべき位置を $1(最初のストップ)、$2(2 番目のストップ)などでマークし、短い Prefix(入力するトリガー テキスト)を定義して、Name と説明(オプション)を付けてから、完全な JSON を生成します。出力をコピーして、VS Code のユーザー スニペット フォルダの snippets.json ファイルに保存できます。

生成されたスニペットは任意の言語で機能します。言語 Scope をファイル タイプ(JavaScript、Python、Go など)に合わせて設定するか、"All Languages" のままにしておくと、普遍的に利用できます。タブストップと変数は強力です。$1 は展開後の最初のカーソル ストップを作成し、$0 は最終位置をマークし、${1:defaultText} のような式はオーバーライドしない場合にフォールバック テキストを提供します。このツールは、カスタム スニペット ライブラリを構築する開発者、チーム全体のコード テンプレートを作成する場合、または関数署名、HTML ボイラープレート、API コール構造などの頻繁なパターンを自動化するのに理想的です。

よくある質問

コード実装

import json

def generate_vscode_snippet(
    name: str,
    prefix: str,
    body: list[str],
    description: str = "",
    scope: str = ""
) -> dict:
    snippet = {
        name: {
            "prefix": prefix,
            "body": body,
            "description": description,
        }
    }
    if scope:
        snippet[name]["scope"] = scope
    return snippet

# Example: Python class snippet
snippet = generate_vscode_snippet(
    name="Python Class",
    prefix="cls",
    body=[
        "class ${1:ClassName}:",
        "    def __init__(self${2:, args}):",
        "        ${3:pass}",
        "",
        "    def __repr__(self):",
        "        return f"${1:ClassName}(${4:fields})"",
    ],
    description="Create a Python class with __init__ and __repr__",
    scope="python"
)

print(json.dumps(snippet, indent=4))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.