Class Index | File Index

Classes


Class JseeUtil


Defined in: sgc4jsee.jsee.

Class Summary
Constructor Attributes Constructor Name and Description
 
JavaScript for EmEditorのためのユーティリティクラスです。
様々な静的メソッドを提供します。

このクラスのメソッドが返却するディレクトリパスは、全て"\"で終了します。
Method Summary
Method Attributes Method Name and Description
<static>  
JseeUtil.fileName()
このファイルのファイル名を取得します。
<static>  
JseeUtil.dirPath()
このファイルが置かれているディレクトリへのパスを取得します。
二度目以降の呼び出しからは、キャッシュした値を返します。
一度目の呼び出しで存在チェックを行います。
<static>  
JseeUtil.filePath()
このファイルへの絶対パスを取得します。
二度目以降の呼び出しからは、キャッシュした値を返します。
一度目の呼び出しで存在チェックを行います。
<static>  
JseeUtil.getSnipIniName()
スニペット用INIファイルのファイル名を取得します。
<static>  
JseeUtil.getSnipIniPath()
スニペット用INIファイルへの絶対パスを取得します。
二度目以降の呼び出しからは、キャッシュした値を返します。
一度目の呼び出しで存在チェックを行います。
<static>  
JseeUtil.getSnipIniObj(selection)
スニペット用INIファイルを読み込み、指定のセレクションを{key1:value1, key2:value2}の形のオブジェクトに変換します。
セレクション名は"["と"]"で囲わずに指定します。
二度目以降の呼び出しからは、キャッシュした値を返します。

JseeUtil.getSnipIniPathJseeUtil.getIniObjを順に呼び出し、指定されたセレクションの情報を抽出します。

<static>  
JseeUtil.selectSnipIniValue(selection, key)
スニペット用INIファイルを開き、指定されたセレクションとキーに該当する値を選択状態にします。
選択が成功すればtrue、失敗すればfalseを返します。

JseeUtil.getSnipIniPathJseeUtil.openFileJseeUtil.selectIniValueを呼び出します。

<static>  
JseeUtil.quote(target)
正規表現で使われる文字をエスケープします。

※関数名はJavaのPattern#quote(String)を参考にしました。

<static>  
JseeUtil.isUndef(target)
引数がundefinedかどうかを判別します。
<static>  
JseeUtil.toString(target)
引数に渡された値を、人が認識しやすい文字列に変換します。
  • undefinedの場合、"undefined"を返却
  • nullの場合、"null"を返却
  • 正規表現オブジェクトの場合、パターン文字列をJseeUtil.escEscSeqに掛けて返却
  • Object.toString()が"[object Object]"でなければ、それを返却
  • Object.toString()が"[object Object]"であれば、プロパティ解析結果をJseeUtil.escEscSeqに掛けて、{prop1:value1,prop2:valu2}の形式の文字列として返却
<static>  
JseeUtil.escEscSeq(target)
エスケープシーケンスをエスケープします。
対象となるエスケープシーケンスは、"\r"、"\n"、"\t"のみです。
<static>  
JseeUtil.selectLines()
行選択でない状態から行選択状態にします。複数行の行選択に対応します。
<static>  
JseeUtil.getLogger(available, scope)
アウトプットバーにログを出力するロガーを取得します。

ロガーはlog関数を持ち、その関数の引数にアウトプットバーに出力する値を指定します。
available関数を判別してからlog関数を呼び出すと、高速化が見込めます。

<static>  
JseeUtil.log(obj)
アウトプットバーにログを出力します。
JseeUtil.getLoggerを使うまでもない場合に使用します。
<static>  
JseeUtil.dateFormat(date, format)
日付をフォーマットに沿って文字列化します。

サポートするフォーマットは以下に挙げたもののみです。

  • yyyy
  • yy
  • y
  • MM
  • M
  • dd
  • d
  • HH
  • H
  • mm
  • m
  • ss
  • s
  • SSS
  • S
<static>  
JseeUtil.getMacroPath()
マクロフォルダのパスを取得します。同時にパスの存在チェックも行います。
二度目以降の呼び出しからは、キャッシュした値を返します。
<static>  
JseeUtil.getEditorPath()
EmEditorのフォルダパスを返却します。
二度目以降の呼び出しからは、キャッシュした値を返します。
<static>  
JseeUtil.getEditorName()
EmEditorの実行ファイルの名前を返却します。
二度目以降の呼び出しからは、キャッシュした値を返します。
<static>  
JseeUtil.getScriptPath()
実行中のスクリプトが格納されているディレクトリパスを返却します。
二度目以降の呼び出しからは、キャッシュした値を返します。
<static>  
JseeUtil.getBackupDirPath()
開いているドキュメントに設定されたバックアップフォルダへのパスを取得します。
取得できなければ空文字を返します。
<static>  
JseeUtil.getTempDirPath()
テンポラリフォルダへのパスを取得します。
二度目以降の呼び出しからは、キャッシュした値を返します。
<static>  
JseeUtil.openFile(path)
ファイルを開きます。
指定されたパスが存在しない場合は例外を投げます。
<static>  
JseeUtil.exec(execSentence)
外部アプリを実行し、標準出力と標準エラーの情報を取得します。
返却値は右記の形のオブジェクトです。{out: exeが出力した標準出力, err: exeが出力した標準エラー}

exeのファイルパスに空白が含まれる場合、必ずダブルクォーテーションで囲ってください。

実行したアプリを終了させるまでEmEditorの制御は復帰しません。

