Xcodeプロジェクトのソースコード規模を表示するCLIをSwiftSyntaxで作った


horimislime/xcstats というコマンドラインツールを作りました。Railsをやっている人なら「rake stats みたいなやつ」と言えば分かってもらえそうです。

開発しているプロダクトの規模感を話すとき、コードの行数だったりファイル数といった数字を指標とすることが多いです。 find とか wc コマンドを使えば簡単に出せるんですが、もっと細かい統計も出せると面白い発見がありそうだと思いこのツールを作りました。どういうものかは以下のスクリーンキャストをみると分かると思います。

asciicast

使い方

homebrewでインストールできます。

brew tap horimislime/taproom
brew install xcstats

あとはXcodeプロジェクトのrootで xcstats と打てば解析が始まります。現状プロジェクトrootに.xcodeprojが一つある場合しか考慮していないため、マルチプロジェクト構成の場合におかしくなるかもしれません…

実装について

現在Swiftのソースコードのみclassやstructの数といった情報が出るようになっていて、この解析には apple/swift-syntax を使っています。このツールを作ろうと思ったのは初コミットをさかのぼると2017年末ごろで、当時自分の要件を実装するにはSourceKitを扱うしかなくツラそう・・・と思いお蔵入りしてきました。しかし去年末ごろにSwiftSyntax - NSHipsterinamiy/SwiftRewriter を見かけてSwiftSyntaxで実装したところ、プロジェクト内で定義されている型の種類・数を算出するのはとても簡単に実現できました。このようなツール以外にも色々面白い応用ができそうです。

Related Posts

2019 1Qの振り返り

Emacsのお手入れをする in 2019

2018年に課金したサービス

2019年にやること

数字で振り返る2018年

今年買ってよかった生活を豊かにするモノ3つ

Bearで書いたブログ下書きを効率的にJekyllのソースディレクトリ上に配置する

iPhoneからPixel3 XLへ乗り換えを試みたけどやめた話

仮想通貨のファンダメンタルズDashboardをプログラミングなしに作成する

セキュリティ向上のためmacOSの使い方を見直した