=====================================================================
【 名  称 】    InsertLineNumber.dll
【Version 】    version 2.4.2
【制作者名】    Delフサギコミ゚Д゚彡
【 e-mail 】    delfusagiko@ジーメール.com
【HomePage】    http://delfusa.main.jp/delfusafloor/
【動作確認】    EmEditor 32bit版 Version 13.0.6
                Windows7 32bit / 64bit
【 種  類 】    フリーソフト
【転載条件】    雑誌掲載の場合、作者にメールでお知らせください。
                その他の転載の場合はご自由に。
======================================================================
【内容紹介】
 このInsertLineNumberプラグインは、選択した範囲の行に対して行番号を付
属させることのできるEmEditorプラグインです。

【使い方】
 動作画面は次のようになります。





 次の機能があります。

・  行番号を1番から挿入
選択した範囲に対して、行番号を1番から行頭に挿入することができます。挿
入する行番号が2桁や3桁になる場合、1桁目の行頭にスペースが挿入されて桁
がそろうようになっています。行番号と本文との区切り文字は[:]です。
下記のような動作になります。

例:
    テスト
    テスト
    ↓
    1:テスト
    2:テスト

・  行番号を逆順に挿入
選択した範囲に対して、行番号を最後の番号から逆順に行頭に挿入することが
できます。

例:
    テスト
    テスト
    テスト
    テスト
    ↓
    4:テスト
    3:テスト
    2:テスト
    1:テスト

・  ファイル行番号を挿入
選択した範囲に対して、ファイルの論理行番号を行頭に挿入することができま
す。挿入する行番号の桁が変化する場合、行頭にスペースが挿入されて桁がそ
ろいます。行番号と本文との区切り文字は[:]です。
下記のような動作になります。

例:
    テスト
    テスト
    ↓
    50:テスト
    51:テスト

・  先頭で指定した行番号を挿入
選択した範囲の先頭に行番号を指定しておけば任意の数から行番号を振ること
が出来る機能です。行番号として指定できる書式は「10:」や「-4:」や「+005
:」のように指定できる。プラスの記号と先頭ゼロ埋めの指定を書式として指
定できる。桁あがり桁さがり、マイナス記号がつく場合などでも[:]の位置が
そろうように行番号が挿入されます。

例:
    +005:テスト
    テスト
    テスト
    テスト
    ↓
    +005:テスト
    +006:テスト
    +007:テスト
    +008:テスト

・  行番号を削除
選択した範囲に対して、付属された行番号を削除します。処理は[:]の前の文
字が空白か数値だけの場合には[:]より前の文字を削除する動作になります。
下記のような動作になります。

例:
    1:テスト
    2:テスト
    ↓
    テスト
    テスト

・  行番号のみの行を削除
選択した範囲に対して、行番号のみの行があれば削除します。行が行番号のみ
かどうかは[:]の前の文字が空白か数値で、[:]より後ろの文字が空白だけかど
うかを判断しています。下記のような動作になります。

例:
    1:テスト
    2:テスト
    3:
    4:テスト
    5:テスト
    ↓
    1:テスト
    2:テスト
    4:テスト
    5:テスト

・  行番号以降の余分なインデントの削除
選択した範囲に対して、行番号以降のインデントを削除します。下記のような
動作になります。

例:
    1:    A
    2:    B
    3:        C
    4:        D
    ↓
    1:A
    2:B
    3:    C
    4:    D

・  ファイル行番号を挿入してコピー
選択した範囲に対して、ファイルの論理行番号を行頭に挿入して、選択範囲の
文字列をクリップボードにコピーします。編集中の文書には変更を加えませ
ん。コピーするテキストの1行目にはファイルのあるフォルダ名、2行目には
ファイル名を付属させています。

このプラグインのソースの一部を例としてコピーしてみました。
例:
    C:\DelphiFolder\EmEditorPlugIn\Product\InsertLineNumber\
      InsertLineNumber.dpr
    62:procedure OnCommand(hwnd:HWND);stdcall;
    63:
    64:  function FileReadOnly: Boolean;
    65:  var
    66:    pbChecked:PBOOL;
    67:  begin
    68:    GetMem(pbChecked, SizeOf(Boolean));
    69:    Result := not Boolean(SendMessage(hwnd,EE_QUERY_STATUS,
    70:                        EEID_EDIT_REPLACE,LPARAM(pbChecked)));
    71:    FreeMem(pbChecked);
    72:  end;

・  ファイル行番号を挿入して整形後コピー
選択した範囲に対して、ファイル行番号を挿入し、[行番号テキストの整形]処
理、つまり、行番号のみの行を削除と行番号以降の余分なインデントの削除を
行ったあと、クリップボードにコピーします。編集中の文書には変更を加えま
せん。

・  行番号を削除してコピー
選択した範囲に対して、行番号が存在すれば削除してから、選択範囲の文字列
をクリップボードにコピーします。編集中の文書には変更を加えません。


【インストール/実行方法】
 ダウンロードしたInsertLineNumber.zipを展開すると以下のようなファイル
が現れます。
−−−−−−−−−−−
InsertLineNumber.dll(プラグイン本体)
readme.html(このファイル)
readme_image(このファイルの画像フォルダ)
−−−−−−−−−−−
インストール作業はInsertLineNumber.dllをEmEditorのプラグインフォルダに
配置するだけです。プラグインフォルダは標準では次の場所です。
    C:\Program Files\EmEditor\PlugIns
配置してからEmEditorを起動すると自動認識します。

【アンインストール方法】
 EmEditorが起動していない状態でEmEditorのプラグインフォルダから
プラグイン本体
    InsertLineNumber.dll
このを削除してください。
このファイルを削除していただくか、EmEditorのプラグイン設定画面からアン
インストールを選択してください。

=====================================================================
【更新履歴】
2010/02/06(土)  Ver1.0.0
・  StringReplaceからコピーして作成
2010/04/20(火)  ver1.1.0
・  行番号削除機能をつけた
2011/01/15(土) ver2.0.0
・ 行番号逆順、指定番号から挿入(±1、±10)機能をつけた
2011/11/04(金)  ver2.1.0
・コンパイラをDelphiXEにした。
・ReadOnlyでもクリップボードコピーだけはできるようにした
・不要なユニットを解除し419KBから115KBにサイズを縮小した
2012/05/07(月)  ver2.1.1
・プラグインプロパティ画面の表示が
  Unicode対応のために先頭一文字しか表示されていなかったので修正
2012/06/04(月)  ver2.2.0
・[行番号のみの行を削除]機能を追加
・メニューの順番を並び替えた。
2013/05/02(木)  ver2.3.0
・コピーのメニュー構成を変更
・[行番号を削除してコピー]機能を追加
2013/05/14(火)  ver2.4.0
・メニュー構成を変更
・[行番号テキスト加工][行番号以降の余分なインデントの削除]機能の追加
・行番号判定に先頭タブ文字も含むように変更
2013/05/23(木)  ver2.4.1
・テキスト整形機能として[行番号のみの行を削除]
  [行番号以降の余分なインデントの削除]を同時実行できるようにした。
・テキスト整形を利用して[ファイル行番号を挿入して整形後コピー]機能を追加した。
2013/10/22  ver2.4.2
・バージョン表記をAnsiStringにした
=====================================================================