- 作成者投稿
- 2009年3月28日 4:20 am #7332Yutaka Emuraキーマスター
EmEditor Professional 9.00 alpha 9 を 公開します。v9.00 alpha 8 からの主な変更点は次の通りです。
– スニペット プラグインの保存先を、従来のレジストリから、ディスクに変更されました。レジストリ利用時は、Vista の場合、通常 Users…AppDataRoamingEmurasoftEmEditor に、INI 使用時は、PlugIns フォルダに保存されます。
– スニペット プラグインのシンボルを から $ に変更しました。既に保存されているスニペットは自動的に変換されます。
– `! …` または `!# … ` と記述することにより、シェルコードとマクロの中で、パラメータを展開しなくなりました。! がない場合は、パラメータを展開します。
– TextMate 用スニペット ファイル (*.plist, *.tmSnippet) もインポートできるようになりました。インポート時、複数のファイルを一度に選択できるようになりました。
– エクスプローラからスニペット ファイルを選択して、スニペット プラグインのツリーにドラッグ & ドロップでインポートできるようになりました。
– [このフォルダにインポート] コマンドが追加されました。
– クリップボード関係の不具合の修正。
新しいスニペット プラグインの説明ビデオ:
http://jp.emeditor.com/modules/tutorials4/index.php?id=19ダウンロード:
http://www.emeditor.com/pub/emed900a9jpx.msi (日本語, 32-bit)
http://www.emeditor.com/pub/emed900a9jp64.msi (日本語, 64-bit)ポータブル版は、EmEditor インストーラを使ってインストールした後、ツール メニューのインポートとエクスポート ウィザードからも作成することができます。ただし動作速度はレジストリ使用時より遅くなります。
本バージョンは、alpha 版です。仕様は今後変更される可能性があります。また、不具合が残っている可能性が充分にありますのでご注意ください。
何かご意見がありましたら、ご連絡ください。よろしくお願いします。
————————————————
以下はヘルプのドラフトです。スニペットの構文
単純テキスト
文書に挿入する任意のテキストを含めることができます。単純テキストを書くには、ほとんどの文字を使用することができますが、、$、` を含めたい場合は、、$、` というようにエスケープする必要があります。
プレイスホルダー
スニペットを挿入した後、カーソル位置は最初のプレイスホルダー位置に移動します。さらに TAB キーを押すと、次のプレイスホルダーにジャンプします。
これらのタブ ストップは ${n:default} のように定義することができます。ここで、default はスニペットを挿入したときに最初に表示される既定値です。既定値が存在しない場合、 {} を省略して $n のようにタブ ストップを記述することができます (n は 0 から 9 までの整数値)。ユーザーがスニペットを挿入すると、最初のカーソル位置は $1 の位置になります。TAB キーを押すと、タブ ストップは次のプレイスホルダー $2、さらに $3 というようにジャンプします。
たとえば、次のスニペットは HTML にハイパーリンクを挿入し、最初のカーソル位置を $1 にします。カーソルが $1 にあるときに、ユーザーが TAB キーを押すと、カーソルは $2 にジャンプします。そして $0 にジャンプします。
スニペットには既定値を含めることができます。次のスニペットは、ハイパーリンクを既定値で挿入します。
$0
プレイスホルダーの中にプレイスホルダーを含めることができます。次のスニペットは、target パラメータが選択された状態でハイパーリンク タグを挿入します。ユーザーは引数を上書きするか、削除するか、または TAB キーを押して次のプレイスホルダーに移動するかを決めることができます。
$0
ミラー
同じプレイスホルダーのインデックスを使用すると、これらのプレイスホルダーの値はすべて同じ、つまりミラーになります。次のスニペットは「for」ループを挿入します。この場合、変数 i がプレイスホルダー $2 の既定値で、同じインデックスのプレイスホルダーが他の 2 箇所で使用されています。カーソルが ${2:i} の位置にある間に、i の値を変更すると、その変更が他の場所にもミラーされます。
for( ${1:int} ${2:i} = ${3:0}; $2 != ${4:10}; $2++ ){
$0
}変換
あるプレイスホルダーの値を別のプレイスホルダーに、正規表現と置換フォーマットを使用して、変換することができます。構文は ${n/regexp/replace_format/option} となります。ここで、
n: プレイスホルダーのインデックス
regexp: 検索する正規表現
replace_format: 置換フォーマット
option: 現在のところ i (大文字小文字を区別する) のみサポート次の例は、最初の行に入力された文字を 2 行目にコピーします。ただし、最初の文字だけ大文字に変換します。
$1
${1/./U/}パラメータ
${CurLine} カーソル位置の論理行番号。
${Date} 今日の日付。
${DefColor} 最近選択された色の RGB 値。
${Dir} ファイルのディレクトリ名。
${Ext} ファイルの拡張子。
${Filename} 拡張子を除くファイル名。
${Path} ファイルの完全パス名。
${PickColor} 選択された色の RGB 値。
${PickFullPath,title,filter} 選択されたファイルの完全パス名。title はダイアログ ボックスのタイトルを、filter は、次のフォーマットのフィルタを示します。: テキスト ファイル|*.txt|すべてのファイル|*.*||
${PickRelativePath,title,filter} 選択されたファイルの相対パス名。title はダイアログ ボックスのタイトルを、filter は、次のフォーマットのフィルタを示します。: テキスト ファイル|*.txt|すべてのファイル|*.*||
${SelText} 選択されたテキスト。
${Time} 現在の時刻。${x} のフォーマットなら、どのパラメータでも使用できます。すると、ダイアログ ボックスが表示され、値の入力を促されます。
シェル コード
`shell_code` の形式で、コマンド プロンプト (cmd.exe) にシェル コードを渡すことができます。指定する値は、cmd.exe に “%COMSPEC% /c shell_code” 形式で渡されます。シェル コードからの標準出力、および標準エラーは、テキスト文書のカーソル位置にリダイレクトされます。たとえば、次のスニペットは現在のフォルダの一覧を挿入します。現在のところ、各スニペットに含めることができるシェルコードは 1 個だけです。
`DIR`
マクロ
`# ` の形式で、マクロをスニペットに含めることができます。最初の文字 # は、これがシェル コードではなく、マクロであることを示します。これは JavaScript でなく VBScript、PerlScript、PHPScript、RubyScript などの ActiveScript の場合は、”#language=” を使用して使用する言語を定義する必要があります。たとえば、VBScript を使用したい場合は、`#language=”VBScript” …` と記述します。Interface オブジェクトを使用して、スニペットと EmEditor マクロ エンジンの間で値を渡すことができます。次の例は、クリップボードの内容をカーソル位置に挿入します。現在のところ、各スニペットに含めることができるマクロは 1 個だけです。
`# Interface.write( clipboardData.getData(“”) );`
Interface.write() メソッドは、マクロの結果をスニペットに渡します。また、Interface.writeln() を使用して、結果の最後に改行復帰 (CR+LF) を追加することができます。
既定値、シェル コード、マクロ内のパラメータ
プレイスホルダー既定値は、パラメータ、シェル コードまたはマクロを含めることができます。次のスニペットは、選択範囲が存在する場合、選択されたテキストを
と
の間に入れて
タグを挿入します。
${0:${SelText}}
シェル コードとマクロは、そのコードとマクロの中にパラメータを含めることができます。次のスニペットは、継続するために、${Your Name} パラメータに値を入力するダイアログ ボックスを表示します。
`# var s = “${Your Name}”;
for( var i = 0; i != 5; i++ ){
Interface.writeln( s );
}
`すべての と ` の前に をがあることに注意する必要があります。たとえば、次のスニペットは、”C:Program FilesEmEditor” を挿入します。
`# Interface.writeln( “C:\Program Files\EmEditor” ); `
この理由は、バックスラッシュ () は と書く必要があり、さらに JavaScript も を に変換します。結果として、 は 4 個のバックスラッシュ (\) に変換します。
を変換したくなく、シェル コードやマクロにパラメータを含める必要がない場合、コードの最初に ! を含めることができます。つまり、シェル コードでは `! … ` と記述し、マクロでは `!#…` と記述します。したがって、前の例は次のように書き換えることができます。
`!# Interface.writeln( “C:Program FilesEmEditor” ); `
2009年3月28日 11:43 am #7336kshi参加者開発お疲れ様です。
clipboardData.clearData(“Text”,0) で
正常に履歴が繰り上がるようになりました!!■ LineTextについて
LineTextの扱いですが、
「選択せずに Ctrl+C でコピーすると、
カーソル位置の論理行を LineTextとして保存する」
という理解でよいでしょうか。Ctrl+F8で論理行選択してコピーした場合も
LineTextになるのかと思いましたが、ちがうようですね。
私は現在の仕様でしっくりきます。■ ウィンドウごとのクリップボードについて
クリップボード履歴を積み重ねたあと、
ウィンドウ(グループ)を2つに分割すると、
どちらか一方で履歴がなくなるようです。2009年3月28日 4:40 pm #7337Yutaka Emuraキーマスターkshiさんは書きました:
開発お疲れ様です。clipboardData.clearData(“Text”,0) で
正常に履歴が繰り上がるようになりました!!■ LineTextについて
LineTextの扱いですが、
「選択せずに Ctrl+C でコピーすると、
カーソル位置の論理行を LineTextとして保存する」
という理解でよいでしょうか。Ctrl+F8で論理行選択してコピーした場合も
LineTextになるのかと思いましたが、ちがうようですね。
私は現在の仕様でしっくりきます。■ ウィンドウごとのクリップボードについて
クリップボード履歴を積み重ねたあと、
ウィンドウ(グループ)を2つに分割すると、
どちらか一方で履歴がなくなるようです。選択せずに Ctrl+C でコピーした場合は、LineTextとして保存するということで正しいです。
Ctrl+F8で行選択の場合は、表示行で選択することもできるため、LineText にはならないです。
ご報告、ご意見ありがとうございました。
2009年3月31日 2:36 am #7356mayuta1002参加者開発お疲れ様です。
9.00 alpha 9において、
スニペットプラグイン(サイドバー)を×ボタンで、
閉じようとすると、エラーが発生します。——————————————————-
プラグインでアプリケーション エラーが発生しました。
プラグイン:Snippets.dll
関数:OnEvents
nEvent = 0x800000
——————————————————-alpha 8までは発生しなかったように思います。
調査をお願いします。
環境はXP Pro SP3です。2009年3月31日 7:48 am #7359kshi参加者開発お疲れ様です。
検索/置換ドロップダウンリスト用のフォントを
文書のフォントに合わせていた場合、
入力ボックスを複数行に拡張すると、
フォントがシステム既定になるようです。
1行に戻すと、文書のフォントに戻ります。ご確認をお願いいたします。
2009年4月7日 4:43 am #7368Yutaka Emuraキーマスターkshiさんは書きました:
開発お疲れ様です。検索/置換ドロップダウンリスト用のフォントを
文書のフォントに合わせていた場合、
入力ボックスを複数行に拡張すると、
フォントがシステム既定になるようです。
1行に戻すと、文書のフォントに戻ります。ご確認をお願いいたします。
alpha 10 で修正しました。ありがとうございます。
2009年4月7日 4:44 am #7369Yutaka Emuraキーマスターmayu1002さんは書きました:
開発お疲れ様です。9.00 alpha 9において、
スニペットプラグイン(サイドバー)を×ボタンで、
閉じようとすると、エラーが発生します。——————————————————-
プラグインでアプリケーション エラーが発生しました。
プラグイン:Snippets.dll
関数:OnEvents
nEvent = 0x800000
——————————————————-alpha 8までは発生しなかったように思います。
調査をお願いします。
環境はXP Pro SP3です。こちらでは再現しなかったのですが、まだ alpha 版なので、そのような不具合が残っている可能性はあります。 alpha 10 でも再現しますでしょうか?
2009年4月7日 6:22 am #7371mayuta1002参加者開発お疲れ様です。
とりあえず、alpha 10にアップデートすることで、
現象は出なくなりました。
また何かあったら報告させて頂きます。 - 作成者投稿
- このトピックに返信するにはログインしてください。