小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


Visual Studio 2013でリファクタリングを行う方法

はじめに

Visual Studio Community 2013でC++のソースプログラムのリファクタリング(名前変更)を行う方法について書いています。

Microsoft Visual Studio Professional 2013  通常版
マイクロソフト (2013-11-29)
売り上げランキング: 250

ざっくり言うと
  • Visual Studio 2013にはリファクタリングの機能がない。
  • Visual C++ Refactoringという拡張機能でリファクタリングできる。
  • Visual Studio 2015にはリファクタリング機能が搭載される模様。
変数名の変更

たとえば、以下のようなコードがあります。

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
  int i = 0;
  
  for(i=0;i<5;i++)
  {
    for(int i=0;i<10;i++)
    {
      printf("%d\n", i);
    }
    printf("%d\n", i);
  }
  return 0;
}

このコード変数名とスコープに問題があって、C4258の警告が表示されます。

C4258: 'i' : for ループからの定義は無視されます。外側のスコープからの定義が使われます。

変数名が重複していなければ問題にならないので、変数の名前を一気に変更してみます。

Visual C++ Refactoring

Visual C++ RefactoringというVisual Studioの拡張機能(無料)を使うと、名前の変更ができます。

Visual C++ Refactoring extensionVisual C++ Refactoring extension
拡張機能をインストールしたら、Visual Studioを再起動します。

リファクタリングしてみる

名前を変更したい変数を選択して、右クリックからリファクター(R)→名前の変更(R)を選択します。
f:id:replication:20150530200919p:plain
以下のようなダイアログが表示され、あたらしい変数名を入力します。
f:id:replication:20150530200934p:plain
一括変更する前のプレビュー画面が表示されます。この画面で変更する箇所が事前に確認できます。
f:id:replication:20150530200955p:plain
変更されたソースコード
f:id:replication:20150530201126p:plain

おわりに

Visual C++ Refactoringはリファクタリングといっても名前の変更にしか対応していません。
今後の開発が期待されますが、Visual Studio 2015にはリファクタリング機能が搭載される模様。

Visual Studio 2015 で強化されたリファクタリング機能について - 銀の光と碧い空Visual Studio 2015 で強化されたリファクタリング機能について - 銀の光と碧い空

関連記事