1 #title = "diff"
  2 #tooltip = "比較ツールで右のタブと比較"
  3 #include "lib\sgc4jsee.jsee"
  4 
  5 /**
  6  * @fileOverview
  7  * 開いているファイルとその右隣(なければ左隣)のファイルを比較ツールで比較します。<br />
  8  * 既存の比較機能のようにドキュメント上のテキストを比較するのではなく、保存されているファイル内容を比較します。<br />
  9  * <br />
 10  * INIファイルで比較ツールを指定してください。<br />
 11  * 比較ツールは"diffTool.exe file1 file2"の形で起動されます。<br />
 12  * 推奨する比較ツールは<a href="http://www.forest.impress.co.jp/lib/stdy/program/progsupt/winmerge.html">WinMerge</a>です。
 13  * 
 14  * @author gecca from 雪月花 (http://setsugecca.org/)
 15  * @version 1.00 for EmEditor v10.0
 16  */
 17 
 18 (function() {
 19 	var exePath = JseeUtil.getSnipIniObj("比較ツールで右のタブと比較").exePath;
 20 	if(!JseeUtil.fso().FileExists(exePath)) {
 21 		alert("INIファイルのexePathに指定されたファイルパスが存在しません。");
 22 		JseeUtil.selectSnipIniValue("比較ツールで右のタブと比較", "exePath");
 23 		return;
 24 	}
 25 	
 26 	var docs = JseeUtil.col2arr(editor.Documents);
 27 	var nextDoc;
 28 	for(var i=0;i<docs.length;i++) {
 29 		if(docs[i] == document) {
 30 			if(i + 1 < docs.length) {
 31 				// 右隣のドキュメント
 32 				nextDoc = docs[i + 1];
 33 			} else if(i > 0) {
 34 				// 左隣のドキュメント
 35 				nextDoc = docs[i - 1];
 36 			} else {
 37 				alert("隣に開いているファイルがありません。");
 38 				return;
 39 			}
 40 		}
 41 	}
 42 	
 43 	if(!document.FullName) {
 44 		alert("比較元のドキュメントはファイルとして存在しないため比較できません。");
 45 		return;
 46 	}
 47 	if(!nextDoc.FullName) {
 48 		alert("比較対象ドキュメントはファイルとして存在しないため比較できません。");
 49 		return;
 50 	}
 51 	
 52 	new ActiveXObject("WScript.Shell").Run("\"" + exePath + "\" \"" + document.FullName + "\" \"" + nextDoc.FullName + "\"", 1, false);
 53 })();
 54