Pythonプレースホルダー
「Pythonプレースホルダー」は、スニペット挿入時にユーザーがPythonの実行結果をドキュメントに展開する「プレースホルダー」です。Pythonプレースホルダーのフォーマット
「Pythonプレースホルダー」のフォーマットは、以下のようになります。
$<Pythonの実行コード>
Pythonの実行コード
Pythonの実行コードを記述します。戻り値がドキュメントに展開されます。
通常のPythonと同様の記述が可能です。
Pythonプレースホルダーに番号を指定するには
「Pythonプレースホルダー」に番号を設定することができます。番号を指定すると、「シンプルプレースホルダー」のようにユーザーが「Tab」キーで「シェルプレースホルダー」に移動できるようになります。
番号は以下のように設定します。
$<番号:Pythonの実行コード>
番号について
番号の扱いについては、「シンプルプレースホルダー」を参考にしてください。番号が設定された「シェルプレースホルダー」は、デフォルト値をPythonの実行コードの戻り値に置き換えた「シンプルプレースホルダー」と捉えることができます。
他のプレースホルダーの内容を参照するには
Pythonの実行コード内で、他のプレースホルダーの内容を参照することができます。他のプレースホルダーの内容を参照するには、以下のように記述します。
$プレースホルダーの番号
スニペットの記述例
例えば、以下のようにスニペットを記述します。
ユーザー名:${1:Ubuntu}
ユーザー名(小文字):$<
userName=$1
return userName.lower()
>
ユーザー名(小文字):$<
userName=$1
return userName.lower()
>
Pythonの実行コード内の「$1」の内容は、「${1:Ubuntu}」の内容に置き換わります。
参照元の内容が変わった場合
スニペットをドキュメントに挿入したあと、ユーザーがPythonの実行コード内で参照している他のプレースホルダーの内容を編集した場合、Pythonの実行コードが再実行されます。Pythonの実行コード内で参照している他のプレースホルダーの内容が反映されます。
「ミラープレースホルダー」と同じ扱いになります。
他のプレースホルダーを参照するには
上記の「他のプレースホルダーの内容を参照する」と似ていますが、こちらは「プレースホルダー」そのものの参照です。他のプレースホルダーを参照するには、以下のように記述します。
$<[番号]:Pythonの実行コード>
複数の「プレースホルダー」を参照する場合
他のプレースホルダーを参照するには、以下のように参照する「プレースホルダー」の番号を「,」で区切って記述します。
$<[番号,番号,番号,・・・]:Pythonの実行コード>
番号について
参照する「プレースホルダー」の番号を指定します。スニペットをドキュメントに挿入したあと、参照先の「プレースホルダー」の内容が編集されると、Pythonの実行コードが再実行されます。
「ミラープレースホルダー」と同じ扱いになります。
スニペットの記述例
例えば、以下のようにスニペットを記述します。
ユーザー名:${1:Ubuntu}
ユーザー名(小文字):$<
global userName
userName=$1
return userName.lower()
>
ユーザー名(大文字):$<[1]:
return userName.upper()
>
ユーザー名(小文字):$<
global userName
userName=$1
return userName.lower()
>
ユーザー名(大文字):$<[1]:
return userName.upper()
>
「$<[1]:・・・>」は1番の「シンプルプレースホルダー」を参照しているため、「${1:Ubuntu}」の内容が編集されると、Pythonの実行コードが再実行されます。
変数の共有
Python実行コード内で「global」による変数の宣言が行われている場合、他の「Pythonプレースホルダー」でもその変数を参照できるようになります。スニペットの記述例
例えば、以下のようにスニペットを記述します。
ユーザー名:${1:Ubuntu}
ユーザー名(小文字):$<
global userName
userName=$1
return userName.lower()
>
ユーザー名(大文字):$<[1]:
return userName.upper()
>
ユーザー名(小文字):$<
global userName
userName=$1
return userName.lower()
>
ユーザー名(大文字):$<[1]:
return userName.upper()
>
「userName」変数は「global」で宣言されているため、他の「Pythonプレースホルダー」から「userName」変数を参照できるようになります。
ただし番号が設定されている「Pythonプレースホルダー」から他の「Pythonプレースホルダー」で宣言されている変数は参照できません。
スニペットの記述例
スニペットの記述例です。
ユーザー名:${1:Ubuntu}
ユーザー名(小文字):$<
global userName
userName=$1
return userName.lower()
>
ユーザー名(大文字):$<[1]:
return userName.upper()
>
日付:$<2:
import datetime
return str(datetime.date.today())
>
ユーザー名(小文字):$<
global userName
userName=$1
return userName.lower()
>
ユーザー名(大文字):$<[1]:
return userName.upper()
>
日付:$<2:
import datetime
return str(datetime.date.today())
>
スニペットの使用例
ドキュメントに上記のスニペットを挿入すると、以下のようになります。1.タブの入力
スニペットを挿入するため、上記のスニペットに設定してある「タブ」を入力します。2.スニペットの挿入
「Tab」キーを押すと、以下のようにスニペットの内容がドキュメントに展開されます。番号が設定された「Pythonプレースホルダー」は、実線の枠で表示されます。
番号が設定されていないが、他のプレースホルダーを参照している「Pythonプレースホルダー」は、点線の枠で表示されます。
番号が設定されておらず、他のプレースホルダーを参照していない「Pythonプレースホルダー」は、通常の文字列に展開されます。
すべての「プレースホルダー」の中で最も番号の小さい「${1:Ubuntu} 」に、フォーカスが設定されています。