<static>  
JseeUtil.zeroFill(target, digit)
数値をゼロ埋めします。
<static>  
JseeUtil.contains(array, item)
配列に指定の要素が含まれるかどうかを調べます。(比較には"=="を使用します。)
<static>  
JseeUtil.col2arr(col2arr)
各要素のアクセスにEnumeratorを使用する必要のあるCollectionオブジェクトを配列に変換します。
<static>  
JseeUtil.getIniObj(iniFilePath)
INIファイルを読み込み、{key1:value1, key2:value2}の形のオブジェクトに変換します。
"[selection]"というセレクションに"key"が定義されていれば、obj.
<static>  
JseeUtil.createPopupMenu(menuItems, willPopupAtCaret)
ポップアップメニューを表示します。
引数には[["menuText1", function1, arguments1], ["menuText2", function2, arguments2]]の形の二次元配列を指定します。
<static>  
JseeUtil.shell()
new ActiveXObject("WScript.Shell");を呼び出します。
二度目以降の呼び出しからは、キャッシュした値を返します。
<static>  
JseeUtil.fso()
new ActiveXObject("Scripting.FileSystemObject");を呼び出します。
二度目以降の呼び出しからは、キャッシュした値を返します。
<static>  
JseeUtil.getIndent()
インデントに使われる文字列を取得します。
<static>  
JseeUtil.readFile(fileName)
ファイルを読み込みます。
ファイルが存在しなければ空文字を返します。
<static>  
JseeUtil.writeFile(filePath, content)
ファイルに書き込みます。
既に存在するファイルパスが指定された場合は上書きします。
存在しないファイルパスが指定された場合は、フォルダ及びファイルを作成します。
<static>  
JseeUtil.appendFile(filePath, content)
ファイルに追加で書き込みます。
存在しないファイルパスが指定された場合は、フォルダ及びファイルを作成します。
<static>  
JseeUtil.readAll(stream)
指定のストリームから全て読み込みます。
stream.ReadAll()と同じ機能ですが、バッファサイズの問題を起こりにくくします。
<static>  
JseeUtil.writeAll(stream, content)
指定のストリームに書き込みます。
stream.Write()と同じ機能ですが、バッファサイズの問題を起こりにくくします。
<static>  
VBのスコープの開始部分にマッチする正規表現オブジェクトを取得します。
Function、Sub、Class、Module、Property、If、Get、Set、With、Select、Try、Structure、Enum、Forにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語です。

<static>  
VBのスコープの終了部分にマッチする正規表現オブジェクトを取得します。
End Function、End Sub、End Class、End Module、End Property、End If、End Get、End Set、End With、End Select、End Try、End Structure、End Enum、Nextにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語、3がEndを除く単語(Nextにマッチした場合は存在しません)です。

<static>  
VBのEnd Hogeで閉じられるスコープの開始部分にマッチする正規表現オブジェクトを取得します。
Function、Sub、Class、Module、Property、If、Get、Set、With、Select、Tryにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語です。

<static>  
VBのEnd Hogeで閉じられるスコープの終了部分にマッチする正規表現オブジェクトを取得します。
End Function、End Sub、End Class、End Module、End Property、End If、End Get、End Set、End With、End Select、End Tryにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語、3がEndを除く単語です。

<static>  
VBのルーチンの開始部分にマッチする正規表現オブジェクトを取得します。
FunctionとSubにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語です。

<static>  
VBのルーチンの終了部分にマッチする正規表現オブジェクトを取得します。
End FunctionとEnd Subにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語、3がEndを除く単語です。

<static>  
JseeUtil.upperCamelize(target)
アッパーキャメルケース("AaaBbb")に変換します。
<static>  
JseeUtil.lowerCamelize(target)
ロウワーキャメルケース("aaaBbb")に変換します。
<static>  
JseeUtil.underScorize(target)
アンダースコア区切り("AAA_BBB")に変換します。
<static>  
JseeUtil.newTab()
必ず新規タブを開き、それをアクティブにします。
内部の動きは以下の通りです。
  • 現在のタブが無題でなければそのまま新規タブを開きます。
  • 現在のタブが無題の場合は別の無題でないタブをアクティブにしてから新規タブを開きます。
  • 無題でないタブが存在しなければ、[元に戻す]が有効なタブを探し、あればそれを利用して新規タブを開きます。
  • [元に戻す]が有効な無題のタブが存在しなければ、既に存在する無題のタブを編集して新規タブを2つ開いた後、編集したタブを閉じます。
<static>  
JseeUtil.openTemplate(configName)
[設定のプロパティ]に紐付く[テンプレートファイル]を開きます。
<static>  
JseeUtil.selectAllBoxText()
箱型選択で全選択します。
<static>  
JseeUtil.findNext(target)
キャレット位置から後方へ検索し、見つかった単語を選択します。
見つかった場合はtrue、見つからなかった場合はfalse、空文字が指定された場合もfalseを返します。

既存の検索機能を使わないため、検索履歴やハイライトに影響を与えません。
検索対象にString型が指定された場合は文字列検索を、RegExp型が指定された場合は正規表現検索(multilineがONの状態で)を行います。
正規表現検索はJScriptによる検索であり、既存の検索機能とは挙動が違うので注意してください。(特に"\s"は改行に一致するため、"[^\S\r\n]"などに書き換える必要があります。)

<static>  
JseeUtil.findPrev(target)
キャレット位置から前方へ検索し、見つかった単語を選択します。 見つかった場合はtrue、見つからなかった場合はfalse、空文字が指定された場合もfalseを返します。

既存の検索機能を使わないため、検索履歴やハイライトに影響を与えません。
検索対象にString型が指定された場合は文字列検索を、RegExp型が指定された場合は正規表現検索(multilineがONの状態で)を行います。
正規表現検索はJScriptによる検索であり、既存の検索機能とは挙動が違うので注意してください。(特に"\s"は改行に一致するため、"[^\S\r\n]"などに書き換える必要があります。)

