(57)【要約】【課題】ユーザがエディタ機能を設定できるユーザインターフェースを持つエディタプログラム、エデット方法、エディタ装置およびその記憶媒体を提供することを目的とする。【解決手段】予めユーザにより入力された編集対象となる第１の文字列と、その文字列に続いて記述される第２の文字列とを取得して記憶しておき、ユーザが編集作業中に入力した文字を取得して得られた文字列が第１の文字列であるとき、記憶してある第２の文字列を編集文書に出力するよう構成する。【選択図】    図１
2004341939.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが入力した編集対象とする第１の文字列と、前記第１の文字列に続いて記述される第２の文字列とを取得し、前記第１の文字列に前記第２の文字列を対応付けて予め記憶した編集情報設定手段と、
ユーザが編集文書の作成中に入力した第３の文字列を取得し、前記第３の文字列を前記編集情報設定手段で記憶された第１の文字列の中から抽出し、抽出された前記第１の文字列に対応付けられた第２の文字列を前記編集文書に出力する編集実行手段と
をコンピュータに機能させるためのエディタプログラム。
【請求項２】
ユーザが入力した編集対象とする第１の文字列と、前記第１の文字列に続いて記述される第２の文字列と、前記第２の文字列に指定されたインデントとカレット位置を含む付属情報とを取得し、前記第１の文字列に前記第２の文字列と前記付属情報とを対応付けて予め記憶しておく編集情報設定手段と、
ユーザが編集文書の作成中に入力した第３の文字列を取得し、前記第３の文字列を前記編集情報設定手段で記憶された第１の文字列の中から抽出し、抽出された前記第１の文字列に対応付けられた第２の文字列を、前記付属情報を反映して前記編集文書に出力する編集実行手段と
をコンピュータに機能させるためのエディタプログラム。
【請求項３】
ユーザが入力した編集対象とする第１の文字列と、前記第１の文字列に続いて記述される第２の文字列とを取得し、前記第１の文字列に前記第２の文字列を対応付けて予め記憶しておく編集情報設定手順と、
ユーザが編集文書の作成中に入力した第３の文字列を取得し、前記第３の文字列を前記編集情報設定手段で記憶された第１の文字列の中から抽出し、抽出された前記第１の文字列に対応付けられた第２の文字列を前記編集文書に出力する編集実行手順と
を有することを特徴とするエデット方法。
【請求項４】
ユーザが入力した編集対象とする第１の文字列と、前記第１の文字列に続いて記述される第２の文字列とを取得し、前記第１の文字列に前記第２の文字列を対応付けて予め記憶しておく編集情報設定手段と、
ユーザが編集文書の作成中に入力した第３の文字列を取得し、前記第３の文字列を前記編集情報設定手段で記憶された第１の文字列の中から抽出し、抽出された前記第１の文字列に対応付けられた第２の文字列を前記編集文書に出力する編集実行手段と
を有することを特徴とするエディタ装置。
【請求項５】
ユーザが入力した編集対象とする第１の文字列と、前記第１の文字列に続いて記述される第２の文字列とを取得し、前記第１の文字列に前記第２の文字列を対応付けて予め記憶しておく編集情報設定手段と、
ユーザが編集文書の作成中に入力した第３の文字列を取得し、前記第３の文字列を前記編集情報設定手段で記憶された第１の文字列の中から抽出し、抽出された前記第１の文字列に対応付けられた第２の文字列を前記編集文書に出力する編集実行手段
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラムの作成やＨＴＭＬ等の構造化文書の作成を支援するエディタであって、より詳細にはユーザが編集内容を設定できるユーザインターフェースを持ったエディタに関する。
【０００２】
【従来の技術】
プログラムのソースコード作成段階で、編集作業を支援するエディタについては幾つかの提案がなされている。
例えば、オープンとクローズのように相対する関数のペアを編集画面上に表示し、編集中のソースコードにドラッグすることによりペアの関数の一方を取り込むと共に、対応する他方の関数を入力忘れを防止するため表示している関数の色を変えて表示する方法が提案されている（特許文献１参照）。
【０００３】
また、プログラム作成の作業中にソースコードの部分的なブロックに対する文法チェックを行い、文法上の誤りがあると自動で修正できるものは修正すると共に、入力中に省略された文字を判断して既に宣言した変数名や関数名をフルネームに置き換える技術が提案されている（特許文献２参照）。  また、ソースコードに関数名を入力すると、その関数が引数を必要とするとき入力した関数名の下の行に引数をヒントとして表示し、ユーザは表示された引数を参照しながら引数を入力することも行われている（非特許文献１）。
【０００４】
上記に示したエディタは、いずれも入力作業を効率化したり、文法上の誤りをソースコードの入力時に発見して入力からコンパイルまでの効率化を図るもの、あるいは入力ミスの低減を図るものである。
【０００５】
【特許文献１】
特開平１１−１１０１９９号公報（第２頁、図２）
【０００６】
【特許文献２】
特開平１０−２５４６８８号公報（第２頁、図１）
【０００７】
【非特許文献１】
新居雅行著、「Ｖｉｓｕａｌ  Ｂａｓｉｃ  ｆｏｒ  Ａｃｃｅｓｓ９７  完全制覇」、日経ＢＰ社、１９９８、Ｐ１０４
【０００８】
【発明が解決しようとする課題】
上記に示したように、従来のエディタは編集作業において文法チェックを含めた入力作業の効率化にある。しかしながら、これらのエディタの機能はエディタの仕様として定められた機能をユーザが用いているものであって、その機能をユーザがカストマイズできるものではなかった。例えば、ＨＴＭＬドキュメントの編集において＜ＴＡＢＬＥ＞属性を使用する場合、＜ＴＡＢＬＥ＞と入力するとエディタが＜ＴＲ＞と＜／ＴＲ＞を自動挿入し、その間を４文字文インデントして記述できるようにする、と言った機能をユーザが望んでもエディタがそのような仕様になっていなければユーザが４文字分のインデントを含めて入力するしかない。
【０００９】
本発明は上記の問題を解決するために、エディタにユーザインターフェースを設け、ここでユーザが設定した書式でテキストを編集文書に挿入するエディタの提供にある。本発明によりユーザの好みで自動編集ができ、ソースコードの作成やテキスト文書の作成の効率化が図れる。
【００１０】
【課題を解決するための手段】
第１の発明の原理を図１を用いて説明する。本発明は、編集情報設定手段１および編集実行手段２から構成する。
編集情報設定手段１は、ユーザがエディタの編集内容を予め設定するもので、ユーザから指定された第１の文字列と第２の文字列とを取り込み、第１の文字列に第２の文字列を対応させて記憶するものである。ここで第１の文字列は、編集対象の文字列で、例えば引数を必要とする関数名などである。第２の文字列は、この編集対象の文字列に続いて記述される文字列で、例えば引数の書式の記述である。この第２の文字列は、編集実行手段２において、編集文書に自動挿入される。
【００１１】
編集実行手段２は、編集作業中の文字列に対してユーザが設定した文字列を自動挿入するもので、より詳細にはユーザが入力した第３の文字列を取り込み、その文字列と等しい文字列を編集情報設定手段１で記憶した第１の文字列から抽出し、この第１の文字列に対応付けられた第２の文字列を編集文書に出力する。第３の文字列は、例えばプログラミング中であれば入力されたソースコードの文字列であり、この文字列が編集対象の文字列であれば（即ち、第３の文字列が第１の文字列に等しければ）、編集対象の文字列に続く文字列（即ち、第２の文字列）を出力するものである。
【００１２】
以上の構成により、ユーザが予め編集対象の文字列を設定しておけば、編集中に編集対象の文字列が現れるとユーザが指定した文字列を自動的に挿入するプログラムの提供できる。これにより、ユーザが自身のスタイルに合わせた形で自動挿入ができ、編集作業の効率化が図れる。
第２の発明の原理は、第１の発明で編集文書中に出力（編集文書からは挿入されることになる）する文字列に対して指定されたインデントとカレットを反映して出力するものである。インデントは、プログラムの内容を分かりやすくするための文字下げであり、一般にプログラムのブロックをまとめてインデント付けすることが行われる。ユーザは第２の文字列に対してそのインデント幅を指定できる。また、カレットは文字入力位置を示す記号で、第２の文字列を出力した直後の入力位置をユーザが設定できるものである。これにより、本エディタプログラムにより挿入された文字列を見やすく表示できると共に、文字挿入後の次に入力すべき位置を設定できる。
【００１３】
第３の発明の原理は、第１の発明におけるエデット方法である。本発明によりユーザが自身のスタイルに合わせた形で自動挿入が可能なエデット方法の提供ができる。
第４の発明の原理は、第１の発明におけるエディタ装置である。本発明によりユーザが自身のスタイルに合わせた形で自動挿入が可能なエディタ装置の提供ができる。
【００１４】
第５の発明の原理は、第１の発明における記録媒体である。本発明によりユーザが自身のスタイルに合わせた形で自動挿入が可能なプログラムの記録媒体の提供ができる。
【００１５】
【発明の実施の形態】
本発明を用いた実施形態を図２〜図７により説明をする。図２は本発明の一実施形態に係わるスクリーンエディタの全体構成図である。同図に示すスクリーンエディタは、本体１０と入力装置２１、表示装置２２および識別子情報２３、構成文字情報２４を記憶した外部記憶装置で構成する。
【００１６】
入力装置２１はキーボード等の入力装置で、ユーザからプログラムの起動を指示したりソースコードの入力を行う。
表示装置２２はＣＲＴや液晶ディスプレイ等で編集情報の設定画面や、ソースコードや構造化文書等の編集画面の表示を行うものである。
編集バッファ１１は、プログラムのソースコードを編集するためのバッファであり、編集バッファ中の各行の文字位置を管理する。入力装置２１から入力されたデータはこの編集バッファ１１に読み込まれ、また表示装置２２は編集バッファ１１のデータを反映して表示される。
【００１７】
編集情報設定部１２と編集実行部１３はスクリーンエディタのプログラムで図示しない主記憶上に展開されているものとする。編集情報を設定するためにユーザが編集情報設定部１２の起動を行うと、例えば図３に示す編集情報設定画面を表示装置２２の画面上に表示する。この編集情報設定画面がスクリーンエディタに対するユーザインターフェースで、ユーザはこの画面を用いて編集対象とする文字列やそれに続いて記述される文字列、インデントを入力装置２１から入力する。図３（ａ）の「識別子」欄には、編集対象となる文字列（即ち、第１の文字列）を指定する。ここでは、プログラム言語Ｖｉｓｕａｌ  Ｃ＋＋の「ｓｗｉｔｃｈ」コマンドを編集対象の文字列として入力した例を示している。「出力テキスト」欄には、「ｓｗｉｔｃｈ」に続いて記述される文字列（即ち、第２の文字列）を入力する。ここでは、「（ｖａｒｉａｂｌｅ）・・・・」の文字列を入力しており、その部分を同図（ｂ）に示す。  図３（ａ）の「出力テキスト」欄の下にある「ブロック中のインデント幅」は、「出力テキスト」欄に入力した文字列の中にブロックが存在する場合に、編集画面に出力したとき指定されたインデント幅で文字下げを行って表示する（実際には、編集バッファにエディタから出力するとき、インデント分の空白文字が出力されることになる）。ここでは、ブロック内の文字列の開始を４文字分インデントするよう設定している。
【００１８】
同様に「カレット設定」とその右の「ＯＮ／ＯＦＦ」ボタンは、カレットの設定に用いる。図３（ｂ）においてカレットが設定された位置は、「ｖａｒｉａｂｌｅ」の先頭文字「ｖ」の網かけ表示された位置である。「ＯＮ／ＯＦＦ」ボタンを押した状態で、この位置にカーソルを持ってきてキーボードの入力キーを押下することにより設定される。
【００１９】
図３（ａ）の右画面にある「構成文字タイプ名」欄は、その下の欄の「使用可能文字」および「区切り文字」のセットの名称である。ユーザが参照ボタンを押下して既に登録済の「構成文字タイプ名」を選択すれば、「使用可能文字」および「区切り文字」のセットが呼び出される。「構成文字タイプ名」欄を空欄にして、「使用可能文字」および「区切り文字」に入力を行うと新規に登録されたものとして「構成文字タイプ名」が付けられる。ここでは、ユーザが既存の「タイプＢ」を選択してその「使用可能文字」および「区切り文字」のセットが表示されているものとする。「使用可能文字」欄は、編集対象文字で使用できる文字であり、図３（ａ）では英小文字２４文字および数字１０文字の使用ができる。さらに、「区切り文字」欄は、ユーザが編集中の文字列を取り込む場合に編集対象となる文字の区切りを認識する文字で、ここではタブ（”￥ｔ”）と半角空白（”  ”）が区切り文字として使用されることを示している。
【００２０】
上記に示したように編集情報設定部１２で設定された情報は、それぞれ識別子情報２３と構成文字情報２４に格納される。即ち、識別子情報２３は図３（ａ）の左画面の情報を記憶するもので、そのデータ構造例を図４に示す。各レコードは、「識別子」、「出力テキスト」、「インデント幅」、「カレット位置」、「構成文字タイプ名」のフィールドから構成される。「識別子」フィールドは、編集対象となる文字列（第１の文字列）である。「出力テキスト」フィールドは、編集対象となる文字列（識別子）に続いて記述される文字列（スクリーンエディタから出力され編集文書に挿入される文字列である第２の文字列）、「インデント幅」フィールドは出力テキストの文字列の中のブロックに対する文字下げを行う値を文字数で示すもの、「カレット位置」フィールドはスクリーンエディタが文字出力を行った直後の文字入力位置を示す位置を出力テキストの先頭から文字数で位置で示すものである。「構成文字タイプ名」は、後述する「使用可能文字」と「区切り文字」のセットの情報の名称である。図４の最初のレコードは、識別子が「ｆｏｒ」でその出力テキストは「（；；）［改行］、｛［改行］、｝［改行］」であり、ブロック内のインデント幅は「２」文字分の文字下げし、カレットの位置は「２」文字目の位置、構成文字型は「タイプＡ」を指定していることを示している。
【００２１】
構成文字情報２４は図３（ａ）の右画面の情報を記憶するもので、そのデータ構造例を図５に示す。各レコードは「構成文字タイプ名」、「使用可能文字」および「区切り文字」のフィールドから構成している。「構成文字型名」フィールドは、ユーザが指定した使用可能文字と区切り文字の種類によってタイプＡから順番に付けられた名前で、「使用可能文字」は、編集対象となる文字種を指定するものである。「区切り文字」は、編集対象の文字列を認識する処理のトリガーとなる文字種である。
【００２２】
編集実行部１３は、ユーザが編集中の文字列を判断して、その文字列が編集情報設定部１２で設定した識別子と同一であれば、その識別子に対応したテキストをインデントを踏まえて編集文書に出力（挿入）し、さらにカレットを挿入した文字の指定された位置に設定するものである。図６はその例を示すもので、図６（ａ）においてユーザが３行目の「ｓｗｉｔｃｈ」を入力し、続いて区切り文字である「半角空白」を入力したとき、スクリーンエディタは同図（ｂ）に示すように「ｓｗｉｔｃｈ」に引き続き設定されたテキスト「（ｖａｒｉａｂｌｅ）・・・・」を３行目から９行目にかけてインデントを反映しながら出力している。さらに、次の入力位置であるカレットを３文字目に設定している。
【００２３】
次に編集実行部１３のフローを図７により説明する。編集実行部１３は取り込んだ文字列を一時格納する「ｓｔｒｉｎｇ」と称するバッファを持つこととし、ユーザから使用する構成文字型名が指定されているものとする（ここでは、タイプＢを指定）。まず、バッファ「ｓｔｒｉｎｇ」をリセット（クリアにする）しておき、ユーザが入力した文字「Ｔ」を一字読み取り、その入力文字「Ｔ」が識別情報を構成する文字かどうかを構成文字情報２４を参照して判断する。入力文字「Ｔ」が識別情報を構成する文字でなければバッファ「ｓｔｒｉｎｇ」をリセットし、再度ユーザから入力される文字「Ｔ」を取得する。「Ｔ」が構成文字であり、区切り文字でなければバッファ「ｓｔｒｉｎｇ」に「Ｔ」が格納される。即ち、入力文字が識別情報として構成し得る文字であると判断した後、「Ｔ」に区切り文字が現れるまでバッファ「ｓｔｒｉｎｇ」に入力文字が順次格納されることになる。（Ｓ１１〜Ｓ１６）。
【００２４】
区切り文字が現れた段階で識別子情報２３から１レコード読み込み、読み込んだレコードがＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｉｌｅ）でなければ「識別子」フィールドの文字列とバッファ「ｓｔｒｉｎｇ」の文字列とを比較し、等しければ「出力テキスト」フィールドの文字列を編集バッファに出力する。このとき、出力テキストのブロック内の文字は「インデント幅」フィールドの設定値分の空白文字コードを挿入して出力する。また、「カレット位置」フィールドの値も編集バッファに送られ、編集画面上ではカレット位置を反映して表示される。「識別子」フィールドの文字列とバッファ「ｓｔｒｉｎｇ」の文字列が異なるときは、識別子情報２３の次のレコードを読み込んで順次同様の比較を行うが、識別子情報２３の最後のレコードまで比較しても文字列が一致しなかったときは、編集対象の文字列ではなかったということであり、なんらの処理を行うことなく終了する。（Ｓ１７〜Ｓ２０）。
【００２５】
図７の一連の処理（ステップＳ１１〜Ｓ２０の処理）は、続いてユーザが文字入力を行うと、この処理を繰り返すことになる。
上記実施形態の例では、ユーザが「出力テキスト」欄に文字入力を最初から行ったが、エディタ側で「出力テキスト」欄に標準スタイルの文字列を提示してそれをユーザに修正させてもよい。
【００２６】
【発明の効果】
本願発明のエディタによりユーザの設定通りにテキストを自動挿入でき、ユーザは自分のスタイルでソースコードの作成や構造化テキストの作成が行えるので編集効率の向上が図れる。また、インデント構造まで設定できるので、自動挿入された記述は見やすいものになる。
【図面の簡単な説明】
【図１】本発明の原理図である。
【図２】実施形態の全体構成図である。
【図３】編集情報設定画面例である。
【図４】識別子情報のデータ構造例である
【図５】構成文字情報のデータ構造例である。
【図６】編集例である。
【図７】編集実行部の処理フロー例
【符号の説明】
１：編集情報設定手段
２：編集実行手段
１０：本体
１１：編集バッファ
１２：編集情報設定部
１３：編集実行部
２１：入力装置
２２：表示装置
２３：識別子情報
２４：構成文字情報
【図１】
2004341939.tif 000003
【図２】
2004341939.tif 000004
【図３】
2004341939.tif 000005
【図４】
2004341939.tif 000006
【図５】
2004341939.tif 000007
【図６】
2004341939.tif 000008
【図７】
2004341939.tif 000009