KomodoでLatin-1撲滅を試みる
2008-10-30


KomodoでHTAを書いてみようと思ったわけだが

仕事でちょっとしたツールが必要になったので、久々にHTAを書くことにした。

単純なJSやHTAなんかは大体サクラエディタでしこしこと書くのだが、バッチやら参照ディレクトリやらでちくっと複雑になりそうだったのでKomodoを使ってみることにした。

が、ちと困ったことが。Shift_JISのソースをKomodoで開くとなぜか「Latin-1」として検出されてしまい、こんな具合で表示されるのだ。

[LINK] (禺画像])

ほんとはこうなんだけど。

[LINK] (禺画像])

開くたび変更するのは面倒くさい

ドキュメントのプロパティでCP932に変更すればちゃんと表示されるんだけども恒久的に覚えてくれるわけじゃないので、ファイルを開くたびにちくちくと設定する必要があり、すごく面倒くさい。

なので、なにか手はないかと思って調べたら、どうやらKomodoのマクロはファイルを開くタイミングで起動することができるらしい。これでなんとかならんか。

で、マクロ書いてみた

先のリンクとかを参考に、こんなマクロを書いてみたわけだが。

if( ! komodo.document ) return;
var doc = komodo.document;
if( doc.encoding.short_encoding_name == "Latin-1" ) {
    try {
        doc.setEncodingFromEncodingName( "CP932" );
    } catch(e) {
        ko.dialogs.alert( e );
    }
}
このマクロをとりあえずはプロジェクトに登録し、プロパティの「Triggers」で「after file open」を設定してみると、Latin-1として検出された場合のみCP932にエンコードを自動的に変更してくれる。あー、これでイライラせずにすむわ。

ちなみにCP932以外に設定したかったり、トリガになるエンコーディングをLatin-1以外にしたかったりしたら、使用したいエンコードのファイルをKomodoで開いて、以下のマクロで調べてみればよいかと。

if( ! komodo.document ) return;
ko.dialogs.alert( komodo.document.encoding.short_encoding_name );

あ、そういやマクロ中で使用している komodo オブジェクトは使用が推奨されていないそうな。なのでKomodoのバージョンがあがったら動かなくなる可能性なきにしもあらず。まぁ気にしない。

そういや、これToolboxに登録しても検出してくれるのかな?

[JavaScript]
[Komodo Edit]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット