Delphi のフォーマッタで無関係な変数の大文字小文字が揃えられてしまう

 Delphi のフォーマッタで無関係な変数の大文字小文字が揃えられてしまう

デフォルトで下記のようになっている
「その他の単語の大文字・小文字表記」= 最初の出現どおり

下記のようなコードの場合
  1. interface  
  2.   
  3. uses  
  4.     System.Hash;  
  5.   
  6. type  
  7.     TFoo = class(TObject)  
  8.     private  
  9.         FHash: string;  
  10.     public  
  11.         property hash: string read FHash;  
  12.     end;  
  13.   
  14.   
  15.     TFooRec = record  
  16.         hash: string;  
  17.     end;  
フォーマッタを実行すると
System.Hash を最初の出現とみなしてしまい
  1. interface  
  2.   
  3. uses  
  4.     System.Hash;  
  5.   
  6. type  
  7.     TFoo = class(TObject)  
  8.     private  
  9.         FHash: string;  
  10.     public  
  11.         property Hash: string read FHash;  
  12.     end;  
  13.   
  14.   
  15.     TFooRec = record  
  16.         Hash: string;  
  17.     end;  
となってしまう

言語的に問題ないように見えますが、RTTIを使用している場合、大文字小文字が変更されて設計と違う結果になってしまうことがあります(TJsonSerializer を利用して、問題に遭遇しました)

フォーマッタの設定を変更すれば回避できますが、デフォルト設定がそれであるため、別環境を構築してフォーマッタを実行しただけで、書き換えられてしまうという問題を抱えたままとなります。コンパイルで問題を発見できない事も問題です。
フォーマッタの例外オプションを探しましたが見つからないため、該当部分を別ファイルへ抜き出して uses で参照することとしました


コメント