LoginSignup
1
0

More than 5 years have passed since last update.

さくっとプログラムのコード行数などを調べる

Posted at

概要

D-ScannerというD言語のコード行数などを調べるツールの使い方メモです。

コード行数だけでなく、シンボルの定義位置を調べたりトークン数やimportしているモジュールなどを一覧で出力したりできます。

全部は調べ切れていないので、よく使いそうなやつだけピックアップします。
便利な使い方などあれば編集リクエストをお願いします。

準備

D-Scannerはdubで公開されているツールです。
ソースはGitHubにあるので1からビルドしても良いですが、dub経由が圧倒的に楽です。

要するにdubさえインストール済みなら dub fetch dscanner でダウンロード、 dub run dscanner で実行できます。
以下、fetchを済ませた前提で実行部分だけ書いていきます。

ちなみにdub runで動作させるアプリに引数を指定するときはdub run dscanner -- --helpのように--で区切ってそれ以降に指定します。

手順

行数を調べる (--sloc)

--sloc を指定することでファイルの行数を調べることができます。
フォルダも指定することができるため、dubでビルドが設定してある場合はsourceフォルダを指定すれば良いです。

ファイル指定の場合
# ファイルのコード行数を調べる
dub run dscanner -- --sloc app.d

# 結果例
app.d:  8
total:  8
フォルダ指定の場合
# dubプロジェクトの行数を調べる
dub run dscanner -- --sloc ./source

# 結果例
./source/app.d: 8
./source/config.d:      26
total:  34

importの一覧を調べる (--imports)

--importsを指定するとimportしているモジュールがわかります。

ファイル指定の場合
# ファイルのimport一覧を調べる
dub run dscanner -- --imports app.d

# 結果例
std.experimental.all
std.experimental.typecons
フォルダ指定の場合
# dubプロジェクトのimports一覧を調べる
dub run dscanner -- --imports ./source

# 結果例
std.experimental.all
std.experimental.typecons
std.json
std.traits

定義位置を調べる (--declaration/-d)

引数に-d <シンボル名>を指定すると定義位置調べられます。
VSCodeのコンソールで実行していれば、ファイルパスをctrl+clickすることで対象のファイルが開けます。
(定義位置に飛ぶのもできそうだけどちょっと書式が違う?)

# 定義位置を調べる
dub run dscanner -- -d main

# 結果例
./app.d(19:6)
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0