2016年3月9日水曜日

Code alignment Visual Studio拡張

ふと思い立って検索したところ,Code alignmentというVisual Studioの拡張機能を見つけました.
名前の通り,コードの整列をしてくれる拡張機能です.なお,Notepad++にも対応しているようです.

例えば,こんなコードがあったとします.
DXGI_SWAP_CHAIN_DESC SwapChainDesc{};
SwapChainDesc.BufferDesc.Width = Width;
SwapChainDesc.BufferDesc.Height = Height;
SwapChainDesc.BufferDesc.RefreshRate.Numerator = 60;
SwapChainDesc.BufferDesc.RefreshRate.Denominator = 1;
SwapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
SwapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;
SwapChainDesc.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
SwapChainDesc.SampleDesc.Count = 1;
SwapChainDesc.SampleDesc.Quality = 0;
SwapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
SwapChainDesc.BufferCount = 1;
SwapChainDesc.OutputWindow = hWnd;
SwapChainDesc.Windowed = TRUE;
SwapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
SwapChainDesc.Flags = 0;

Ctrl+Shift+;でダイアログを表示し,そろえるための文字を指定します.
例えば,"="を指定すると,次のようになります.

SwapChainDesc.BufferDesc.Width                   = Width;
SwapChainDesc.BufferDesc.Height                  = Height;
SwapChainDesc.BufferDesc.RefreshRate.Numerator   = 60;
SwapChainDesc.BufferDesc.RefreshRate.Denominator = 1;
SwapChainDesc.BufferDesc.Format                  = DXGI_FORMAT_R8G8B8A8_UNORM;
SwapChainDesc.BufferDesc.ScanlineOrdering        = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;
SwapChainDesc.BufferDesc.Scaling                 = DXGI_MODE_SCALING_UNSPECIFIED;
SwapChainDesc.SampleDesc.Count                   = 1;
SwapChainDesc.SampleDesc.Quality                 = 0;
SwapChainDesc.BufferUsage                        = DXGI_USAGE_RENDER_TARGET_OUTPUT;
SwapChainDesc.BufferCount                        = 1;
SwapChainDesc.OutputWindow                       = hWnd;
SwapChainDesc.Windowed                           = TRUE;
SwapChainDesc.SwapEffect                         = DXGI_SWAP_EFFECT_DISCARD;
SwapChainDesc.Flags                              = 0;

ブログの幅の関係で汚く見えるかもしれませんが,Visual Studio上で見る分にはスッキリして見えます.

また,よく使うパターンについてはショートカットが用意されています.
Tools(ツール) > Options(オプション) > Environment(環境) > Keyboard(キーボード)でEdit.Alignあたりまでを検索ボックスに入力すると,ショートカットが確認でき,ショートカットキーを割り当てることができます.

例えば,Edit.AlignByEqual(=で整列),Edit.AlignByEqualEqual(==で整列)などがあるようです.