php構文チェッカー
文章がphpの時だけCtrl+Sにでもマクロを割り当ててください。
文章が保存されていないとき(更新された時)のみ保存してから
phpの構文チェックをかけます。
問題がなければステータスバーにNo syntax errorの表示を行い、
問題があれば新しいテキストファイルを作成しエラー内容を書き出します。
/** * phplint.jsee * @package emeditor wiki * @required php for windows **/ /** * メイン関数 */ function phplint() { if(!document.Saved) { try{ document.Save(document.FullName); wshshell = new ActiveXObject("Wscript.shell"); file = document.Path + "\\" + "phplint"; cmd = "cmd /c php -l \""; //リダイレクトを使いたいので command = cmd + document.FullName + "\" > \""+ file +"\""; wshshell.run(command, 0, true); content = doFile(file, 2); //ファイル読み込み checkFile(content); //文字列内容検査 doFile(file, 1); //構文解析ファイル削除 }catch(e){ raiseError(e); } } } /** * エラー表示 * raiseError(string); */ function raiseError(e) { alert(e); } /** * ファイル読みこみ・削除 * doFile(ファイルパス,type) * type = 1 該当ファイルを削除 * type = 2 該当ファイルを読み込み * return content; */ function doFile(_file,_type) { FSO = new ActiveXObject("Scripting.FilesystemObject"); if(FSO.FileExists(_file)) { switch(_type) { case 1: FSO.DeleteFile(_file); return true; default: fd = FSO.OpenTextFile(_file,1,0,-2); content = fd.ReadAll(); fd.Close(); return content; } } } /** * 構文解析ファイルの文字列をチェック * checkFile(string) * return boolean; */ function checkFile(_content) { //構文解析した内容にkeywordがあればok //なければエラーとみなす。 keyword = "No syntax" if(_content.search(keyword)!==-1) { status = "No syntax error"; return true; }else{ Editor.NewFile(); document.write(_content); return false; } } phplint();