プロパティファイル

測定対象となるファイルの種別を特定するための設定や、コメント行数を判断するためのコメント指示文字列を指定することもできます。


プロパティファイルについて

▲TOP


インストール直後の状態のプロパティファイルをそのまま使うこともできますが、ご利用目的に合わせてカスタマイズして使うことをお勧めします。

また、一部の言語種別は測定対象外の状態で定義されています。
これらを有効にするためには、行頭の"#"(シャープ)を削除してご利用ください。


プロパティファイルの書式

▲TOP

プロパティファイルの書式は以下のとおりです。

[項目]
属性=値


各設定情報について、改行区切りで指定してください。
項目を複数指定した場合、最初に指定されたものが有効となります。
属性については大文字、小文字は区別されません。


プロパティファイルの項目

▲TOP

プロパティファイルの項目は以下のとおりです。


プロパティファイルの属性

▲TOP

以下に、[INIT]、[LANG]、[ FIRSTLINE_STR]、[COMMENT]それぞれの項目で設定される属性を記載します。

[INIT]
インストール直後の状態では、プロパティファイルの記述にしたがって動作します。
「記述がない場合の動作」と同じでない項目もあります。

属性 詳細 記述がない場合の動作※1
DOC 仕様コメント行数カウント有無の指定

javadoc行、doxygen行、XMLドキュメントコメントなどを、コメントとは別に仕様コメント行数としてカウントするかどうかを指定します。
  • TRUE :
    仕様コメント行数としてカウントします。

  • FALSE :
    仕様コメント行数としてカウントしません。
TRUE
SKIP SKIP/MSKIPの測定方式の指定
  • OLD :
    有効行としてカウントします。

  • NEW :
    有効行としてカウントしません。
NEW
DIFF_PARSE 差分行数の測定方式の指定

"-diff"オプションを指定した場合の測定方式を指定します。
  • FILE :
    差分行数の測定をファイル単位で行います。

  • FUNC :
    差分行数の測定を関数単位で行います。
FILE
DIFF_BLANK 差分行数の空白の変更の測定有無の指定

差分行数を測定する際に、空白行や空白文字の変更を測定するかどうかを指定します。
  • TRUE :
    空白や空白行の変更を測定します。

  • FALSE :
    空白や空白行の変更を測定しません。※2

"-diff_blank"オプションが指定された場合は、コマンドオプションが優先されます。
FALSE
DIFF_COUNT_MODE 差分行数の測定内容の出力方法の指定

差分行数での測定を、diffツールの出力内容に基づき、追加/変更/削除に分けて出力します。
  • STD :
    差分行数の測定※3は、無変更行数、追加行数、削除行数で分類され、それぞれ次の単位に測定値を出力します。
    • ELOC(有効行数)
    • CLOC(コメント行数)

  • EXT :
    差分行数の測定※3は、無変更行数、追加行数、削除行数、変更(追加)行数、変更(削除)行数で分類され、それぞれ次の単位に測定値を出力します。
    • TOTAL(合計行数)
    • ELOC(有効行数)
    • CLOC(コメント行数)
    • BLOC(空白行数)
    • SKIP/MSKIP(スキップ行数/マクロスキップ行数)

STD
STRUCT_FUNC_OPTION 測定結果ファイルに出力される関数名へのパラメータの型付加有無の指定

構造メトリクスの測定時に、測定結果ファイルに出力される関数名に渡されるパラメータの型を付加して出力するかを指定します。
  • PARAM :
    パラメータの型を出力します。

  • NONE :
    パラメータの型を出力しません。
PARAM
NESTS_COUNT 構造メトリクスでのNESTSカウント方式の指定
  • INNERBLOCK:
    関数本体ブロックはカウントしません。

  • ALLBLOCK:
    関数本体ブロックをカウントします。
    ※Ver. 1.10までのカウント方式です。
INNERBLOCK
OUT_FORMAT 測定結果ファイルのフォーマットの指定

  • CSV :
    測定結果ファイルをCSV形式で出力します。

  • XML :
    測定結果ファイルをXML形式で出力します
"-F"オプションが指定された場合は、オプション指定が優先されます。
CSV
NKF 文字コード変換有無の指定

入力ファイルの文字コードを、UTF-8(BOMなし)に変換後に測定を行うかを指定します。
  • TRUE :
    変換を行います。

  • FALSE :
    変換を行いません。
文字コード変換によってソースコードファイルの文字コードを統一することで、以下の様な場合(変換を行わないと正常に測定できない)にも、正常に測定が行えるようにします。
  • ソースコードファイルの文字コードがShift_JISの場合
  • 改行コードがCRの場合
TRUE
NKFEXE 文字コード変換パスの指定

文字コード変換に使用するツールのパス(拡張子も含む)を指定します。
ツールのパスに空白が含まれる場合、ツールのパスを""で囲む必要があります。
ツールに指定するオプションが存在する場合は、パス名の後にスペース区切りでオプションを指定してください。
英語OS(英語ロケール)の環境では、日本語を含むパスは指定できません。

インストール直後の状態のプロパティファイルにはこの属性は設定されていません。

