ぽざうねっと

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  420  : 記事  0  : コメント  9432  : トラックバック  76

ニュース

さて、今年は何を漬けようか

書庫

日記カテゴリ

Accessory

Community

Private

http://blogs.wankuma.com/mutaguchi/archive/2007/11/08/106978.aspx

当たり前ですけど、やっぱり同じようなこと考えてる人っているんですね。
私が自作して使っているマクロです。
 1  /*
 2   * 現在開いているソースファイルを実行します。
 3   */
 4  var APP_PATH_CSC = "C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\csc.exe";
 5  var APP_PATH_JAVAC   = "C:\\Java\\SDK\\1.6.0\\bin\\javac.exe";
 6  var APP_PATH_JAVA    = "C:\\Java\\SDK\\1.6.0\\bin\\java.exe";
 7  var APP_PATH_BROWSER = "C:\\Program Files\\Browser\\Firefox\\firefox.exe"
 8
 9  var shell = new ActiveXObject("WScript.Shell");
10  var fso = new ActiveXObject("Scripting.FileSystemObject");
11
12  // 実行前に保存する
13  var activeDoc = editor.activeDocument;
14  if (! activeDoc.saved) {
15      activeDoc.save();
16  }
17
18  shell.currentDirectory = activeDoc.path;
19  var activeConfigName = activeDoc.configName;
20  var srcFilePath = editor.activeDocument.fullName;
21
22  var exec = null;
23
24  // コンパイル
25  var result = "########## Compile begin ##########\r\n";
26  if (activeConfigName == "C#") {
27      exec = shell.exec(APP_PATH_CSC + " \"" + srcFilePath + "\"");
28      result += exec.stdOut.readAll();
29  } else if (activeConfigName == "Java") {
30      var encodingOption = "";
31      // とりあえず使用するとしたら Shift_JIS と UTF-8 だろう
32      if (activeDoc.Encoding == eeEncodingUTF8) {
33          encodingOption = " -encoding utf-8";
34      }
35      exec = shell.exec(APP_PATH_JAVAC + encodingOption + " -d .\\ \"" + srcFilePath + "\"");
36      result += exec.stdErr.readAll();
37  } else {
38      result += "Compile is not necessary";
39  }
40  result += "########## Compile end ##########\r\n";
41
42  result += "\r\n";
43
44  // 実行結果取得
45  result += "########## Execute begin ##########\r\n";
46  var execFileName = null;
47  if (activeConfigName == "C#") {
48      execFileName = fso.getBaseName(srcFilePath) + ".exe";
49      if (fso.fileExists(".\\" + execFileName)) {
50          exec = shell.exec(".\\" + execFileName);
51          result += exec.stdOut.readAll();
52      }
53  } else if (activeConfigName == "Java") {
54      execFileName = fso.getBaseName(srcFilePath) + ".class";
55      if (fso.fileExists(".\\" + execFileName)) {
56          exec = shell.exec(APP_PATH_JAVA + " \"" + fso.getBaseName(srcFilePath) + "\"");
57          result += exec.stdOut.readAll();
58          result += "---------- error ----------\r\n";
59          result += exec.stdErr.readAll();
60      }
61  } else if ((activeConfigName == "Bat")) {
62      shell.run(srcFilePath);
63  } else if (activeConfigName == "JavaScript for EmEditor") {
64      // 無限ループ対策
65      if (srcFilePath != scriptFullName) {
66          var stream = fso.openTextFile(srcFilePath, 1, false, -1);
67          fileContent = stream.readAll();
68          eval(fileContent);
69      }
70  }
71  result += "########## Execute end ##########\r\n";
72
73  // 結果表示
74  if ((activeConfigName == "C#") || (activeConfigName == "Java")) {
75      // C#・Javaの場合は実行結果を取得し、別タブに表示
76      editor.newFile();
77      var resultDoc = editor.documents.item(editor.documents.count);
78      resultDoc.write(result);
79  } else if ((activeConfigName == "XML") || (activeConfigName == "HTML")) {
80      // HTML・XMLはブラウザで表示
81      shell.exec(APP_PATH_BROWSER + " \"" + srcFilePath + "\"");
82  } else if ((activeConfigName == "Bat") || (activeConfigName == "JavaScript for EmEditor")) {
83      // 実行済みのため、何も表示しない
84  } else {
85      alert("対応していないファイル形式です。");
86  }
87
88  // コンパイルで作成されたファイルを削除
89  if ((execFileName != null) && fso.fileExists(".\\" + execFileName)) {
90      fso.deleteFile(".\\" + execFileName);
91  }
私の場合は、C# と Java がコンパイル対象でその他いくつかの種類のファイルを実行します。
んで、実行結果を新規ドキュメントとしてエディタに表示する部分がちょっと異なりますかね。
ほかにも XML 整形するマクロや、重複行を削除するマクロ、ポップアップで実行したいマクロを選んで実行するマクロ、簡単なファイラの機能を果たすマクロなんかをよく使います。
投稿日時 : 2007年11月9日 1:55

コメント

# re: 同じようなこと考えてる人はいるもんだ 2007/11/09 23:00 EmEditorユーザー
XML 整形するマクロ公開希望します。

# XML を整形するマクロ in EmEditor 2007/11/10 7:12 へぼろっぱぁ
XML を整形するマクロ in EmEditor

# re: 同じようなこと考えてる人はいるもんだ 2007/12/19 3:12 hfddhf
fddfdfh
http://bella-donna-cinquantenne.fotoporno-vfl.info
http://tv-lesbo-negra-gratis.fotoporno-vfl.info
gfddhdfh

Post Feedback

タイトル
名前
Url:
コメント: