説明

テキストエディタ

【課題】本発明は、テキストファイルの内容の表示と同時に、現在参照している箇所に関連する情報を表示することを目的とするものである。
【解決手段】過去の変更情報を元に、テキストファイルの各行・各モジュールの変更回数をグラフ等で表示したり、モジュール間関連度情報を元に、関連度の高いモジュールの情報を表示したり、引用先にIDを埋め込むことにより引用元・引用先の相互参照を行ったり、コーディングルール違反箇所を強調表示したり、モジュール内のループ情報を表示したりする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テキストエディタに関するものである。
【背景技術】
【0002】
参照・編集中のテキストの文法を解析する方法として、特願2007−248057に示す方法がある。
【0003】
過去の変更情報を元に、文書の特定の部分に関連する別の部分の情報を表示する方法として、特願2007−241557に示す方法がある。
【特許文献1】特願2007−248057
【特許文献2】特願2007−241557
【0004】
なお、本発明において、「モジュール」とは、関数、メソッド、章・節など、テキストファイル内のひとまとまりのブロックのことを指す。
【発明の開示】
【発明が解決しようとする課題】
【0005】
ソースコード等のテキストファイルを参照・編集する場合、現在参照している箇所と関連する情報を知ることが必要となる。しかし、現状、その情報を知るためにはいくつかの操作を必要とすることが多い。そのため、ロジックの検討の中断を招き、品質・効率を下げる要因となっている。
【0006】
本発明は、テキストファイルの内容の表示と同時に、現在参照している箇所に関連する情報を表示することを目的とするものである。
【課題を解決するための手段】
【0007】
この課題を解決するための請求項1〜10の発明は、図1のように構成されるシステムである。
【0008】
1は変更情報記憶手段であり、テキストファイルの過去の変更情報を記憶する。
【0009】
2は変更回数計算手段であり、テキストファイルの各行について過去の変更回数を計算、または、テキストファイルの各モジュールについて過去の変更回数を計算、または、テキストファイルの各モジュールについてモジュールの全てのコール箇所の近傍の過去の変更回数の和を計算する。
【0010】
3は表示処理手段であり、以下の処理のうちの1つまたは複数を行う。
【0011】
・テキストファイルの内容の表示と同時に、変更回数計算手段2により得られた変更回数を、対応する各行・各モジュールのコール箇所付近にグラフや強調表示の濃さで表示する。また、変更回数の表示箇所付近で特定の操作をユーザーが行った場合に過去の変更の情報をリスト表示する。
【0012】
・テキストファイルの内容の表示と同時に、各モジュールの定義場所付近に、関連度の高いモジュールの情報を表示する。
【0013】
・テキストファイルの内容の表示と同時に、引用IDの記述部分付近に、対応する引用元モジュールの内容を表示する。
【0014】
・テキストファイルの内容の表示と同時に、引用元モジュールの定義場所付近に、対応する引用先モジュール名のリストを表示する。
【0015】
・テキストファイルの内容の表示と同時に、引用IDの記述部分付近に、対応する引用元モジュールについて引用ID発行日時以降の変更が変更情報記憶手段1に記録されている場合、警告を表示する。
【0016】
・テキストファイルの内容の表示と同時に、コーディングルールに一致しない箇所を強調表示する。ただし、コーディングルールに一致しない箇所であっても、その行に特定のフォーマットでルール番号が記述されている場合には強調表示しない。
【0017】
・テキストファイルの内容の表示と同時に、ループ情報記憶手段7から得られたループ情報を、各モジュールのコール箇所付近に表示する。
【0018】
4は関連度計算手段であり、テキストファイルの集合内の全てのモジュール間の関連度表を作成する。
【0019】
5は引用ID生成手段であり、日時情報および引用元のモジュール名の情報を織り込んだ文字列を、引用IDとして発行する。
【0020】
6はコーディングルール記憶手段であり、コーディングルールを記憶する。
【0021】
7はループ情報記憶手段であり、モジュール毎に、モジュール内に記述されたループの情報(開始インデックス、終了インデックス、終了条件)を記憶する。
【0022】
8は1つまたは複数のテキストファイルである。
【発明の効果】
【0023】
本発明により、テキストファイルの内容の表示と同時に、現在参照している箇所に関連する情報を表示することができる。
【0024】
これにより、ロジックの検討の中断を招かずに、ソースコードの参照・編集を行うことができ、品質・効率を向上させることができる。
【発明を実施するための最良の形態】
【0025】
本発明の実施の形態を図2〜図7に基づいて説明する。図2は本発明の実施の形態の構成図、図3は各行の変更回数の表示例、図4は関連度の高いモジュールの情報の表示例、図5は引用元モジュールの表示例、図6は引用先モジュール名のリストの表示例、図7は引用先変更警告の表示例である。なお、本実施例における文書処理システムは、標準的なテキストエディタとしての表示機能・編集機能を備えているが、本発明と直接関係しない部分の構成図や説明は省略する。
【0026】
図2において、1は変更情報記憶手段、2は変更回数計算手段、3は表示処理手段、4は関連度計算手段、5は引用ID生成手段、6はコーディングルール記憶手段、7はループ情報記憶手段、8はテキストファイルである。
【0027】
変更情報記憶手段1は、テキストファイル8の過去の変更情報を記憶する。典型的には、CVS等のバージョン管理システムを使用して記憶されたレポジトリを使用する。
【0028】
変更回数計算手段2は、テキストファイルの各行について、過去の変更回数を計算する。
【0029】
テキストファイルの各行についての過去の変更回数の計算は例えば次のようにして行う。
【0030】
1.まずn個の要素を持つ配列count[0]〜count[n-1]を用意し、値を0に初期化する(nは現在のバージョンのテキストファイルの行数)。
【0031】
2.現在のバージョンのテキストファイルと、1つ前のバージョンのテキストファイルを比較し、次の処理をk=0〜n-1について繰り返す。k行目が変更されている場合は、count[k]を+1する。k行目が追加行である場合は、count[k]を+1する。k行目とk+1行目の間に削除行がある場合は、count[k]を+1する。
【0032】
3.m個の要素を持つ配列ln1[0]〜ln1[m-1]を用意する(mは1つ前のバージョンのテキストファイルの行数)。ln1[j] (j=0〜m-1)には、1つ前のバージョンのテキストファイルのj行目に対応する、現在のバージョンのテキストファイルの行のインデックス(0〜n-1)を格納する。j行目が削除される場合は、ln1[j]にはln1[j-1]と同じ値を格納する。
【0033】
4.1つ前のバージョンのテキストファイルと、2つ前のバージョンのテキストファイルを比較し、次の処理をk=0〜m-1について繰り返す。k行目が変更されている場合は、count[ln1[k]]を+1する。k行目が追加行である場合は、count[ln1[k]]を+1する。k行目とk+1行目の間に削除行がある場合は、count[ln1[k]]を+1する。
【0034】
5.p個の要素を持つ配列ln2[0]〜ln2[p-1]を用意する(pは2つ前のバージョンのテキストファイルの行数)。ln2[j] (j=0〜p-1)には、2つ前のバージョンのテキストファイルのj行目に対応する、1つ前のバージョンのテキストファイルの行のインデックス(0〜m-1)を格納する。j行目が削除される場合は、ln2[j]にはln2[j-1]と同じ値を格納する。
【0035】
6.2つ前のバージョンのテキストファイルと、3つ前のバージョンのテキストファイルを比較し、次の処理をk=0〜p-1について繰り返す。k行目が変更されている場合は、count[ln1[ln2[k]]]を+1する。k行目が追加行である場合は、count[ln1[ln2[k]]]を+1する。k行目とk+1行目の間に削除行がある場合は、count[ln1[ln2[k]]]を+1する。
【0036】
7.同様の処理を一番最初のバージョンのテキストファイルに至るまで繰り返す。
【0037】
表示処理手段3は、変更回数計算手段2によって得られた変更回数を、テキストファイルの内容の表示と同時に、対応する各行に、グラフや強調表示の濃さで表示する。例えば、行番号表示エリア内に棒グラフで表示したり、行番号表示エリアの背景を変更回数に応じた濃さの赤色で塗りつぶしたり、行全体の背景を変更回数に応じた濃さの赤色で塗りつぶしたりする。図3は表示例である。行番号表示エリア内に棒グラフで表示している。
【0038】
また、変更回数計算手段2は、テキストファイルの各モジュールについて、過去の変更回数を計算する。
【0039】
テキストファイルの各モジュールについての過去の変更回数の計算は例えば次のようにして行う。
【0040】
1.テキストファイルの各行について、過去の変更回数を計算する。
【0041】
2.モジュール内の各行の過去の変更回数の和をモジュールの過去の変更回数とする。
【0042】
表示処理手段3は、変更回数計算手段2によって得られた変更回数を、テキストファイルの内容の表示と同時に、各モジュールのコール箇所付近に、グラフや強調表示の濃さで表示する。モジュールのコール箇所は、例えば、特願2007−248057に示す方法により抽出する。
【0043】
また、変更回数計算手段2は、テキストファイルの各モジュールについて、そのモジュールの全てのコール箇所の近傍の過去の変更回数の和を計算する。例えば、モジュールの全てのコール箇所の前後5行の範囲の過去の変更回数の和を計算する。
【0044】
表示処理手段3は、変更回数計算手段2によって得られた変更回数を、テキストファイルの内容の表示と同時に、各モジュールのコール箇所付近に、グラフや強調表示の濃さで表示する。
【0045】
また、表示処理手段3は、変更回数の表示箇所付近で特定の操作をユーザーが行った場合に、過去の変更の情報をリスト表示する。例えば、各行・モジュール名を右クリックして「過去の変更リスト」を選択すると、その行・モジュールに関する過去の変更内容の情報をリスト表示する。
【0046】
さらに、表示処理手段3は、モジュールのコール箇所付近に、そのモジュールの最終更新日時・更新ユーザー名や、モジュールの内容等を表示する。
【0047】
関連度計算手段4は、テキストファイルの集合内の全てのモジュール間の関連度表を作成する。
【0048】
関連度表の作成は、例えば以下のようにして行う。
【0049】
1.二次元配列table[n][n]を作成し、0で初期化する。nはモジュールの個数である。
【0050】
2.k番目のモジュール内の変更ID※の記述を抽出し、抽出した変更IDごとに、他のモジュール内に同じ変更IDが記述されているかを検索する。モジュールjに同じ変更IDが記述されていれば、table[k][j]を+1する。
【0051】
3.上記手順2をk=0からk=n-1まで繰り返す。
【0052】
※変更IDとは同じ目的のための変更に割り振られるIDである。バグトラッキングシステム等によって割り振られるユニークなIDであり、一般にソースコードの変更箇所に記述されることが多い。
【0053】
表示処理手段3は、テキストファイルの内容の表示と同時に、各モジュールの定義場所付近に、関連度の高いモジュールの情報を表示する。これは次のようにして行う。関連度計算手段4によって得られた関連度表を参照し、当該モジュールに対応する行の中で、最も値が大きい要素に対応するモジュールを、最も関連度が高いものとみなして、そのモジュールの情報を表示する。また、同様にして、2番目、3番目・・・も表示する。また、関連度の高さを★マークの数で表す。表示例を図4に示す。
【0054】
さらに、モジュールの情報にマウスカーソルを当てると、そのモジュールの内容を別ウインドウで表示する。
【0055】
引用ID生成手段5は、ユーザーからの要求に従って、日時情報、ユーザー名、引用元のモジュール名の情報を織り込んだ文字列を、引用IDとして発行する。
【0056】
ユーザーは、例えば既存の処理をコピー&ペーストしたり、参考にしたりして、新規処理を作成する場合に、新規処理の箇所にこのIDを埋め込む。
【0057】
例えば、ユーザーxが、function0を参考にしてfunction1を作成する場合、function0の定義場所を選択して引用IDの発行を要求する。引用ID生成手段5は、引用元のモジュール名"function0"、現在日時"08/02/21 5:00"を元に、引用ID[[function0:0802210500:x]]を発行する。
【0058】
表示処理手段3は、テキストファイルの内容の表示と同時に、引用IDの記述部分付近に、対応する引用元モジュールの内容を表示する。例えば、図5のように、[[function0:0802210500:x]]の表示の下に、引用元モジュールfunction0の内容を別のウインドウ内に表示する。
【0059】
また、表示処理手段3は、テキストファイルの内容の表示と同時に、引用元モジュールの定義場所付近に、対応する引用先モジュール名のリストを表示する。表示例を図6に示す。モジュール名にマウスカーソルを当てると、そのモジュールの内容を別ウインドウで表示する。
【0060】
これは例えば次のようにして実現される。モジュールの内容を表示する際、そのモジュール名の情報を織り込んだ引用IDの記述箇所を全て検索し、その記述箇所のモジュール名のリストを引用先モジュール名のリストとして表示する。
【0061】
また、表示処理手段3は、テキストファイルの内容の表示と同時に、前記引用IDの記述部分付近に、対応する引用元モジュールについて、引用ID発行日時以降の修正が変更情報記憶手段1に記録されている場合、警告を表示する。表示例を図7に示す。
【0062】
また、本テキストエディタは、ユーザーからの要求に従って、引用IDを元に、引用元・引用先の参照関係のレポートファイルを作成する。
【0063】
コーディングルール記憶手段6は、コーディングルールを記憶する。
【0064】
表示処理手段3は、テキストファイルの内容の表示と同時に、コーディングルールに一致しない箇所を強調表示する。
【0065】
また、表示処理手段3は、コーディングルールに一致しない箇所であってもその行に特定のフォーマットでルール番号が記述されている場合には強調表示しない。
【0066】
ループ情報記憶手段7は、モジュール内のループの情報(開始インデックス、終了インデックス、終了条件)を記憶する。
【0067】
モジュール内のループの情報は、例えば、特願2007−248057に示す方法を用いて、ループの開始インデックス、終了インデックス、終了条件の記述位置を特定し、その文字列を抽出することによって得られる。テキストファイルを開いたときに、関連するファイル全てから、各モジュールのループ情報を抽出して、ループ情報記憶手段7に記憶する。また、モジュール内からさらにコールされるモジュール内のループ情報も、コール元のモジュールのループ情報に含める。ループの入れ子情報も記憶する。
【0068】
表示処理手段3は、ループ情報記憶手段7から取得したループ情報を、テキストファイルの内容の表示と同時に、各モジュールのコール箇所付近に表示する。これにより、ユーザーはそのモジュールの処理の重さの概略を知ることができる。
【0069】
なお、本発明における情報表示は、それぞれ、特定の操作により、表示/非表示を切り替えることができる。
【図面の簡単な説明】
【0070】
【図1】本発明の原理構成図である。
【図2】本発明の実施の形態の構成図である。
【図3】各行の変更回数の表示例である。
【図4】関連度の高いモジュールの情報の表示例である。
【図5】引用元モジュールの表示例である。
【図6】引用先モジュール名のリストの表示例である。
【図7】引用先変更警告の表示例である。
【符号の説明】
【0071】
1 変更情報記憶手段
2 変更回数計算手段
3 表示処理手段
4 関連度計算手段
5 引用ID生成手段
6 コーディングルール記憶手段
7 ループ情報記憶手段
8 テキストファイル

