Tidy.exeの説明

Tidyでできること:

  1. スペース、タブでのインデントを統一します。
  2. 全ての関数/キーワード/マクロを次のファイルで定義された適切な状態に変更します。
    1. au3.api
    2. UserFunctions.txt
  3. Userfunctions.txtのユーザー関数とスクリプト内の全てのを関数テーブルにロードします。 このオプションは前のオプションとの組み合わせ時のみ動作します。
  4. 全ての変数の大文字・小文字また"Dim/Global/Local・宣言なし"を変更します。
  5. 演算子の前後にスペースを追加したり、演算子/キーワード/関数の前後の余分なスペースを削除したりします。
  6. 空行を削除します。
  7. 行末のスペースを削除します。
  8. どのEndFuncがどの関数の終了位置かを識別しやすくするためにEndFuncの後ろにコメントを追加します。
    例: "EndFunc  ; ==> 関数名"
  9. プログラムロジックと変数、UDFの外部参照レポートのドキュメントファイルを生成します。
  10. EndIF/Wendの着け忘れやFuncの内部混入などのコーディングエラーとIF/DO/FORループをチェックします。
  11. Func-Endfuncブロックをアルファベット順にソートします。#Region-#EndRegionが使用されている場合はそのスコープ内でソートをおこないます。

例 1:

使用前 使用後


例 2:

文法上の問題がある場合、Tidyは下の例に示すような警告コメントを挿入し見つけたエラーの数を表示します。このケースではEnd if が間違っていてFuncの開始前にIfが閉じていません。コードの問題を修正し再びTidyを実行します。過去に挿入されたTidyのエラー行はTidyによって削除されます。

 

使用前 使用後

 

Tidyの実行:

Tidyを実行する方法は3つあります:

  1. Ctrl+Tを押してSciTEから実行する。
  2. プログラム Tidy.exe を実行するとファイル名用のプロンプトが立ち上がる。
  3. AU3スクリプトをマウスで右クリックしTidyを選択する。SciTE4AutoIt3インストーラを使用している場合のみ利用可能。

なにもパラメータをつけずにTidyを実行すると入力ファイル用のプロンプトが立ち上がります。

 

入力ファイルを指定するとTidyは処理を開始し、結果をSciTEの出力パネルまたはコマンドウィンドウに表示します:

Tidy AutoIt3 v2.0.0.0 Copyright (c) Jos van der Zande August 19, 2006
+> Tidy AutoIt3 finished. Original copied to:"C:\Development\winutil\AutoIt3\programs\test\BackUp\test_old5.au3"
 

Tidyのオプション設定 (Tidy.ini):

[ProgramSettings]
*** (tabchar)インデント設定: 0=タブ >0=スペース数
tabchar=0
*** Update Functions/Keywords/Macros/UDFs to Proper case
proper=1
*** 変数の更新: 1=大文字; 2=小文字; 3= 最初のDim/Local/Global または "1文字目"の種類にあわせる( Proper=1との組み合わせ時のみ)
vars=3
*** デリミタの前後のスペースを更新
delim=1
*** プログラムの関数と変数の外部参照レポートとドキュメントファイルを生成し
*** オプションでTidyの実行の最後にそれをメモ帳に表示する
Gen_Doc=0
Gen_Doc_Show=0

*** Tidy実行前のファイルのバージョンをサブディレクトリ"\Backup"に保存する。 0で全てのバックアップを保存
KeepNVersions=5
*** デフォルトのバックアップディレクトリはスクリプトディレクトリ\Backup。 他のディレクトリを使用する場合はそのディレクトリが存在している必要がある。 存在しない場合、デフォルトディレクトリが使用される!
backupDir=Directory
*** スクリプトソースから空行を削除
Remove_Empty_Lines=1
*** 1=Tidyのエラーをコンソールに表示 9=デバグ出力
ShowConsoleInfo=1
*** Tidy実行の最後にDIFFプログラムを実行し、オリジナルと最新版の間の違いを表示
ShowDiffPgm=C:\Progra~1\WinMerge\winmerge.exe "%new%" "%old%"
*** EndFuncステートメントにコメントを追加 例: "EndFunc ;==>UDF_Name".
Skip_EndFunc_Comment=1
*** EndFuncステートメントからコメントを削除
Remove_EndFunc_Comment=1
*** Regionステートメントからコメントをコピーし、それをEndRegionステートメントに追加
Skip_EndRegion_Comment=1
*** EndRegionステートメントからコメントを削除
Remove_EndRegion_Comment=1
*** 全てのFunc-Endfuncブロックをアルファベット順にソート
Sort_Funcs=1
*** Func()ステートメントの終わりのコメントのアルファベット順に全てのFunc-Endfuncブロックをソートし、関数名にする
   #Region-#EndRegionが使用されている場合は、そのスコープ内でソートをおこなう
Sort_Funcs_Comments=1
*** コメントブロックのインデントをスキップする: 0=コメントブロックをインデント (デフォルト) 1=コメントブロックをインデントしない
Skip_CommentBlock=1

 

これらの設定はTidyのコマンドラインまたはスクリプト内の#Tidy_Parametersディレクティブで次のパラメータを指定することによって上書きすることができます:

/proper または /pr=0/1
/updatevars または /uv=1/2/3

/tabchar または /tc=0
/gen_doc または /gd
/r_empty_lines または /rel 
/showconsoleinfo=0/1/9 または /sci=0/1/9
/gen_doc_show または /gds
/showdiffpgm=xyz.exe
"%new%" "%old%" または /sdp=xyz.exe"%new%" "%old%"
/noshowdiffpgm または /nsdp
/keepnversions=n または /kv=n
/backupdir=
directory または /bdir=directory
/Skip_commentblock または /scb
/Skip_EndFunc_Comment または /sefc
/Remove_EndFun_comment または /refc
/Skip_EndRegion_Comment または /serc
/remove_endregion_comment または /rerc
/sort_funcs または /sf
/sort_funcs_Comment または /sfc

 

下の例ではドキュメントファイルの生成、スクリプトの空行の削除、 Tidyプロセスの最後に違いを表示するためのWindiffをおこなわない ように上書き設定しています:

#Tidy_Parameters= /gd 1  /rel 1 /nsdp