同梱されているnkf.dllを利用する
BEAUTIFIER ソースコード整形有無の指定

測定を行う前に、入力ファイルのソースコードを整形し、測定するかを指定します。
  • TRUE :
    整形を行います。
    整形を行うためにはuncrustify(オープンソースソフトウェア)の追加が必要です。
    詳細は「readme.txt」を参照してください。
  • FALSE :
    整形を行いません。
"-RESTYLE"オプションが指定された場合は、コマンドオプションが優先されます。

FALSE
BEAUTIFIEREXE ソースコード整形ツールのパスの指定

ソースコード整形に使用するツールのパス(拡張子も含む)を指定します。
ツールのパスに空白が存在する場合、ツールのパスを""で囲む必要があります。
ツールに指定するオプションが存在する場合は、パス名の後にスペース区切りでオプションを指定してください。
英語OS(英語ロケール)の環境では、日本語を含むパスは指定できません。

インストール直後の状態のプロパティファイルにはこの属性は設定されていません。

本ソフトウェアが指定する場所にuncrustify.exeがない場合エラー発生
JAVAEXE Javaの構造メトリクスの測定時に利用するJava実行環境のパスの指定

複数のJava実行環境がインストールされている場合などに、本ソフトウェアで使用するJava実行環境をパス名(Javaコマンドファイル名を含む)で指定します。
ツールのパスに空白が含まれる場合、パスを""で囲む必要があります。
コマンドが見つからない場合は、エラーメッセージを表示し、解析は行われません。
英語OS(英語ロケール)の環境では、日本語を含むパスは指定できません。

特定のJREを使用して測定する場合は、パス名を指定してください。

例)
JAVAEXE="C:¥Program Files¥Java¥jre7_0_25¥bin¥java.exe"
測定を実行するOSのJava実行環境の設定に従う
COMMENT_CASE_SENSITIVE コメント指示文字列の大文字・小文字の区別有無の指定

プロパティファイルの[COMMENT]項目に指定された文字列をソースコード中で検索する処理において、大文字・小文字の違いを区別するかどうかを設定します。
  • TRUE :
    コメント指示文字列の大文字と小文字の違いを区別します。

  • FALSE :
    コメント指示文字列の大文字と小文字の違いを無視します。
例)
[COMMENT]
PERL==POD =CUT
("=POD"と"=CUT"で囲まれた範囲をコメントと見なす)

上記の指定があり、本属性に"FALSE"が指定された場合、
ソースコード中に、"=pod""=cut"と記述された場合も、 コメント行数として認識されます。
TRUE
EXCEPT_BINARY バイナリファイル除外有無の指定

「そのほかの言語」にマッチするファイルが、バイナリファイルか否かをチェックして測定対象から除外するかを設定します。
  • TRUE :
    バイナリチェックを行い、バイナリファイルは測定対象から除外します。

    バイナリチェックを行うために対象のファイルをオープンするため、"FALSE"の場合よりも性能が劣化する可能性があります。

  • FALSE :
    バイナリチェックは行いません。

    テキスト形式のファイルしか存在しないフォルダー配下を測定する場合や、「そのほかの言語」を測定対象としない場合は"FALSE"を指定します。
バイナリファイルの識別条件は次のとおりです。

ファイルの先頭から最大1024バイトの内容を読み込む。
(1024バイト未満のファイルはすべて読み込む)
  1. 読みこんだ文字列中にヌル文字(0x00)がひとつでも存在した場合はバイナリとみなす。

  2. 1.の条件に該当しなかった場合は、次に読みこんだ文字列中にコントロール文字(0x01〜0x1f, 0x7f)が10%以上含まれるとバイナリとみなす。
    ただし、次のコードはテキストを構成する文字になりうるためコントロール文字とは扱わない。

    • 改行コード(0x0a, 0x0d)
    • 水平・垂直タブ(0x09,0x0b)
    • エスケープ文字(0x1b)
FALSE
STMT ステートメント数(STMT)測定有無の指定

基本行数の測定時間を短くする目的で、 ステートメント数の測定が不要の場合に、本オプションを指定します。
  • TRUE :
    対象言語に対して、STMTを測定します。

  • FALSE :
    すべての言語に対して、STMTを測定しません。
    STMTを測定しない場合、STMTの列に "-" (ハイフン)が出力されます。
TRUE
CHARSET_OUT_CSV CSV形式の測定結果ファイルの文字コードの指定

CSV形式の測定結果ファイルで使用する文字コードを指定します。
文字コードには、次の指定が可能です。
  • SYSTEM :
    OSのシステムコードページ(CP_ACP)に従った文字コードで出力します。

  • UTF-8 :
    UTF-8(BOM付き)で出力します。

  • Shift_JIS :
    Shift_JISで出力します。

  • EUC-JP :
    EUC-JPで出力します
"-Qrc"オプションが指定された場合は、コマンドオプションが優先されます。

SYSTEM
CHARSET_OUT_LOG 測定ログファイルの文字コードの指定