【特許請求の範囲】
【請求項1】
テキストファイルの過去の変更情報を記憶した変更情報記憶手段と、
テキストファイルの各行について、過去の変更回数を計算する変更回数計算手段と、
テキストファイルの内容の表示と同時に、前記変更回数を、対応する各行に、グラフや強調表示の濃さで表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項2】
テキストファイルの過去の変更情報を記憶した変更情報記憶手段と、
テキストファイルの各モジュールについて、過去の変更回数を計算する変更回数計算手段と、
テキストファイルの内容の表示と同時に、前記変更回数を、各モジュールのコール箇所付近に、グラフや強調表示の濃さで表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項3】
テキストファイルの過去の変更情報を記憶した変更情報記憶手段と、
テキストファイルの各モジュールについて、モジュールの全てのコール箇所の近傍の過去の変更回数の和を計算する変更回数計算手段と、
テキストファイルの内容の表示と同時に、前記変更回数を、各モジュールのコール箇所付近に、グラフや強調表示の濃さで表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項4】
変更回数の表示箇所付近で特定の操作をユーザーが行った場合に、過去の変更の情報をリスト表示することを特徴とする、
請求項1ないし3記載のテキストエディタ。
【請求項5】
テキストファイルの集合内の全てのモジュール間の関連度表を作成する関連度計算手段と、
テキストファイルの内容の表示と同時に、各モジュールの定義場所付近に、関連度の高いモジュールの情報を表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項6】
引用元のモジュール名の情報を織り込んだ文字列を、引用IDとして発行する引用ID生成手段と、
テキストファイルの内容の表示と同時に、前記引用IDの記述部分付近に、対応する引用元モジュールの内容を表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項7】
引用元のモジュール名の情報を織り込んだ文字列を、引用IDとして発行する引用ID生成手段と、
テキストファイルの内容の表示と同時に、引用元モジュールの定義場所付近に、対応する引用先モジュール名のリストを表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項8】
テキストファイルの過去の変更情報を記憶した変更情報記憶手段と、
日時情報および引用元のモジュール名の情報を織り込んだ文字列を、引用IDとして発行する引用ID生成手段と、
テキストファイルの内容の表示と同時に、前記引用IDの記述部分付近に、対応する引用元モジュールについて引用ID発行日時以降の変更が前記変更情報記憶手段に記録されている場合、警告を表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項9】
コーディングルールを記憶したコーディングルール記憶手段と、
テキストファイルの内容の表示と同時に、コーディングルールに一致しない箇所を強調表示する表示処理手段とからなることを特徴とする、
テキストエディタ。
【請求項10】
モジュール毎に、モジュール内に記述されたループの情報(開始インデックス、終了インデックス、終了条件)を記憶するループ情報記憶手段と、
テキストファイルの内容の表示と同時に、前記ループ情報を、各モジュールのコール箇所付近に表示する表示処理手段とからなることを特徴とする、
テキストエディタ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−199373(P2009−199373A)
【公開日】平成21年9月3日(2009.9.3)
【国際特許分類】
【出願番号】特願2008−40742(P2008−40742)
【出願日】平成20年2月21日(2008.2.21)
【出願人】(707001931)
【Fターム(参考)】