2011年2月6日日曜日

C#用のスニペット


VisualStudio用のスニペットを作ってみた。
まず下記のXMLを適当なフォルダに適当なファイル名(拡張子は.snippet)で保存する。
次にツール(T)>コードスニペットマネージャ(T)...からフォルダを指定して追加。
あとは、下記の一覧のショートカット(アンダースコア含む)をエディタ上で入力して、Tabキーを押せば補完できる。

ショートカット説明
_propプロパティ自動生成
_fieldフィールド自動生成
_classクラス自動生成


以下、フィルに保存するXML。ちょっと読めば雰囲気でカスタマイズ可能な内容。

プロパティ自動生成(_prop)



<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>prop</Title>
<Shortcut>_prop</Shortcut>
<Description>プロパティ用のスニペット</Description>
<Author></Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>viewname</ID>
<ToolTip>日本語名</ToolTip>
<Default>名前</Default>
</Literal>
<Literal>
<ID>type</ID>
<ToolTip>型</ToolTip>
<Default>string</Default>
</Literal>
<Literal>
<ID>property</ID>
<ToolTip>プロパティ名</ToolTip>
<Default>MyProperty</Default>
</Literal>
<Literal>
<ID>field</ID>
<ToolTip>フィールド名</ToolTip>
<Default>_field</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
/// <summery>$viewname$を設定/取得します。</summery>
public $type$ $property$
{
get{ return this.$field$; }
set{ this.$field$ = value; }
}
$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>


フィールド自動生成(_field)



<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>field</Title>
<Shortcut>_field</Shortcut>
<Description>フィールド用のスニペット</Description>
<Author></Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>viewname</ID>
<ToolTip>日本語名</ToolTip>
<Default>名前</Default>
</Literal>
<Literal>
<ID>type</ID>
<ToolTip>型</ToolTip>
<Default>string</Default>
</Literal>
<Literal>
<ID>field</ID>
<ToolTip>フィールド名</ToolTip>
<Default>_field</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
/// <summery>$viewname$</summery>
private $type$ $field$;
$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>


クラス自動生成(_class)



<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>class</Title>
<Shortcut>_class</Shortcut>
<Description>クラス用のスニペット</Description>
<Author></Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>description</ID>
<ToolTip>クラスの説明</ToolTip>
<Default></Default>
</Literal>
<Literal>
<ID>name</ID>
<ToolTip>クラス名</ToolTip>
<Default>MyClass</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[

/// <summery>
/// $description$
/// </summery>
class $name$
{
#region フィールド

#endregion

#region 初期化
/// <summery>
/// コンストラクタです。
/// </summery>
public $name$()
{}
#endregion

#region プロパティ

#endregion

#region メソッド

#endregion

}
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>



もちろん標準のスニペットもあるが、細かいところが合わなかったりするので、結局は自分で作ったほうがしっくりくる。

0 件のコメント:

コメントを投稿