ひまつぶし雑記帖

CotEditorからjavascript(JXA)経由でperlへ

2015/9/8 [08:45:50] (火) 天気

CotoEditorで昨日書いたapplescriptと同じことをするjavascript(JXA)を書いたのでメモ。

YosemiteからはOS標準でJavaScript for Automation (JXA)が使えるようになった。
歴史的な流れとしては、HyperCardのHyperTalkからapplescriptへ、applescriptからjavascriptへということらしい。これらは乱暴に理解すると、unixでのシェルスクリプトやWINDOWSのバッチファイルみたいなもの、か。いや、macのことはよく知らない。

こちら、 『JavaScript for Automation (JXA)』鳶嶋工房 がとても参考になった。

これからはjavascriptだというし、初めてでよくわからなかったapplescriptよりは多少いじったこともあるjavascriptの方がたぶん早いだろうと、昨日applescirptで書いたばかりだけど、javascriptで書き直した。

ここんとこいじってるスクリプト、マクロはxyzzyもCotEditorのスクリプトも身も蓋もない言いかたをすると「シェルに渡すためのコマンドライン文字列を生成するだけ」のもの。

実際の作業はperlのスクリプトが担当なのでマクロやスクリプトでは難しいことは何もしていない。

javascirpt(JXA)版スクリプト

CotEditorのスクリプトとして使うには
・ファイル名(拡張子)「.js」
・ファイルの一行め「#!/usr/bin/osascript -l JavaScript」
この2点が必要。



HOMEディレクトリ(のpath)を取得するのに、わざわざstdlib使うのって大袈裟な感じやな、とか思ったりしつつ、アプリをいじるための呪文
var app = Application("CotEditor");
app.includeStandardAdditions = true;
を入れてプロパティを調べるぐらいで、後はほんとJavascript。
わたしの慣れの問題で当たり前の話、applescriptよりJavascirptの方が格段にわかりやすい。わからないところ・書き方などはJXAというかJavascirptで検索すれば情報豊富で解決も早い。

今回、macの「スクリプトエディタ.app」が手軽・便利で大助かりだった。変数に何が入ってるのかを見られたり、エラーチェックできて、こんなアプリがあったとはちょっとした発見&驚き(今さら感)

ただ、残念なことに、このJavascript版はosascriptで使うと
warning: failed to get scripting definition from /usr/bin/osascript; it may not be scriptable.
という警告が毎回出てしまう。いちいちコンソールが出て警告されるのは鬱陶しいけどしかたがないらしい。
こちらが参考になった→ 『JXAの「Error: A privilege violation occurred」の回避』

せっかくだけど、昨日のapplescriptはお蔵入り・塩漬けだなあ。

image 

»電子書籍制作代行についてはこちら

【電子書籍発売中】

doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

いいだ(@t2aki@tokoroten.doncha.net)

[Sat, 24 Jan 2026 14:01]

>(自称)英語話せない人が付けた変数名、その人の技術力関係なく結構モヤモヤする率高い..... 以前、TLに流れてきたブログ、perlの変数を見れば、世の中...

[Sat, 24 Jan 2026 12:43]

>維新の会代表、吉村洋文・大阪府知事の出直し選挙は「抗議の白票」に注目 あれ?「白票」なんて1mmも意味がないんじゃなかったっけ? せっかく対立候補がいるん...

[Sat, 24 Jan 2026 10:22]

確定申告、自分の分はやっつけた。 選挙、投票へのモチベーションがあがるよね!...

検索
<<2026/1>>
    123
45678910
11121314151617
18192021222324
25262728293031

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版