1

ソースコード(SMPClass1のような直接的なものとSmalltalkのような間接的なもの:#SMPClass2)やクラスとメソッドのコメントの参照を含め、接頭辞SMPで始まるすべてのクラスの名前をRSに変更したいと思います。現在のRBParseTreeRewriterはこれを実行できますか?解析ツリーリライターがない場合の同等のものは次のようになります。

Smalltalk allClassesDo: [ :class |
(class name beginsWith: 'SW2')
    ifTrue: [ class rename: 'PR' , (class name allButFirst: 3) ] ].
4

2 に答える 2

3

はい、これはできますが、RBParseTreeRewriter(これはリファクタリングによって内部的に使用されるソースコードを書き換えるための低レベルのツールです) ではできません。

OmniBrowser のコンテキスト メニューでRefactor > Class Regexを選択します。次に、テンプレートを次のように変更して受け入れます。

ORClassRegexRefactoring new
  renameClasses;
  replace: '^SW2(.*)$' with: 'PR$1' ignoreCase: false;
  yourself

これにより、すべてのクラスと参照の名前が自動的に変更されます。

于 2011-07-30T07:27:02.610 に答える
0

別の方法は、単一のパッケージ内のクラスの名前を変更して、次のコードを作成することです。

(SystemOrganizer default classesInCategory: 'my pakage name') do: [ :class |
    "Adding the prefix PRE classes"
    (class name beginsWith: 'PRE') ifFalse: [ class rename: 'PRE' , class name ] 
]
于 2012-12-18T15:13:12.820 に答える