問題タブ [scalameta]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 未使用のコードをすべて削除する Scala ツール
私が使用するエディター用の Scala プラグインを作成しています。これは、使用されていないすべてのコード パス (使用されていないdefs
、vals
、classes
およびである可能性がありますimplicits
) を強調表示し、それらをファイルからヤンクするオプションをユーザーに提供し.scala
ます。
これどうやってするの?問題を単純化するために、ライブラリやその他のコード ファイルへの外部依存関係のないルート レベルファイルが1 つだけあると仮定しましょう。.scala
理想的には、これを SBT プラグインにして、そのようなファイルを 1 つ指定すると、未使用のコードがすべて削除されたファイルをFoo.scala
吐き出すことを望みます。Foo_min.Scala
scala - scala.reflect を scala.meta に置き換えると、ClassTags と TypeTags はどうなりますか?
それとも、これは関連していますか?
私が念頭に置いているのは、次のようにClassTag
またはTypeTag
注釈を使用することです。
結果:
ご覧のとおりTypeTag
、暗黙の引数を追加するコンパイラによって認識されます。に相当するものはありscala.meta
ますか? これはどのように機能し、消去の処理方法に変更はありますか?
scala - マクロ注釈 (インラインメタ) でシュガー、フォーマット、および空白を保持する方法は?
Scala 関数を外部形式にエクスポートしています。この目的のために、私は と を使用scala.meta
しStaticAnnotation
ます。何かのようなもの:
関数の本体の実装でExportFunctions extends StaticAnnotation
は、脱糖ツリーとして表されますx.max(y)
。
ただし、文書化の目的では、実際のソース コードがある方がはるかに優れています。または少なくとも砂糖(x max y
)。
元のフォーマット/砂糖を保存する方法はありますか?
scala - オブジェクトの Scala-Meta Parse を使用するにはどうすればよいですか?
既存のオブジェクトから別のケース クラスを生成できるように、Scala メタを使用して注釈を記述しようとしています。
しかし、私がこれをやろうとすると:
このエラーが発生しました:
エラー:(5, 20) メソッド解析のための十分な引数がありません: (暗黙的な変換: scala.meta.common.Convert[domain.MyObject.type,scala.meta.inputs.Input]、暗黙的な解析: scala.meta.parsers. Parse[scala.meta.Source]、暗黙的な方言: scala.meta.Dialect)scala.meta.parsers.Parsed[scala.meta.Source]。指定されていない値パラメーターは、変換、解析、方言です。MyObject.parse[ソース].show[構造];} ^
彼らのチュートリアルに基づいて、 http://scalameta.org/tutorial/#.parse[T]から始める必要があるため、私は非常に混乱してい ます
このオブジェクトを反映して、すべてのプロパティをループするにはどうすればよいですか?
ありがとう