測定ログファイルで使用する文字コードを指定します。
文字コードには、次の指定が可能です。
  • SYSTEM :
    OSのシステムコードページ(CP_ACP)に従った文字コードで出力します。

  • UTF-8 :
    UTF-8(BOMなし)で出力します。

  • Shift_JIS :
    Shift_JISで出力します。

  • EUC-JP :
    EUC-JPで出力します
"-Qlg"オプションが指定された場合は、コマンドオプションが優先されます。

SYSTEM

※1 記述がない場合の動作とは、以下の場合を指します。


※2 空白文字や空白行を変更なしとする条件について
言語種別がTXT以外の言語種別のファイルに関して、以下の場合は変更なしとして扱います。

  1. 空白行が追加/削除された場合
  2. 1行の前・後方の空白文字(半角空白、タブ文字)が追加/削除された場合
  3. 連続した空白文字に対して空白が追加/削除された場合
    ただし、空白をすべて削除した場合は変更ありと認識します

    例1) 変更なしと認識される例 (Δは空白文字)
    ifΔΔ(ΔΔtrueΔΔ)  →  ifΔ(ΔtrueΔΔΔ)
    ※空白文字を2つから1つに変更(3.の内容)し後方空白を追加(2.の内容)

    例2) 変更ありと認識される例
    ifΔ(ΔΔtrueΔ)  →  if(true)
    ※連続した空白文字をすべて削除する

※3 差分行数の測定について
出力する差分行数(追加/変更/削除/無変更)の測定は、本ツールで利用するdiffツールの比較測定結果に従いカウントしています。


[LANG]
インストール直後の状態では、プロパティファイルの記述にしたがって動作します。
「記述がない場合の動作」と同じでない項目もあります。

属性 詳細 記述がない場合の動作※1
CPP C++言語ファイル
C++言語ファイルのファイル名条件が指定できます。
*.cpp
CPPH C++言語(ヘッダー)ファイル
C++言語(ヘッダー)ファイルのファイル名条件が指定できます。
*.h
C C言語ファイル
C言語ファイルのファイル名条件が指定できます。
*.c
CH C言語(ヘッダー)ファイル
C言語(ヘッダー)ファイルのファイル名条件が指定できます。
*.h
(CPPHで表示)
JAVA Java言語ファイル
Java言語ファイルのファイル名条件が指定できます。
*.java
CS C#言語ファイル
C#言語ファイルのファイル名条件が指定できます。
*.cs
VB Visual Basic言語ファイル
Visual Basic言語ファイルのファイル名条件が指定できます。
*.vb
JS JavaScript言語ファイル
JavaScript言語ファイルのファイル名条件,先頭行条件が指定できます。
*.js
TXT テキストファイル
改行の行数がカウントされます。テキストファイルのファイル名条件が指定できます。
-
(測定されません)
(任意の文字列) そのほかの言語のファイル
(任意の文字列) には、半角英字で始まる6文字以内の半角英数字が指定できます。
'(任意の文字列)=' に続けて、ファイル名条件と先頭行条件が指定できます。

また、本属性に指定されたファイルについては、下記の[COMMENT]項目にて、言語ごとのコメント指示文字列が指定可能です。
コメント指示文字列を指定することでコメント行数のカウントを行います。

例)

SCRIPT=*.sh ; $1
HTML=*.html
-
(測定されません)
※1 記述がない場合の動作とは、以下の場合を指します。



[FIRSTLINE_STR]

属性(先頭行条件) 詳細
$1〜$99 先頭行条件文字列
[LANG]項目のファイル名条件だけでは言語種別が定義できない場合、ファイルの1行目に含まれる文字列を[FIRSTLINE_STR]項目で指定できます。
(主としてmakefileやスクリプトのように拡張子がないファイルを識別する場合などに利用します)

【指定方法】

属性には、ドル記号($)で始まるIDを指定します。
IDは$1〜$99 まで指定可能です。
このIDは、[LANG]項目の「そのほかの言語のファイル」で指定したIDと同じものを指定することで、ひも付けされます。
先頭行条件の文字列に関しては以下の規則があります。

  • 文字列の両端に空白文字、あるいはタブ文字が存在した場合、空白を削除する。
  • 半角英数字(ASCII文字の範囲)のみ指定可能。
    空白、タブ文字を含めてもよい。
  • 最大文字列長は127バイトとする。
    これを超えた場合は127バイトまでが指定されたものと見なす。
  • 指定した文字列の大文字・小文字は区別されない。
  • 正規表現、ワイルドカードの指定は不可。

【ツール動作】

指定した文字列が、ファイルの1行目に部分一致すれば条件を満たしていると見なして測定します。

例)

[LANG]
SHELL=* ; $1
MAKE=make* ; $2

[FIRSTLINE_STR]
$1=#!/usr/bin/sh
$2=# This is makefile

[COMMENT]

上記 [LANG]項目内で、「そのほかの言語のファイル」として指定された属性に対応する コメント指示文字列を指定します。
各属性につき、コメント指示文字列を単一行コメント、複数行コメントの合計で32個まで指定できます。
33個以上指定された場合は、33個目からは無視されます。