<static>  
JseeUtil.findAll(target)
文書の先頭から後方へ検索し、見つかった単語を選択します。
document.selection.StartOfDocument(false);JseeUtil.findNextを呼び出します。
<static>  
JseeUtil.getRegExpAddedFlgs(regexp, flgs)
正規表現オブジェクトのフラグ("g", "m", "i"の3種類)を追加した、新しい正規表現オブジェクトを返します。
新しい正規表現オブジェクトは、元の正規表現オブジェクトの検索結果等は保持していません。
<static>  
JseeUtil.getAllText()
ドキュメントの全文字列を取得します。
document.GetLineで全ての行を取得するより高速に動作します。
部分編集時には、その範囲内しか取れません。注意してください。
<static>  
JseeUtil.getTopLeftText()
キャレット位置より左上側の文字列を取得します。
選択状態にある場合、左上寄りの側を基準にして取得します。("aaabbbccc"の内"bbb"を選択していれば、"aaa"が取得される)
部分編集時には、その範囲内しか取れません。注意してください。
<static>  
JseeUtil.getBottomRightText()
キャレット位置より右下側の文字列を取得します。
選択状態にある場合、右下寄りの側を基準にして取得します。("aaabbbccc"の内"bbb"を選択していれば、"ccc"が取得される)
部分編集時には、その範囲内しか取れません。注意してください。
<static>  
JseeUtil.str2lines(str, withBreak)
対象文字列を改行ごとに区切り、行の配列にします。
引数の指定によって、各行の末尾に改行コードを含ませることが出来ます。
strが空文字の場合、空文字要素を1つ持つ配列として返します。
<static>  
JseeUtil.getAllLines(withBreak)
ドキュメントの全ての行を文字列配列として取得します。
引数にtrueを設定すれば、各行の末尾に改行コードも付随します。
部分編集時には、その範囲内しか取れません。注意してください。

JseeUtil.getAllTextJseeUtil.str2linesを順に呼び出します。

<static>  
JseeUtil.getTopLeftLines(withBreak)
キャレット位置より左上側の行を文字列配列として取得します。
選択状態にある場合、左上寄りの側を基準にして取得します。("abc\def"の内"e"を選択していれば、["abc", "d"]が取得される)
引数の指定によって、各行の末尾に改行コードを含ませることが出来ます。
部分編集時には、その範囲内しか取れません。注意してください。

JseeUtil.getTopLeftTextJseeUtil.str2linesを順に呼び出します。

<static>  
JseeUtil.getBottomRightLines(withBreak)
キャレット位置より右下側の行を文字列配列として取得します。
選択状態にある場合、右下寄りの側を基準にして取得します。("abc\def"の内"b"を選択していれば、["c", "def"]が取得される)
引数の指定によって、各行の末尾に改行コードを含ませることが出来ます。
部分編集時には、その範囲内しか取れません。注意してください。

JseeUtil.getBottomRightTextJseeUtil.str2linesを順に呼び出します。

<static>  
JseeUtil.yesNoCancel(message, title)
はい/いいえ/キャンセルを選択するダイアログを表示します。
返却値は右記の形のオブジェクトです。{yes: true/false, no: true/false, cancel: true/false}
<static>  
JseeUtil.getMinimumIndent(target)
指定された文字列内から、最小のインデント文字列を返します。
桁数が同じタブインデントと空白インデントが存在する場合、先に現れた方を返します。
<static>  
JseeUtil.getMinimumIndentStrict(target)
指定された文字列内から、最小のインデント文字列を返します。
JseeUtil.getMinimumIndentと違ってタブインデントと空白インデントを同一視せず、
設定のプロパティで設定されているインデント(タブまたは空白のどちらか)のみを認識します。
<static>  
JseeUtil.getBr()
キャレット位置の行末の改行、それがなければ前の行の行末の改行、それでもなければ"\r\n"を返します。
EmEditorで改行を挿入する場合の改行コード判断基準を真似ていますが、1つも改行のないドキュメントへの改行挿入時の判断が微妙に違います。
<static>  
JseeUtil.selectIniValue(selection, key)
INIファイルに対して、指定されたセレクションとキーに該当する値を選択状態にします。
選択が成功すればtrue、失敗すればfalseを返します。

";"か"#"で始まる文字列をコメントとして解釈し、コメントと行末の空白は選択範囲から外します。

<static>  
JseeUtil.getConcater()
ドキュメントの設定を判別して、文字列結合記号を取得します。
SQLなら"||"、PerlとPHPなら"."、VBから始まる設定名なら"&"、それ以外は"+"を返します。
Class Detail
JseeUtil()
JavaScript for EmEditorのためのユーティリティクラスです。
様々な静的メソッドを提供します。

このクラスのメソッドが返却するディレクトリパスは、全て"\"で終了します。
Method Detail
<static> {String} JseeUtil.fileName()
このファイルのファイル名を取得します。
alert(JseeUtil.fileName());
Returns:
{String} このファイルの名前

<static> {String} JseeUtil.dirPath()
このファイルが置かれているディレクトリへのパスを取得します。
二度目以降の呼び出しからは、キャッシュした値を返します。
一度目の呼び出しで存在チェックを行います。
alert(JseeUtil.dirPath());
Returns:
{String} このファイルが置かれているディレクトリへのパス

<static> {String} JseeUtil.filePath()
このファイルへの絶対パスを取得します。
二度目以降の呼び出しからは、キャッシュした値を返します。
一度目の呼び出しで存在チェックを行います。
alert(JseeUtil.filePath());
Returns:
{String} このファイルへの絶対パス

<static> {String} JseeUtil.getSnipIniName()
スニペット用INIファイルのファイル名を取得します。
alert(JseeUtil.getSnipIniName());
Returns:
{String} スニペット用INIファイルのファイル名

<static> {String} JseeUtil.getSnipIniPath()
スニペット用INIファイルへの絶対パスを取得します。
二度目以降の呼び出しからは、キャッシュした値を返します。
一度目の呼び出しで存在チェックを行います。
alert(JseeUtil.getSnipIniPath());
Returns:
{String} スニペット用INIファイルへの絶対パス

<static> {Object} JseeUtil.getSnipIniObj(selection)
スニペット用INIファイルを読み込み、指定のセレクションを{key1:value1, key2:value2}の形のオブジェクトに変換します。
セレクション名は"["と"]"で囲わずに指定します。
二度目以降の呼び出しからは、キャッシュした値を返します。

JseeUtil.getSnipIniPathJseeUtil.getIniObjを順に呼び出し、指定されたセレクションの情報を抽出します。

var ini = JseeUtil.getSnipIniObj("行の2重化");
alert(ini.selectOriginalLines);
Parameters:
{String} selection
セレクション
Throws:
{Error}
スニペット用INIファイルに指定されたセレクションが宣言されていない場合にスロー
Returns:
{Object} スニペット用INIファイルの内容から生成した{key1:value1, key2:value2}の形のオブジェクト、読み込みに失敗すればundefined

