■ 外部ツールの作成方法


 ここでは、本編集ウィンドウ内の選択範囲のテキストに対して、加工や変換の処理を 行なう外部ツールの作成方法について、説明します。

 このような外部ツールは、その標準入出力で、本エディタとやり取りします。 それ以外の特別なインターフェイスは不用です。つまり、この外部ツールは、 標準入力を受け取って、それを加工/変換して、標準出力に送出する、いわゆる 「フィルター」の働きをするプログラムです。

 このようなフィルタープログラムと、本エディタがやり取りする場合、通常、 本エディタの選択範囲のテキストが、そのプログラムの標準入力になり、 そして、その標準出力が、本エディタの選択範囲のテキストと置換されます。 ちなみに、この場合、「外部プログラムの実行」ダイアログボックスでは、
  標準入力: 現テキストの選択範囲
  標準出力: 選択範囲と置換
に設定して、そのフィルタープログラムを実行します。

 本エディタの外部ツール用のフォルダーには、このようなフィルタープログラムが、 参考と実用を兼ねて、2本入っています。
(1)RevLines.exe標準入力の各行を逆順にして標準出力する
(2)SeqNo.exe 標準入力の各行に指定書式の連番を付けて標準出力する

これらのプログラムは、C言語で書かれていて、次の各ソースファイルに入っています。
(1)RevLines.c
(2)SeqNo.c


 このフィルタープログラムは、矩形選択範囲のテキストに対しても、 正常に動作します。ところが、このフィルタープログラム側では、選択範囲の テキストがどのようになっているのかは、まったく意識する必要はありません。ただ、 標準入力の各行単位の処理を、意識すればよいだけです。それは、本エディタ側で、 矩形選択範囲のテキストに対して、次のように処理しているからです。つまり、 矩形選択範囲のテキストは、その矩形内の各行の選択部分の末尾に改行コードを付加して、 そのフィルタープログラムの標準入力へ送出します。また、 そのフィルタープログラムの標準出力から受け取ったテキストの各行は、 その改行コードを除去して、矩形選択範囲内の各行の選択部分と置換します。