13

私が使用するエディター用の Scala プラグインを作成しています。これは、使用されていないすべてのコード パス (使用されていないdefsvalsclassesおよびである可能性がありますimplicits) を強調表示し、それらをファイルからヤンクするオプションをユーザーに提供し.scalaます。

これどうやってするの?問題を単純化するために、ライブラリやその他のコード ファイルへの外部依存関係のないルート レベルファイルが1 つだけあると仮定しましょう。.scala

理想的には、これを SBT プラグインにして、そのようなファイルを 1 つ指定すると、未使用のコードがすべて削除されたファイルをFoo.scala吐き出すことを望みます。Foo_min.Scala

4

3 に答える 3

1

Scalafix はこれを書き直しました: RemoveUnusedImports

次の指示に従って実行してください: https://scalacenter.github.io/scalafix/#Installation

于 2017-07-28T00:29:01.250 に答える
0

あなたは基本的にcallgraphを探しています。

Dotty Linkerには、完全ではあるが複雑な Scala コードのコールグラフが実装されています。これは最新技術です。ただし、より簡単なコールグラフを作成することでさえ、簡単な作業ではありません。メタ実装がそのようなタスクを実行するように制限されていても、私は驚かないでしょう。特に、typerの後にメタ マクロが展開されるという事実を考えると、 Implicit と scope には非常に注意する必要があります

独自のコールグラフを作成するには、シンボル、型、および暗黙の検索が必要です。残念ながら、Scala Meta 2.0 のセマンティック API がリリースされるまでお待ちください。

于 2016-09-16T18:21:25.803 に答える