<static> {Boolean} JseeUtil.selectSnipIniValue(selection, key)
スニペット用INIファイルを開き、指定されたセレクションとキーに該当する値を選択状態にします。
選択が成功すればtrue、失敗すればfalseを返します。

JseeUtil.getSnipIniPathJseeUtil.openFileJseeUtil.selectIniValueを呼び出します。

JseeUtil.selectSnipIniValue("行の2重化", "selectOriginalLines");
Parameters:
{String} selection
選択状態にしたい値が所属するセレクション
{String} key
選択状態にしたい値を設定しているキー
Returns:
{Boolean} 選択が成功すればtrue、失敗すればfalse

<static> {String} JseeUtil.quote(target)
正規表現で使われる文字をエスケープします。

※関数名はJavaのPattern#quote(String)を参考にしました。

var arg = "$*";
alert("aa\t$*zz".replace(new RegExp("\t" + JseeUtil.quote(arg) + ".*"), ""));
Parameters:
{String} target
対象文字列
Throws:
{Error}
引数がundefinednullの場合にスロー
Returns:
{String} エスケープされた文字列

<static> {Boolean} JseeUtil.isUndef(target)
引数がundefinedかどうかを判別します。
var und;
if(JseeUtil.isUndef(und)) {
    alert("undefinedです。");
}
Parameters:
{Object} target
判別対象
Returns:
{Boolean} 判別対象がundefinedであればtrue、そうでなければfalse

<static> {String} JseeUtil.toString(target)
引数に渡された値を、人が認識しやすい文字列に変換します。
var und;
var map = {a: "aaa", b: "bbb", c: {c1: "ccc", c2: und}};
alert(JseeUtil.toString(map));
Parameters:
{Object} target
変換したい値
Returns:
{String} 人が認識しやすい文字列

<static> {String} JseeUtil.escEscSeq(target)
エスケープシーケンスをエスケープします。
対象となるエスケープシーケンスは、"\r"、"\n"、"\t"のみです。
var escSeq = "\r\n\t";
alert(escSeq);
alert(JseeUtil.escEscSeq(escSeq));
Parameters:
{String} target
エスケープシーケンス
Throws:
{Error}
引数がundefinednullの場合にスロー
Returns:
{String} エスケープされたエスケープシーケンス

<static> JseeUtil.selectLines()
行選択でない状態から行選択状態にします。複数行の行選択に対応します。
JseeUtil.selectLines();

<static> JseeUtil.getLogger(available, scope)
アウトプットバーにログを出力するロガーを取得します。

ロガーはlog関数を持ち、その関数の引数にアウトプットバーに出力する値を指定します。
available関数を判別してからlog関数を呼び出すと、高速化が見込めます。

var logger = getLogger(true, "hoge.jsee");
logger.log("デバッグ中です。");
if(logger.available()) {
    logger.log(proc(proc1() + proc2()));
}
Parameters:
{Boolean} available
ログ出力を有効にする場合はtrue、無効にする場合はfalse
{String} scope Optional
"ファイル名 クラス名 関数名"といった風に、ロガーが使われるスコープを好きに指定 (省略可能)
Returns:
log(Object)関数とavailable()関数を持つオブジェクト

<static> JseeUtil.log(obj)
アウトプットバーにログを出力します。
JseeUtil.getLoggerを使うまでもない場合に使用します。
JseeUtil.log("hoge");
Parameters:
{Object} obj
ログに表示する情報

<static> {String} JseeUtil.dateFormat(date, format)
日付をフォーマットに沿って文字列化します。

サポートするフォーマットは以下に挙げたもののみです。

var date = new Date();
var dateString = JseeUtil.dateFormat(date, "yyyy/MM/dd HH:mm:ss.SSS");
alert(dateString);
dateString = JseeUtil.dateFormat(date, "y/M/d H:m:s.S");
alert(dateString);
Parameters:
{Date} date
日付
{String} format
フォーマット
Throws:
{Error}
引数に異常があった場合にスロー
Returns:
{String} 日付をフォーマットに沿って文字列化したもの

<static> JseeUtil.getMacroPath()
マクロフォルダのパスを取得します。同時にパスの存在チェックも行います。
二度目以降の呼び出しからは、キャッシュした値を返します。
var macroPath = JseeUtil.getMacroPath();
Throws:
{Error}
マクロフォルダのパスが読み込めなかった場合にスロー
{Error}
マクロフォルダのパスが存在しなかった場合にスロー

<static> JseeUtil.getEditorPath()
EmEditorのフォルダパスを返却します。
二度目以降の呼び出しからは、キャッシュした値を返します。
var editorPath = JseeUtil.getEditorPath();

<static> JseeUtil.getEditorName()
EmEditorの実行ファイルの名前を返却します。
二度目以降の呼び出しからは、キャッシュした値を返します。
var scriptPath = JseeUtil.getScriptPath();

<static> JseeUtil.getScriptPath()
実行中のスクリプトが格納されているディレクトリパスを返却します。
二度目以降の呼び出しからは、キャッシュした値を返します。
var scriptPath = JseeUtil.getScriptPath();

<static> {String} JseeUtil.getBackupDirPath()
開いているドキュメントに設定されたバックアップフォルダへのパスを取得します。
取得できなければ空文字を返します。
var backupDirPath = JseeUtil.getBackupDirPath();
Returns:
{String} バックアップフォルダへのパス

<static> {String} JseeUtil.getTempDirPath()
テンポラリフォルダへのパスを取得します。
二度目以降の呼び出しからは、キャッシュした値を返します。
var tempDirPath = JseeUtil.getTempDirPath();
Returns:
{String} テンポラリフォルダへのパス

<static> JseeUtil.openFile(path)
ファイルを開きます。
指定されたパスが存在しない場合は例外を投げます。
JseeUtil.openFile("C:\\hoge.txt");
Parameters:
{String} path
開くファイルのパス
Throws:
{Error}
指定されたパスが存在しない場合にスロー

