/* ---------------------------------------------------------------------- * MocaScript - Open Here * $Id: openhere.ms,v 1.1 2008/02/11 03:03:05 nzawa Exp nzawa $ * * 編集ウィンドウまたはプロジェクトアイテムのフォルダを開きます ----------------------------------------------------------------------*/ #command folder "フォルダを開く(&F)" #command prompt "コマンドプロンプトを開く(&C)" var SCRIPTNAME = "openhere.ms"; switch ( command ) { case "folder": openhere( "folder" ); break; case "prompt": openhere( "prompt" ); break; default: error(SCRIPTNAME + ": " + command + " は不明なコマンドです。"); } function openhere( mode ) { var folderpath = getfolderpath(); switch ( mode ) { case "folder": shellExecute("open", folderpath); setStatusText(SCRIPTNAME + ": " + folderpath + " をエクスプローラで開きました。"); break; case "prompt": shellExecute("open", "cmd", null, folderpath); setStatusText(SCRIPTNAME + ": " + folderpath + " をコマンドプロンプトで開きました。"); break; default: error(SCRIPTNAME + ": " + mode + " は不明なモードです。"); } return; } function getfolderpath() { var focusedwindow = getFocusedWindowType(); var folderpath; var projectitem; var WIN_UNKN = 0; // 不明 var WIN_VIEW = 1; // 編集ウインドウ var WIN_OUTP = 2; // アウトプットウインドウ var WIN_PROJ = 3; // プロジェクト var WIN_WINL = 4; // ウィンドウリスト var WIN_OUTL = 5; // アウトライン var WIN_SCRI = 6; // スクリプト var WIN_SEAR = 7; // 検索ツール switch ( focusedwindow ) { case WIN_UNKN: case WIN_OUTP: case WIN_WINL: case WIN_OUTL: case WIN_SCRI: case WIN_SEAR: case WIN_VIEW: // 編集ウィンドウ if ( view ) { folderpath = getFilePath().replace(/[^\\]+$/, ""); if ( folderpath ) break; } case WIN_PROJ: // プロジェクト if ( project ) { projectitem = project.selected; if ( projectitem instanceof FileItem ) { folderpath = projectitem.path.replace(/[^\\]+$/, ""); } else if ( projectitem instanceof GroupItem ) { folderpath = projectitem.guessFolder(); } else { folderpath = projectitem.parent.guessFolder(); } if ( folderpath ) break; } default: // 駄目な場合はカレントディレクトリ folderpath = getcwd(); } return folderpath; }