(57)【要約】【課題】本発明は、テキストファイルの内容の表示と同時に、現在参照している箇所に関連する情報を表示することを目的とするものである。【解決手段】過去の変更情報を元に、テキストファイルの各行・各モジュールの変更回数をグラフ等で表示したり、モジュール間関連度情報を元に、関連度の高いモジュールの情報を表示したり、引用先にIDを埋め込むことにより引用元・引用先の相互参照を行ったり、コーディングルール違反箇所を強調表示したり、モジュール内のループ情報を表示したりする。【選択図】図１
2009199373.tif 000002
【特許請求の範囲】
【請求項１】
テキストファイルの過去の変更情報を記憶した変更情報記憶手段と、
テキストファイルの各行について、過去の変更回数を計算する変更回数計算手段と、
テキストファイルの内容の表示と同時に、前記変更回数を、対応する各行に、グラフや強調表示の濃さで表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項２】
テキストファイルの過去の変更情報を記憶した変更情報記憶手段と、
テキストファイルの各モジュールについて、過去の変更回数を計算する変更回数計算手段と、
テキストファイルの内容の表示と同時に、前記変更回数を、各モジュールのコール箇所付近に、グラフや強調表示の濃さで表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項３】
テキストファイルの過去の変更情報を記憶した変更情報記憶手段と、
テキストファイルの各モジュールについて、モジュールの全てのコール箇所の近傍の過去の変更回数の和を計算する変更回数計算手段と、
テキストファイルの内容の表示と同時に、前記変更回数を、各モジュールのコール箇所付近に、グラフや強調表示の濃さで表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項４】
変更回数の表示箇所付近で特定の操作をユーザーが行った場合に、過去の変更の情報をリスト表示することを特徴とする、
請求項１ないし３記載のテキストエディタ。
【請求項５】
テキストファイルの集合内の全てのモジュール間の関連度表を作成する関連度計算手段と、
テキストファイルの内容の表示と同時に、各モジュールの定義場所付近に、関連度の高いモジュールの情報を表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項６】
引用元のモジュール名の情報を織り込んだ文字列を、引用IDとして発行する引用ID生成手段と、
テキストファイルの内容の表示と同時に、前記引用IDの記述部分付近に、対応する引用元モジュールの内容を表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項７】
引用元のモジュール名の情報を織り込んだ文字列を、引用IDとして発行する引用ID生成手段と、
テキストファイルの内容の表示と同時に、引用元モジュールの定義場所付近に、対応する引用先モジュール名のリストを表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項８】
テキストファイルの過去の変更情報を記憶した変更情報記憶手段と、
日時情報および引用元のモジュール名の情報を織り込んだ文字列を、引用IDとして発行する引用ID生成手段と、
テキストファイルの内容の表示と同時に、前記引用IDの記述部分付近に、対応する引用元モジュールについて引用ID発行日時以降の変更が前記変更情報記憶手段に記録されている場合、警告を表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項９】
コーディングルールを記憶したコーディングルール記憶手段と、
テキストファイルの内容の表示と同時に、コーディングルールに一致しない箇所を強調表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項１０】
モジュール毎に、モジュール内に記述されたループの情報（開始インデックス、終了インデックス、終了条件）を記憶するループ情報記憶手段と、
テキストファイルの内容の表示と同時に、前記ループ情報を、各モジュールのコール箇所付近に表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキストエディタに関するものである。
【背景技術】
【０００２】
参照・編集中のテキストの文法を解析する方法として、特願２００７−２４８０５７に示す方法がある。
【０００３】
過去の変更情報を元に、文書の特定の部分に関連する別の部分の情報を表示する方法として、特願２００７−２４１５５７に示す方法がある。
【特許文献１】特願２００７−２４８０５７
【特許文献２】特願２００７−２４１５５７
【０００４】
なお、本発明において、「モジュール」とは、関数、メソッド、章・節など、テキストファイル内のひとまとまりのブロックのことを指す。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ソースコード等のテキストファイルを参照・編集する場合、現在参照している箇所と関連する情報を知ることが必要となる。しかし、現状、その情報を知るためにはいくつかの操作を必要とすることが多い。そのため、ロジックの検討の中断を招き、品質・効率を下げる要因となっている。
【０００６】
本発明は、テキストファイルの内容の表示と同時に、現在参照している箇所に関連する情報を表示することを目的とするものである。
【課題を解決するための手段】
【０００７】
この課題を解決するための請求項１〜１０の発明は、図１のように構成されるシステムである。
【０００８】
１は変更情報記憶手段であり、テキストファイルの過去の変更情報を記憶する。
【０００９】
２は変更回数計算手段であり、テキストファイルの各行について過去の変更回数を計算、または、テキストファイルの各モジュールについて過去の変更回数を計算、または、テキストファイルの各モジュールについてモジュールの全てのコール箇所の近傍の過去の変更回数の和を計算する。
【００１０】
３は表示処理手段であり、以下の処理のうちの１つまたは複数を行う。
【００１１】
・テキストファイルの内容の表示と同時に、変更回数計算手段２により得られた変更回数を、対応する各行・各モジュールのコール箇所付近にグラフや強調表示の濃さで表示する。また、変更回数の表示箇所付近で特定の操作をユーザーが行った場合に過去の変更の情報をリスト表示する。
【００１２】
・テキストファイルの内容の表示と同時に、各モジュールの定義場所付近に、関連度の高いモジュールの情報を表示する。
【００１３】
・テキストファイルの内容の表示と同時に、引用IDの記述部分付近に、対応する引用元モジュールの内容を表示する。
【００１４】
・テキストファイルの内容の表示と同時に、引用元モジュールの定義場所付近に、対応する引用先モジュール名のリストを表示する。
【００１５】
・テキストファイルの内容の表示と同時に、引用IDの記述部分付近に、対応する引用元モジュールについて引用ID発行日時以降の変更が変更情報記憶手段１に記録されている場合、警告を表示する。
【００１６】
・テキストファイルの内容の表示と同時に、コーディングルールに一致しない箇所を強調表示する。ただし、コーディングルールに一致しない箇所であっても、その行に特定のフォーマットでルール番号が記述されている場合には強調表示しない。
【００１７】
・テキストファイルの内容の表示と同時に、ループ情報記憶手段７から得られたループ情報を、各モジュールのコール箇所付近に表示する。
【００１８】
４は関連度計算手段であり、テキストファイルの集合内の全てのモジュール間の関連度表を作成する。
【００１９】
５は引用ID生成手段であり、日時情報および引用元のモジュール名の情報を織り込んだ文字列を、引用IDとして発行する。
【００２０】
６はコーディングルール記憶手段であり、コーディングルールを記憶する。
【００２１】
７はループ情報記憶手段であり、モジュール毎に、モジュール内に記述されたループの情報（開始インデックス、終了インデックス、終了条件）を記憶する。
【００２２】
８は１つまたは複数のテキストファイルである。
【発明の効果】
【００２３】
本発明により、テキストファイルの内容の表示と同時に、現在参照している箇所に関連する情報を表示することができる。
【００２４】
これにより、ロジックの検討の中断を招かずに、ソースコードの参照・編集を行うことができ、品質・効率を向上させることができる。
【発明を実施するための最良の形態】
【００２５】
本発明の実施の形態を図２〜図７に基づいて説明する。図２は本発明の実施の形態の構成図、図３は各行の変更回数の表示例、図４は関連度の高いモジュールの情報の表示例、図５は引用元モジュールの表示例、図６は引用先モジュール名のリストの表示例、図７は引用先変更警告の表示例である。なお、本実施例における文書処理システムは、標準的なテキストエディタとしての表示機能・編集機能を備えているが、本発明と直接関係しない部分の構成図や説明は省略する。
【００２６】
図２において、１は変更情報記憶手段、２は変更回数計算手段、３は表示処理手段、４は関連度計算手段、５は引用ID生成手段、６はコーディングルール記憶手段、７はループ情報記憶手段、８はテキストファイルである。
【００２７】
変更情報記憶手段１は、テキストファイル８の過去の変更情報を記憶する。典型的には、CVS等のバージョン管理システムを使用して記憶されたレポジトリを使用する。
【００２８】
変更回数計算手段２は、テキストファイルの各行について、過去の変更回数を計算する。
【００２９】
テキストファイルの各行についての過去の変更回数の計算は例えば次のようにして行う。
【００３０】
１．まずn個の要素を持つ配列count[0]〜count[n-1]を用意し、値を0に初期化する（nは現在のバージョンのテキストファイルの行数）。
【００３１】
２．現在のバージョンのテキストファイルと、1つ前のバージョンのテキストファイルを比較し、次の処理をk=0〜n-1について繰り返す。k行目が変更されている場合は、count[k]を＋１する。k行目が追加行である場合は、count[k]を＋１する。k行目とk+1行目の間に削除行がある場合は、count[k]を＋１する。
【００３２】
３．m個の要素を持つ配列ln1[0]〜ln1[m-1]を用意する（mは１つ前のバージョンのテキストファイルの行数）。ln1[j] (j=0〜m-1)には、１つ前のバージョンのテキストファイルのj行目に対応する、現在のバージョンのテキストファイルの行のインデックス(0〜n-1)を格納する。j行目が削除される場合は、ln1[j]にはln1[j-1]と同じ値を格納する。
【００３３】
４．１つ前のバージョンのテキストファイルと、２つ前のバージョンのテキストファイルを比較し、次の処理をk=0〜m-1について繰り返す。k行目が変更されている場合は、count[ln1[k]]を＋１する。k行目が追加行である場合は、count[ln1[k]]を＋１する。k行目とk+1行目の間に削除行がある場合は、count[ln1[k]]を＋１する。
【００３４】
５．p個の要素を持つ配列ln2[0]〜ln2[p-1]を用意する（pは２つ前のバージョンのテキストファイルの行数）。ln2[j] (j=0〜p-1)には、２つ前のバージョンのテキストファイルのj行目に対応する、１つ前のバージョンのテキストファイルの行のインデックス(0〜m-1)を格納する。j行目が削除される場合は、ln2[j]にはln2[j-1]と同じ値を格納する。
【００３５】
６．２つ前のバージョンのテキストファイルと、３つ前のバージョンのテキストファイルを比較し、次の処理をk=0〜p-1について繰り返す。k行目が変更されている場合は、count[ln1[ln2[k]]]を＋１する。k行目が追加行である場合は、count[ln1[ln2[k]]]を＋１する。k行目とk+1行目の間に削除行がある場合は、count[ln1[ln2[k]]]を＋１する。
【００３６】
７．同様の処理を一番最初のバージョンのテキストファイルに至るまで繰り返す。
【００３７】
表示処理手段３は、変更回数計算手段２によって得られた変更回数を、テキストファイルの内容の表示と同時に、対応する各行に、グラフや強調表示の濃さで表示する。例えば、行番号表示エリア内に棒グラフで表示したり、行番号表示エリアの背景を変更回数に応じた濃さの赤色で塗りつぶしたり、行全体の背景を変更回数に応じた濃さの赤色で塗りつぶしたりする。図３は表示例である。行番号表示エリア内に棒グラフで表示している。
【００３８】
また、変更回数計算手段２は、テキストファイルの各モジュールについて、過去の変更回数を計算する。
【００３９】
テキストファイルの各モジュールについての過去の変更回数の計算は例えば次のようにして行う。
【００４０】
１．テキストファイルの各行について、過去の変更回数を計算する。
【００４１】
２．モジュール内の各行の過去の変更回数の和をモジュールの過去の変更回数とする。
【００４２】
表示処理手段３は、変更回数計算手段２によって得られた変更回数を、テキストファイルの内容の表示と同時に、各モジュールのコール箇所付近に、グラフや強調表示の濃さで表示する。モジュールのコール箇所は、例えば、特願２００７−２４８０５７に示す方法により抽出する。
【００４３】
また、変更回数計算手段２は、テキストファイルの各モジュールについて、そのモジュールの全てのコール箇所の近傍の過去の変更回数の和を計算する。例えば、モジュールの全てのコール箇所の前後5行の範囲の過去の変更回数の和を計算する。
【００４４】
表示処理手段３は、変更回数計算手段２によって得られた変更回数を、テキストファイルの内容の表示と同時に、各モジュールのコール箇所付近に、グラフや強調表示の濃さで表示する。
【００４５】
また、表示処理手段３は、変更回数の表示箇所付近で特定の操作をユーザーが行った場合に、過去の変更の情報をリスト表示する。例えば、各行・モジュール名を右クリックして「過去の変更リスト」を選択すると、その行・モジュールに関する過去の変更内容の情報をリスト表示する。
【００４６】
さらに、表示処理手段３は、モジュールのコール箇所付近に、そのモジュールの最終更新日時・更新ユーザー名や、モジュールの内容等を表示する。
【００４７】
関連度計算手段４は、テキストファイルの集合内の全てのモジュール間の関連度表を作成する。
【００４８】
関連度表の作成は、例えば以下のようにして行う。
【００４９】
１．二次元配列table[n][n]を作成し、0で初期化する。nはモジュールの個数である。
【００５０】
２．k番目のモジュール内の変更ID※の記述を抽出し、抽出した変更IDごとに、他のモジュール内に同じ変更IDが記述されているかを検索する。モジュールjに同じ変更IDが記述されていれば、table[k][j]を＋１する。
【００５１】
３．上記手順２をk=0からk=n-1まで繰り返す。
【００５２】
※変更IDとは同じ目的のための変更に割り振られるIDである。バグトラッキングシステム等によって割り振られるユニークなIDであり、一般にソースコードの変更箇所に記述されることが多い。
【００５３】
表示処理手段３は、テキストファイルの内容の表示と同時に、各モジュールの定義場所付近に、関連度の高いモジュールの情報を表示する。これは次のようにして行う。関連度計算手段４によって得られた関連度表を参照し、当該モジュールに対応する行の中で、最も値が大きい要素に対応するモジュールを、最も関連度が高いものとみなして、そのモジュールの情報を表示する。また、同様にして、2番目、3番目・・・も表示する。また、関連度の高さを★マークの数で表す。表示例を図４に示す。
【００５４】
さらに、モジュールの情報にマウスカーソルを当てると、そのモジュールの内容を別ウインドウで表示する。
【００５５】
引用ID生成手段５は、ユーザーからの要求に従って、日時情報、ユーザー名、引用元のモジュール名の情報を織り込んだ文字列を、引用IDとして発行する。
【００５６】
ユーザーは、例えば既存の処理をコピー＆ペーストしたり、参考にしたりして、新規処理を作成する場合に、新規処理の箇所にこのIDを埋め込む。
【００５７】
例えば、ユーザーxが、function0を参考にしてfunction1を作成する場合、function0の定義場所を選択して引用IDの発行を要求する。引用ID生成手段５は、引用元のモジュール名"function0"、現在日時"08/02/21 5:00"を元に、引用ID[[function0:0802210500:x]]を発行する。
【００５８】
表示処理手段３は、テキストファイルの内容の表示と同時に、引用IDの記述部分付近に、対応する引用元モジュールの内容を表示する。例えば、図５のように、[[function0:0802210500:x]]の表示の下に、引用元モジュールfunction0の内容を別のウインドウ内に表示する。
【００５９】
また、表示処理手段３は、テキストファイルの内容の表示と同時に、引用元モジュールの定義場所付近に、対応する引用先モジュール名のリストを表示する。表示例を図６に示す。モジュール名にマウスカーソルを当てると、そのモジュールの内容を別ウインドウで表示する。
【００６０】
これは例えば次のようにして実現される。モジュールの内容を表示する際、そのモジュール名の情報を織り込んだ引用IDの記述箇所を全て検索し、その記述箇所のモジュール名のリストを引用先モジュール名のリストとして表示する。
【００６１】
また、表示処理手段３は、テキストファイルの内容の表示と同時に、前記引用IDの記述部分付近に、対応する引用元モジュールについて、引用ID発行日時以降の修正が変更情報記憶手段１に記録されている場合、警告を表示する。表示例を図７に示す。
【００６２】
また、本テキストエディタは、ユーザーからの要求に従って、引用IDを元に、引用元・引用先の参照関係のレポートファイルを作成する。
【００６３】
コーディングルール記憶手段６は、コーディングルールを記憶する。
【００６４】
表示処理手段３は、テキストファイルの内容の表示と同時に、コーディングルールに一致しない箇所を強調表示する。
【００６５】
また、表示処理手段３は、コーディングルールに一致しない箇所であってもその行に特定のフォーマットでルール番号が記述されている場合には強調表示しない。
【００６６】
ループ情報記憶手段７は、モジュール内のループの情報（開始インデックス、終了インデックス、終了条件）を記憶する。
【００６７】
モジュール内のループの情報は、例えば、特願２００７−２４８０５７に示す方法を用いて、ループの開始インデックス、終了インデックス、終了条件の記述位置を特定し、その文字列を抽出することによって得られる。テキストファイルを開いたときに、関連するファイル全てから、各モジュールのループ情報を抽出して、ループ情報記憶手段７に記憶する。また、モジュール内からさらにコールされるモジュール内のループ情報も、コール元のモジュールのループ情報に含める。ループの入れ子情報も記憶する。
【００６８】
表示処理手段３は、ループ情報記憶手段７から取得したループ情報を、テキストファイルの内容の表示と同時に、各モジュールのコール箇所付近に表示する。これにより、ユーザーはそのモジュールの処理の重さの概略を知ることができる。
【００６９】
なお、本発明における情報表示は、それぞれ、特定の操作により、表示／非表示を切り替えることができる。
【図面の簡単な説明】
【００７０】
【図１】本発明の原理構成図である。
【図２】本発明の実施の形態の構成図である。
【図３】各行の変更回数の表示例である。
【図４】関連度の高いモジュールの情報の表示例である。
【図５】引用元モジュールの表示例である。
【図６】引用先モジュール名のリストの表示例である。
【図７】引用先変更警告の表示例である。
【符号の説明】
【００７１】
１    変更情報記憶手段
２    変更回数計算手段
３    表示処理手段
４    関連度計算手段
５    引用ID生成手段
６    コーディングルール記憶手段
７    ループ情報記憶手段
８    テキストファイル
【図１】
2009199373.tif 000003
【図２】
2009199373.tif 000004
【図３】
2009199373.tif 000005
【図４】
2009199373.tif 000006
【図５】
2009199373.tif 000007
【図６】
2009199373.tif 000008
【図７】
2009199373.tif 000009