<static> {Object} JseeUtil.exec(execSentence)
外部アプリを実行し、標準出力と標準エラーの情報を取得します。
返却値は右記の形のオブジェクトです。{out: exeが出力した標準出力, err: exeが出力した標準エラー}

exeのファイルパスに空白が含まれる場合、必ずダブルクォーテーションで囲ってください。

実行したアプリを終了させるまでEmEditorの制御は復帰しません。

// 以下を実行すると、"test"がダイアログ表示されます。
alert(JseeUtil.exec("cmd /c echo test").out);

// 以下を実行すると、メモ帳を閉じるまでEmEditorが待機します。
JseeUtil.exec("notepad");
Parameters:
{String} execSentence
外部アプリへのファイルパスや、外部アプリに渡すパラメータ
Throws:
{Error}
実行ファイルへのパスが間違っている場合にスロー
Returns:
{Object} {out: 外部アプリが出力した標準出力, err: 外部アプリが出力した標準エラー}

<static> {String} JseeUtil.zeroFill(target, digit)
数値をゼロ埋めします。
alert(JseeUtil.zeroFill(1, 3)); // "001"
Parameters:
{Number} target
ゼロ埋め対象となる数値 (String型も許可します。)
{Number} digit
ゼロ埋め後の桁数
Returns:
{String} ゼロ埋めした数値

<static> {Boolean} JseeUtil.contains(array, item)
配列に指定の要素が含まれるかどうかを調べます。(比較には"=="を使用します。)
if(JseeUtil.contains(array, 1)) {
    alert("1が含まれています。");
}
Parameters:
{Object[]} array
対象となる配列
{Object} item
探す要素
Throws:
{Error}
指定された配列がArray型でない場合にスロー
Returns:
{Boolean} 指定の要素が含まれていればtrue、そうでなければfalse

