1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Visual DでUncrustifyVSを使う

Last updated at Posted at 2015-04-18

整形ツールがVisual Dで使えると便利だと思い、色々と試行錯誤をしたときのメモを残す。

1.整形ツールを探す。

UniversalIndentGUIを見つける。これはフロントエンドだ。
整形ツールがD言語に対応するのは、Uncrustifyだけしかない。

インストールして試すが、うまく動かない。
プレビューは変更されているが、ファイルが整形されていない。
どこか設定ミスをしているようだが、分からずあきらめる。

2.Uncrustify をコマンドラインで使ってみる。

最初、設定ファイルで悩む。
cfgフォルダにd.cfgがあるのを発見する。
コマンドを打つのが面倒だが、整形ができた。

3.Visual StudioのAddin UncrustifyVS を導入する。 

偶然にAddinのUncrustifyVSを見つける。
そのままでは、D言語の整形ができなかったが、設定ファイルを指定する事で整形ができた。

1.インストール

その前にUncrustifyをインストールしておいて下さい。
uncrustify
uncrustify-0.61.3-gf65394e-win32.zipをダウンロードしてください。
この写真の例では、C:\bin\uncrustifyにインストールしています。

UncrustifyVSを検索してインストールして下さい。(画像1、2枚目)

install1.png
install2.png

2.設定

設定の方法を変えました。
3 追記(2015年5月12日)を読んでください。

menu.png
options.png

UncrustifyVSのオプションを設定します。(画像3、4枚目)
Configuration File (設定ファイルの指定)に 
C:\bin\uncrustify\cfg\d.cfg
Uncrustify (uncrustifyの実行ファイル指定)に 
C:\bin\uncrustify\uncrustify.exe
を設定します。

*注 上記の設定はUncrustifyをC:\bin\uncrustifyにインストールした場合の設定です。

3追記(2015年5月12日)

設定を変えました。
options_2.png

CommandLine を選択して直接編集します。
-c "%CFGFILE%" -q -l %lANGUAGE% --no-backup "%FILE%"
の%lANGUAGE% を削除して、D に変えます。
-c "%CFGFILE%" -q -l D --no-backup "%FILE%"

Configuration File (設定ファイルの指定)は空白にします。 

オプション指定の仕方は、
http://manpages.ubuntu.com/manpages/lucid/man1/uncrustify.1.html)
ここを参考にしました。

4使い方

使い方は、整形したいファイルを表示させてから、
TOOL -> UncrustifyVS -> Format Document で整形ができます。
編集した状態なので、ファイルの保存を行ってください。

選択範囲のみ整形したいときは、
TOOL -> UncrustifyVS -> Format Selection で整形できます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?