サクラエディタで lint
サクラエディタで lint を走らせるマクロです。
現在、編集しているファイルに対して、チェックします。
問題があれば、別ウィンドウを開いて指摘してくれます。
問題がなければ何もしません。
現在 php と js に対応しています。
PHPのチェックには php cliを使います。
http://windows.php.net/download/
jsのチェックには jshint を使います
https://nodejs.org/en/
npm install jshint
共に、パスを切ってください。
または、ソース書き換えて、呼び出せるようにしてください。
//サクラエディタで lint // //現在、編集しているファイルに問題があれば表示。問題なければ何もしない。 //現在 php と js に対応. // //作った人 rti7743 //ライセンス: NYSL / CC0 / Public Domain / ご自由に //コマンドを実行して、その結果から、特定の文字列を含まない行だけを取得. //return `cmd | grep -v foo`; function system(cmd,ignoreMessageArray) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var shell = new ActiveXObject("WScript.Shell"); var stdout = fso.GetTempName(); // var stdout="c:\\temp\\aa.txt"; cmd = "cmd.exe /c " + cmd + " > \"" + stdout + "\" 2>&1"; shell.Run(cmd,0,1); var result = ""; var fs = fso.OpenTextFile(stdout,1); while(! fs.AtEndOfStream ) { var line = fs.ReadLine(); var found = false; for(var i in ignoreMessageArray) { if ( line.indexOf( ignoreMessageArray[i] ) >= 0) { found = true; } } if (found) { continue; } result += line + "\r\n"; } fs.Close(); fso.DeleteFile(stdout); return result; } function main() { var filename = "\"" + Editor.GetFilename() + "\""; var lower = Editor.GetFilename() + "*"; lower = lower.toLowerCase(); var result = ""; if ( lower.indexOf('.php*') > 0 ) {//PHPのチェックには php cliを使います //DOWNLOAD http://windows.php.net/download/ var cmd = "php -l " + filename; result = system(cmd,["No syntax","Errors parsing"] ); } else if ( lower.indexOf('.js*') > 0 ) {//jsのチェックには jshint を使います //DOWNLOAD https://nodejs.org/en/ //DOWNLOAD npm install jshint var cmd = "jshint " + filename; result = system(cmd,["No syntax"]); } if(result.length >= 1) { //エラーがあれば表示 Editor.TraceOut(result,2); ActivateWinOutput(); } } main();