<static> {Object[]} JseeUtil.col2arr(col2arr)
各要素のアクセスにEnumeratorを使用する必要のあるCollectionオブジェクトを配列に変換します。
var subFolders = JseeUtil.col2arr(folder.SubFolders);
for(var i=0;i
					
					
					
						
							
Parameters:
{Collection} col2arr
Collectionオブジェクト
Returns:
{Object[]} 配列

<static> {Object} JseeUtil.getIniObj(iniFilePath)
INIファイルを読み込み、{key1:value1, key2:value2}の形のオブジェクトに変換します。
"[selection]"というセレクションに"key"が定義されていれば、obj.["[selection]"].keyの形で参照します。
";"か"#"で始まる文字列をコメントとして解釈し、コメントのエスケープや、行の途中からのコメントもサポートします。

パスの検索は以下の順番で行い、見つかればそれをインクルードします。

  • 実行しているマクロと同じディレクトリからの相対パスとして探す
  • 絶対パスとして探す

// INIファイル内容
key1=value1
key2
;セレクション1
[selection1]
key3 = value3

// マクロ内容
var ini = JseeUtil.getIniObj("INIファイル.ini");
alert(ini.key1);                  // "value1"
alert(ini.key2);                  // ""
alert(ini.["[selection1]"].key3); // "value3"
alert(ini.key3);                  // undefined
Parameters:
{String} iniFilePath
INIファイルへの相対パス
Throws:
{Error}
指定されたパスが、実行しているマクロと同じディレクトリからの相対パスでも、マクロディレクトリからの相対パスでもない場合にスロー
Returns:
{Object} {key1:value1, key2:value2}の形のオブジェクト、読み込みに失敗すればundefined

<static> JseeUtil.createPopupMenu(menuItems, willPopupAtCaret)
ポップアップメニューを表示します。
引数には[["menuText1", function1, arguments1], ["menuText2", function2, arguments2]]の形の二次元配列を指定します。
function hello(a, b) {
    alert(a + b);
}
function bye() {
    alert("Bye");
}
JseeUtil.createPopupMenu(
    [["Helloを表示", hello, "He", "llo"],
    ["Byeを表示", bye]]
);
Parameters:
{Object[]} menuItems
メニュー項目配列 ([["menuText1", function1, arguments1], ["menuText2", function2, arguments2]]の形の二次元配列)
{Boolean} willPopupAtCaret Optional, Default: false
キャレット位置にポップアップを表示する場合はtrue (省略可能)
Throws:
{Error}
引数が誤った形式である場合にスロー

<static> {Object} JseeUtil.shell()
new ActiveXObject("WScript.Shell");を呼び出します。
二度目以降の呼び出しからは、キャッシュした値を返します。
var shell = JseeUtil.shell();
shell.Run("notepad.exe");
Returns:
{Object} WSHのシェルオブジェクト

<static> {Object} JseeUtil.fso()
new ActiveXObject("Scripting.FileSystemObject");を呼び出します。
二度目以降の呼び出しからは、キャッシュした値を返します。
var fso = JseeUtil.fso();
alert(fso.getFolder(".").Path);
Returns:
{Object} WSHのファイルシステムオブジェクト

<static> {String} JseeUtil.getIndent()
インデントに使われる文字列を取得します。
var indent = JseeUtil.getIndent();
alert(indent);
Returns:
{String} インデント文字列

<static> {String} JseeUtil.readFile(fileName)
ファイルを読み込みます。
ファイルが存在しなければ空文字を返します。
var tempFilePath = JseeUtil.getTempDirPath() + "EmEditorMacros_sample.tmp";
JseeUtil.writeFile(tempFilePath, "hogehoge");
JseeUtil.appendFile(tempFilePath, "\nfugafuga");
var content = JseeUtil.readFile(tempFilePath);
alert(content);
Parameters:
{String} fileName
ファイル名
Returns:
{String} 読み込んだファイル内容

<static> JseeUtil.writeFile(filePath, content)
ファイルに書き込みます。
既に存在するファイルパスが指定された場合は上書きします。
存在しないファイルパスが指定された場合は、フォルダ及びファイルを作成します。
var tempFilePath = JseeUtil.getTempDirPath() + "EmEditorMacros_sample.tmp";
JseeUtil.writeFile(tempFilePath, "hogehoge");
JseeUtil.appendFile(tempFilePath, "\nfugafuga");
var content = JseeUtil.readFile(tempFilePath);
alert(content);
Parameters:
{String} filePath
ファイルへの絶対パス
{String} content
書き込む内容

<static> JseeUtil.appendFile(filePath, content)
ファイルに追加で書き込みます。
存在しないファイルパスが指定された場合は、フォルダ及びファイルを作成します。
var tempFilePath = JseeUtil.getTempDirPath() + "EmEditorMacros_sample.tmp";
JseeUtil.writeFile(tempFilePath, "hogehoge");
JseeUtil.appendFile(tempFilePath, "\nfugafuga");
var content = JseeUtil.readFile(tempFilePath);
alert(content);
Parameters:
{String} filePath
ファイルへの絶対パス
{String} content
追加で書き込む内容

<static> {String} JseeUtil.readAll(stream)
指定のストリームから全て読み込みます。
stream.ReadAll()と同じ機能ですが、バッファサイズの問題を起こりにくくします。
var stream = fso.OpenTextFile(filePath, 1);
var result = JseeUtil.readAll(stream);
stream.Close();
alert(result);
Parameters:
{Stream} stream
ストリーム
Returns:
{String} 読み込んだ内容

<static> JseeUtil.writeAll(stream, content)
指定のストリームに書き込みます。
stream.Write()と同じ機能ですが、バッファサイズの問題を起こりにくくします。
var stream = fso.OpenTextFile(filePath, 2, true);
JseeUtil.writeAll(stream, "content");
stream.Close();
Parameters:
{Stream} stream
ストリーム
{String} content
書き込む内容

<static> {RegExp} JseeUtil.getVBScopeStartMatcher()
VBのスコープの開始部分にマッチする正規表現オブジェクトを取得します。
Function、Sub、Class、Module、Property、If、Get、Set、With、Select、Try、Structure、Enum、Forにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語です。

var startMatcher = JseeUtil.getVBScopeStartMatcher();
var m1 = "Partial Private Shared Function func() As Object".match(startMatcher);
alert(m1);
var m2 = "Public ReadOnly Property name() As String".match(startMatcher);
alert(m2);
Returns:
{RegExp} VBのスコープの開始部分にマッチする正規表現オブジェクト

<static> {RegExp} JseeUtil.getVBScopeEndMatcher()
VBのスコープの終了部分にマッチする正規表現オブジェクトを取得します。
End Function、End Sub、End Class、End Module、End Property、End If、End Get、End Set、End With、End Select、End Try、End Structure、End Enum、Nextにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語、3がEndを除く単語(Nextにマッチした場合は存在しません)です。

var endMatcher = JseeUtil.getVBScopeEndMatcher();
var matched = "End Class".match(endMatcher);
alert(matched);
Returns:
{RegExp} VBのスコープの終了部分にマッチする正規表現オブジェクト

<static> {RegExp} JseeUtil.getVBEndClosedScopeStartMatcher()
VBのEnd Hogeで閉じられるスコープの開始部分にマッチする正規表現オブジェクトを取得します。
Function、Sub、Class、Module、Property、If、Get、Set、With、Select、Tryにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語です。

var startMatcher = JseeUtil.getVBEndClosedScopeStartMatcher();
var matched = "Public ReadOnly Property name() As String".match(startMatcher);
alert(matched);
Returns:
{RegExp} VBのルーチンの開始部分にマッチする正規表現オブジェクト

<static> {RegExp} JseeUtil.getVBEndClosedScopeEndMatcher()
VBのEnd Hogeで閉じられるスコープの終了部分にマッチする正規表現オブジェクトを取得します。
End Function、End Sub、End Class、End Module、End Property、End If、End Get、End Set、End With、End Select、End Tryにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語、3がEndを除く単語です。

var endMatcher = JseeUtil.getVBEndClosedScopeEndMatcher();
var matched = "End Class".match(endMatcher);
alert(matched);
Returns:
{RegExp} VBのルーチンの終了部分にマッチする正規表現オブジェクト

<static> {RegExp} JseeUtil.getVBRoutineStartMatcher()
VBのルーチンの開始部分にマッチする正規表現オブジェクトを取得します。
FunctionとSubにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語です。

var startMatcher = JseeUtil.getVBRoutineStartMatcher();
var matched = "Partial Private Shared Function func(ByVal arg As Object) As Object".match(startMatcher);
alert(matched);
Returns:
{RegExp} VBのルーチンの開始部分にマッチする正規表現オブジェクト

<static> {RegExp} JseeUtil.getVBRoutineEndMatcher()
VBのルーチンの終了部分にマッチする正規表現オブジェクトを取得します。
End FunctionとEnd Subにマッチします。
二度目以降の呼び出しからは、キャッシュした値を返します。

正規表現グループは、0がマッチした行全体、2がマッチした単語、3がEndを除く単語です。

var endMatcher = JseeUtil.getVBRoutineEndMatcher();
var matched = "End Sub".match(endMatcher);
alert(matched);
Returns:
{RegExp} VBのルーチンの終了部分にマッチする正規表現オブジェクト

<static> {String} JseeUtil.upperCamelize(target)
アッパーキャメルケース("AaaBbb")に変換します。
var camelized = JseeUtil.upperCamelize("AAA_BBB");
alert(camelized);
Parameters:
{String} target
対象文字列
Returns:
{String} アッパーキャメルケースに変換された文字列

<static> {String} JseeUtil.lowerCamelize(target)
ロウワーキャメルケース("aaaBbb")に変換します。
var camelized = JseeUtil.lowerCamelize("AAA_BBB");
alert(camelized);
Parameters:
{String} target
対象文字列
Returns:
{String} ロウワーキャメルケースに変換された文字列

<static> {String} JseeUtil.underScorize(target)
アンダースコア区切り("AAA_BBB")に変換します。
var underScores = JseeUtil.underScorize("AaaBbb");
alert(underscores);
Parameters:
{String} target
対象文字列
Returns:
{String} アンダースコア区切りに変換された文字列

<static> JseeUtil.newTab()
必ず新規タブを開き、それをアクティブにします。
内部の動きは以下の通りです。
  • 現在のタブが無題でなければそのまま新規タブを開きます。
  • 現在のタブが無題の場合は別の無題でないタブをアクティブにしてから新規タブを開きます。
  • 無題でないタブが存在しなければ、[元に戻す]が有効なタブを探し、あればそれを利用して新規タブを開きます。
  • [元に戻す]が有効な無題のタブが存在しなければ、既に存在する無題のタブを編集して新規タブを2つ開いた後、編集したタブを閉じます。
JseeUtil.newTab();
JseeUtil.newTab();
JseeUtil.newTab();

<static> JseeUtil.openTemplate(configName)
[設定のプロパティ]に紐付く[テンプレートファイル]を開きます。
JseeUtil.openTemplate(document.configName);
Parameters:
{String} configName
documentオブジェクトのconfigName

<static> JseeUtil.selectAllBoxText()
箱型選択で全選択します。
JseeUtil.selectAllBoxText();

<static> {Boolean} JseeUtil.findNext(target)
キャレット位置から後方へ検索し、見つかった単語を選択します。
見つかった場合はtrue、見つからなかった場合はfalse、空文字が指定された場合もfalseを返します。

既存の検索機能を使わないため、検索履歴やハイライトに影響を与えません。
検索対象にString型が指定された場合は文字列検索を、RegExp型が指定された場合は正規表現検索(multilineがONの状態で)を行います。
正規表現検索はJScriptによる検索であり、既存の検索機能とは挙動が違うので注意してください。(特に"\s"は改行に一致するため、"[^\S\r\n]"などに書き換える必要があります。)

if(!JseeUtil.findNext("hoge")) {
    alert("見つかりませんでした。");
}
if(!JseeUtil.findNext(/\d+/)) {
    alert("見つかりませんでした。");
}
Parameters:
{String|RegExp} target
検索する文字列または正規表現オブジェクト
Returns:
{Boolean} 見つかった場合はtrue、見つからなかった場合はfalse

<static> {Boolean} JseeUtil.findPrev(target)
キャレット位置から前方へ検索し、見つかった単語を選択します。 見つかった場合はtrue、見つからなかった場合はfalse、空文字が指定された場合もfalseを返します。

既存の検索機能を使わないため、検索履歴やハイライトに影響を与えません。
検索対象にString型が指定された場合は文字列検索を、RegExp型が指定された場合は正規表現検索(multilineがONの状態で)を行います。
正規表現検索はJScriptによる検索であり、既存の検索機能とは挙動が違うので注意してください。(特に"\s"は改行に一致するため、"[^\S\r\n]"などに書き換える必要があります。)

if(!JseeUtil.findPrev("hoge")) {
    alert("見つかりませんでした。");
}
if(!JseeUtil.findPrev(/\d+/)) {
    alert("見つかりませんでした。");
}
Parameters:
{String|RegExp} target
検索する文字列または正規表現オブジェクト
Returns:
{Boolean} 見つかった場合はtrue、見つからなかった場合はfalse

<static> {Boolean} JseeUtil.findAll(target)
文書の先頭から後方へ検索し、見つかった単語を選択します。
document.selection.StartOfDocument(false);JseeUtil.findNextを呼び出します。
if(!JseeUtil.findAll("hoge")) {
    alert("見つかりませんでした。");
}
if(!JseeUtil.findAll(/\d+/)) {
    alert("見つかりませんでした。");
}
Parameters:
{String|RegExp} target
検索する文字列または正規表現オブジェクト
Returns:
{Boolean} 見つかった場合はtrue、見つからなかった場合はfalse

<static> {RegExp} JseeUtil.getRegExpAddedFlgs(regexp, flgs)
正規表現オブジェクトのフラグ("g", "m", "i"の3種類)を追加した、新しい正規表現オブジェクトを返します。
新しい正規表現オブジェクトは、元の正規表現オブジェクトの検索結果等は保持していません。
alert(JseeUtil.getRegExpAddedFlgs(/hoge/mi, "g"));
Parameters:
{RegExp} regexp
変換対象正規表現オブジェクト
flgs
Returns:
{RegExp} globaltrueである正規表現オブジェクト

<static> {String} JseeUtil.getAllText()
ドキュメントの全文字列を取得します。
document.GetLineで全ての行を取得するより高速に動作します。
部分編集時には、その範囲内しか取れません。注意してください。
var allText = JseeUtil.getAllText();
Returns:
{String} ドキュメントの全文字列

<static> {String} JseeUtil.getTopLeftText()
キャレット位置より左上側の文字列を取得します。
選択状態にある場合、左上寄りの側を基準にして取得します。("aaabbbccc"の内"bbb"を選択していれば、"aaa"が取得される)
部分編集時には、その範囲内しか取れません。注意してください。
var topLeftText = JseeUtil.getTopLeftText();
alert(topLeftText);
Returns:
{String} ドキュメントの全文字列

<static> {String} JseeUtil.getBottomRightText()
キャレット位置より右下側の文字列を取得します。
選択状態にある場合、右下寄りの側を基準にして取得します。("aaabbbccc"の内"bbb"を選択していれば、"ccc"が取得される)
部分編集時には、その範囲内しか取れません。注意してください。
var bottomRightText = JseeUtil.getBottomRightText();
alert(bottomRightText);
Returns:
{String} ドキュメントの全文字列

<static> {String[]} JseeUtil.str2lines(str, withBreak)
対象文字列を改行ごとに区切り、行の配列にします。
引数の指定によって、各行の末尾に改行コードを含ませることが出来ます。
strが空文字の場合、空文字要素を1つ持つ配列として返します。
var lines = JseeUtil.text2lines("aaa\nbbb");
alert(lines);
Parameters:
{String} str
対象文字列
{Boolean} withBreak Optional, Default: false
各行の末尾に改行コードを含ませる場合はtrue (省略可能)
Returns:
{String[]} 行の配列

<static> {String[]} JseeUtil.getAllLines(withBreak)
ドキュメントの全ての行を文字列配列として取得します。
引数にtrueを設定すれば、各行の末尾に改行コードも付随します。
部分編集時には、その範囲内しか取れません。注意してください。

JseeUtil.getAllTextJseeUtil.str2linesを順に呼び出します。

var lines = JseeUtil.getAllLines(true);
OutputBar.Visible = true;
OutputBar.writeln(lines);
Parameters:
{Boolean} withBreak
各行の末尾に改行コードを付随させるかどうか
Returns:
{String[]} ドキュメントの全ての行を格納した文字列配列

<static> {String[]} JseeUtil.getTopLeftLines(withBreak)
キャレット位置より左上側の行を文字列配列として取得します。
選択状態にある場合、左上寄りの側を基準にして取得します。("abc\def"の内"e"を選択していれば、["abc", "d"]が取得される)
引数の指定によって、各行の末尾に改行コードを含ませることが出来ます。
部分編集時には、その範囲内しか取れません。注意してください。

JseeUtil.getTopLeftTextJseeUtil.str2linesを順に呼び出します。

var topLeftLines = JseeUtil.getTopLeftLines(true);
OutputBar.Visible = true;
OutputBar.writeln(topLeftLines);
Parameters:
{Boolean} withBreak Optional, Default: false
各行の末尾に改行コードを含ませる場合はtrue (省略可能)
Returns:
{String[]} ドキュメントの左上側の行を格納した文字列配列

<static> {String[]} JseeUtil.getBottomRightLines(withBreak)
キャレット位置より右下側の行を文字列配列として取得します。
選択状態にある場合、右下寄りの側を基準にして取得します。("abc\def"の内"b"を選択していれば、["c", "def"]が取得される)
引数の指定によって、各行の末尾に改行コードを含ませることが出来ます。
部分編集時には、その範囲内しか取れません。注意してください。

JseeUtil.getBottomRightTextJseeUtil.str2linesを順に呼び出します。

var bottomRightLines = JseeUtil.getBottomRightLines(true);
OutputBar.Visible = true;
OutputBar.writeln(bottomRightLines);
Parameters:
{Boolean} withBreak Optional, Default: false
各行の末尾に改行コードを含ませる場合はtrue (省略可能)
Returns:
{String[]} ドキュメントの全ての行を含む文字列配列

<static> {returnType} JseeUtil.yesNoCancel(message, title)
はい/いいえ/キャンセルを選択するダイアログを表示します。
返却値は右記の形のオブジェクトです。{yes: true/false, no: true/false, cancel: true/false}
var ans = JseeUtil.yesNoCancel("選択してください");
if(ans.yes) {
    alert("「はい」が選択されました。");
} else if(ans.no) {
    alert("「いいえ」が選択されました。");
} else {
    alert("「キャンセル」が選択されました。");
}
Parameters:
{String} message
表示するメッセージ
{String} title
title ダイアログのタイトル
Returns:
{returnType} 右記の形のオブジェクト {yes: true/false, no: true/false, cancel: true/false}

<static> {String} JseeUtil.getMinimumIndent(target)
指定された文字列内から、最小のインデント文字列を返します。
桁数が同じタブインデントと空白インデントが存在する場合、先に現れた方を返します。
var minimumIndent = JseeUtil.getMinimumIndent("\t\taaa\n\tbbb\n\t\t\tccc\n    ddd\n");
alert(JseeUtil.escEscSeq(minimumIndent).replace(/ /g, "*"));
var minimumIndent = JseeUtil.getMinimumIndent("    ddd\n\t\taaa\n\tbbb\n\t\t\tccc\n");
alert(JseeUtil.escEscSeq(minimumIndent).replace(/ /g, "*"));
Parameters:
{String} target
最小のインデント文字列を探す対象の文字列
Returns:
{String} 最小のインデント文字列

<static> {String} JseeUtil.getMinimumIndentStrict(target)
指定された文字列内から、最小のインデント文字列を返します。
JseeUtil.getMinimumIndentと違ってタブインデントと空白インデントを同一視せず、
設定のプロパティで設定されているインデント(タブまたは空白のどちらか)のみを認識します。
var minimumIndent = JseeUtil.getMinimumIndentStrict("\t\taaa\n\tbbb\n\t\t\tccc\n");
alert(JseeUtil.escEscSeq(minimumIndent));
Parameters:
{String} target
最小のインデント文字列を探す対象の文字列
Returns:
{String} 最小のインデント文字列

<static> {String} JseeUtil.getBr()
キャレット位置の行末の改行、それがなければ前の行の行末の改行、それでもなければ"\r\n"を返します。
EmEditorで改行を挿入する場合の改行コード判断基準を真似ていますが、1つも改行のないドキュメントへの改行挿入時の判断が微妙に違います。
alert(JseeUtil.escEscSeq(JseeUtil.getBr()));
Returns:
{String} キャレット位置の行末の改行、それがなければ前の行の行末の改行、それでもなければ"\r\n"

<static> {Boolean} JseeUtil.selectIniValue(selection, key)
INIファイルに対して、指定されたセレクションとキーに該当する値を選択状態にします。
選択が成功すればtrue、失敗すればfalseを返します。

";"か"#"で始まる文字列をコメントとして解釈し、コメントと行末の空白は選択範囲から外します。

// 以下のような内容のINIファイルを開いている状態で、"hoge"を選択状態にしたい場合
// [selection1]
// key1=hoge ;ほげです

JseeUtil.selectIniValue("selection1", "key1");
Parameters:
{String} selection
選択状態にしたい値が所属するセレクション
{String} key
選択状態にしたい値を設定しているキー
Returns:
{Boolean} 選択が成功すればtrue、失敗すればfalse

<static> {String} JseeUtil.getConcater()
ドキュメントの設定を判別して、文字列結合記号を取得します。
SQLなら"||"、PerlとPHPなら"."、VBから始まる設定名なら"&"、それ以外は"+"を返します。
alert(JseeUtil.getConcater());
Returns:
{String} 文字列結合記号

Documentation generated by JsDoc Toolkit 2.3.2 on Wed Apr 27 2011 16:27:27 GMT+0900 (JST)
Source Code with JsDoc by 雪月花